This workflow follows the Agent → Google Docs 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 →
{
"name": "Telegram_Voice",
"nodes": [
{
"parameters": {
"content": "# \uc6f9\ud6c5\uc73c\ub85c \ud154\ub808\uadf8\ub7a8 \uc811\uadfc",
"height": 652,
"width": 569,
"color": 6
},
"id": "53ff2b94-743a-4c21-a032-82629214625a",
"name": "Sticky Note",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1160,
60
],
"typeVersion": 1
},
{
"parameters": {
"content": "# \ud154\ub808\uadf8\ub7a8 \ubd07 \uc6f9\ud6c5 \uc124\uc815 \ubc29\ubc95\n\n## \uc6f9\ud6c5 \uc124\uc815 \ud504\ub85c\uc138\uc2a4\n\n**\uae30\ubcf8 \uac1c\ub150**\n\uc6f9\ud6c5\uc740 \ud154\ub808\uadf8\ub7a8 \ubd07\uc774 \ubd07 API\ub97c \uc218\ub3d9\uc73c\ub85c \ud3f4\ub9c1\ud558\ub294 \ub300\uc2e0 \uc790\ub3d9\uc73c\ub85c \uc5c5\ub370\uc774\ud2b8\ub97c \ubc1b\uc744 \uc218 \uc788\uac8c \ud574\uc90d\ub2c8\ub2e4.\n\n**\uc124\uc815 \ubc29\ubc95**\n\uc6f9\ud6c5\uc744 \uc124\uc815\ud558\ub824\uba74, \ub2e4\uc74c URL \ud615\uc2dd\uc744 \uc0ac\uc6a9\ud558\uc5ec GET \uc694\uccad\uc744 \ud569\ub2c8\ub2e4:\n```\nhttps://api.telegram.org/bot{my_bot_token}/setWebhook?url={ngrok\uc6f9\ud6c5\uc8fc\uc18c}\n```\nWhere:\n- \ub0b4_\ubd07_\ud1a0\ud070`: BotFather\uc758 \ubd07 \ud1a0\ud070\n- `url_to_send_updates_to`: \ubd07 \uc5c5\ub370\uc774\ud2b8\ub97c \ucc98\ub9ac\ud558\ub294 HTTPS \uc5d4\ub4dc\ud3ec\uc778\ud2b8\n\n\n**\uac80\uc99d**\n\uc6f9\ud6c5 \uc124\uc815\uc744 \ud655\uc778\ud558\ub824\uba74 \ub2e4\uc74c\uc744 \uc0ac\uc6a9\ud569\ub2c8\ub2e4:\n```\nhttps://api.telegram.org/bot{my_bot_token}/getWebhookInfo\n\n\n```\n\n\uc131\uacf5\uc801\uc778 \uc751\ub2f5\uc740 \ub2e4\uc74c\uacfc \uac19\uc2b5\ub2c8\ub2e4:\n```json\n{\n \u201cok\": true,\n \u201c\uacb0\uacfc\": {\n \u201curl\": \u201chttps://www.example.com/my-telegram-bot/\u201d,\n \u201chas_custom_certificate\": false,\n \u201cpending_update_count\": 0,\n \u201cmax_connections\": 40\n }\n}\n```\n\n\n\uc774 \ubc29\ubc95\uc740 \uc218\ub3d9 \ud3f4\ub9c1\uc774 \uc544\ub2cc \uc6f9\ud6c5\uc744 \ud1b5\ud574 \ud154\ub808\uadf8\ub7a8 \ubd07 \uc5c5\ub370\uc774\ud2b8\ub97c \uc790\ub3d9\uc73c\ub85c \ucc98\ub9ac\ud558\ub294 \uac04\ub2e8\ud558\uace0 \ud6a8\uc728\uc801\uc778 \ubc29\ubc95\uc744 \uc81c\uacf5\ud569\ub2c8\ub2e4.",
"height": 860,
"width": 800,
"color": 7
},
"id": "725d36af-0e93-4be6-a2e8-add9741c545f",
"name": "Sticky Note1",
"type": "n8n-nodes-base.stickyNote",
"position": [
-1980,
80
],
"typeVersion": 1
},
{
"parameters": {
"rules": {
"values": [
{
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"conditions": [
{
"operator": {
"type": "object",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.body.message.voice }}",
"rightValue": ""
}
],
"combinator": "and"
},
"renameOutput": true,
"outputKey": "audio"
},
{
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "342f0883-d959-44a2-b80d-379e39c76218",
"operator": {
"type": "string",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.body.message.text }}",
"rightValue": ""
}
]
},
"renameOutput": true,
"outputKey": "text"
},
{
"conditions": {
"options": {
"version": 2,
"leftValue": "",
"caseSensitive": true,
"typeValidation": "strict"
},
"combinator": "and",
"conditions": [
{
"id": "ded3a600-f861-413a-8892-3fc5ea935ecb",
"operator": {
"type": "array",
"operation": "exists",
"singleValue": true
},
"leftValue": "={{ $json.body.message.photo }}",
"rightValue": ""
}
]
},
"renameOutput": true,
"outputKey": "image"
}
]
},
"options": {
"fallbackOutput": "extra"
}
},
"id": "c3c21b57-3837-4308-a1de-1a3eef8d5562",
"name": "Message Router",
"type": "n8n-nodes-base.switch",
"position": [
-800,
260
],
"typeVersion": 3.2
},
{
"parameters": {
"promptType": "define",
"text": "={{ $('Message Router').item.json.body.message.text }}",
"options": {
"systemMessage": "=## ROLE \nYou are a friendly, attentive, and helpful AI assistant. Your primary goal is to assist the user while maintaining a personalized and engaging interaction. The current user's first name is **{{ $json.body.message.from.first_name }}**. Kindly answer in Korean.\n\n---\n\n## RULES \n\n### Core Interaction Principles \n1. **Memory Management** \n - Use **Save Memory** for personal details (preferences/habits) \n - Always respond naturally after saving information \n\n2. **Context Awareness** \n - Leverage memories for personalized responses \n - Verify memory timestamps for relevance \n\n3. **MCP Tool Operation** \n **Tool Invocation Protocol** \n - Map requests to exact tool names: \n - Calendar: `Create Event`, `Get Event` \n - Documents: `contents_creator`, `QA_chain` \n - Time: `Date & Time` \n - **Parameter Enforcement**: \n ```\n {\n \"Create Event\": [\"Title\", \"Start\", \"End\"],\n \"Get Event\": [\"Limit\", \"After\", \"Before\"],\n \"QA_chain\": [\"query\"]\n }\n ```\n - **Temporal Handling**: \n - Convert relative times via `Date & Time` tool \n - Default: 1 hour duration, KST timezone \n\n4. **Error Prevention** \n - Initiate clarification for: \n - Missing required parameters \n - Ambiguous time references \n - Unclear document search terms \n\n---\n\n## TOOLS \n\n### Memory Tool \n**Save Memory** \n- Store user preferences/events \n\n### MCP Tools \n| Tool Name | Required Parameters | Example Input |\n|-----------|---------------------|---------------|\n| `Create Event` | Title, Start, End | `````` |\n| `QA_chain` | query | `````` |\n\n---\n\n## OPERATIONAL FLOW \n1. **Request Analysis** \n - Determine if needs memory storage \n - Identify required MCP tool \n\n2. **Input Preparation** \ndef validate_input(tool_name, params):\nrequired = tool_requirements[tool_name]\nreturn all(param in params for param in required)\n\n3. **Execution & Response** \n- Successful tool call \u2192 Parse JSON output \n- Validation failure \u2192 \"\uc77c\uc815 \ucd94\uac00\ub97c \uc704\ud574 [\uc2dc\uac04]\uc744 \uc54c\ub824\uc8fc\uc2dc\uaca0\uc5b4\uc694?\" \n\n---\n\n## MEMORIES \n**Recent Context** \n{{ $('Retrieve Long Term Memories').item.json.content }} \n\n**Recall Protocol** \n- Use stored preferences for: \n- Calendar event titles \n- Document search patterns "
}
},
"id": "b23f1d37-63d1-41a2-83a0-758d2b7ce8b0",
"name": "AI Agent",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-20,
360
],
"typeVersion": 1.7,
"alwaysOutputData": true,
"onError": "continueErrorOutput"
},
{
"parameters": {
"mode": "combine",
"combineBy": "combineAll",
"options": {}
},
"id": "c73e6ee9-2acf-4213-9cee-a7197f3051b5",
"name": "Merge",
"type": "n8n-nodes-base.merge",
"position": [
-180,
360
],
"typeVersion": 3
},
{
"parameters": {
"chatId": "={{ $('Listen for Telegram Events').item.json.body.message.chat.id }}",
"text": "={{ $json.output }}",
"additionalFields": {
"appendAttribution": false,
"parse_mode": "HTML"
}
},
"id": "558fcf89-43ae-43fb-a506-6bf30ee6e881",
"name": "Telegram Response",
"type": "n8n-nodes-base.telegram",
"position": [
620,
40
],
"typeVersion": 1.2,
"credentials": {
"telegramApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"descriptionType": "manual",
"toolDescription": "Save memories",
"operation": "update",
"documentURL": "102Vtp7MO84YUBqdOiOPFB3gxdwQyXpH5nSfvNTJdllY",
"actionsUi": {
"actionFields": [
{
"action": "insert",
"text": "= Memory: {{ $fromAI('memory') }} - Date: {{ $now }} "
}
]
}
},
"id": "a513db4e-e4ef-4271-95f1-0411e4a3757d",
"name": "Save Long Term Memories",
"type": "n8n-nodes-base.googleDocsTool",
"position": [
360,
640
],
"typeVersion": 2,
"credentials": {
"googleDocsOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"content": "## Retrieve Long Term Memories\nGoogle Docs",
"height": 300,
"width": 300,
"color": 4
},
"id": "fe292fd0-a8aa-4c39-a8a9-843f4d4c3449",
"name": "Sticky Note3",
"type": "n8n-nodes-base.stickyNote",
"position": [
-520,
440
],
"typeVersion": 1
},
{
"parameters": {
"operation": "get",
"documentURL": "=102Vtp7MO84YUBqdOiOPFB3gxdwQyXpH5nSfvNTJdllY"
},
"id": "630997f2-851b-408e-836e-aee46785cd53",
"name": "Retrieve Long Term Memories",
"type": "n8n-nodes-base.googleDocs",
"position": [
-420,
540
],
"typeVersion": 2,
"alwaysOutputData": true,
"credentials": {
"googleDocsOAuth2Api": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"content": "## Save Long Term Memories\nGoogle Docs",
"height": 320,
"width": 280,
"color": 4
},
"id": "914660f3-6824-4aad-84f1-5b6efcb19cdf",
"name": "Sticky Note6",
"type": "n8n-nodes-base.stickyNote",
"position": [
260,
460
],
"typeVersion": 1
},
{
"parameters": {
"chatId": "={{ $('Listen for Telegram Events').item.json.body.message.chat.id }}",
"text": "=Unable to process your message.",
"additionalFields": {
"appendAttribution": false
}
},
"id": "e0b2611d-3386-4620-a8f8-6b9beb3ef7ed",
"name": "Response Error message",
"type": "n8n-nodes-base.telegram",
"position": [
620,
200
],
"typeVersion": 1.2,
"credentials": {
"telegramApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"assignments": {
"assignments": [
{
"id": "0cea6da1-652a-4c1e-94c3-30608ced90f8",
"name": "first_name",
"type": "string",
"value": "FirstName"
},
{
"id": "b90280c6-3e36-49ca-9e7e-e15c42d256cc",
"name": "last_name",
"type": "string",
"value": "LastName"
},
{
"id": "f6d86283-16ca-447e-8427-7d3d190babc0",
"name": "id",
"type": "number",
"value": 12345667891
}
]
},
"includeOtherFields": true,
"options": {}
},
"id": "6153ee26-a858-418d-a320-60b66acb60f6",
"name": "Validation",
"type": "n8n-nodes-base.set",
"position": [
-960,
280
],
"typeVersion": 3.4
},
{
"parameters": {
"httpMethod": "POST",
"path": "wbot",
"options": {
"binaryPropertyName": "data"
}
},
"type": "n8n-nodes-base.webhook",
"typeVersion": 2,
"position": [
-1120,
280
],
"id": "1810e5d1-22fb-4bd7-8244-e25362d894bc",
"name": "Listen for Telegram Events"
},
{
"parameters": {
"model": {
"__rl": true,
"value": "gpt-4.1-mini",
"mode": "list",
"cachedResultName": "gpt-4.1-mini"
},
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"typeVersion": 1.2,
"position": [
-100,
540
],
"id": "a4b91826-4698-40c2-a3bc-3b7fd52d693d",
"name": "OpenAI Chat Model",
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"resource": "file",
"fileId": "={{ $json.body.message.voice.file_id }}"
},
"type": "n8n-nodes-base.telegram",
"typeVersion": 1.2,
"position": [
-520,
20
],
"id": "9bf41e2e-c0a5-4a73-9163-d7d6660a5da4",
"name": "Telegram",
"credentials": {
"telegramApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"resource": "audio",
"operation": "transcribe",
"binaryPropertyName": "=data",
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.openAi",
"typeVersion": 1.8,
"position": [
-360,
20
],
"id": "8362e449-896f-477e-93eb-55db027b8c3e",
"name": "OpenAI",
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"model": {
"__rl": true,
"value": "gpt-4.1-mini",
"mode": "list",
"cachedResultName": "gpt-4.1-mini"
},
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatOpenAi",
"typeVersion": 1.2,
"position": [
-100,
200
],
"id": "0bb58c46-d0c5-4239-ae78-209bf9400b75",
"name": "OpenAI Chat Model1",
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"promptType": "define",
"text": "={{$json.text}}",
"options": {
"systemMessage": "=## ROLE \nYou are a friendly, attentive, and helpful AI assistant. Your primary goal is to assist the user while maintaining a personalized and engaging interaction. The current user's first name is **{{ $json.body.message.from.first_name }}**. Kindly answer in Korean.\n\n---\n\n## RULES \n\n### Core Interaction Principles \n1. **Memory Management** \n - Use **Save Memory** for personal details (preferences/habits) \n - Always respond naturally after saving information \n\n2. **Context Awareness** \n - Leverage memories for personalized responses \n - Verify memory timestamps for relevance \n\n3. **MCP Tool Operation** \n **Tool Invocation Protocol** \n - Map requests to exact tool names: \n - Calendar: `Create Event`, `Get Event` \n - Documents: `contents_creator`, `QA_chain` \n - Time: `Date & Time` \n - **Parameter Enforcement**: \n ```\n {\n \"Create Event\": [\"Title\", \"Start\", \"End\"],\n \"Get Event\": [\"Limit\", \"After\", \"Before\"],\n \"QA_chain\": [\"query\"]\n }\n ```\n - **Temporal Handling**: \n - Convert relative times via `Date & Time` tool \n - Default: 1 hour duration, KST timezone \n\n4. **Error Prevention** \n - Initiate clarification for: \n - Missing required parameters \n - Ambiguous time references \n - Unclear document search terms \n\n---\n\n## TOOLS \n\n### Memory Tool \n**Save Memory** \n- Store user preferences/events \n\n### MCP Tools \n| Tool Name | Required Parameters | Example Input |\n|-----------|---------------------|---------------|\n| `Create Event` | Title, Start, End | `````` |\n| `QA_chain` | query | `````` |\n\n---\n\n## OPERATIONAL FLOW \n1. **Request Analysis** \n - Determine if needs memory storage \n - Identify required MCP tool \n\n2. **Input Preparation** \ndef validate_input(tool_name, params):\nrequired = tool_requirements[tool_name]\nreturn all(param in params for param in required)\n\n3. **Execution & Response** \n- Successful tool call \u2192 Parse JSON output \n- Validation failure \u2192 \"\uc77c\uc815 \ucd94\uac00\ub97c \uc704\ud574 [\uc2dc\uac04]\uc744 \uc54c\ub824\uc8fc\uc2dc\uaca0\uc5b4\uc694?\" \n\n---\n\n## MEMORIES \n**Recent Context** \n{{ $('Retrieve Long Term Memories').item.json.content }} \n\n**Recall Protocol** \n- Use stored preferences for: \n- Calendar event titles \n- Document search patterns "
}
},
"id": "aa197b8f-3515-44d0-b241-c59fd1229f82",
"name": "AI Agent_voice",
"type": "@n8n/n8n-nodes-langchain.agent",
"position": [
-40,
20
],
"typeVersion": 1.7,
"alwaysOutputData": true,
"onError": "continueErrorOutput"
},
{
"parameters": {
"mode": "combine",
"combineBy": "combineAll",
"options": {}
},
"id": "6097bac6-2b5e-452d-91f0-bf33b84e1a7d",
"name": "Merge1",
"type": "n8n-nodes-base.merge",
"position": [
-200,
20
],
"typeVersion": 3
},
{
"parameters": {
"resource": "file",
"fileId": "={{ $json.id }}"
},
"type": "n8n-nodes-base.telegram",
"typeVersion": 1.2,
"position": [
-680,
460
],
"id": "428d3a6a-9801-4963-af4d-047ec2c52a01",
"name": "Telegram1",
"credentials": {
"telegramApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"content": "## MCP\n**Double click** to edit me. [Guide](https://docs.n8n.io/workflows/sticky-notes/)",
"height": 320,
"width": 280
},
"type": "n8n-nodes-base.stickyNote",
"position": [
560,
460
],
"typeVersion": 1,
"id": "12326d0f-bb42-47c3-b09f-a4e905132eac",
"name": "Sticky Note2"
},
{
"parameters": {
"sseEndpoint": "https://n8n.aidoingai.com/mcp/674f9511-fe37-4554-86f4-67ff6a592690/sse",
"include": "selected",
"includeTools": [
"QA_chain",
"Get_Event",
"Create_Event"
]
},
"type": "@n8n/n8n-nodes-langchain.mcpClientTool",
"typeVersion": 1,
"position": [
660,
640
],
"id": "14a3263f-d221-4994-a7a9-c98d3d3cfc50",
"name": "MCP Client"
},
{
"parameters": {
"sessionIdType": "customKey",
"sessionKey": "={{ $json.body.update_id }}"
},
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"typeVersion": 1.3,
"position": [
20,
200
],
"id": "514c4cf8-50c4-49ea-b1f8-e7f0b75abe19",
"name": "Simple Memory"
},
{
"parameters": {
"sessionIdType": "customKey",
"sessionKey": "={{ $json.body.message.from.id }}"
},
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"typeVersion": 1.3,
"position": [
20,
540
],
"id": "5a2cffbf-17a4-4191-9827-26567cab86b7",
"name": "Simple Memory1"
}
],
"connections": {
"Merge": {
"main": [
[
{
"node": "AI Agent",
"type": "main",
"index": 0
}
]
]
},
"AI Agent": {
"main": [
[
{
"node": "Telegram Response",
"type": "main",
"index": 0
}
],
[
{
"node": "Response Error message",
"type": "main",
"index": 0
}
]
]
},
"Message Router": {
"main": [
[
{
"node": "Telegram",
"type": "main",
"index": 0
},
{
"node": "Retrieve Long Term Memories",
"type": "main",
"index": 0
}
],
[
{
"node": "Merge",
"type": "main",
"index": 0
},
{
"node": "Retrieve Long Term Memories",
"type": "main",
"index": 0
}
],
[
{
"node": "Retrieve Long Term Memories",
"type": "main",
"index": 0
}
],
[
{
"node": "Telegram1",
"type": "main",
"index": 0
}
]
]
},
"Save Long Term Memories": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
},
{
"node": "AI Agent_voice",
"type": "ai_tool",
"index": 0
}
]
]
},
"Retrieve Long Term Memories": {
"main": [
[
{
"node": "Merge",
"type": "main",
"index": 1
},
{
"node": "Merge1",
"type": "main",
"index": 1
}
]
]
},
"Validation": {
"main": [
[
{
"node": "Message Router",
"type": "main",
"index": 0
}
]
]
},
"Listen for Telegram Events": {
"main": [
[
{
"node": "Validation",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model": {
"ai_languageModel": [
[
{
"node": "AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Telegram": {
"main": [
[
{
"node": "OpenAI",
"type": "main",
"index": 0
}
]
]
},
"OpenAI": {
"main": [
[
{
"node": "Merge1",
"type": "main",
"index": 0
}
]
]
},
"OpenAI Chat Model1": {
"ai_languageModel": [
[
{
"node": "AI Agent_voice",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"AI Agent_voice": {
"main": [
[
{
"node": "Telegram Response",
"type": "main",
"index": 0
}
],
[
{
"node": "Response Error message",
"type": "main",
"index": 0
}
]
]
},
"Merge1": {
"main": [
[
{
"node": "AI Agent_voice",
"type": "main",
"index": 0
}
]
]
},
"MCP Client": {
"ai_tool": [
[
{
"node": "AI Agent_voice",
"type": "ai_tool",
"index": 0
},
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Simple Memory": {
"ai_memory": [
[
{
"node": "AI Agent_voice",
"type": "ai_memory",
"index": 0
}
]
]
},
"Simple Memory1": {
"ai_memory": [
[
{
"node": "AI Agent",
"type": "ai_memory",
"index": 0
}
]
]
}
},
"active": true,
"settings": {
"executionOrder": "v1"
},
"versionId": "b28e7add-cc92-47d7-87a4-162ada8f5d6e",
"meta": {
"templateCredsSetupCompleted": true
},
"id": "UsaIZcL4AGZePfe4",
"tags": []
}
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.
googleDocsOAuth2ApiopenAiApitelegramApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
Telegram_Voice. Uses agent, telegram, googleDocsTool, googleDocs. Webhook trigger; 24 nodes.
Source: https://github.com/aieeiee/fc_nocoderag/blob/main/workflow/3_2_Telegram_Voice.json — 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.
🐋🤖 DeepSeek AI Agent + Telegram + LONG TERM Memory 🧠. Uses telegram, stickyNote, agent, memoryBufferWindow. Webhook trigger; 23 nodes.
🐋🤖 DeepSeek AI Agent + Telegram + LONG TERM Memory 🧠. Uses telegram, stickyNote, agent, memoryBufferWindow. Webhook trigger; 23 nodes.
This n8n workflow template is designed to integrate a DeepSeek AI agent with Telegram, incorporating long-term memory capabilities for personalized and context-aware responses. Here's a detailed break
Telegram Webhook. Uses telegram, agent, memoryBufferWindow, chatTrigger. Webhook trigger; 23 nodes.
Telegram. Uses telegram, agent, memoryBufferWindow, googleDocsTool. Webhook trigger; 22 nodes.