This workflow corresponds to n8n.io template #4392 — we link there as the canonical source.
This workflow follows the HTTP Request → OpenAI recipe pattern — see all workflows that pair these two integrations.
The workflow JSON
Copy or download the full n8n JSON below. Paste it into a new n8n workflow, add your credentials, activate. Full import guide →
{
"meta": {
"templateCredsSetupCompleted": true
},
"nodes": [
{
"id": "3da9ae2c-8134-437b-8ada-dcbee9c7fca5",
"name": "Route: Check for Help Command",
"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": "Response: Send Help Menu",
"type": "n8n-nodes-base.telegram",
"notes": "Sends formatted help message with available commands and usage examples",
"position": [
-1420,
-220
],
"parameters": {
"text": "\ud83e\udd16 *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": "Route: Check for Summary Command",
"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": "Route: Check for Image Command",
"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": "Response: Send Article Summary",
"type": "n8n-nodes-base.telegram",
"notes": "Sends the AI-generated article summary back to the user via Telegram",
"position": [
-140,
-80
],
"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": "Response: Send Image Generation Notice",
"type": "n8n-nodes-base.telegram",
"notes": "Notifies user that image generation request was processed (placeholder for actual image generation)",
"position": [
-20,
280
],
"parameters": {
"text": "\ud83d\uddbc\ufe0f 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": "Trigger: Telegram Webhook",
"type": "n8n-nodes-base.telegramTrigger",
"notes": "Listens for incoming messages from Telegram bot and initiates the workflow",
"position": [
-1940,
20
],
"parameters": {
"updates": [
"message"
],
"additionalFields": {}
},
"typeVersion": 1.2
},
{
"id": "caba10fb-e86c-480b-ab81-c6a42976683b",
"name": "Fetch: Download Article Content",
"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": "Parse: Extract Text from 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: Generate Article Summary",
"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\u201312 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": {
"name": "<your credential>"
}
},
"typeVersion": 1.8
},
{
"id": "da0dcfc6-6064-4983-801f-fd45a5034a62",
"name": "AI: Process Image Generation Request",
"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": "StickyNote",
"type": "n8n-nodes-base.stickyNote",
"position": [
-2700,
-360
],
"parameters": {
"width": 600,
"height": 880,
"content": "# \ud83e\udd16 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 \u2192 HTTP fetch \u2192 HTML parsing \u2192 AI summary \u2192 Response\n4. Image generation: Prompt processing \u2192 AI handling \u2192 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
}
],
"connections": {
"Response: Send Help Menu": {
"main": [
[
{
"node": "Route: Check for Help Command",
"type": "main",
"index": 0
}
]
]
},
"Trigger: Telegram Webhook": {
"main": [
[
{
"node": "Route: Check for Help Command",
"type": "main",
"index": 0
}
]
]
},
"AI: Generate Article Summary": {
"main": [
[
{
"node": "Response: Send Article Summary",
"type": "main",
"index": 0
}
]
]
},
"Parse: Extract Text from HTML": {
"main": [
[
{
"node": "AI: Generate Article Summary",
"type": "main",
"index": 0
}
]
]
},
"Route: Check for Help Command": {
"main": [
[
{
"node": "Response: Send Help Menu",
"type": "main",
"index": 0
}
],
[
{
"node": "Route: Check for Summary Command",
"type": "main",
"index": 0
}
]
]
},
"Route: Check for Image Command": {
"main": [
[
{
"node": "AI: Process Image Generation Request",
"type": "main",
"index": 0
}
]
]
},
"Fetch: Download Article Content": {
"main": [
[
{
"node": "Parse: Extract Text from HTML",
"type": "main",
"index": 0
}
]
]
},
"Route: Check for Summary Command": {
"main": [
[
{
"node": "Fetch: Download Article Content",
"type": "main",
"index": 0
}
],
[
{
"node": "Route: Check for Image Command",
"type": "main",
"index": 0
}
]
]
},
"AI: Process Image Generation Request": {
"main": [
[
{
"node": "Response: Send Image Generation Notice",
"type": "main",
"index": 0
}
]
]
}
}
}
Credentials you'll need
Each integration node will prompt for credentials when you import. We strip credential IDs before publishing — you'll add your own.
openAiApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This workflow turns any Telegram chat into a smart assistant. By typing simple commands like or , users can trigger powerful AI actions—directly from Telegram.
Source: https://n8n.io/workflows/4392/ — original creator credit. Request a take-down →
Related workflows
Workflows that share integrations, category, or trigger type with this one. All free to copy and import.
Clone_Viral_TikToks_with_AI_Avatars___Auto_Post_to_9_Platforms_using_Perplexity___Blotato. Uses httpRequest, telegramTrigger, openAi, googleSheets. Event-driven trigger; 42 nodes.
1-Clone_Viral_TikToks_with_AI_Avatars___Auto_Post_to_9_Platforms_using_Perplexity___Blotato. Uses httpRequest, telegramTrigger, openAi, googleSheets. Event-driven trigger; 42 nodes.
1-Clone_Viral_TikToks_with_AI_Avatars___Auto_Post_to_9_Platforms_using_Perplexity___Blotato. Uses httpRequest, telegramTrigger, openAi, googleSheets. Event-driven trigger; 42 nodes.
💥Clone a viral TikTok and auto-post it to 9 platforms using Perplexity & Blotato vide. Uses httpRequest, telegramTrigger, openAi, googleSheets. Event-driven trigger; 41 nodes.
💥Clone a viral TikTok and auto-post it to 9 platforms using Perplexity & Blotato vide. Uses httpRequest, telegramTrigger, openAi, googleSheets. Event-driven trigger; 41 nodes.