名刺スキャナー

中級

これは自動化ワークフローで、14個のノードを含みます。主にDataTable, FormTrigger, HttpRequest, Agent, ExtractFromFileなどのノードを使用。 名刺から連絡先情報をMistral OCRとGPT-4o-miniで抽出する

前提条件
  • ターゲットAPIの認証情報が必要な場合あり
  • OpenAI API Key

カテゴリー

-
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
  "id": "96Ab7Pgv1EJuTmxK",
  "meta": {
    "instanceId": "c8b95e29c17127b212f04efc4af0e88eb8ed7f9fbac9f0513cac20f47e8e86db",
    "templateCredsSetupCompleted": true
  },
  "name": "Business card scanner",
  "tags": [
    {
      "id": "fhnwm2x2nil3wCDz",
      "name": "n8n database",
      "createdAt": "2025-10-03T02:19:57.035Z",
      "updatedAt": "2025-10-03T02:19:57.035Z"
    },
    {
      "id": "z50kYN6ZCBwCtje9",
      "name": "Mistral OCR",
      "createdAt": "2025-10-03T02:25:59.717Z",
      "updatedAt": "2025-10-03T02:25:59.717Z"
    },
    {
      "id": "IawKguNngWRq4lUe",
      "name": "OpenAI",
      "createdAt": "2025-10-06T02:33:58.972Z",
      "updatedAt": "2025-10-06T02:33:58.972Z"
    }
  ],
  "nodes": [
    {
      "id": "c333cb6d-8366-419c-bfee-c939485d9122",
      "name": "Mistral OCR API",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        576,
        592
      ],
      "parameters": {
        "url": "https://api.mistral.ai/v1/ocr",
        "method": "POST",
        "options": {
          "response": {
            "response": {
              "responseFormat": "file",
              "outputPropertyName": "ocr_output.json"
            }
          }
        },
        "jsonBody": "={\n  \"model\": \"mistral-ocr-latest\",\n  \"document\": {\n    \"type\": \"document_url\",\n    \"document_url\": \"data:application/pdf;base64,{{ $json.data }}\"\n  },\n  \"include_image_base64\": true\n}",
        "sendBody": true,
        "specifyBody": "json",
        "authentication": "genericCredentialType",
        "genericAuthType": "httpBearerAuth"
      },
      "credentials": {
        "httpBearerAuth": {
          "id": "FXRzJOFSFbJ69oyG",
          "name": "Mistral OCR - Bearer Auth account"
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "7249608d-fe26-44c7-b33a-6ca1f6342bcf",
      "name": "AIエージェント",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        1088,
        592
      ],
      "parameters": {
        "text": "=Business Card: {{ $json.data.pages[0].markdown }}",
        "options": {
          "systemMessage": "You are a business card reader that reads the data from the card."
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 2.2
    },
    {
      "id": "ae9c9a46-f3e4-410b-8ea6-a64121a15f03",
      "name": "OpenAI チャットモデル",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        1008,
        816
      ],
      "parameters": {
        "model": {
          "__rl": true,
          "mode": "list",
          "value": "gpt-4o-mini",
          "cachedResultName": "gpt-4o-mini"
        },
        "options": {}
      },
      "credentials": {
        "openAiApi": {
          "id": "pZ0XcQlml2P1EaUh",
          "name": "OpenAi account"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "577cb6d1-2950-4c6a-b967-4e048b766663",
      "name": "構造化出力パーサー",
      "type": "@n8n/n8n-nodes-langchain.outputParserStructured",
      "position": [
        1328,
        816
      ],
      "parameters": {
        "jsonSchemaExample": "{\n\t\"firstname\": \"\",\n\t\"name\": \"\",\n    \"company\": \"\",\n    \"web\": \"\",\n    \"email\": \"\",\n    \"street\": \"\",\n    \"postcode\": \"\",\n    \"place\": \"\",\n    \"phone\": \"\",\n    \"mobile\": \"\",\n    \"jobdescription\": \"\"\n}"
      },
      "typeVersion": 1.3
    },
    {
      "id": "43396e25-a83a-4c6c-87ba-dfedbf932858",
      "name": "シンプルメモリ",
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "position": [
        1136,
        816
      ],
      "parameters": {
        "sessionKey": "={{ $('Data to base64').item.json.submittedAt }}",
        "sessionIdType": "customKey"
      },
      "typeVersion": 1.3
    },
    {
      "id": "c5364bc2-8e0a-4f34-a964-77630cf82d0a",
      "name": "行のアップサート",
      "type": "n8n-nodes-base.dataTable",
      "position": [
        1488,
        592
      ],
      "parameters": {
        "columns": {
          "value": {
            "name": "={{ $json.output.name }}",
            "email": "={{ $json.output.email }}",
            "phone": "={{ $json.output.phone }}",
            "place": "={{ $json.output.place }}",
            "mobile": "={{ $json.output.mobile }}",
            "street": "={{ $json.output.street }}",
            "company": "={{ $json.output.company }}",
            "postcode": "={{ $json.output.postcode }}",
            "firstname": "={{ $json.output.firstname }}",
            "jobdescription": "={{ $json.output.jobdescrition }}"
          },
          "schema": [
            {
              "id": "firstname",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "firstname",
              "defaultMatch": false
            },
            {
              "id": "name",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "name",
              "defaultMatch": false
            },
            {
              "id": "company",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "company",
              "defaultMatch": false
            },
            {
              "id": "jobdescription",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "jobdescription",
              "defaultMatch": false
            },
            {
              "id": "email",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "email",
              "defaultMatch": false
            },
            {
              "id": "phone",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "phone",
              "defaultMatch": false
            },
            {
              "id": "mobile",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "mobile",
              "defaultMatch": false
            },
            {
              "id": "street",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "street",
              "defaultMatch": false
            },
            {
              "id": "postcode",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "postcode",
              "defaultMatch": false
            },
            {
              "id": "place",
              "type": "string",
              "display": true,
              "removed": false,
              "readOnly": false,
              "required": false,
              "displayName": "place",
              "defaultMatch": false
            }
          ],
          "mappingMode": "defineBelow",
          "matchingColumns": [],
          "attemptToConvertTypes": false,
          "convertFieldsToString": false
        },
        "filters": {
          "conditions": [
            {
              "keyName": "email",
              "keyValue": "={{ $json.output.email }}"
            }
          ]
        },
        "operation": "upsert",
        "dataTableId": {
          "__rl": true,
          "mode": "list",
          "value": "WTKp1ogUGN0k0pD6",
          "cachedResultUrl": "/projects/xuL3yDGtM7UrPnER/datatables/WTKp1ogUGN0k0pD6",
          "cachedResultName": "business cards"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "0b69909c-545f-4c4a-a8f9-84053017e3ee",
      "name": "フォーム送信時",
      "type": "n8n-nodes-base.formTrigger",
      "position": [
        128,
        592
      ],
      "webhookId": "aaffb314-e319-48c3-8aa0-153af5dc288c",
      "parameters": {
        "options": {},
        "formTitle": "Business card scanner",
        "formFields": {
          "values": [
            {
              "fieldType": "file",
              "fieldLabel": "business card",
              "multipleFiles": false,
              "requiredField": true
            }
          ]
        },
        "formDescription": "Upload a business card (PDF or image)"
      },
      "typeVersion": 2.3
    },
    {
      "id": "dc7fd4f7-00c7-4443-9f8d-76215a52e1e9",
      "name": "データをBase64に変換",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        352,
        592
      ],
      "parameters": {
        "options": {
          "keepSource": "both"
        },
        "operation": "binaryToPropery",
        "binaryPropertyName": "Business_card"
      },
      "typeVersion": 1,
      "alwaysOutputData": false
    },
    {
      "id": "80815e01-803d-4315-a608-8edf4eb33dc1",
      "name": "JSON パーサー",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        816,
        592
      ],
      "parameters": {
        "options": {},
        "operation": "fromJson",
        "binaryPropertyName": "ocr_output.json"
      },
      "typeVersion": 1
    },
    {
      "id": "de28fe50-b376-4b1a-96dc-0bbe856134ce",
      "name": "付箋",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        32,
        384
      ],
      "parameters": {
        "color": 7,
        "height": 400,
        "content": "# upload via a web form\npdf, jpg, ...."
      },
      "typeVersion": 1
    },
    {
      "id": "50f8ae36-5dda-4f6a-86f4-2ea5df1c9fa5",
      "name": "付箋1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        288,
        384
      ],
      "parameters": {
        "color": 7,
        "width": 656,
        "height": 400,
        "content": "# OCR via Mistral OCR API\n## [Docs](https://mistral.ai/news/mistral-ocr)"
      },
      "typeVersion": 1
    },
    {
      "id": "6e66a1c4-cfd0-4dcb-852f-7da5018e43dd",
      "name": "付箋2",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        960,
        384
      ],
      "parameters": {
        "color": 7,
        "width": 496,
        "height": 576,
        "content": "# Extract the defined content\n## [Setup an openAI API key](hhttps://platform.openai.com/api-keys)"
      },
      "typeVersion": 1
    },
    {
      "id": "b3f5282d-bab5-4262-a611-5d16a23603db",
      "name": "付箋3",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        1472,
        384
      ],
      "parameters": {
        "color": 7,
        "height": 400,
        "content": "# upsert the database\nusing the email address as key criteria\n"
      },
      "typeVersion": 1
    },
    {
      "id": "8e524da5-74de-4baa-9c77-9e1f16aca300",
      "name": "付箋4",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -608,
        384
      ],
      "parameters": {
        "color": 5,
        "width": 608,
        "height": 400,
        "content": "## 🧠 Business Card Scanner\n\nThis workflow automatically extracts contact details from uploaded business card images or PDFs using Mistral OCR and OpenAI GPT-4o-mini, then saves the structured data into an n8n Data Table.\n\nSetup:\n\t1.\tAdd your Mistral API key (HTTP Bearer Auth).\n\t2.\tAdd your OpenAI API key (OpenAI Credentials).\n\t3.\tCreate a Data Table named business_cards with fields for name, company, email, phone, etc.\n\t4.\tEnable the Form Trigger to upload business cards and test the workflow.\n\n✅ Result: business cards are instantly digitized into searchable contact data."
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "8500aaf2-93b2-422e-b574-834b3127b137",
  "connections": {
    "7249608d-fe26-44c7-b33a-6ca1f6342bcf": {
      "main": [
        [
          {
            "node": "c5364bc2-8e0a-4f34-a964-77630cf82d0a",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "80815e01-803d-4315-a608-8edf4eb33dc1": {
      "main": [
        [
          {
            "node": "7249608d-fe26-44c7-b33a-6ca1f6342bcf",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "43396e25-a83a-4c6c-87ba-dfedbf932858": {
      "ai_memory": [
        [
          {
            "node": "7249608d-fe26-44c7-b33a-6ca1f6342bcf",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "dc7fd4f7-00c7-4443-9f8d-76215a52e1e9": {
      "main": [
        [
          {
            "node": "c333cb6d-8366-419c-bfee-c939485d9122",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c333cb6d-8366-419c-bfee-c939485d9122": {
      "main": [
        [
          {
            "node": "80815e01-803d-4315-a608-8edf4eb33dc1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "ae9c9a46-f3e4-410b-8ea6-a64121a15f03": {
      "ai_languageModel": [
        [
          {
            "node": "7249608d-fe26-44c7-b33a-6ca1f6342bcf",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "0b69909c-545f-4c4a-a8f9-84053017e3ee": {
      "main": [
        [
          {
            "node": "dc7fd4f7-00c7-4443-9f8d-76215a52e1e9",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "577cb6d1-2950-4c6a-b967-4e048b766663": {
      "ai_outputParser": [
        [
          {
            "node": "7249608d-fe26-44c7-b33a-6ca1f6342bcf",
            "type": "ai_outputParser",
            "index": 0
          }
        ]
      ]
    }
  }
}
よくある質問

このワークフローの使い方は?

上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。

このワークフローはどんな場面に適していますか?

中級

有料ですか?

このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。

ワークフロー情報
難易度
中級
ノード数14
カテゴリー-
ノードタイプ9
難易度説明

経験者向け、6-15ノードの中程度の複雑さのワークフロー

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34