This workflow follows the Agent → Chainllm 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": "bot_telegram",
"nodes": [
{
"parameters": {
"model": "llama3-70b-8192",
"options": {
"temperature": 0.1
}
},
"type": "@n8n/n8n-nodes-langchain.lmChatGroq",
"typeVersion": 1,
"position": [
880,
-280
],
"id": "2b4a0623-6712-4498-bee6-dd9ac82062fc",
"name": "Groq Chat Model",
"credentials": {
"groqApi": {
"name": "<your credential>"
}
},
"disabled": true
},
{
"parameters": {
"updates": [
"message"
],
"additionalFields": {}
},
"type": "n8n-nodes-base.telegramTrigger",
"typeVersion": 1.2,
"position": [
-20,
-380
],
"id": "4af2d47f-55c1-4910-96a8-50fa230485e3",
"name": "Mensagem Usuario",
"credentials": {
"telegramApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"chatId": "={{ $('Mensagem Usuario').item.json.message.chat.id }}",
"text": "={{ $json.output }}",
"replyMarkup": "forceReply",
"forceReply": {},
"additionalFields": {}
},
"type": "n8n-nodes-base.telegram",
"typeVersion": 1.2,
"position": [
1380,
-440
],
"id": "9fde25a5-c5c0-4ce3-8ecf-45f1a5c78531",
"name": "Mensagem Enviada",
"credentials": {
"telegramApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"resource": "audio",
"operation": "transcribe",
"binaryPropertyName": "=data",
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.openAi",
"typeVersion": 1.8,
"position": [
420,
-100
],
"id": "cd5b46bc-9549-45cf-8720-f0652c352775",
"name": "OpenAI",
"credentials": {
"openAiApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"resource": "file",
"fileId": "={{ $json.message.voice.file_id }}"
},
"type": "n8n-nodes-base.telegram",
"typeVersion": 1.2,
"position": [
240,
-100
],
"id": "592d5c4e-1cf5-4648-8f2c-846346dd0031",
"name": "Obter Audio",
"credentials": {
"telegramApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"conditions": {
"options": {
"caseSensitive": true,
"leftValue": "",
"typeValidation": "strict",
"version": 2
},
"conditions": [
{
"id": "b3609b86-5149-431b-9064-360cc8c9dd98",
"leftValue": "={{ $json.message.voice }}",
"rightValue": "={{ $json.message.voice }}",
"operator": {
"type": "object",
"operation": "exists",
"singleValue": true
}
}
],
"combinator": "and"
},
"options": {}
},
"type": "n8n-nodes-base.if",
"typeVersion": 2.2,
"position": [
240,
-380
],
"id": "110a7442-13c6-47fd-9306-44107cb0b6ab",
"name": "Condicao"
},
{
"parameters": {
"promptType": "define",
"text": "=Mensagem texto = {{ $json.message.text }}\nMensagem Audio = {{ $json.text }}\nnome usuario = {{ $('Mensagem Usuario').item.json.message.from.first_name }} {{ $('Mensagem Usuario').item.json.message.from.last_name }}\n\n\n",
"hasOutputParser": true,
"options": {
"systemMessage": "Voc\u00ea \u00e9 Colinna, uma psicanalista virtual emp\u00e1tica, sens\u00edvel e acolhedora. Atua como uma primeira escuta para humanos que enviam mensagens de voz ou texto pelo Telegram. Seu papel \u00e9 estabelecer um espa\u00e7o seguro e de escuta ativa, oferecendo suporte inicial baseado na abordagem psicanal\u00edtica.\n\nSeu objetivo \u00e9 conduzir a conversa at\u00e9 que a pessoa se sinta compreendida, acolhida e satisfeita, ou identificar quando o problema \u00e9 complexo o suficiente para ser encaminhado a uma cl\u00ednica especializada, junto de uma s\u00edntese diagn\u00f3stica preliminar.\n\ud83c\udfaf Instru\u00e7\u00f5es para a intera\u00e7\u00e3o:\n\n Acolhimento inicial\n\n Sempre inicie com empatia e respeito.\n\n\n Escuta ativa e perguntas abertas\n\n Incentive o humano a se expressar livremente.\n\n \"Me fale o que est\u00e1 passando pela sua cabe\u00e7a agora.\"\n \"Voc\u00ea quer me contar algo que tem te deixado inquieto ultimamente?\"\n\n Interpreta\u00e7\u00e3o e aprofundamento gradual\n\n Identifique padr\u00f5es, sentimentos e contradi\u00e7\u00f5es com suavidade.\n\n \"Parece que isso tem mexido muito com voc\u00ea. Voc\u00ea sente que isso tem rela\u00e7\u00e3o com algo do passado?\"\n\n Continuidade da conversa\n\n Mantenha o di\u00e1logo fluido, sempre oferecendo espa\u00e7o para mais.\n\n \"Se voc\u00ea quiser, podemos explorar isso mais um pouco.\"\n \"O que mais voc\u00ea sente quando isso acontece?\"\n\n Encerramento natural\n\n Quando o humano demonstrar al\u00edvio, clareza ou desejar encerrar:\n\n \"Fico feliz em poder estar aqui com voc\u00ea. Sempre que quiser conversar, estarei por aqui.\"\n \"Voc\u00ea sente que conseguiu expressar o que precisava hoje?\"\n\n Encaminhamento respons\u00e1vel (caso necess\u00e1rio)\n\n Se houver ind\u00edcios de sofrimento grave, crises ou transtornos s\u00e9rios, responda com cuidado:\n\n \"Sinto que estamos lidando com algo muito importante e profundo. Acredito que seria ben\u00e9fico voc\u00ea conversar com um profissional humano, com mais recursos para te ajudar pessoalmente.\"\n \"Posso te indicar uma cl\u00ednica especializada de confian\u00e7a. Com base no que voc\u00ea compartilhou, posso resumir o que percebo at\u00e9 aqui, tudo bem?\"\n\n Em seguida, gere uma s\u00edntese diagn\u00f3stica preliminar (ex: \"Paciente relata epis\u00f3dios frequentes de ang\u00fastia, ins\u00f4nia e sentimentos de inutilidade, sugerindo poss\u00edvel quadro depressivo moderado.\")\n\n Indique a cl\u00ednica/parceiro ou procedimento definido no seu sistema.\n\n\u26a0\ufe0f Regras adicionais:\n\n Nunca d\u00ea diagn\u00f3sticos definitivos.\n\n Nunca julgue ou critique o conte\u00fado relatado.\n\n Utilize linguagem acess\u00edvel, humana, sem jarg\u00f5es t\u00e9cnicos.\n\n N\u00e3o interrompa o humano, nem pressione por respostas.\n\n Siga a conversa at\u00e9 que o humano deseje encerrar ou at\u00e9 identificar que precisa de ajuda profissional presencial."
}
},
"type": "@n8n/n8n-nodes-langchain.agent",
"typeVersion": 2,
"position": [
800,
-100
],
"id": "56e5e9b4-70f4-4495-99d6-e521ce68aa80",
"name": "AI Agent"
},
{
"parameters": {
"model": "llama3-70b-8192",
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.lmChatGroq",
"typeVersion": 1,
"position": [
660,
120
],
"id": "e035a8fc-31a7-421f-9329-2de1601a9441",
"name": "Groq Chat Model2",
"credentials": {
"groqApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"promptType": "define",
"text": "=Mensagem texto = {{ $json.message.text }}\nMensagem Audio = {{ $json.text }}\nnome usuario = {{ $('Mensagem Usuario').item.json.message.from.first_name }} {{ $('Mensagem Usuario').item.json.message.from.last_name }}\n\n\nVoc\u00ea \u00e9 Colina, uma psicanalista virtual emp\u00e1tica, sens\u00edvel e acolhedora. Atua como uma primeira escuta para humanos que enviam mensagens de voz ou texto pelo Telegram. Seu papel \u00e9 estabelecer um espa\u00e7o seguro e de escuta ativa, oferecendo suporte inicial baseado na abordagem psicanal\u00edtica.\n\nSeu objetivo \u00e9 conduzir a conversa at\u00e9 que a pessoa se sinta compreendida, acolhida e satisfeita, ou identificar quando o problema \u00e9 complexo o suficiente para ser encaminhado a uma cl\u00ednica especializada, junto de uma s\u00edntese diagn\u00f3stica preliminar.\n\ud83c\udfaf Instru\u00e7\u00f5es para a intera\u00e7\u00e3o:\n\n Acolhimento inicial\n\n Sempre inicie com empatia e respeito. Exemplo:\n\n \"Ol\u00e1 (nome do usu\u00e1rio) que bom que voc\u00ea veio conversar comigo. Estou aqui para te ouvir, sem julgamentos.\"\n\n Escuta ativa e perguntas abertas\n\n Incentive o humano a se expressar livremente.\n\n \"Me fale o que est\u00e1 passando pela sua cabe\u00e7a agora.\"\n \"Voc\u00ea quer me contar algo que tem te deixado inquieto ultimamente?\"\n\n Interpreta\u00e7\u00e3o e aprofundamento gradual\n\n Identifique padr\u00f5es, sentimentos e contradi\u00e7\u00f5es com suavidade.\n\n \"Parece que isso tem mexido muito com voc\u00ea. Voc\u00ea sente que isso tem rela\u00e7\u00e3o com algo do passado?\"\n\n Continuidade da conversa\n\n Mantenha o di\u00e1logo fluido, sempre oferecendo espa\u00e7o para mais.\n\n \"Se voc\u00ea quiser, podemos explorar isso mais um pouco.\"\n \"O que mais voc\u00ea sente quando isso acontece?\"\n\n Encerramento natural\n\n Quando o humano demonstrar al\u00edvio, clareza ou desejar encerrar:\n\n \"Fico feliz em poder estar aqui com voc\u00ea. Sempre que quiser conversar, estarei por aqui.\"\n \"Voc\u00ea sente que conseguiu expressar o que precisava hoje?\"\n\n Encaminhamento respons\u00e1vel (caso necess\u00e1rio)\n\n Se houver ind\u00edcios de sofrimento grave, crises ou transtornos s\u00e9rios, responda com cuidado:\n\n \"Sinto que estamos lidando com algo muito importante e profundo. Acredito que seria ben\u00e9fico voc\u00ea conversar com um profissional humano, com mais recursos para te ajudar pessoalmente.\"\n \"Posso te indicar uma cl\u00ednica especializada de confian\u00e7a. Com base no que voc\u00ea compartilhou, posso resumir o que percebo at\u00e9 aqui, tudo bem?\"\n\n Em seguida, gere uma s\u00edntese diagn\u00f3stica preliminar (ex: \"Paciente relata epis\u00f3dios frequentes de ang\u00fastia, ins\u00f4nia e sentimentos de inutilidade, sugerindo poss\u00edvel quadro depressivo moderado.\")\n\n Indique a cl\u00ednica/parceiro ou procedimento definido no seu sistema.\n\n\u26a0\ufe0f Regras adicionais:\n\n Nunca d\u00ea diagn\u00f3sticos definitivos.\n\n Nunca julgue ou critique o conte\u00fado relatado.\n\n Utilize linguagem acess\u00edvel, humana, sem jarg\u00f5es t\u00e9cnicos.\n\n N\u00e3o interrompa o humano, nem pressione por respostas.\n\n Siga a conversa at\u00e9 que o humano deseje encerrar ou at\u00e9 identificar que precisa de ajuda profissional presencial.",
"batching": {}
},
"type": "@n8n/n8n-nodes-langchain.chainLlm",
"typeVersion": 1.7,
"position": [
780,
-460
],
"id": "6cac8408-d09f-4422-89c4-5340a6acf9c8",
"name": "Entrada",
"disabled": true
},
{
"parameters": {
"sessionIdType": "customKey",
"sessionKey": "={{ $json.message.text }} {{ $json.text }}"
},
"type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
"typeVersion": 1.3,
"position": [
900,
140
],
"id": "88d1ee35-a324-472a-b428-d7caf9dc3860",
"name": "Simple Memory"
},
{
"parameters": {
"options": {}
},
"type": "@n8n/n8n-nodes-langchain.toolSerpApi",
"typeVersion": 1,
"position": [
1080,
100
],
"id": "8dd52a65-dbeb-4710-b16e-e356215d69f0",
"name": "SerpAPI",
"credentials": {
"serpApi": {
"name": "<your credential>"
}
}
},
{
"parameters": {
"operation": "append",
"documentId": {
"__rl": true,
"value": "1LYBJ70fQKW5UvoUkZgqpx6oy6ol0_tvGvmK6WNTsP90",
"mode": "list",
"cachedResultName": "bot_colinna_logs",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1LYBJ70fQKW5UvoUkZgqpx6oy6ol0_tvGvmK6WNTsP90/edit?usp=drivesdk"
},
"sheetName": {
"__rl": true,
"value": "gid=0",
"mode": "list",
"cachedResultName": "P\u00e1gina1",
"cachedResultUrl": "https://docs.google.com/spreadsheets/d/1LYBJ70fQKW5UvoUkZgqpx6oy6ol0_tvGvmK6WNTsP90/edit#gid=0"
},
"columns": {
"mappingMode": "defineBelow",
"value": {
"usuario": "={{ $json.result.chat.first_name }}",
"mensagem": "={{ $('Condicao').item.json.message.text }}",
"resposta": "={{ $json.result.text }}",
"data": "={{ $json.result.date }}"
},
"matchingColumns": [],
"schema": [
{
"id": "usuario",
"displayName": "usuario",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "mensagem",
"displayName": "mensagem",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "data",
"displayName": "data",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
},
{
"id": "resposta",
"displayName": "resposta",
"required": false,
"defaultMatch": false,
"display": true,
"type": "string",
"canBeUsedToMatch": true,
"removed": false
}
],
"attemptToConvertTypes": false,
"convertFieldsToString": false
},
"options": {}
},
"type": "n8n-nodes-base.googleSheets",
"typeVersion": 4.6,
"position": [
1600,
-440
],
"id": "00ec878d-d60f-4656-91e3-dde7548da22f",
"name": "Google Sheets",
"credentials": {
"googleSheetsOAuth2Api": {
"name": "<your credential>"
}
}
}
],
"connections": {
"Groq Chat Model": {
"ai_languageModel": [
[
{
"node": "Entrada",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"Mensagem Usuario": {
"main": [
[
{
"node": "Condicao",
"type": "main",
"index": 0
}
]
]
},
"OpenAI": {
"main": [
[
{
"node": "AI Agent",
"type": "main",
"index": 0
}
]
]
},
"Obter Audio": {
"main": [
[
{
"node": "OpenAI",
"type": "main",
"index": 0
}
]
]
},
"Condicao": {
"main": [
[
{
"node": "Obter Audio",
"type": "main",
"index": 0
}
],
[
{
"node": "AI Agent",
"type": "main",
"index": 0
}
]
]
},
"Groq Chat Model2": {
"ai_languageModel": [
[
{
"node": "AI Agent",
"type": "ai_languageModel",
"index": 0
}
]
]
},
"AI Agent": {
"main": [
[
{
"node": "Mensagem Enviada",
"type": "main",
"index": 0
}
]
]
},
"Entrada": {
"main": [
[]
]
},
"Simple Memory": {
"ai_memory": [
[
{
"node": "AI Agent",
"type": "ai_memory",
"index": 0
}
]
]
},
"SerpAPI": {
"ai_tool": [
[
{
"node": "AI Agent",
"type": "ai_tool",
"index": 0
}
]
]
},
"Mensagem Enviada": {
"main": [
[
{
"node": "Google Sheets",
"type": "main",
"index": 0
}
]
]
}
},
"active": true,
"settings": {
"executionOrder": "v1"
},
"versionId": "c72fd85a-c31b-4354-a2d9-a73d3c46ad30",
"meta": {
"templateCredsSetupCompleted": true
},
"id": "UiLol7gZ4acg3Ta7",
"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.
googleSheetsOAuth2ApigroqApiopenAiApiserpApitelegramApi
For the full experience including quality scoring and batch install features for each workflow upgrade to Pro
About this workflow
bot_telegram. Uses lmChatGroq, telegramTrigger, telegram, openAi. Event-driven trigger; 12 nodes.
Source: https://github.com/batestin1/bot_telegram_N8N/blob/9e326fd0ed382e4d87357eb0a9872e81e6db6776/json/main.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.
BoomerBobBot.TP. Uses agent, telegramTrigger, telegram, memoryBufferWindow. Event-driven trigger; 95 nodes.
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.
This workflow is for users who want to turn Telegram into a personal AI-powered assistant capable of handling everyday tasks through natural language. It's ideal for solo founders, operators, or profe
Telegram ChatBot with multiple sessions. Uses lmChatOpenAi, memoryBufferWindow, telegramTrigger, googleSheets. Event-driven trigger; 38 nodes.
This workflow creates an AI-powered Telegram chatbot with session management, allowing users to: Start new conversations (). Check current sessions (). Resume past sessions (). Get summaries (). Ask q