Telegram経由でChatGPT-4o-miniを使った自動インボイス分析

中級

これはInvoice Processing, AI Summarization分野の自動化ワークフローで、12個のノードを含みます。主にIf, Code, Telegram, HttpRequest, Agentなどのノードを使用。 Telegramを使ってChatGPT-4o-miniで自動化されたインボイス分析

前提条件
  • Telegram Bot Token
  • ターゲットAPIの認証情報が必要な場合あり
  • OpenAI API Key
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
  "id": "sBbL7CfgioXi9VJc",
  "meta": {
    "instanceId": "b91e510ebae4127f953fd2f5f8d40d58ca1e71c746d4500c12ae86aad04c1502"
  },
  "name": "Automate invoice analysis via Telegram with ChatGPT-4o-mini extraction",
  "tags": [],
  "nodes": [
    {
      "id": "b6433fae-ab23-4504-bf1c-07d98177799e",
      "name": "Telegramトリガー",
      "type": "n8n-nodes-base.telegramTrigger",
      "position": [
        -464,
        32
      ],
      "webhookId": "11b31e8e-4b0b-47a3-ba82-b4ffea5e34ae",
      "parameters": {
        "updates": [
          "message"
        ],
        "additionalFields": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "e631a3ed-6930-4da7-a5dc-f33b4c852426",
      "name": "ドキュメント確認",
      "type": "n8n-nodes-base.if",
      "position": [
        -304,
        32
      ],
      "parameters": {
        "options": {},
        "conditions": {
          "options": {
            "leftValue": "",
            "caseSensitive": true,
            "typeValidation": "strict"
          },
          "combinator": "and",
          "conditions": [
            {
              "id": "1",
              "operator": {
                "type": "object",
                "operation": "exists"
              },
              "leftValue": "={{ $json.message.document }}",
              "rightValue": ""
            }
          ]
        }
      },
      "typeVersion": 2
    },
    {
      "id": "a22e54b3-e4e0-4b67-8e8f-ef9a5f163fdb",
      "name": "Telegramからのファイル取得",
      "type": "n8n-nodes-base.telegram",
      "position": [
        -128,
        -64
      ],
      "webhookId": "620221c5-ea8f-4c9e-bb04-b70114f27cb2",
      "parameters": {
        "fileId": "={{ $json.message.document.file_id }}",
        "resource": "file",
        "additionalFields": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "e93556dc-7af4-4e7d-9cb0-82aa0da39ed8",
      "name": "HTTPリクエスト - ファイルダウンロード",
      "type": "n8n-nodes-base.httpRequest",
      "position": [
        32,
        -64
      ],
      "parameters": {
        "url": "=https://api.telegram.org/file/bot{{ $credentials.telegramApi.accessToken }}/{{ $json.result.file_path }}",
        "options": {
          "response": {
            "response": {
              "responseFormat": "file"
            }
          }
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "aebfd1a1-bb29-4dbe-af72-4a6e986d4f79",
      "name": "請求書データ抽出",
      "type": "n8n-nodes-base.extractFromFile",
      "position": [
        176,
        -64
      ],
      "parameters": {
        "operation": "extractFromPDF"
      },
      "typeVersion": 1
    },
    {
      "id": "c9bf8764-2bc9-4861-b477-bbb60d516f34",
      "name": "AIエージェント - 請求書分析",
      "type": "@n8n/n8n-nodes-langchain.agent",
      "position": [
        320,
        -64
      ],
      "parameters": {
        "text": "=Analyze the following invoice text and extract key information:\n\n{{ $json.text }}\n\nProvide the following details:\n1. Invoice Number\n2. Invoice Date\n3. Vendor/Supplier Name\n4. Total Amount\n5. Currency\n6. Due Date\n7. Line Items (if available)\n8. Payment Status\n9. Any discrepancies or issues found\n\nFormat the response in a clear, structured manner.",
        "options": {
          "systemMessage": "You are an expert invoice analyst. Extract accurate information from invoices and identify any potential issues or discrepancies."
        },
        "promptType": "define",
        "hasOutputParser": true
      },
      "typeVersion": 1.7
    },
    {
      "id": "baead0ff-8676-4e77-9084-bd28484fc797",
      "name": "OpenAIチャットモデル",
      "type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
      "position": [
        320,
        128
      ],
      "parameters": {
        "options": {
          "temperature": 0.2
        }
      },
      "credentials": {
        "openAiApi": {
          "id": "OGYj7DgYv5GFLFZk",
          "name": "OpenAi account 2"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "c149851f-3c38-4827-b1e9-14dbdbdd9172",
      "name": "応答フォーマット",
      "type": "n8n-nodes-base.code",
      "position": [
        576,
        -64
      ],
      "parameters": {
        "jsCode": "const aiResponse = $input.first().json.output;\nconst originalMessage = $('Telegram Trigger').first().json;\n\nreturn {\n  json: {\n    chatId: originalMessage.message.chat.id,\n    analysis: aiResponse,\n    fileName: originalMessage.message.document?.file_name || 'Unknown',\n    timestamp: new Date().toISOString()\n  }\n};"
      },
      "typeVersion": 2
    },
    {
      "id": "b6c9a341-c390-4d8e-8ab7-ef7896bf87b4",
      "name": "分析結果をTelegramに送信",
      "type": "n8n-nodes-base.telegram",
      "position": [
        720,
        -64
      ],
      "webhookId": "c8fc2be4-fef6-4434-86a8-4630d8c9c3b4",
      "parameters": {
        "text": "=📄 *Invoice Analysis Complete*\n\n*File:* {{ $json.fileName }}\n*Analyzed at:* {{ $json.timestamp }}\n\n*Results:*\n{{ $json.analysis }}\n\n✅ Analysis completed successfully!",
        "chatId": "={{ $json.chatId }}",
        "additionalFields": {
          "parse_mode": "Markdown"
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "267e3223-6e60-432e-bb6d-980c2821b0e5",
      "name": "エラーメッセージ送信",
      "type": "n8n-nodes-base.telegram",
      "position": [
        -128,
        112
      ],
      "webhookId": "b419141c-c0cc-42ba-a2af-6ff60bfa6ba6",
      "parameters": {
        "text": "❌ Please send a document file (PDF or image) to check the invoice.",
        "chatId": "={{ $json.message.chat.id }}",
        "additionalFields": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "2f8e4a85-0db5-421a-93c1-b5a5cc8c701c",
      "name": "付箋",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -1024,
        -256
      ],
      "parameters": {
        "width": 544,
        "height": 624,
        "content": "## Introduction\nUpload invoices via Telegram, receive structured data instantly. Perfect for accountants and finance teams.\n## How It Works\nTelegram bot receives invoices, downloads files, extracts data using OpenAI, then returns analysis.\n## Workflow Template\nTelegram Trigger → Document Check → Get File → HTTP Download → AI Extract → Format Response → Send to Telegram\n## Workflow Steps\n1. **Telegram Trigger:** Listens for uploads.\n2. **Document Check:** Validates files; routes errors.\n3. **Get File:** Retrieves metadata.\n4. **HTTP Download:** Fetches content.\n5. **AI Extract:** OpenAI parses invoice fields.\n6. **Format Response:** Structures data.\n7. **Send Analysis:** Delivers to chat.\n## Setup Instructions\n1. **Telegram Bot:** Create via BotFather, add credentials.\n2. **OpenAI Agent:** Add API key and extraction prompt.\n3. **HTTP Node:** Set authentication.\n4. **Parser:** Define invoice schema.\n5. **Error Handling:** Configure fallbacks.\n"
      },
      "typeVersion": 1
    },
    {
      "id": "80d92c1c-d7b6-47ae-8f9d-8520e61708a8",
      "name": "付箋1",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        512,
        112
      ],
      "parameters": {
        "color": 4,
        "width": 320,
        "height": 288,
        "content": "## Prerequisites\n- n8n instance\n- Telegram Bot Token\n- OpenAI API key\n## Customization\n- Database storage\n- Accounting software integration\n## Benefits\n- Eliminates manual entry\n- Reduces errors"
      },
      "typeVersion": 1
    }
  ],
  "active": false,
  "pinData": {},
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "8c2bf80d-d1f6-4b32-bd5a-cf0b88f24786",
  "connections": {
    "c149851f-3c38-4827-b1e9-14dbdbdd9172": {
      "main": [
        [
          {
            "node": "b6c9a341-c390-4d8e-8ab7-ef7896bf87b4",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "b6433fae-ab23-4504-bf1c-07d98177799e": {
      "main": [
        [
          {
            "node": "e631a3ed-6930-4da7-a5dc-f33b4c852426",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e631a3ed-6930-4da7-a5dc-f33b4c852426": {
      "main": [
        [
          {
            "node": "a22e54b3-e4e0-4b67-8e8f-ef9a5f163fdb",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "267e3223-6e60-432e-bb6d-980c2821b0e5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "baead0ff-8676-4e77-9084-bd28484fc797": {
      "ai_languageModel": [
        [
          {
            "node": "c9bf8764-2bc9-4861-b477-bbb60d516f34",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    },
    "aebfd1a1-bb29-4dbe-af72-4a6e986d4f79": {
      "main": [
        [
          {
            "node": "c9bf8764-2bc9-4861-b477-bbb60d516f34",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a22e54b3-e4e0-4b67-8e8f-ef9a5f163fdb": {
      "main": [
        [
          {
            "node": "e93556dc-7af4-4e7d-9cb0-82aa0da39ed8",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "c9bf8764-2bc9-4861-b477-bbb60d516f34": {
      "main": [
        [
          {
            "node": "c149851f-3c38-4827-b1e9-14dbdbdd9172",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "e93556dc-7af4-4e7d-9cb0-82aa0da39ed8": {
      "main": [
        [
          {
            "node": "aebfd1a1-bb29-4dbe-af72-4a6e986d4f79",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
よくある質問

このワークフローの使い方は?

上記のJSON設定コードをコピーし、n8nインスタンスで新しいワークフローを作成して「JSONからインポート」を選択、設定を貼り付けて認証情報を必要に応じて変更してください。

このワークフローはどんな場面に適していますか?

中級 - 請求書処理, AI要約

有料ですか?

このワークフローは完全無料です。ただし、ワークフローで使用するサードパーティサービス(OpenAI APIなど)は別途料金が発生する場合があります。

ワークフロー情報
難易度
中級
ノード数12
カテゴリー2
ノードタイプ9
難易度説明

経験者向け、6-15ノードの中程度の複雑さのワークフロー

作成者
Cheng Siong Chin

Cheng Siong Chin

@cschin

Prof. Cheng Siong CHIN serves as Chair Professor in Intelligent Systems Modelling and Simulation in Newcastle University, Singapore. His academic credentials include an M.Sc. in Advanced Control and Systems Engineering from The University of Manchester and a Ph.D. in Robotics from Nanyang Technological University.

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34