TelegramからAIビジョンで名刺データをGoogleスプレッドシートに抽出
中級
これはDocument Extraction, AI Summarization分野の自動化ワークフローで、12個のノードを含みます。主にIf, GoogleSheets, Agent, TelegramTrigger, LmChatOpenRouterなどのノードを使用。 TelegramからOpenRouter AIビジョンで名刺データをGoogle Sheetsに抽出
前提条件
- •Google Sheets API認証情報
- •Telegram Bot Token
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
"id": "wYda99sf09SAlzu4",
"meta": {
"instanceId": "15d6057a37b8367f33882dd60593ee5f6cc0c59310ff1dc66b626d726083b48d"
},
"name": "Extract Business Card Data using AI Vision from Telegram to Google Sheets using AI Vision",
"tags": [],
"nodes": [
{
"id": "beaba1cd-076a-4223-b481-4d0dd7474590",
"name": "Googleシートに追加",
"type": "n8n-nodes-base.googleSheets",
"position": [
448,
-64
],
"parameters": {
"columns": {
"value": {
"date": "={{ $today }}",
"email": "={{ $json.output['Email Address'] }}",
"address": "={{ $json.output.Address }}",
"full_name": "={{ $('AI Vision Agent').item.json.output['Full Name'] }}",
"job_title": "={{ $('AI Vision Agent').item.json.output['Job Title'] }}",
"department": "={{ $('AI Vision Agent').item.json.output.Department }}",
"fax_number": "={{ $json.output['Fax Number'] }}",
"postal_code": "={{ $json.output['Postal Code'] }}",
"website_url": "={{ $json.output['Website URL'] }}",
"company_name": "={{ $('AI Vision Agent').item.json.output['Company Name'] }}",
"phone_number": "={{ $json.output['Phone Number'] }}",
"mobile_phone_number": "={{ $json.output['Mobile Phone Number'] }}"
},
"schema": [
{
"id": "date",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "date",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "company_name",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "company_name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "department",
"type": "string",
"display": true,
"required": false,
"displayName": "department",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "job_title",
"type": "string",
"display": true,
"required": false,
"displayName": "job_title",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "full_name",
"type": "string",
"display": true,
"required": false,
"displayName": "full_name",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "postal_code",
"type": "string",
"display": true,
"required": false,
"displayName": "postal_code",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "address",
"type": "string",
"display": true,
"required": false,
"displayName": "address",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "mobile_phone_number",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "mobile_phone_number",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "phone_number",
"type": "string",
"display": true,
"required": false,
"displayName": "phone_number",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "fax_number",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "fax_number",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "email",
"type": "string",
"display": true,
"required": false,
"displayName": "email",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "website_url",
"type": "string",
"display": true,
"required": false,
"displayName": "website_url",
"defaultMatch": false,
"canBeUsedToMatch": true
}
],
"mappingMode": "defineBelow",
"matchingColumns": [
"company_name"
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {},
"operation": "appendOrUpdate",
"sheetName": {
"__rl": true,
"mode": "list",
"value": "gid=0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1rYf2kqfmMRUtpFAb5YdhOcsvGg8Gr1CTbO-lvrd48m4/edit#gid=0",
"cachedResultName": "シート1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1rYf2kqfmMRUtpFAb5YdhOcsvGg8Gr1CTbO-lvrd48m4",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1rYf2kqfmMRUtpFAb5YdhOcsvGg8Gr1CTbO-lvrd48m4/edit?usp=drivesdk",
"cachedResultName": "Demo"
}
},
"credentials": {
"googleSheetsOAuth2Api": {
"id": "lA1jkxcWiHRlZ5Un",
"name": "md83h"
}
},
"typeVersion": 4.5
},
{
"id": "e804b404-71ad-4a9b-a554-48e2515e7bc8",
"name": "入力タイプを確認",
"type": "n8n-nodes-base.if",
"position": [
-80,
-48
],
"parameters": {
"options": {},
"conditions": {
"options": {
"version": 1,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "condition_001",
"operator": {
"type": "string",
"operation": "notExists",
"singleValue": true
},
"leftValue": "={{ $json.message.text }}",
"rightValue": ""
}
]
}
},
"typeVersion": 2
},
{
"id": "7758173c-f34e-45d9-9230-499aacefd109",
"name": "AIビジョンエージェント",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
128,
-64
],
"parameters": {
"text": "=Analyze the provided business card image or text and accurately identify all of the following information.List them clearly.\n\nImage URL: {{ $('Telegram Trigger').item.json.message.photo[0].file_id }}",
"options": {
"systemMessage": "=System Prompt (for AI Vision Agent)\nYou are a business card data extraction expert. Analyze the provided business card image or text and accurately identify all of the following information. Return the results as a structured list.\n\nImportant Rules:\nAlways prioritize Japanese text when it is available.\nOnly use romanized or English text if no Japanese text exists for that field.\nIf both Japanese and romanized text are present, return only the Japanese version.\n\nFields to extract:\n-Company Name\n-Department\n-Job Title\n-Full Name\n-Postal Code\n-Address\n-Phone Number\n-Fax Number\n-Email Address\n-Website URL\n-Mobile Phone Number\n"
},
"promptType": "define",
"hasOutputParser": true
},
"typeVersion": 2
},
{
"id": "d274cf40-53c1-4c2a-a3cd-b51737c79a11",
"name": "OpenAIビジョンモデル",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
"position": [
112,
112
],
"parameters": {
"options": {
"temperature": 0.3
}
},
"credentials": {
"openRouterApi": {
"id": "D1q69WNrqGh2Tmie",
"name": "OpenRouter 使える"
}
},
"typeVersion": 1
},
{
"id": "ea82ce74-d4fe-406a-a60f-c870818fcec4",
"name": "成分解析器",
"type": "@n8n/n8n-nodes-langchain.outputParserStructured",
"position": [
288,
112
],
"parameters": {
"autoFix": "={{ false }}",
"schemaType": "manual",
"inputSchema": "{\n \"company_name\": \"Example Company Ltd.\",\n \"department\": \"Sales\",\n \"job_title\": \"Sales Manager\",\n \"full_name\": \"Taro Yamada\",\n \"postal_code\": \"100-0001\",\n \"address\": \"1-1-1 Marunouchi, Chiyoda-ku, Tokyo\",\n \"phone_number\": \"+81-3-0000-0000\",\n \"mobile_phone_number\": \"+81-90-0000-0000\",\n \"fax_number\": \"+81-3-1111-1111\",\n \"email\": \"example@company.com\",\n \"website_url\": \"https://example.com\"\n}\n"
},
"typeVersion": 1.2
},
{
"id": "84e37cd2-6ffa-4b35-a8d4-fae8cb1f4d65",
"name": "Telegramトリガー",
"type": "n8n-nodes-base.telegramTrigger",
"position": [
-336,
-48
],
"webhookId": "76cdce48-d78e-40cd-b034-a0cf3ed053be",
"parameters": {
"updates": [
"message"
],
"additionalFields": {
"download": true
}
},
"credentials": {
"telegramApi": {
"id": "G5qcQjXQQnQYJNzo",
"name": "Telegram account_AQOS"
}
},
"typeVersion": 1.2
},
{
"id": "b5c11a80-b969-4af8-9473-e2da7850bb84",
"name": "付箋",
"type": "n8n-nodes-base.stickyNote",
"position": [
-400,
-272
],
"parameters": {
"color": 2,
"height": 384,
"content": "## ①Send business card image\nSend a business card image to your Telegram bot"
},
"typeVersion": 1
},
{
"id": "c48693cf-60b6-4617-8ea6-0a56fd2fe6b6",
"name": "付箋1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-144,
-272
],
"parameters": {
"color": 4,
"height": 384,
"content": "## ②Business Card Image Input Filter\nChecks if the incoming Telegram message contains an image or text"
},
"typeVersion": 1
},
{
"id": "b96a98b1-2fb9-4290-8aa1-f526f9d9f809",
"name": "付箋2",
"type": "n8n-nodes-base.stickyNote",
"position": [
112,
-272
],
"parameters": {
"color": 3,
"width": 256,
"height": 384,
"content": "## ③Analyze business card image\nThe structured output is cleaned and standardized by the parser"
},
"typeVersion": 1
},
{
"id": "a4aad8f8-fa84-4c5c-8e16-52d3cfc2d010",
"name": "付箋3",
"type": "n8n-nodes-base.stickyNote",
"position": [
384,
-272
],
"parameters": {
"color": 5,
"height": 384,
"content": "## ④Log the parsed business card details into Google Sheets\nGoogle Sheets node appends or updates the contact data automatically"
},
"typeVersion": 1
},
{
"id": "b02297b2-0cd1-4eee-86e0-e1a0d4c3de52",
"name": "付箋4",
"type": "n8n-nodes-base.stickyNote",
"position": [
656,
-432
],
"parameters": {
"width": 480,
"height": 544,
"content": "## Business Card OCR Auto-Logging (Telegram → AI → Google Sheets) \n\n**Description:**\nThis workflow automatically extracts structured contact information from business card images sent via Telegram and logs the results into Google Sheets.\nAn AI Vision Agent analyzes the image, identifies key fields such as company name, person’s name, department, job title, and contact details, and formats the data into a structured JSON format for direct entry.\n\n**Key Features:**\n\n📤 Send a business card image via Telegram\n\n🤖 AI Vision Agent (powered by OpenRouter) detects company, \nname, department, job title, address, phone, email, and more\n\n🧩 The “Output Parser” ensures consistent JSON formatting for clean Google Sheets integration\n\n📊 Automatically saves or updates each contact in Google \nSheets (appendOrUpdate mode)\n\n🧠 Optimized for Japanese business cards with high OCR precision"
},
"typeVersion": 1
},
{
"id": "29c0d3aa-06b4-429a-bd5a-8d1b96c04356",
"name": "付箋5",
"type": "n8n-nodes-base.stickyNote",
"position": [
656,
112
],
"parameters": {
"width": 480,
"height": 272,
"content": "**Use Cases:**\n\n**💼Sales & CRM**:Automatically build and update your client database from received business cards\n\n**🏢Back Office & Admin**: Digitize incoming cards for unified company records\n\n**📧Marketing Teams**: Collect and manage leads efficiently\n\n**📚 AI / OCR Research**: Build structured datasets for training AI models or internal automation"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "8672707b-9789-482b-a6ee-b5a88928dc8d",
"connections": {
"7758173c-f34e-45d9-9230-499aacefd109": {
"main": [
[
{
"node": "beaba1cd-076a-4223-b481-4d0dd7474590",
"type": "main",
"index": 0
}
]
]
},
"e804b404-71ad-4a9b-a554-48e2515e7bc8": {
"main": [
[
{
"node": "7758173c-f34e-45d9-9230-499aacefd109",
"type": "main",
"index": 0
}
]
]
},
"84e37cd2-6ffa-4b35-a8d4-fae8cb1f4d65": {
"main": [
[
{
"node": "e804b404-71ad-4a9b-a554-48e2515e7bc8",
"type": "main",
"index": 0
}
]
]
},
"ea82ce74-d4fe-406a-a60f-c870818fcec4": {
"ai_outputParser": [
[
{
"node": "7758173c-f34e-45d9-9230-499aacefd109",
"type": "ai_outputParser",
"index": 0
}
]
]
},
"d274cf40-53c1-4c2a-a3cd-b51737c79a11": {
"ai_languageModel": [
[
{
"node": "7758173c-f34e-45d9-9230-499aacefd109",
"type": "ai_languageModel",
"index": 0
}
]
]
}
}
}よくある質問
このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
中級 - 文書抽出, AI要約
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
AI、Apify、Telegram統合による自動化ツールでの評価
Telegram、Apify、AI、Googleスプレッドシートを使ってWebサイトツール分析を自動化
If
Set
Code
+
If
Set
Code
20 ノードMirza Ajmal
AI要約
Sonar Pro AI作業評価と複数の締切提醒
Sonar Pro AIとマルチチャネル期限提醒を使用したペアレビュー割り当ての自動化
Set
Filter
Discord
+
Set
Filter
Discord
23 ノードCheng Siong Chin
文書抽出
GeminiとJina AIを使用したサプライヤー調査の勤勉性業務の自動化
Gemini および Jina AI を使用したサプライヤー調査の自動化
If
Set
Code
+
If
Set
Code
27 ノードAdnan
文書抽出
初学者データ分析:GPT-4oを使ってGoogleシートで結合・フィルタリング・サマリー
初心者のデータ分析:GPT-4o を使用して Google スプレッドシートで結合、フィルタリング、集計
If
Set
Code
+
If
Set
Code
21 ノードRobert Breen
文書抽出
第一轮 Telegram と LinkedIn 快速通道 AI 招聘アシスタント
AI候选人筛选流程:LinkedInへTelegram,統合Gemini与Apify
If
Set
Code
+
If
Set
Code
55 ノードDean Pike
人事
AIを使ってB2B向けのパーソナライズされたイントロメールを生成
Tavily Research と OpenRouter LLM を使用してパーソナライズされた B2B アウトリーチ メールを作成する
Limit
Http Request
Google Sheets
+
Limit
Http Request
Google Sheets
17 ノードHaruki Kuwai
リードナーチャリング