Extracción de datos de tarjetas de presentación de Telegram a Google Sheets con visión de IA
Este es unDocument Extraction, AI Summarizationflujo de automatización del dominio deautomatización que contiene 12 nodos.Utiliza principalmente nodos como If, GoogleSheets, Agent, TelegramTrigger, LmChatOpenRouter. Extraer datos de tarjetas de visita de Telegram a Google Sheets con OpenRouter AI visual
- •Credenciales de API de Google Sheets
- •Bot Token de Telegram
Nodos utilizados (12)
{
"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": "Agregar a la hoja 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": "Verificar tipo de entrada",
"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": "Agente de visión por IA",
"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": "Modelo de visión 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": "Analizador de ingredientes",
"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": "Disparador 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": "Nota adhesiva",
"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": "Nota adhesiva1",
"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": "Nota adhesiva2",
"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": "Nota adhesiva3",
"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": "Nota adhesiva4",
"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": "Nota adhesiva5",
"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
}
]
]
}
}
}¿Cómo usar este flujo de trabajo?
Copie el código de configuración JSON de arriba, cree un nuevo flujo de trabajo en su instancia de n8n y seleccione "Importar desde JSON", pegue la configuración y luego modifique la configuración de credenciales según sea necesario.
¿En qué escenarios es adecuado este flujo de trabajo?
Intermedio - Extracción de documentos, Resumen de IA
¿Es de pago?
Este flujo de trabajo es completamente gratuito, puede importarlo y usarlo directamente. Sin embargo, tenga en cuenta que los servicios de terceros utilizados en el flujo de trabajo (como la API de OpenAI) pueden requerir un pago por su cuenta.
Flujos de trabajo relacionados recomendados
Compartir este flujo de trabajo