コマンドベースのTelegram記事要約+画像提示ボット

中級

これはAI, Marketing分野の自動化ワークフローで、12個のノードを含みます。主にIf, Html, Telegram, HttpRequest, TelegramTriggerなどのノードを使用、AI技術を活用したスマート自動化を実現。 コマンドベースのTelegramボットで記事要約と画像提示生成

前提条件
  • Telegram Bot Token
  • ターゲットAPIの認証情報が必要な場合あり
  • OpenAI API Key
ワークフロープレビュー
ノード接続関係を可視化、ズームとパンをサポート
ワークフローをエクスポート
以下のJSON設定をn8nにインポートして、このワークフローを使用できます
{
  "meta": {
    "instanceId": "5aaf4236c70e34e423fbdb2c7b754d19253a933bb1476d548f75848a01e473cf",
    "templateCredsSetupCompleted": true
  },
  "nodes": [
    {
      "id": "3da9ae2c-8134-437b-8ada-dcbee9c7fca5",
      "name": "ルート: ヘルプコマンド確認",
      "type": "n8n-nodes-base.if",
      "notes": "Checks if incoming message starts with /help command and routes accordingly",
      "position": [
        -1680,
        180
      ],
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{$json[\"message\"][\"text\"]}}",
              "value2": "/help",
              "operation": "startsWith"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "70602bcc-9395-4fc6-bfbe-e6df5819e6e7",
      "name": "応答: ヘルプメニュー送信",
      "type": "n8n-nodes-base.telegram",
      "notes": "Sends formatted help message with available commands and usage examples",
      "position": [
        -1420,
        -220
      ],
      "webhookId": "ab573ae8-05e4-41bb-bec7-fca1233fc0bb",
      "parameters": {
        "text": "🤖 *Help Menu*\n\nUse `/summary <link>` to summarize an article.\nUse `/img <prompt>` to generate an image.\n\n_Example:_\n/summary https://example.com\n/img a futuristic cityscape",
        "chatId": "={{$json[\"message\"][\"chat\"][\"id\"]}}",
        "additionalFields": {
          "parse_mode": "Markdown"
        }
      },
      "typeVersion": 1
    },
    {
      "id": "df301046-be3d-4612-aeb3-c1138968a32e",
      "name": "ルート: 要約コマンド確認",
      "type": "n8n-nodes-base.if",
      "notes": "Identifies /summary commands and routes them to the article summarization workflow",
      "position": [
        -1400,
        100
      ],
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{$json[\"message\"][\"text\"]}}",
              "value2": "/summary",
              "operation": "startsWith"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "3c0f03df-5244-48b0-a9f6-249547b4a4a1",
      "name": "ルート: 画像コマンド確認",
      "type": "n8n-nodes-base.if",
      "notes": "Detects /img commands and routes them to the image generation workflow",
      "position": [
        -980,
        340
      ],
      "parameters": {
        "conditions": {
          "string": [
            {
              "value1": "={{$json[\"message\"][\"text\"]}}",
              "value2": "/img",
              "operation": "startsWith"
            }
          ]
        }
      },
      "typeVersion": 1
    },
    {
      "id": "f182faa1-0171-4794-9735-3c84986754fb",
      "name": "応答: 記事要約送信",
      "type": "n8n-nodes-base.telegram",
      "notes": "Sends the AI-generated article summary back to the user via Telegram",
      "position": [
        -140,
        -80
      ],
      "webhookId": "c6f19898-b638-4e42-b377-d7664087ab0b",
      "parameters": {
        "text": "={{$json[\"candidates\"][0][\"content\"][\"parts\"][0][\"text\"]}}",
        "chatId": "={{ $('Telegram Trigger').item.json.message.chat.id }}",
        "additionalFields": {}
      },
      "typeVersion": 1
    },
    {
      "id": "301a03bc-50dc-46fe-b423-039f4e3ea7dd",
      "name": "応答: 画像生成通知送信",
      "type": "n8n-nodes-base.telegram",
      "notes": "Notifies user that image generation request was processed (placeholder for actual image generation)",
      "position": [
        -20,
        280
      ],
      "webhookId": "b5fb6529-a924-4885-8d6c-17073ce29bb0",
      "parameters": {
        "text": "🖼️ Generated image prompt submitted! Gemini image model doesn't return images directly. Use image generation APIs like Stability for actual image URLs.",
        "chatId": "={{$json[\"message\"][\"chat\"][\"id\"]}}",
        "additionalFields": {}
      },
      "typeVersion": 1
    },
    {
      "id": "0204de3d-cfdf-4562-927b-f65777aaaeb1",
      "name": "トリガー: Telegram Webhook",
      "type": "n8n-nodes-base.telegramTrigger",
      "notes": "Listens for incoming messages from Telegram bot and initiates the workflow",
      "position": [
        -1940,
        20
      ],
      "webhookId": "61f2e55d-a41d-4594-a045-154264c78738",
      "parameters": {
        "updates": [
          "message"
        ],
        "additionalFields": {}
      },
      "typeVersion": 1.2
    },
    {
      "id": "caba10fb-e86c-480b-ab81-c6a42976683b",
      "name": "フェッチ: 記事コンテンツダウンロード",
      "type": "n8n-nodes-base.httpRequest",
      "notes": "Downloads the HTML content from the provided URL with proper user agent headers",
      "position": [
        -1040,
        -20
      ],
      "parameters": {
        "url": "={{ $json.message.link_preview_options.url }}",
        "options": {},
        "sendHeaders": true,
        "headerParameters": {
          "parameters": [
            {
              "name": "User-Agent",
              "value": "Mozilla/5.0"
            }
          ]
        }
      },
      "typeVersion": 4.2
    },
    {
      "id": "a61c2bd8-7b6d-4710-b453-086905aae741",
      "name": "解析: HTMLからテキスト抽出",
      "type": "n8n-nodes-base.html",
      "notes": "Extracts clean text content from HTML, excluding navigation elements and images",
      "position": [
        -820,
        -20
      ],
      "parameters": {
        "options": {},
        "operation": "extractHtmlContent",
        "extractionValues": {
          "values": [
            {
              "key": "text",
              "cssSelector": "body",
              "skipSelectors": "svg, a"
            }
          ]
        }
      },
      "typeVersion": 1.2
    },
    {
      "id": "318cbba7-3240-44f8-be69-33738db1c97d",
      "name": "AI: 記事要約生成",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "notes": "Uses OpenAI to create a structured summary with 10-12 bullet points from the extracted article text",
      "position": [
        -600,
        -20
      ],
      "parameters": {
        "modelId": {
          "__rl": true,
          "mode": "list",
          "value": ""
        },
        "options": {},
        "messages": {
          "values": [
            {
              "content": "=Summarize the entire content provided below into 10–12 concise bullet points. Ensure each point captures a unique and important aspect of the information, covering the core ideas, key facts, major findings, and essential takeaways. Avoid repetition and use clear, professional language suitable for quick understanding by a decision-maker.\n\nContent:\n {{ $json.text }}"
            }
          ]
        }
      },
      "credentials": {
        "openAiApi": {
          "id": "7dME1fmMlkFyzFjq",
          "name": "OpenAi account 2"
        }
      },
      "typeVersion": 1.8
    },
    {
      "id": "da0dcfc6-6064-4983-801f-fd45a5034a62",
      "name": "AI: 画像生成リクエスト処理",
      "type": "@n8n/n8n-nodes-langchain.openAi",
      "notes": "Processes image generation request using OpenAI (currently returns text response instead of actual image)",
      "position": [
        -760,
        240
      ],
      "parameters": {
        "options": {},
        "resource": "image"
      },
      "typeVersion": 1.8
    },
    {
      "id": "50af4fa8-dc8a-4ef6-82b8-f37c17919b2b",
      "name": "付箋",
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        -2700,
        -360
      ],
      "parameters": {
        "width": 600,
        "height": 880,
        "content": "# 🤖 Telegram Multi-Function Bot Workflow\n\n**Purpose:** This workflow creates a Telegram bot that handles multiple commands for article summarization and image generation.\n\n**Supported Commands:**\n- `/help` - Shows available commands and usage examples\n- `/summary <URL>` - Fetches and summarizes articles from web links\n- `/img <prompt>` - Processes image generation requests (currently placeholder)\n\n**Flow Logic:**\n1. Telegram webhook receives all messages\n2. Command routing checks message content and directs to appropriate handler\n3. Article summarization: URL → HTTP fetch → HTML parsing → AI summary → Response\n4. Image generation: Prompt processing → AI handling → Response notification\n\n**Note:** Image generation currently returns text confirmation instead of actual images. Consider integrating with Stability AI or similar services for real image generation."
      },
      "typeVersion": 1
    }
  ],
  "pinData": {},
  "connections": {
    "70602bcc-9395-4fc6-bfbe-e6df5819e6e7": {
      "main": [
        [
          {
            "node": "3da9ae2c-8134-437b-8ada-dcbee9c7fca5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "0204de3d-cfdf-4562-927b-f65777aaaeb1": {
      "main": [
        [
          {
            "node": "3da9ae2c-8134-437b-8ada-dcbee9c7fca5",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "318cbba7-3240-44f8-be69-33738db1c97d": {
      "main": [
        [
          {
            "node": "f182faa1-0171-4794-9735-3c84986754fb",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "a61c2bd8-7b6d-4710-b453-086905aae741": {
      "main": [
        [
          {
            "node": "318cbba7-3240-44f8-be69-33738db1c97d",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "3da9ae2c-8134-437b-8ada-dcbee9c7fca5": {
      "main": [
        [
          {
            "node": "70602bcc-9395-4fc6-bfbe-e6df5819e6e7",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "df301046-be3d-4612-aeb3-c1138968a32e",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "3c0f03df-5244-48b0-a9f6-249547b4a4a1": {
      "main": [
        [
          {
            "node": "da0dcfc6-6064-4983-801f-fd45a5034a62",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "caba10fb-e86c-480b-ab81-c6a42976683b": {
      "main": [
        [
          {
            "node": "a61c2bd8-7b6d-4710-b453-086905aae741",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "df301046-be3d-4612-aeb3-c1138968a32e": {
      "main": [
        [
          {
            "node": "caba10fb-e86c-480b-ab81-c6a42976683b",
            "type": "main",
            "index": 0
          }
        ],
        [
          {
            "node": "3c0f03df-5244-48b0-a9f6-249547b4a4a1",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "da0dcfc6-6064-4983-801f-fd45a5034a62": {
      "main": [
        [
          {
            "node": "301a03bc-50dc-46fe-b423-039f4e3ea7dd",
            "type": "main",
            "index": 0
          }
        ]
      ]
    }
  }
}
よくある質問

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

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

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

中級 - 人工知能, マーケティング

有料ですか?

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

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

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

作成者
Yaron Been

Yaron Been

@yaron-nofluff

Building AI Agents and Automations | Growth Marketer | Entrepreneur | Book Author & Podcast Host

外部リンク
n8n.ioで表示

このワークフローを共有

カテゴリー

カテゴリー: 34