This workflow corresponds to n8n.io template #13409 — we link there as the canonical source.
This workflow follows the Agent → Google Gemini Chat 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 →
{
"id": "LSEq9VUgIq4RlBCV",
"meta": {
"templateCredsSetupCompleted": true
},
"name": "AI Agent Content",
"tags": [],
"nodes": [
{
"id": "dcbb2f08-d7fe-46b7-85a0-58712417c36a",
"name": "Telegram Bot Trigger",
"type": "n8n-nodes-base.telegramTrigger",
"position": [
-688,
-2608
],
"parameters": {
"updates": [
"message"
],
"additionalFields": {}
},
"credentials": {
"telegramApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "117327ca-5c8c-49d5-b745-32a8a7672350",
"name": "AI Content Orchestrator",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-272,
-2608
],
"parameters": {
"text": "={{ $json.message.text }}",
"options": {
"systemMessage": "You are a helpful assistant"
},
"promptType": "define"
},
"typeVersion": 3
},
{
"id": "32d228f1-958b-4108-b5ad-ab541832038a",
"name": "Telegram Response Sender",
"type": "n8n-nodes-base.telegram",
"position": [
256,
-2608
],
"parameters": {
"text": "={{ $json.output.replace(/([_*\\[\\]()~`>#+=|{}.!-])/g, '\\\\$1') }}",
"chatId": "={{ $('Telegram Bot Trigger').item.json.message.chat.id }}",
"additionalFields": {
"parse_mode": "MarkdownV2"
}
},
"credentials": {
"telegramApi": {
"name": "<your credential>"
}
},
"typeVersion": 1.2
},
{
"id": "21aa84a9-190f-4307-8ae0-c4d4d05b92da",
"name": "Gemini Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatGoogleGemini",
"position": [
-272,
-2768
],
"parameters": {
"options": {}
},
"credentials": {
"googlePalmApi": {
"name": "<your credential>"
}
},
"typeVersion": 1
},
{
"id": "dfcf199d-1ee2-4395-9f7d-c5d80c1294e6",
"name": "Conversation Memory Store",
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"position": [
-80,
-2768
],
"parameters": {
"sessionKey": "={{ $json.message.chat.id }}",
"sessionIdType": "customKey",
"contextWindowLength": 30
},
"typeVersion": 1.3
},
{
"id": "ca8d5a3f-0cd9-452b-aaa8-65f3ae0b5817",
"name": "Instagram Publisher",
"type": "@blotato/n8n-nodes-blotato.blotatoTool",
"position": [
272,
-2016
],
"parameters": {
"options": {},
"accountId": {
"__rl": true,
"mode": "list",
"value": "25299",
"cachedResultUrl": "https://backend.blotato.com/v2/accounts/25299",
"cachedResultName": "giangxai.aff"
},
"postContentText": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Text', ``, 'string') }}",
"postContentMediaUrls": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Media_URLs', ``, 'string') }}"
},
"credentials": {
"blotatoApi": {
"name": "<your credential>"
}
},
"typeVersion": 2
},
{
"id": "f9948000-5445-4c0a-8ab8-955a16de56b0",
"name": "LinkedIn Publisher",
"type": "@blotato/n8n-nodes-blotato.blotatoTool",
"position": [
480,
-2016
],
"parameters": {
"options": {},
"platform": "linkedin",
"accountId": {
"__rl": true,
"mode": "list",
"value": "10190",
"cachedResultUrl": "https://backend.blotato.com/v2/accounts/10190",
"cachedResultName": "Giang Vuong Thi"
},
"postContentText": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Text', ``, 'string') }}",
"postContentMediaUrls": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Media_URLs', ``, 'string') }}"
},
"credentials": {
"blotatoApi": {
"name": "<your credential>"
}
},
"typeVersion": 2
},
{
"id": "5744b33a-9439-4d47-9a83-845a1f918646",
"name": "Source Collector",
"type": "@blotato/n8n-nodes-blotato.blotatoTool",
"position": [
-784,
-2016
],
"parameters": {
"resource": "source",
"sourceUrl": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('URL', ``, 'string') }}"
},
"credentials": {
"blotatoApi": {
"name": "<your credential>"
}
},
"typeVersion": 2
},
{
"id": "67203f65-a186-415e-a688-c6e4f37999f3",
"name": "Source Retriever",
"type": "@blotato/n8n-nodes-blotato.blotatoTool",
"position": [
-576,
-2016
],
"parameters": {
"resource": "source",
"sourceId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Source_ID', ``, 'string') }}",
"operation": "get"
},
"credentials": {
"blotatoApi": {
"name": "<your credential>"
}
},
"typeVersion": 2
},
{
"id": "a1defa02-368a-443e-bf3d-bde27b09b902",
"name": "Infographic Generator",
"type": "@blotato/n8n-nodes-blotato.blotatoTool",
"position": [
-336,
-2016
],
"parameters": {
"prompt": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Prompt', ``, 'string') }}",
"resource": "video",
"templateId": {
"__rl": true,
"mode": "list",
"value": "29ebb2bd-02b7-4317-8bb8-c30eb938e47c",
"cachedResultName": "Generate an infographic carved into a wooden trail marker in a serene nature setting using AI image generation."
},
"templateInputs": {
"value": {
"footerText": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Footer_CTA_Text', ``, 'string') }}",
"description": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Infographic_Description', ``, 'string') }}"
},
"schema": [
{
"id": "description",
"type": "string",
"display": true,
"required": false,
"displayName": "Infographic Description",
"defaultMatch": false,
"canBeUsedToMatch": false
},
{
"id": "footerText",
"type": "string",
"display": true,
"required": false,
"displayName": "Footer CTA Text",
"defaultMatch": false,
"canBeUsedToMatch": false
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
}
},
"credentials": {
"blotatoApi": {
"name": "<your credential>"
}
},
"typeVersion": 2
},
{
"id": "2b9b8c49-e04a-49dd-ba6a-22ef1c4c997f",
"name": "Slideshow Video Generator",
"type": "@blotato/n8n-nodes-blotato.blotatoTool",
"position": [
-144,
-2016
],
"parameters": {
"prompt": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Prompt', ``, 'string') }}",
"resource": "video",
"templateId": {
"__rl": true,
"mode": "list",
"value": "/base/v2/image-slideshow/5903b592-1255-43b4-b9ac-f8ed7cbf6a5f/v1",
"cachedResultName": "Image Slideshow with Text Overlays"
},
"templateInputs": {
"value": {
"slides": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Slides__e_g_____key____value____', ``, 'string') }}",
"textColor": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Text_Color', ``, 'string') }}",
"slideDuration": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Slide_Duration__seconds_', ``, 'string') }}",
"customTextPositionPercent": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Custom_Text_Position______', ``, 'string') }}"
},
"schema": [
{
"id": "customTextPositionPercent",
"type": "string",
"display": true,
"required": true,
"displayName": "Custom Text Position (%) *",
"defaultMatch": false,
"canBeUsedToMatch": false
},
{
"id": "slides",
"type": "string",
"display": true,
"required": false,
"displayName": "Slides (e.g. [{\"key\": \"value\"}])",
"defaultMatch": false,
"canBeUsedToMatch": false
},
{
"id": "aiImageModel",
"type": "options",
"display": true,
"options": [
{
"name": "Replicate/black-forest-labs/flux-schnell",
"value": "replicate/black-forest-labs/flux-schnell"
},
{
"name": "Replicate/black-forest-labs/flux-dev",
"value": "replicate/black-forest-labs/flux-dev"
},
{
"name": "Replicate/black-forest-labs/flux-1.1-pro",
"value": "replicate/black-forest-labs/flux-1.1-pro"
},
{
"name": "Replicate/black-forest-labs/flux-1.1-pro-ultra",
"value": "replicate/black-forest-labs/flux-1.1-pro-ultra"
},
{
"name": "Replicate/recraft-ai/recraft-v3",
"value": "replicate/recraft-ai/recraft-v3"
},
{
"name": "Replicate/ideogram-ai/ideogram-v2",
"value": "replicate/ideogram-ai/ideogram-v2"
},
{
"name": "Replicate/luma/photon",
"value": "replicate/luma/photon"
},
{
"name": "Openai/gpt-image-1",
"value": "openai/gpt-image-1"
},
{
"name": "Fal-ai/nano-banana",
"value": "fal-ai/nano-banana"
},
{
"name": "Fal-ai/nano-banana-pro",
"value": "fal-ai/nano-banana-pro"
},
{
"name": "Fal-ai/imagen4/preview/fast",
"value": "fal-ai/imagen4/preview/fast"
}
],
"required": false,
"displayName": "AI Image Model",
"defaultMatch": false,
"canBeUsedToMatch": false
},
{
"id": "textPosition",
"type": "options",
"display": true,
"options": [
{
"name": "Top",
"value": "top"
},
{
"name": "Center",
"value": "center"
},
{
"name": "Bottom",
"value": "bottom"
}
],
"required": false,
"displayName": "Text Position",
"defaultMatch": false,
"canBeUsedToMatch": false
},
{
"id": "textStyle",
"type": "options",
"display": true,
"options": [
{
"name": "Minimal",
"value": "minimal"
},
{
"name": "Elegant",
"value": "elegant"
},
{
"name": "Modern",
"value": "modern"
}
],
"required": false,
"displayName": "Text Style",
"defaultMatch": false,
"canBeUsedToMatch": false
},
{
"id": "textColor",
"type": "string",
"display": true,
"required": false,
"displayName": "Text Color",
"defaultMatch": false,
"canBeUsedToMatch": false
},
{
"id": "aspectRatio",
"type": "options",
"display": true,
"options": [
{
"name": "16:9",
"value": "16:9"
},
{
"name": "1:1",
"value": "1:1"
},
{
"name": "4:5",
"value": "4:5"
},
{
"name": "9:16",
"value": "9:16"
}
],
"required": false,
"displayName": "Aspect Ratio",
"defaultMatch": false,
"canBeUsedToMatch": false
},
{
"id": "slideDuration",
"type": "string",
"display": true,
"required": false,
"displayName": "Slide Duration (seconds)",
"defaultMatch": false,
"canBeUsedToMatch": false
},
{
"id": "transition",
"type": "options",
"display": true,
"options": [
{
"name": "None",
"value": "none"
},
{
"name": "Fade",
"value": "fade"
},
{
"name": "Slide",
"value": "slide"
},
{
"name": "Zoom",
"value": "zoom"
}
],
"required": false,
"displayName": "Transition Effect",
"defaultMatch": false,
"canBeUsedToMatch": false
}
],
"mappingMode": "defineBelow",
"matchingColumns": [],
"attemptToConvertTypes": false,
"convertFieldsToString": false
}
},
"credentials": {
"blotatoApi": {
"name": "<your credential>"
}
},
"typeVersion": 2
},
{
"id": "f9257792-a129-490c-a9ec-66edfa732241",
"name": "Visual Asset Retriever",
"type": "@blotato/n8n-nodes-blotato.blotatoTool",
"position": [
64,
-2016
],
"parameters": {
"videoId": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Video_ID', ``, 'string') }}",
"resource": "video",
"operation": "get"
},
"credentials": {
"blotatoApi": {
"name": "<your credential>"
}
},
"typeVersion": 2
},
{
"id": "a28ad321-5f5e-4f25-a4be-0ce8c743bad8",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-416,
-2912
],
"parameters": {
"color": 6,
"width": 592,
"height": 576,
"content": "## AI CORE\nThe brain of the system. Understands user intent, decides whether to research or generate visuals, writes captions/scripts, and routes tasks to Blotato nodes. "
},
"typeVersion": 1
},
{
"id": "c0457cb1-8c99-4919-a39c-6be8fc879c5a",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-848,
-2336
],
"parameters": {
"color": 6,
"width": 432,
"height": 608,
"content": "## RESEARCH ENGINE (Blotato)\nCreates a research task in Blotato, extracts structured insights, and returns clean data ready for content generation. "
},
"typeVersion": 1
},
{
"id": "97d1956b-4b1c-460a-9d86-4fb9aa5f737f",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
-416,
-2336
],
"parameters": {
"color": 6,
"width": 592,
"height": 608,
"content": "## MEDIA ENGINE (Blotato)\nGenerates visual assets.Creates infographics or slideshow videos based on structured content."
},
"typeVersion": 1
},
{
"id": "0e50df13-9861-4588-955b-f0b34b75ceb8",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
176,
-2336
],
"parameters": {
"color": 6,
"width": 464,
"height": 608,
"content": "## DISTRIBUTION (Blotato)\nPublishes generated content directly to Instagram and LinkedIn.\n"
},
"typeVersion": 1
},
{
"id": "93753ccb-6b23-457d-ab59-5bcbf12373d0",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
176,
-2912
],
"parameters": {
"color": 6,
"width": 464,
"height": 576,
"content": "## RESPONSE\nSends confirmation back to Telegram.\n"
},
"typeVersion": 1
},
{
"id": "d90b1637-dff3-495c-a618-a6f69c23fa81",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
-848,
-2912
],
"parameters": {
"color": 6,
"width": 432,
"height": 576,
"content": "## TRIGGER\nReceives content requests from Telegram and starts the workflow.\n"
},
"typeVersion": 1
},
{
"id": "79ad2152-e321-400b-b70e-5fa4e0b4beb1",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1680,
-2912
],
"parameters": {
"width": 832,
"height": 1184,
"content": "# \ud83d\udee0\ufe0f Workflow Setup Guide \n\nAuthor: [GiangxAI](https://www.youtube.com/@giangxai.official)\n\n---\n\n## How it works\n\n- A user sends a topic or content request directly to your Telegram Bot to trigger the workflow \n- The AI Core analyzes user intent, references conversation memory, and decides which automation steps to activate \n- A Source job is created to collect and structure real-world information \n- The workflow waits for processing and validates extracted data \n- Structured content is sent to Blotato to generate visuals (infographic or slideshow video) \n- The workflow waits for media rendering to complete \n- The final visual asset is retrieved and verified \n- The generated content is automatically published to:\n - Instagram \n - LinkedIn \n- A confirmation message is sent back to Telegram once publishing is successful \n\nThe entire pipeline runs using an async orchestration pattern:\n\nTrigger \u2192 Analyze \u2192 Create \u2192 Wait \u2192 Retrieve \u2192 Publish \u2192 Confirm \n\nOnce configured, the system turns Telegram messages into fully automated multi-platform content \u2014 from research to publishing \u2014 without manual editing or uploading.\n\n---\n\n## Setup guide [n8n](https://n8n.partnerlinks.io/giangxai)\n\n- Configure the **Telegram Bot Trigger** node with your bot token \n- Connect Gemini (or AI model) credentials for intent analysis \n- Add conversation memory storage for contextual responses \n- Connect ** [Blotato](https://blotato.com/?ref=giang9s) API credentials** for research, media generation, and publishing \n- Configure Instagram and LinkedIn credentials for auto publishing \n- Review status routing logic (processing / completed / failed) \n- Adjust wait timing based on AI and rendering speed \n\nAfter setup, the entire workflow runs automatically from a single Telegram interface \u2014 no manual research, design work, or cross-platform posting required.\n"
},
"typeVersion": 1
}
],
"active": false,
"settings": {
"executionOrder": "v1"
},
"versionId": "4690c062-db3a-40a3-b4fe-70177df261a5",
"connections": {
"Source Collector": {
"ai_tool": [
[
{
"node": "AI Content Orchestrator",
"type": "ai_tool",
"index": 0
}
]
]
},
"Source Retriever": {
"ai_tool": [
[
{
"node": "AI Content Orchestrator",
"type": "ai_tool",
"index": 0
}
]
]
},
"Gemini Chat Model": {
"ai_languageModel": [
[
{
"node": "AI Content Orchestrator",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"LinkedIn Publisher": {
"ai_tool": [
[
{
"node": "AI Content Orchestrator",
"type": "ai_tool",
"index": 0
}
]
]
},
"Instagram Publisher": {
"ai_tool": [
[
{
"node": "AI Content Orchestrator",
"type": "ai_tool",
"index": 0
}
]
]
},
"Telegram Bot Trigger": {
"main": [
[
{
"node": "AI Content Orchestrator",
"type": "main",
"index": 0
}
]
]
},
"Infographic Generator": {
"ai_tool": [
[
{
"node": "AI Content Orchestrator",
"type": "ai_tool",
"index": 0
}
]
]
},
"Visual Asset Retriever": {
"ai_tool": [
[
{
"node": "AI Content Orchestrator",
"type": "ai_tool",
"index": 0
}
]
]
},
"AI Content Orchestrator": {
"main": [
[
{
"node": "Telegram Response Sender",
"type": "main",
"index": 0
}
]
]
},
"Conversation Memory Store": {
"ai_memory": [
[
{
"node": "AI Content Orchestrator",
"type": "ai_memory",
"index": 0
}
]
]
},
"Slideshow Video Generator": {
"ai_tool": [
[
{
"node": "AI Content Orchestrator",
"type": "ai_tool",
"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.
blotatoApigooglePalmApitelegramApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Automatically turn a simple Telegram message into fully researched, AI-generated visual content and publish it to multiple social platforms using Blotato — with async processing control and built-in status validation.
Source: https://n8n.io/workflows/13409/ — 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.
Telegram Trigger receives incoming messages (text, voice, photo, document). Switch routes by message type to appropriate processors: Text → forwarded as-is. Voice → downloaded and sent to Transcribe a
Transform your Telegram messenger into a powerful, multi-modal personal or team assistant. This n8n workflow creates an intelligent agent that can understand text, voice, images, and documents, and ta
A comprehensive n8n workflow demonstrating advanced AI agent orchestration, stateful conversation management, and multi-modal input processing for nutrition tracking applications.
> AI-powered nutrition assistant for Telegram — log meals, set goals, and get personalized daily reports with Google Sheets integration.
This automation is designed to help you generate AI-powered music tracks, cover art, and fully rendered music videos — all triggered from a simple Telegram chat and managed via Google Sheets.