This workflow corresponds to n8n.io template #8377 — we link there as the canonical source.
This workflow follows the Agent → Google Sheets Tool 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 →
{
"nodes": [
{
"id": "a1a3b5eb-88c4-4c96-8410-0737c3cdb65d",
"name": "Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
752,
768
],
"parameters": {
"text": "={{ $json.Prompt }}",
"options": {
"maxIterations": 50,
"systemMessage": "=You are an expert Ideation AI Agent specialized in capturing, analyzing, and organizing ideas into my Google Sheet database. Every time I send you an idea, you must:\n\n**PRIMARY TASK:**\nUse the add_row_tool to insert a comprehensive entry into my Notion database with the following fields:\n\n**REQUIRED FIELDS:**\n\n**Idea:** \nWrite a catchy, one-sentence title/name for the idea\nExample: \"Social Media Content Repurposing Agent\"\n\n**Idea Description:** \nWrite 2-3 sentences describing what the idea does, how it works, and its benefits\nExample: \"This AI agent automatically converts long-form blog posts into various social media formats such as Twitter threads, LinkedIn posts, Instagram carousels, and YouTube video outlines. It optimizes the content for each platform's specific audience and best practices, streamlining content distribution for creators and businesses.\"\n\n**Idea Type:** \nChoose EXACTLY one of these 4 options:\n- \"AI Agent\" - for autonomous AI assistants/bots\n- \"Web App\" - for website/browser applications \n- \"SaaS Platform\" - for paid software services\n- \"Integration/Workflow\" - for tools that connect/automate between systems\n\n**Idea Score:** \nWrite one number as text: \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", or \"10\"\n\n**Category/Domain:** \nChoose EXACTLY one:\n- \"Business & Entrepreneurship\"\n- \"Technology & Software\" \n- \"Personal Productivity\"\n- \"Creative & Design\"\n- \"Health & Wellness\"\n- \"Education & Learning\"\n- \"Finance & Investment\"\n- \"Social & Communication\"\n- \"Entertainment & Media\"\n- \"Automation & Optimization\"\n\n**Priority Level:** \nChoose EXACTLY one: \"High\", \"Medium\", or \"Low\"\n\n**Status:** \nChoose EXACTLY one: \"New\", \"In Progress\", \"Researching\", or \"Implemented\"\n\n**Complexity Level:** \nChoose EXACTLY one: \"Simple\", \"Moderate\", or \"Complex\"\n\n**CRITICAL:** Use the exact text from the options above. Do NOT create variations.\n\n**RESPONSE FORMAT:**\nAfter inserting to database, confirm with: \"\u2705 Idea captured: [Brief title] - [Type] - Score: [X/10] - Priority: [Level]\""
},
"promptType": "define"
},
"typeVersion": 1.7
},
{
"id": "c4e5e515-0a3a-412b-b23e-acf5184f5b96",
"name": "Telegram Trigger",
"type": "n8n-nodes-base.telegramTrigger",
"position": [
32,
752
],
"parameters": {
"updates": [
"message"
],
"additionalFields": {}
},
"typeVersion": 1.2
},
{
"id": "c6dd5ab6-1f9a-4693-b223-782ca6f318f7",
"name": "MCP Client",
"type": "@n8n/n8n-nodes-langchain.mcpClientTool",
"position": [
896,
1008
],
"parameters": {},
"typeVersion": 1
},
{
"id": "6680f1db-fc75-4070-b4d1-7abdafa4fbfc",
"name": "MCP Server Trigger",
"type": "@n8n/n8n-nodes-langchain.mcpTrigger",
"position": [
1392,
784
],
"parameters": {
"path": "17bd0cba-5dcd-4d8b-abef-c2ba2f7cca87"
},
"typeVersion": 1
},
{
"id": "f12815e8-c7e1-4ae0-ba1f-629df23f1835",
"name": "Telegram1",
"type": "n8n-nodes-base.telegram",
"position": [
272,
1008
],
"parameters": {
"fileId": "={{ $json.message.voice.file_id }}",
"resource": "file",
"additionalFields": {}
},
"typeVersion": 1.2
},
{
"id": "8208dceb-6f7e-4eeb-8ba9-4baa5edd9d9c",
"name": "HTTP Request",
"type": "n8n-nodes-base.httpRequest",
"position": [
400,
1008
],
"parameters": {
"url": "https://api.elevenlabs.io/v1/speech-to-text",
"method": "POST",
"options": {},
"sendBody": true,
"contentType": "multipart-form-data",
"authentication": "genericCredentialType",
"bodyParameters": {
"parameters": [
{
"name": "model_id",
"value": "scribe_v1"
},
{
"name": "file",
"parameterType": "formBinaryData",
"inputDataFieldName": "data"
}
]
},
"genericAuthType": "httpHeaderAuth"
},
"typeVersion": 4.2
},
{
"id": "728a4b8f-2e92-4864-86b1-8e041496424c",
"name": "Switch",
"type": "n8n-nodes-base.switch",
"position": [
96,
944
],
"parameters": {
"rules": {
"values": [
{
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "ee163b36-d8ec-4ffb-b302-5360099a424b",
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.message.toJsonString() }}",
"rightValue": "text"
}
]
}
},
{
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "0c4fcbc4-c2ab-414b-b666-30c6cf9a54b3",
"operator": {
"type": "string",
"operation": "contains"
},
"leftValue": "={{ $json.message.toJsonString() }}",
"rightValue": "audio"
}
]
}
}
]
},
"options": {}
},
"typeVersion": 3.2
},
{
"id": "60ae5549-bf5b-4395-96fd-ff411e5b3ea2",
"name": "Telegram",
"type": "n8n-nodes-base.telegram",
"position": [
1040,
768
],
"parameters": {
"text": "={{ $json.output }}",
"chatId": "={{ $('Telegram Trigger').item.json.message.chat.id }}",
"additionalFields": {
"appendAttribution": false
}
},
"typeVersion": 1.2
},
{
"id": "a7cd2622-12f0-48ef-8859-b65df9b240ff",
"name": "Edit Fields",
"type": "n8n-nodes-base.set",
"position": [
544,
768
],
"parameters": {
"options": {},
"assignments": {
"assignments": [
{
"id": "cdfce35f-fc3d-4762-8cdd-8d1dc0646064",
"name": "Prompt",
"type": "string",
"value": "={{ $json.text }}{{ $('Telegram Trigger').item.json.message.text }}{{ $json.candidates[0].content.parts[0].text }}"
}
]
}
},
"typeVersion": 3.4
},
{
"id": "df24f41b-badd-435e-94f1-5fab711e9585",
"name": "Azure OpenAI Chat Model",
"type": "@n8n/n8n-nodes-langchain.lmChatAzureOpenAi",
"position": [
752,
1008
],
"parameters": {
"model": "gpt-4.1-2",
"options": {}
},
"typeVersion": 1
},
{
"id": "aa44faf0-4b0e-4c3d-9389-0fd93db7e45b",
"name": "add_row_tool1",
"type": "n8n-nodes-base.googleSheetsTool",
"position": [
1424,
944
],
"parameters": {
"columns": {
"value": {
"Idea ": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Idea_', ``, 'string') }}",
"Status": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Status', ``, 'string') }}",
"Idea Type": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Idea_Type', ``, 'string') }}",
"Idea Score": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Idea_Score', ``, 'string') }}",
"Complexity ": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Complexity_', ``, 'string') }}",
"Priority Level": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Priority_Level', ``, 'string') }}",
"Category/Domain": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Category_Domain', ``, 'string') }}",
"Idea Description ": "={{ /*n8n-auto-generated-fromAI-override*/ $fromAI('Idea_Description_', ``, 'string') }}"
},
"schema": [
{
"id": "Idea ",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Idea ",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Idea Description ",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Idea Description ",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Idea Type",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Idea Type",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Idea Score",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Idea Score",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Category/Domain",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Category/Domain",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Priority Level",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Priority Level",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Status",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Status",
"defaultMatch": false,
"canBeUsedToMatch": true
},
{
"id": "Complexity ",
"type": "string",
"display": true,
"removed": false,
"required": false,
"displayName": "Complexity ",
"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/1xMuQ0-fT9M3_-LFyvyvuCJnXTrqZsfLKqEeUU9u1v7U/edit#gid=0",
"cachedResultName": "Sheet1"
},
"documentId": {
"__rl": true,
"mode": "list",
"value": "1xMuQ0-fT9M3_-LFyvyvuCJnXTrqZsfLKqEeUU9u1v7U",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1xMuQ0-fT9M3_-LFyvyvuCJnXTrqZsfLKqEeUU9u1v7U/edit?usp=drivesdk",
"cachedResultName": "Ideation AI Agent - DB"
}
},
"typeVersion": 4.7
},
{
"id": "97d0a954-cc10-4e4a-bc55-92730ee9e4a3",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
0
],
"parameters": {
"width": 368,
"height": 640,
"content": "## \ud83e\udd16 AI Idea Capture Agent\n\nThis n8n template creates an intelligent **Ideation Agent** \ud83e\udd16 that captures your ideas from text and voice notes sent via Telegram. The assistant automatically transcribes your voice memos, analyzes the content, and organizes it into a structured Google Sheet database. It's the perfect workflow for capturing inspiration whenever it strikes, just by talking or typing \ud83d\udca1.\n\n### **Use Cases:**\n* \ud83d\udde3\ufe0f **Text-Based Capture:** Send any idea as a simple text message to your Telegram bot for instant processing.\n* \ud83c\udf99\ufe0f **Voice-to-Idea:** Record voice notes on the go. The workflow transcribes them into text and categorizes them automatically.\n* \ud83d\udcc2 **Automated Organization:** The AI agent intelligently structures each idea with a title, description, score, category, and priority level without any manual effort.\n* \ud83d\udcca **Centralized Database:** Build a comprehensive and well-organized library of all your ideas in Google Sheets, making it easy to search, review, and act upon them.\n\n"
},
"typeVersion": 1
},
{
"id": "b05013bf-abe4-40b0-a39a-493d68f21447",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
0,
672
],
"parameters": {
"color": 3,
"width": 656,
"height": 496,
"content": "## \u2705 Listening for Ideas"
},
"typeVersion": 1
},
{
"id": "874a4c1b-a2f9-4a95-bd64-e33fd33e219e",
"name": "Sticky Note2",
"type": "n8n-nodes-base.stickyNote",
"position": [
688,
672
],
"parameters": {
"color": 4,
"width": 544,
"height": 496,
"content": "## \u2705 Prepare the Idea"
},
"typeVersion": 1
},
{
"id": "003d1a3c-823a-4b8f-8397-3de18354ae64",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
1264,
672
],
"parameters": {
"color": 5,
"width": 544,
"height": 496,
"content": "## \u2705 Save the Idea"
},
"typeVersion": 1
},
{
"id": "d00880ee-c86a-46b0-9140-5eab3782ff37",
"name": "Sticky Note4",
"type": "n8n-nodes-base.stickyNote",
"position": [
400,
0
],
"parameters": {
"width": 400,
"height": 640,
"content": "### **How it works:**\n1. **Multi-Modal Input:** The workflow starts with a `Telegram Trigger` that listens for incoming text messages and voice notes.\n2. **Content-Based Routing:** A `Switch` node detects the message type. Text messages are sent directly for processing, while audio files are routed for transcription.\n3. **Voice Transcription:** Voice messages are sent to the **ElevenLabs API**, which accurately converts the speech into text.\n4. **Unified Input:** Both the original text and the transcribed audio are passed to the AI Agent in a consistent format.\n5. **AI Analysis & Structuring:** An `AI Agent`, powered by a large language model, receives the text. It follows a detailed system prompt to analyze the idea and structure it into predefined fields: Idea, Idea Description, Idea Type, Score, Category, Priority, Status, and Complexity.\n6. **Data Storage:** The agent uses the **Google Sheets Tool** (`add_row_tool`) to seamlessly add the fully structured idea as a new row in your designated spreadsheet.\n7. **Instant Confirmation:** Once the idea is saved, the workflow sends a confirmation message back to you on Telegram, summarizing the captured idea.\n\n"
},
"typeVersion": 1
},
{
"id": "8597d455-3580-41bc-8c26-44f0bb4a3736",
"name": "Sticky Note5",
"type": "n8n-nodes-base.stickyNote",
"position": [
832,
0
],
"parameters": {
"width": 400,
"height": 640,
"content": "### **Requirements:**\n* \ud83c\udf10 A **Telegram Bot API** token.\n* \ud83e\udd16 An **AI provider** with API access (the template uses Azure OpenAI, but can be adapted).\n* \ud83d\udde3\ufe0f An **ElevenLabs API** key for voice-to-text transcription.\n* \ud83d\udcdd **Google Sheets API** credentials to connect to your database.\n\n### **Customizing this workflow:**\n* \u270f\ufe0f **Modify Categories:** To change the available `Idea Type`, `Category/Domain`, or `Priority Level` options, simply edit the list within the `Agent` node's system prompt.\n* \ud83d\udd04 **Swap LLM:** You can easily change the AI model by replacing the `Azure OpenAI Chat Model` node with another one, such as the standard OpenAI node or a local AI model.\n* \ud83d\udd17 **Change Database:** To save ideas to a different platform, just replace the `add_row_tool1` (Google Sheets Tool) with a tool for another service like Notion, Airtable, or a database.\n"
},
"typeVersion": 1
}
],
"connections": {
"Agent": {
"main": [
[
{
"node": "Telegram",
"type": "main",
"index": 0
}
]
]
},
"Switch": {
"main": [
[
{
"node": "Edit Fields",
"type": "main",
"index": 0
}
],
[
{
"node": "Telegram1",
"type": "main",
"index": 0
}
]
]
},
"Telegram1": {
"main": [
[
{
"node": "HTTP Request",
"type": "main",
"index": 0
}
]
]
},
"MCP Client": {
"ai_tool": [
[
{
"node": "Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Edit Fields": {
"main": [
[
{
"node": "Agent",
"type": "main",
"index": 0
}
]
]
},
"HTTP Request": {
"main": [
[
{
"node": "Edit Fields",
"type": "main",
"index": 0
}
]
]
},
"add_row_tool1": {
"ai_tool": [
[
{
"node": "MCP Server Trigger",
"type": "ai_tool",
"index": 0
}
]
]
},
"Telegram Trigger": {
"main": [
[
{
"node": "Switch",
"type": "main",
"index": 0
}
]
]
},
"Azure OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
}
}
}
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
This n8n template creates an intelligent Ideation Agent 🤖 that captures your ideas from text and voice notes sent via Telegram. The assistant automatically transcribes your voice memos, analyzes the content with a powerful AI, and organizes it into a structured Google Sheet…
Source: https://n8n.io/workflows/8377/ — 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.
This template is designed for anyone who wants to use Telegram as a personal AI assistant hub. If you often juggle tasks, emails, calendars, and expenses across multiple tools, this workflow consolida
Awesome N8N Templates. Uses agent, telegramTrigger, mcpClientTool, mcpTrigger. Event-driven trigger; 33 nodes.
> This n8n template builds Stacey, an AI assistant that runs inside Telegram. Stacey listens to your messages, understands what you want using AI, and intelligently routes commands to MCP-connected
An AI assistant that NEVER forgets using MemMachine for persistent cross-session memory, with voice transcription support and productivity tools.
Template Overview This workflow demonstrates how to build a simple Telegram bot that can schedule events, check service prices, and query company documents using AI integrated with MCP and RAG. It’s d