Automatische Bild-OCR → AI-Zusammenfassung → Google Sheets und Gmail-Benachrichtigung

Fortgeschritten

Dies ist ein Document Extraction, AI Summarization-Bereich Automatisierungsworkflow mit 15 Nodes. Hauptsächlich werden Code, Gmail, GoogleDrive, HttpRequest, GoogleSheets und andere Nodes verwendet. Extraktion von Text aus Google Drive-Bildern mit OCR.space, Generierung einer Zusammenfassung mit OpenRouter AI und Benachrichtigung per E-Mail und in Tabellen

Voraussetzungen
  • Google-Konto + Gmail API-Anmeldedaten
  • Google Drive API-Anmeldedaten
  • Möglicherweise sind Ziel-API-Anmeldedaten erforderlich
  • Google Sheets API-Anmeldedaten
Workflow-Vorschau
Visualisierung der Node-Verbindungen, mit Zoom und Pan
Workflow exportieren
Kopieren Sie die folgende JSON-Konfiguration und importieren Sie sie in n8n
{
  "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": "Zeile in Tabelle1 anhängen",
      "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": "Bilddatei herunterladen1",
      "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": "Text mit OCR.space extrahieren1",
      "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": "OCR-Ergebnis formatieren & auf Leere prüfen1",
      "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": "Zusammenfassung mit OpenRouter AI generieren1",
      "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": "Abschlussbenachrichtigung via Gmail senden1",
      "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": "Prozess abgeschlossen1",
      "type": "n8n-nodes-base.noOp",
      "position": [
        1872,
        160
      ],
      "parameters": {},
      "typeVersion": 1
    },
    {
      "id": "7c8f33d6-080b-4a16-b7df-d389c1b65b37",
      "name": "Kurznotiz",
      "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": "Kurznotiz1",
      "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": "Kurznotiz2",
      "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": "Kurznotiz3",
      "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": "Kurznotiz4",
      "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": "Kurznotiz5",
      "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
          }
        ]
      ]
    }
  }
}
Häufig gestellte Fragen

Wie verwende ich diesen Workflow?

Kopieren Sie den obigen JSON-Code, erstellen Sie einen neuen Workflow in Ihrer n8n-Instanz und wählen Sie "Aus JSON importieren". Fügen Sie die Konfiguration ein und passen Sie die Anmeldedaten nach Bedarf an.

Für welche Szenarien ist dieser Workflow geeignet?

Fortgeschritten - Dokumentenextraktion, KI-Zusammenfassung

Ist es kostenpflichtig?

Dieser Workflow ist völlig kostenlos. Beachten Sie jedoch, dass Drittanbieterdienste (wie OpenAI API), die im Workflow verwendet werden, möglicherweise kostenpflichtig sind.

Workflow-Informationen
Schwierigkeitsgrad
Fortgeschritten
Anzahl der Nodes15
Kategorie2
Node-Typen10
Schwierigkeitsbeschreibung

Für erfahrene Benutzer, mittelkomplexe Workflows mit 6-15 Nodes

Externe Links
Auf n8n.io ansehen

Diesen Workflow teilen

Kategorien

Kategorien: 34