Muchos equipos ya hablan con sus clientes por Telegram. Con n8n, una herramienta de código abierto para automatizar flujos de trabajo, puede crear un bot de Telegram que responda preguntas con un modelo de IA, recuerde la conversación, siga sus instrucciones sobre el tono y el alcance, y pase la conversación a una persona cuando haga falta, sin escribir una aplicación completa. Esta guía instala n8n en su servidor detrás de HTTPS, crea el bot y construye el flujo de trabajo con un modelo local en Ollama o con la API de un proveedor de IA.
En Telegram, hable con @BotFather, envíe /newbot, elija un nombre y un nombre de usuario que termine en "bot", y copie el token. Con /setdescription y /setuserpic puede dar al bot un aspecto profesional. Mantenga el token en secreto: quien lo tenga controla el bot.
n8n se ejecuta en Docker (consulte nuestra guía de instalación de Docker). Sustituya el dominio y la zona horaria por los suyos.
docker volume create n8n_data
docker run -d --name n8n --restart always \
-p 127.0.0.1:5678:5678 \
--add-host=host.docker.internal:host-gateway \
-e N8N_HOST=n8n.example.com \
-e N8N_PROTOCOL=https \
-e WEBHOOK_URL=https://n8n.example.com/ \
-e GENERIC_TIMEZONE=Asia/Hong_Kong \
-e TZ=Asia/Hong_Kong \
-e N8N_PROXY_HOPS=1 \
-v n8n_data:/home/node/.n8n \
docker.n8n.io/n8nio/n8n
WEBHOOK_URL debe ser la dirección HTTPS pública; n8n la utiliza al registrar el webhook en Telegram.
server {
listen 443 ssl;
http2 on;
server_name n8n.example.com;
ssl_certificate /etc/letsencrypt/live/n8n.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/n8n.example.com/privkey.pem;
location / {
proxy_pass http://127.0.0.1:5678;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_buffering off;
proxy_read_timeout 300s;
}
}
Abra https://n8n.example.com y cree de inmediato la cuenta de propietario. Los certificados se explican en SSL gratuito con Certbot o acme.sh.
http://host.docker.internal:11434 (con Ollama configurado como en cómo ejecutar un LLM local con Ollama, incluido el paso que permite la conexión desde contenedores Docker y sus reglas de firewall).Cree un flujo de trabajo nuevo y añada estos nodos (los nombres pueden variar ligeramente entre versiones de n8n):
qwen2.5:7b, o el modelo de chat de su proveedor) y un nodo de memoria (Simple Memory) cuya clave sea el chat ID, para que cada cliente tenga su propio historial de conversación.Las expresiones que debe usar en los campos de los nodos:
AI Agent - prompt (user message): {{ $json.message.text }}
Simple Memory - session key: {{ $('Telegram Trigger').item.json.message.chat.id }}
Telegram - chat ID: {{ $('Telegram Trigger').item.json.message.chat.id }}
Telegram - text: {{ $json.output }}
Un buen mensaje de sistema mantiene las respuestas breves y centradas en el tema, por ejemplo:
You are the customer service assistant of ACME Hosting.
Answer briefly and politely in the customer's language.
Only answer questions about our services, orders and technical support.
If you are not sure, or the customer asks for a refund or a person,
say that a colleague will reply soon. Never invent prices or promises.
Guarde el flujo de trabajo y actívelo; n8n registrará entonces el webhook en Telegram. Envíe un mensaje a su bot. Si no ocurre nada, compruebe el estado del webhook:
curl -s "https://api.telegram.org/bot<YOUR_BOT_TOKEN>/getWebhookInfo"
El campo url debe ser su dominio de n8n, y last_error_message explica los fallos, como problemas de certificado o un servidor inaccesible.
{{ $json.message.chat.id }} sea uno de los chat ID de su equipo.Solo se puede configurar un webhook por token de bot. Otro flujo de trabajo, una ejecución de prueba o un script que use el mismo token lo reemplaza. Compruebe getWebhookInfo, mantenga un único flujo de trabajo activo por bot y use un bot distinto para las pruebas.
En CPU, los modelos más pequeños responden más rápido. Mantenga breve el mensaje de sistema, limite la ventana de memoria a los últimos 10 mensajes y mantenga el modelo cargado en Ollama.
Sí. El mismo flujo de trabajo puede consultar pedidos en su base de datos, crear tickets de soporte, publicar en un grupo o enviar informes diarios. Los requisitos de servidor de n8n se tratan en requisitos de servidor para Dify, n8n y agentes de IA.
¿Sigue sin resolverlo después de seguir estos pasos? Abra un ticket de soporte y el equipo técnico de IMIDC, disponible 24/7, le ayudará. Incluya la IP del servidor, su dominio de n8n y la salida de getWebhookInfo y de docker logs n8n para que podamos localizar el problema más rápido.