Extraction de données de cartes de visite de Slack vers Google Sheets via GPT-4o OCR

Intermédiaire

Ceci est unMiscellaneous, AI Summarization, Multimodal AIworkflow d'automatisation du domainecontenant 10 nœuds.Utilise principalement des nœuds comme Slack, SplitOut, HttpRequest, GoogleSheets, SlackTrigger. Extraire les données de cartes de visite de Slack vers Google Sheets avec GPT-4o OCR

Prérequis
  • Token Bot Slack ou URL Webhook
  • Peut nécessiter les informations d'identification d'authentification de l'API cible
  • Informations d'identification Google Sheets API
  • Clé API OpenAI
Aperçu du workflow
Visualisation des connexions entre les nœuds, avec support du zoom et du déplacement
Exporter le workflow
Copiez la configuration JSON suivante dans n8n pour importer et utiliser ce workflow
{
  "meta": {
    "instanceId": "e04cc86c30b0cecda8e6bbc7cc41459d9bf4d76816638a14d42d636b91913ebc",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "21c87864-6365-4d62-95e6-01576fb3f01d",
      "name": "Slack Trigger",
      "type": "n8n-nodes-base.slackTrigger",
      "position": [
        -496,
        0
      ],
      "webhookId": "82952e59-1102-42c9-811e-db9c35954466",
      "parameters": {
        "options": {},
        "trigger": [
          "message"
        ],
        "channelId": {
          "__rl": true,
          "mode": "list",
          "value": "C09DW6Q03T8",
          "cachedResultName": "card"
        }
      },
      "credentials": {
        "slackApi": {
          "id": "VLK4L2mMCF7UFZXF",
          "name": "Slack account 4"
        }
      },
      "notesInFlow": false,
      "typeVersion": 1
    },
    {
      "id": "bd53e180-a97f-4ffc-af2e-e95408c52fbf",
      "name": "Ajouter une ligne dans la feuille",
      "type": "n8n-nodes-base.googleSheets",
      "position": [
        528,
        0
      ],
      "parameters": {
        "columns": {
          "value": {
            "Name": "={{ $json.output['full names'] }}",
            "Email": "={{ $json.output.email }}",
            "Phone": "={{ $json.output['phone numbers'] }}",
            "Company": "={{ $json.output['company names'] }}",
            "Job Title": "={{ $json.output['job titles'] }}"
          },
          "schema": [
            {
              "id": "Name",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Name",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Company",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Company",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Job Title",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Job Title",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Phone",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Phone",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            },
            {
              "id": "Email",
              "type": "string",
              "display": true,
              "required": false,
              "displayName": "Email",
              "defaultMatch": false,
              "canBeUsedToMatch": true
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "options": {},
        "operation": "append",
        "sheetName": {
          "__rl": true,
          "mode": "list",
          "value": "gid=0",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1NEmgb1BU706kR4k-H2e3L6T8AnUPxFsNzkQZNhVAP90/edit#gid=0",
          "cachedResultName": "総合リスト"
        },
        "documentId": {
          "__rl": true,
          "mode": "list",
          "value": "1NEmgb1BU706kR4k-H2e3L6T8AnUPxFsNzkQZNhVAP90",
          "cachedResultUrl": "https://docs.google.com/spreadsheets/d/1NEmgb1BU706kR4k-H2e3L6T8AnUPxFsNzkQZNhVAP90/edit?usp=drivesdk",
          "cachedResultName": "名刺リスト"
        }
      },
      "credentials": {
        "googleSheetsOAuth2Api": {
          "id": "OADOUEa3B96W0iqk",
          "name": "Google Sheets account 2"
        }
      },
      "typeVersion": 4.7
    },
    {
      "id": "c0881266-4f48-47e4-9da9-5a9c15c019f4",
      "name": "Transformation des données",
      "type": "n8n-nodes-base.splitOut",
      "position": [
        304,
        0
      ],
      "parameters": {
        "include": "allOtherFields",
        "options": {},
        "fieldToSplitOut": "output"
      },
      "typeVersion": 1
    },
    {
      "id": "8183cd9c-512f-4f5c-aaa6-6897a89e1fb7",
      "name": "Envoyer un message",
      "type": "n8n-nodes-base.slack",
      "position": [
        752,
        0
      ],
      "webhookId": "c67bd6d3-d8d3-41ec-b12f-f4ee57b536d0",
      "parameters": {
        "text": "=---\nName: {{ $json.Name }}\nTitle: {{ $json['Job Title']}}\nCompany: {{ $json.Company }}\nPhone: {{ $json.Phone }}\nEmail: {{ $json.Email }}",
        "select": "channel",
        "channelId": {
          "__rl": true,
          "mode": "list",
          "value": "C09DW6Q03T8",
          "cachedResultName": "card"
        },
        "otherOptions": {}
      },
      "credentials": {
        "slackApi": {
          "id": "VLK4L2mMCF7UFZXF",
          "name": "Slack account 4"
        }
      },
      "typeVersion": 2.3
    },
    {
      "id": "59ea6f4b-f9c4-4873-856e-356599ae22ea",
      "name": "Structure de sortie",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        96,
        224
      ],
      "parameters": {
        "jsonSchemaExample": "[{\n\t\"full names\": \"Toshiki Hirao\",\n\t\"job titles\": \"CEO\",\n  \"company names\": \"dTosh\",\n  \"phone numbers\": \"012-3456-938\",\n  \"email\": \"xxx@yyy.jp\"\n}]"
      },
      "typeVersion": 1.3
    },
    {
      "id": "8ca7e36b-2066-4a45-b09b-de49648111c5",
      "name": "Modèle d'IA",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        -48,
        224
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o",
          "cachedResultName": "gpt-4o"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "in4FUooE7goQS8l0",
          "name": "OpenAi account 2"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "7153c21f-d2d7-455d-9d88-a3cb4b1a20c2",
      "name": "Note adhésive",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1040,
        -48
      ],
      "parameters": {
        "width": 448,
        "height": 880,
        "content": "## How it works\n1. Slack Trigger – The workflow starts when a business card photo is uploaded to Slack.\n2. HTTP Request – The uploaded image is fetched from Slack.\n3. AI/OCR Parsing – The card image is analyzed by an AI model and structured into contact fields (name, company, email, phone, etc.).\n4. Transform Data – The extracted data is cleaned and mapped into the correct format.\n5. Google Sheets – A new row is appended to your designated Google Sheet, creating an organized contact database.\n6. Slack Notification – Finally, a confirmation message is sent back to Slack to let you know the contact has been successfully saved.\n\n## How to use\n1. Copy the template into your n8n instance.\n2. Connect your Slack account to capture uploaded images.\n3. Set up your Google Sheets connection and choose the spreadsheet where contacts should be stored.\n4. Adjust the Contact Information extraction node if you want to capture custom fields (e.g., job title, address).\n5. Deploy and test: upload a business card image in Slack and confirm it’s added to Google Sheets automatically.\n\n## Requirements\n1. n8n running (cloud).\n2. A Slack account with access to the channel where photos will be uploaded.\n3. A Google Sheets account with a target sheet prepared for storing contacts.\n4. AI/OCR capability enabled in your n8n (e.g., OpenAI, Google Vision, or another OCR/LLM provider).\n5. Basic access rights in both Slack and Google Sheets to read and write data."
      },
      "typeVersion": 1
    },
    {
      "id": "2b3d9219-4616-4a95-b255-dbb1eab2ffd3",
      "name": "Note adhésive1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1040,
        -272
      ],
      "parameters": {
        "width": 608,
        "height": 192,
        "content": "## Scan Business Cards in Slack to Google Sheets\n\nYou can turn messy business card photos into organized contact data automatically.\nWith this workflow, you can upload a business card photo to Slack and instantly capture the contact details into Google Sheets using OCR. No more manual typing—each new card is scanned, structured, saved, and confirmed back in Slack, making contact management fast and effortless."
      },
      "typeVersion": 1
    },
    {
      "id": "2e313bd5-2046-4ed0-a521-d28dc962b0b9",
      "name": "Récupérer les images",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        -272,
        0
      ],
      "parameters": {
        "url": "={{ $json.files[0].url_private_download }}",
        "options": {
          "response": {
            "response": {
              "responseFormat": "file"
            }
          }
        },
        "authentication": "predefinedCredentialType",
        "nodeCredentialType": "slackApi"
      },
      "credentials": {
        "slackApi": {
          "id": "VLK4L2mMCF7UFZXF",
          "name": "Slack account 4"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "3d8e76d9-9bcb-4e52-ac45-b560d9086e47",
      "name": "Scanner les informations de contact",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        -48,
        0
      ],
      "parameters": {
        "text": "Please identify and extract all professional contact information from the image containing several business cards. You have to include details that are full names, job titles, company names, phone numbers, and email addresses.",
        "options": {
          "systemMessage": "You assist sales/BD teams by parsing images with several business cards. Identify every card and pull the essentials—full names, job titles, companies, phone numbers, and emails."
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2.1
    }
  ],
  "pinData": {},
  "connections": {
    "8ca7e36b-2066-4a45-b09b-de49648111c5": {
      "ai_languageModel": [
        [
          {
            "node": "3d8e76d9-9bcb-4e52-ac45-b560d9086e47",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "2e313bd5-2046-4ed0-a521-d28dc962b0b9": {
      "main": [
        [
          {
            "node": "3d8e76d9-9bcb-4e52-ac45-b560d9086e47",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "21c87864-6365-4d62-95e6-01576fb3f01d": {
      "main": [
        [
          {
            "node": "2e313bd5-2046-4ed0-a521-d28dc962b0b9",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "8183cd9c-512f-4f5c-aaa6-6897a89e1fb7": {
      "main": [
        []
      ]
    },
    "59ea6f4b-f9c4-4873-856e-356599ae22ea": {
      "ai_outputParser": [
        [
          {
            "node": "3d8e76d9-9bcb-4e52-ac45-b560d9086e47",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    },
    "c0881266-4f48-47e4-9da9-5a9c15c019f4": {
      "main": [
        [
          {
            "node": "bd53e180-a97f-4ffc-af2e-e95408c52fbf",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "bd53e180-a97f-4ffc-af2e-e95408c52fbf": {
      "main": [
        [
          {
            "node": "8183cd9c-512f-4f5c-aaa6-6897a89e1fb7",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "3d8e76d9-9bcb-4e52-ac45-b560d9086e47": {
      "main": [
        [
          {
            "node": "c0881266-4f48-47e4-9da9-5a9c15c019f4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
Foire aux questions

Comment utiliser ce workflow ?

Copiez le code de configuration JSON ci-dessus, créez un nouveau workflow dans votre instance n8n et sélectionnez "Importer depuis le JSON", collez la configuration et modifiez les paramètres d'authentification selon vos besoins.

Dans quelles scénarios ce workflow est-il adapté ?

Intermédiaire - Divers, Résumé IA, IA Multimodale

Est-ce payant ?

Ce workflow est entièrement gratuit et peut être utilisé directement. Veuillez noter que les services tiers utilisés dans le workflow (comme l'API OpenAI) peuvent nécessiter un paiement de votre part.

Workflows recommandés

Extraction des données de factures PDF depuis Slack vers Google Sheets avec GPT-4o
Extraire des données de factures à partir de PDF Slack vers Google Sheets avec GPT-4o
Slack
Http Request
Google Sheets
+
Slack
Http Request
Google Sheets
10 NœudsToshiki Hirao
Divers
Extraction et organisation des détails des contrats à partir de PDF vers Slack, GPT-4o et Google Sheets
Extraire et organiser les détails des contrats depuis PDF vers Slack, GPT-4o et Google Sheets
Slack
Switch
Http Request
+
Slack
Switch
Http Request
19 NœudsToshiki Hirao
Extraction de documents
Génération automatisée de prospects B2B : Google Places, Scrape.do et enrichissement de données par IA
Génération automatisée de prospects B2B : Google Places, Scrape.do et enrichissement de données par IA
If
Set
Html
+
If
Set
Html
19 NœudsOnur
Divers
Analyse intelligente quotidienne des groupes WhatsApp : Analyse GPT-4.1 et transcription des messages vocaux
Analyse intelligente des groupes WhatsApp quotidiens : analyse GPT-4.1 et transcription des messages vocaux
If
Set
Code
+
If
Set
Code
52 NœudsDaniel Lianes
Divers
Créer du contenu social axé sur l'IA pour LinkedIn et Facebook en utilisant la génération d'images et la révision humaine
Créer des contenus de médias sociaux pilotés par l'IA pour LinkedIn et Facebook avec la génération d'images et une vérification manuelle
If
Set
Slack
+
If
Set
Slack
63 NœudsDidac Fernandez
Divers
演示 - 分享模板 - de职位描述构建候选人短名单
AI招聘流程:utilisationApolloetAirtablede职位à候选人短名单
Set
Limit
Switch
+
Set
Limit
Switch
40 NœudsFabian Herhold
Divers
Informations sur le workflow
Niveau de difficulté
Intermédiaire
Nombre de nœuds10
Catégorie3
Types de nœuds9
Description de la difficulté

Adapté aux utilisateurs expérimentés, avec des workflows de complexité moyenne contenant 6-15 nœuds

Auteur
Toshiki Hirao

Toshiki Hirao

@hirao

dTosh Inc., CEO Nara Institute of Science and Technology, Assistant Professor

Liens externes
Voir sur n8n.io

Partager ce workflow

Catégories

Catégories: 34