画像を自動のにOCR → AI要約 → GoogleテーブルとGmailでの通知
中級
これはDocument Extraction, AI Summarization分野の自動化ワークフローで、15個のノードを含みます。主にCode, Gmail, GoogleDrive, HttpRequest, GoogleSheetsなどのノードを使用。 Google Driveの画像からOCR.spaceを使ってテキストを抽出し、OpenRouter AIで要約をテーブルとGmail通知へ
前提条件
- •Googleアカウント + Gmail API認証情報
- •Google Drive API認証情報
- •ターゲットAPIの認証情報が必要な場合あり
- •Google Sheets API認証情報
使用ノード (15)
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定を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": "Append row in 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 ドライブ 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": "Download Image File1",
"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": "Extract Text with 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": "Format OCR Result & Check for Empty1",
"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": "Generate Summary with 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": "Send Completion Notification via 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": "Process Completed1",
"type": "n8n-nodes-base.noOp",
"position": [
1872,
160
],
"parameters": {},
"typeVersion": 1
},
{
"id": "7c8f33d6-080b-4a16-b7df-d389c1b65b37",
"name": "付箋",
"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": "付箋1",
"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": "付箋2",
"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": "付箋3",
"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": "付箋4",
"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": "付箋5",
"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
}
]
]
},
"Google Drive New File Trigger1": {
"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
}
]
]
}
}
}よくある質問
このワークフローの使い方は?
上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。
このワークフローはどんな場面に適していますか?
中級 - 文書抽出, AI要約
有料ですか?
このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。
関連ワークフロー
AI医療レポートジェネレーター
メールから医療報告を生成するためにGemini AIとGoogle Workspaceを使用する
Set
Code
Gmail
+
Set
Code
Gmail
21 ノードAbdullah Alshiekh
文書抽出
顧客への請日の自動送付
OCR.Space、GPT-4、および Google Drive から Gmail への自動化
If
Set
Code
+
If
Set
Code
29 ノードMichael Taleb
AI要約
2. 音声書き起こし - n8n制作(テンプレート)
音声転実行レポート:AssemblyAIとGPT-4による文字起こしと分析
If
Code
Wait
+
If
Code
Wait
22 ノードSridevi Edupuganti
文書抽出
インスティールドドキュメントフロー
FoxitとDiffbotを使って組織情報を抽出し、文書を要約
If
Code
Wait
+
If
Code
Wait
16 ノードRaymond Camden
文書抽出
PDFのテンプレートを抽出
Google Sheets追跡用Llama AIモデル
Set
Code
Html
+
Set
Code
Html
24 ノードCristian Baño Belchí
文書抽出
AI-Deepseek-R1t を用いた会議交通費精算申請と旅費承認
Deepseek AI、Gmail、Google Sheetsを使った会議出張承認の自動化
If
Set
Code
+
If
Set
Code
24 ノードCheng Siong Chin
文書抽出