OCR automático de fotos → Resumen de IA → Hoja de cálculo de Google y notificación de Gmail
Este es unDocument Extraction, AI Summarizationflujo de automatización del dominio deautomatización que contiene 15 nodos.Utiliza principalmente nodos como Code, Gmail, GoogleDrive, HttpRequest, GoogleSheets. Usar OCR.space para extraer texto de imágenes de Google Drive, generar un resumen con OpenRouter AI y enviarlo a una tabla y una notificación de Gmail
- •Cuenta de Google y credenciales de API de Gmail
- •Credenciales de API de Google Drive
- •Pueden requerirse credenciales de autenticación para la API de destino
- •Credenciales de API de Google Sheets
Nodos utilizados (15)
{
"id": "4neKxxXCjvUq8XV7",
"meta": {
"instanceId": "15d6057a37b8367f33882dd60593ee5f6cc0c59310ff1dc66b626d726083b48d",
"templateCredsSetupCompleted": true
},
"name": "Auto OCR from Photo → AI Summary → Google Sheets & Gmail Notification",
"tags": [],
"nodes": [
{
"id": "14484c3d-1f78-45b1-a778-48b9d7ac1eee",
"name": "OpenRouter Chat Model1",
"type": "@n8n/n8n-nodes-langchain.lmChatOpenRouter",
"position": [
880,
336
],
"parameters": {
"options": {}
},
"credentials": {
"openRouterApi": {
"id": "fMR5QJezr3tD108w",
"name": "簡易デモ"
}
},
"typeVersion": 1
},
{
"id": "b8538a4f-9319-46b6-be09-5e343850d1dc",
"name": "Agregar fila en sheet1",
"type": "n8n-nodes-base.googleSheets",
"position": [
1312,
160
],
"parameters": {
"columns": {
"value": {
"処理日": "={{ $now.toISO().split('T')[0] }}",
"要約結果": "={{ $('Generate Summary with OpenRouter AI1').first().json.output }}",
"ファイル名": "={{ $('Format OCR Result & Check for Empty1').first().json.fileName }}"
},
"schema": [
{
"id": "ファイル名",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "ファイル名",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "要約結果",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "要約結果",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "処理日",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "処理日",
"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/11BmQnKfY4MmCD4iwlvOFUZPAM6kGMWdny8MefHzE2_0/edit#gid=0",
"cachedResultName": "要約"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "11BmQnKfY4MmCD4iwlvOFUZPAM6kGMWdny8MefHzE2_0",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/11BmQnKfY4MmCD4iwlvOFUZPAM6kGMWdny8MefHzE2_0/edit?usp=drivesdk",
"cachedResultName": "画像要約記録"
}
},
"typeVersion": 4.7
},
{
"id": "11238230-9772-4fce-a3b9-b1c3a3cfffd1",
"name": "Google Drive New File Trigger1",
"type": "n8n-nodes-base.googleDriveTrigger",
"position": [
-48,
160
],
"parameters": {
"event": "fileCreated",
"options": {},
"pollTimes": {
"item": [
{
"mode": "everyMinute"
}
]
},
"triggerOn": "specificFolder",
"folderToWatch": {
"__rl": true,
"mode": "list",
"value": "1jTs0NNXMFTcChRq0C1KEoARVdIOOjQ1r",
"cachedResultUrl": "https://drive.google.com/drive/folders/1jTs0NNXMFTcChRq0C1KEoARVdIOOjQ1r",
"cachedResultName": "イメージファイル"
}
},
"typeVersion": 1
},
{
"id": "b31e181b-5ee1-4008-b3c9-541f3b3e65b8",
"name": "Descargar archivo de imagen1",
"type": "n8n-nodes-base.googleDrive",
"position": [
224,
160
],
"parameters": {
"fileId": {
"__rl": true,
"mode": "id",
"value": "={{ $json.id }}"
},
"options": {
"binaryPropertyName": "data"
},
"operation": "download"
},
"typeVersion": 3
},
{
"id": "dd60b9e0-1bfc-4ce3-9e2a-86a5582b1dac",
"name": "Extraer texto con OCR.space1",
"type": "n8n-nodes-base.httpRequest",
"position": [
496,
160
],
"parameters": {
"url": "https://api.ocr.space/parse/image",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "multipart-form-data",
"bodyParameters": {
"parameters": [
{
"name": "apikey",
"value": "*****APIKEY*****"
},
{
"name": "language",
"value": "jpn"
},
{
"name": "isOverlayRequired",
"value": "false"
},
{
"name": "file",
"parameterType": "formBinaryData",
"inputDataFieldName": "data"
}
]
}
},
"typeVersion": 4.3
},
{
"id": "74bc17b2-2556-4a8e-b331-fe5fee94a711",
"name": "Formatear resultado OCR y verificar vacío1",
"type": "n8n-nodes-base.code",
"position": [
752,
160
],
"parameters": {
"jsCode": "const raw = $input.first()?.json?.ParsedResults?.[0]?.ParsedText || '';\nconst text = String(raw).replace(/\\r/g, ' ').replace(/\\n+/g, ' ').replace(/\\s{2,}/g, ' ').trim();\nconst fileName = $('Download Image File1').first()?.json?.name || 'unknown';\nreturn [{ json: { extractedText: text, fileName: fileName, hasText: text.length > 0 } }];"
},
"typeVersion": 2
},
{
"id": "82e9b60c-eaba-434e-ba0d-3f41ed0bbcf8",
"name": "Generar resumen con OpenRouter AI1",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
960,
160
],
"parameters": {
"text": "=以下の文章を簡潔に要約してください:\n{{ \n $if(\n $('Format OCR Result & Check for Empty1').first()?.json?.extractedText, \n $('Format OCR Result & Check for Empty1').first().json.extractedText, \n \"(テキストが見つかりませんでした)\"\n ) \n}}",
"options": {},
"promptType": "define"
},
"typeVersion": 3
},
{
"id": "bba8e569-d625-476f-869d-e3c5c39f166b",
"name": "Enviar notificación de completado vía Gmail1",
"type": "n8n-nodes-base.gmail",
"position": [
1584,
160
],
"webhookId": "66c7ac47-8411-437c-8132-f89b024f7e09",
"parameters": {
"sendTo": " shukuwa@yubipass.tokyo",
"message": "=画像ファイル「{{ $('Format OCR Result & Check for Empty1').first().json.fileName }}」のOCR処理が完了しました。\n\n【要約】\n{{ $('Generate Summary with OpenRouter AI1').first().json.message.content }}\n\n【Google Docs】\n新規ドキュメントを作成しました。\nドキュメントID: {{ $('Google Docs へ要約を追記').first().json.documentId }}",
"options": {},
"subject": "=OCR処理完了: {{ $('Format OCR Result & Check for Empty1').first().json.fileName }}"
},
"typeVersion": 2.1
},
{
"id": "d0cacb65-5059-4def-bb53-9f0026938075",
"name": "Proceso completado1",
"type": "n8n-nodes-base.noOp",
"position": [
1872,
160
],
"parameters": {},
"typeVersion": 1
},
{
"id": "7c8f33d6-080b-4a16-b7df-d389c1b65b37",
"name": "Nota adhesiva",
"type": "n8n-nodes-base.stickyNote",
"position": [
-608,
-496
],
"parameters": {
"width": 480,
"height": 640,
"content": "## Overview: Auto OCR → AI Summary → Google Sheets & Gmail\n\n## How it works\n\nThis workflow automatically processes any new image uploaded to a specific Google Drive folder.\nIt extracts text using OCR.space, summarizes the content with OpenRouter AI, and logs the result to Google Sheets.\nFinally, it sends a completion email via Gmail including the file name, summary, and document link.\nThis automation is ideal for digitizing book pages, lecture notes, or printed reports with minimal manual effort.\n\n## Setup steps\n\nConnect your Google Drive, OpenRouter, Google Sheets, and Gmail credentials.\n\nSet the target folder in Google Drive Trigger (where new images are uploaded).\n\nInsert your OCR.space API key in the HTTP Request node.\n\nUpdate the destination Google Sheets document and sheet name.\n\nAdjust the recipient email address in the Gmail notification node. "
},
"typeVersion": 1
},
{
"id": "6a7a6bfa-3a55-4348-b87c-303ef20a91ee",
"name": "Nota adhesiva1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-64,
-160
],
"parameters": {
"color": 7,
"height": 304,
"content": "### Section 1 ? Detect & Download Image\n\n Google Drive Trigger → Download Image File\n\nMonitors a Drive folder and downloads new image files for OCR processing. (?40 words)"
},
"typeVersion": 1
},
{
"id": "e8596db6-7332-4257-9863-1d4099879c61",
"name": "Nota adhesiva2",
"type": "n8n-nodes-base.stickyNote",
"position": [
192,
-160
],
"parameters": {
"color": 7,
"height": 304,
"content": "### Section 2 ? Extract & Clean Text\n\n OCR.space API → Format OCR Result\n\nExtracts Japanese text from the image and removes unnecessary line breaks or spaces. (?35 words)"
},
"typeVersion": 1
},
{
"id": "58a38290-9e3a-41c2-9a1b-b3c026eb9c00",
"name": "Nota adhesiva3",
"type": "n8n-nodes-base.stickyNote",
"position": [
448,
-160
],
"parameters": {
"color": 7,
"height": 304,
"content": "### Section 3 ? Summarize with AI\n\n Generate Summary (OpenRouter AI)\n\nUses AI to summarize extracted text in concise Japanese for efficient reading. (?30 words)"
},
"typeVersion": 1
},
{
"id": "696b9c8a-05e3-44bf-aff0-693d969178de",
"name": "Nota adhesiva4",
"type": "n8n-nodes-base.stickyNote",
"position": [
704,
-160
],
"parameters": {
"color": 7,
"height": 304,
"content": "### Section 4 ? Save to Google Sheets\n\n Append row in sheet\n\nLogs the filename, AI-generated summary, and current date into a Google Sheet. (?25 words)"
},
"typeVersion": 1
},
{
"id": "6b0c9994-a22f-41aa-968e-36a9adca53bd",
"name": "Nota adhesiva5",
"type": "n8n-nodes-base.stickyNote",
"position": [
960,
-160
],
"parameters": {
"color": 7,
"height": 304,
"content": "### Section 5 ? Notify via Gmail\n\n?? Send Completion Notification → Process Completed\n\nEmails the user with the OCR summary and Google Docs/Sheets information. (?25 words)"
},
"typeVersion": 1
}
],
"active": false,
"pinData": {},
"settings": {
"executionOrder": "v1"
},
"versionId": "cbc1e6fc-2b5e-47f2-8026-909093af9325",
"connections": {
"b8538a4f-9319-46b6-be09-5e343850d1dc": {
"main": [
[
{
"node": "bba8e569-d625-476f-869d-e3c5c39f166b",
"type": "main",
"index": 0
}
]
]
},
"b31e181b-5ee1-4008-b3c9-541f3b3e65b8": {
"main": [
[
{
"node": "dd60b9e0-1bfc-4ce3-9e2a-86a5582b1dac",
"type": "main",
"index": 0
}
]
]
},
"14484c3d-1f78-45b1-a778-48b9d7ac1eee": {
"ai_languageModel": [
[
{
"node": "82e9b60c-eaba-434e-ba0d-3f41ed0bbcf8",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"dd60b9e0-1bfc-4ce3-9e2a-86a5582b1dac": {
"main": [
[
{
"node": "74bc17b2-2556-4a8e-b331-fe5fee94a711",
"type": "main",
"index": 0
}
]
]
},
"11238230-9772-4fce-a3b9-b1c3a3cfffd1": {
"main": [
[
{
"node": "b31e181b-5ee1-4008-b3c9-541f3b3e65b8",
"type": "main",
"index": 0
}
]
]
},
"74bc17b2-2556-4a8e-b331-fe5fee94a711": {
"main": [
[
{
"node": "82e9b60c-eaba-434e-ba0d-3f41ed0bbcf8",
"type": "main",
"index": 0
}
]
]
},
"82e9b60c-eaba-434e-ba0d-3f41ed0bbcf8": {
"main": [
[
{
"node": "b8538a4f-9319-46b6-be09-5e343850d1dc",
"type": "main",
"index": 0
}
]
]
},
"bba8e569-d625-476f-869d-e3c5c39f166b": {
"main": [
[
{
"node": "d0cacb65-5059-4def-bb53-9f0026938075",
"type": "main",
"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
Tsubasa Shukuwa
@tsubasa-shukuwaCompartir este flujo de trabajo