Tutorial Completo: Bot de Telegram con IA usando N8N y OpenRouter
Tabla de contenidos
- 1 Introducción
- 2 Requisitos previos
- 3 Paso 1: Crear el Bot de Telegram
- 4 Paso 2: Obtener API Key de OpenRouter
- 5 Paso 3: Configurar N8N
- 6 Paso 4: Añadir el Telegram Trigger
- 7 Paso 5: Añadir el AI Agent
- 8 Paso 6: Añadir el nodo Telegram para enviar respuestas
- 9 Paso 7: Conectar los nodos
- 10 Paso 8: Guardar y activar el Workflow
- 11 Paso 9: Probar el Bot
- 12 Paso 10: Personalizar el Bot (opcional)
- 13 Solución de problemas
- 14 Mejoras adicionales
- 15 Estructura final del Workflow
- 16 Recursos adicionales
- 17 Conclusión
Introducción
En este tutorial aprenderás a crear un bot de Telegram inteligente que responde usando inteligencia artificial. El bot utiliza:
- Telegram para recibir y enviar mensajes
- N8N como plataforma de automatización
- OpenRouter para acceder a modelos de IA (usaremos DeepSeek Chat que es gratuito)
- AI Agent para procesar las conversaciones
- Memory para recordar el contexto de la conversación
Requisitos previos
Antes de empezar necesitas:
- Una cuenta en Telegram
- Una instancia de N8N funcionando (local o en la nube)
- Una cuenta en OpenRouter (gratuita)
Paso 1: Crear el Bot de Telegram
1.1 Contactar a BotFather
- Abre Telegram (aplicación móvil o web)
- Busca el usuario @BotFather
- Inicia una conversación haciendo clic en «Start»
1.2 Crear el nuevo bot
- Envía el comando:
/newbot - BotFather te pedirá un nombre para tu bot:
- Escribe un nombre descriptivo
- Ejemplo:
Mi Asistente IA
- Luego te pedirá un username (debe terminar en «bot»):
- Debe ser único en Telegram
- Ejemplo:
mi_asistente_ia_bot
- Guarda el Token de API que te proporciona
- Se verá así:
1234567890:ABCdefGHIjklMNOpqrsTUVwxyz - Este token es como la contraseña de tu bot, guárdalo en un lugar seguro
- Se verá así:
Paso 2: Obtener API Key de OpenRouter
2.1 Crear cuenta en OpenRouter
- Ve a https://openrouter.ai
- Haz clic en «Sign Up» o «Get Started»
- Regístrate con tu email o cuenta de Google
2.2 Generar API Key
- Una vez dentro, ve a «Keys» en el menú (o https://openrouter.ai/keys)
- Haz clic en «Create Key»
- Dale un nombre:
N8N Telegram Bot - Haz clic en «Create»
- Copia y guarda la API Key que se genera
- Se verá así:
sk-or-v1-xxxxxxxxxxxxxxxxxxxxxxxx - Solo se muestra una vez, guárdala bien
- Se verá así:
2.3 Verificar créditos (opcional)
- Ve a la sección «Credits»
- OpenRouter da algunos créditos gratuitos al registrarte
- Usaremos el modelo DeepSeek que es gratuito, así que no necesitas añadir créditos
Paso 3: Configurar N8N
3.1 Acceder a N8N
- Abre tu navegador
- Ve a tu instancia de N8N (ejemplo:
https://tu-n8n.ngrok-free.app) - Inicia sesión con tus credenciales
3.2 Crear un nuevo Workflow
- En el dashboard de N8N, haz clic en «Workflows» en el menú lateral
- Haz clic en el botón «Add Workflow» o el icono «+»
- Dale un nombre al workflow:
Bot Telegram IA - Haz clic en «Save» para guardar el workflow vacío
Paso 4: Añadir el Telegram Trigger
4.1 Añadir el nodo
- En el canvas vacío, haz clic en el botón «+» o «Add first step»
- En el buscador, escribe:
Telegram Trigger - Selecciona «Telegram Trigger» de la lista
4.2 Configurar las credenciales de Telegram
- En el nodo, verás «Credential to connect with»
- Haz clic en «Select Credential»
- Como es la primera vez, selecciona «Create New Credential»
- Se abrirá un modal con el formulario:
- Access Token: Pega el token que te dio BotFather
- Haz clic en «Save» para guardar las credenciales
- El modal se cerrará y volverás al nodo
4.3 Configurar el tipo de actualización
- En el campo «Updates», selecciona:
message- Esto hace que el bot escuche solo mensajes de texto
- Deja el resto de opciones por defecto
Paso 5: Añadir el AI Agent
5.1 Añadir el nodo AI Agent
- Haz clic en el «+» a la derecha del nodo Telegram Trigger
- En el buscador, escribe:
AI Agent - Selecciona «AI Agent» de la lista
5.2 Configurar el Chat Model (OpenRouter)
- En el nodo AI Agent verás varios campos
- Busca el campo «Chat Model» (tendrá un asterisco rojo indicando que es obligatorio)
- Haz clic en «Choose Model to Use» o el menú desplegable
- Selecciona «OpenRouter Chat Model»
5.3 Configurar las credenciales de OpenRouter
- Se abrirá la configuración del modelo OpenRouter
- En «Credential to connect with», haz clic en «Select Credential»
- Selecciona «Create New Credential»
- En el formulario que aparece:
- API Key: Pega tu API Key de OpenRouter (la que empieza con
sk-or-v1-)
- API Key: Pega tu API Key de OpenRouter (la que empieza con
- Haz clic en «Save»
- Dale un nombre a esta credencial si te lo pide:
OpenRouter account
5.4 Seleccionar el modelo DeepSeek
- Ahora verás el campo «Model»
- Haz clic en el menú desplegable
- Busca y selecciona:
deepseek/deepseek-chat- Este modelo es completamente gratuito
- Tiene muy buen rendimiento
5.5 Configurar la memoria (Simple Memory)
- En el nodo AI Agent, busca el campo «Memory»
- Haz clic en «Add Memory» o en el menú desplegable
- Selecciona «Simple Memory» (Window Buffer Memory)
- Esto permite que el bot recuerde la conversación
- En la configuración de Simple Memory:
- Context Window Length: Deja el valor por defecto (5-10 mensajes)
- Guarda la configuración
5.6 Añadir herramienta Wikipedia (opcional)
- En el nodo AI Agent, busca el campo «Tool»
- Haz clic en «Add Tool»
- Selecciona «Wikipedia»
- Esto permite que el bot busque información en Wikipedia cuando sea necesario
- Deja la configuración por defecto
Paso 6: Añadir el nodo Telegram para enviar respuestas
6.1 Añadir el nodo Telegram
- Haz clic en el «+» a la derecha del nodo AI Agent
- En el buscador, escribe:
Telegram - Selecciona «Telegram» (no Telegram Trigger)
6.2 Configurar las credenciales
- En «Credential to connect with», selecciona las credenciales de Telegram que creaste antes
- Deben aparecer automáticamente en el menú
6.3 Configurar la operación
- En «Resource», selecciona:
Message - En «Operation», selecciona:
Send a Text MessageosendMessage
6.4 Configurar el Chat ID
- En el campo «Chat ID», haz clic
- Activa el modo de expresiones (icono «fx» o «={«)
- Pega esta expresión:
={{ $('Telegram Trigger').item.json.message.chat.id }}
Esta expresión obtiene el ID del chat desde el Telegram Trigger para responder al mismo usuario que envió el mensaje.
6.5 Configurar el mensaje
- En el campo «Text» o «Message», activa el modo de expresiones
- Pega esta expresión:
={{ $json.output }}
Esta expresión toma la respuesta generada por el AI Agent.
Paso 7: Conectar los nodos
7.1 Verificar las conexiones
Asegúrate de que los nodos estén conectados en este orden:
[Telegram Trigger] → [AI Agent] → [Telegram - Send Message]
Las líneas verdes entre los nodos indican que están correctamente conectados.
7.2 Verificar los subnodos
Dentro del AI Agent deberías ver conectados:
- OpenRouter Chat Model (como Chat Model)
- Simple Memory (como Memory)
- Wikipedia (como Tool, opcional)
Paso 8: Guardar y activar el Workflow
8.1 Guardar el workflow
- Haz clic en el botón «Save» en la parte superior derecha
- Confirma que el nombre sea correcto:
Bot Telegram IA
8.2 Activar el workflow
- En la parte superior derecha, busca el toggle «Inactive/Active»
- Haz clic para activarlo (debe ponerse en verde)
- Verás un mensaje confirmando que el workflow está activo
⚠️ Importante: El workflow debe estar activo para que el bot funcione. Si está inactivo, no responderá a mensajes.
Paso 9: Probar el Bot
9.1 Buscar tu bot en Telegram
- Abre Telegram (móvil o web)
- En el buscador, escribe el username de tu bot (ejemplo:
@mi_asistente_ia_bot) - Haz clic en el bot cuando aparezca
- Haz clic en «Start» o «Iniciar»
9.2 Enviar mensajes de prueba
Prueba con estos mensajes:
- Mensaje simple:
Hola, ¿cómo estás?El bot debería responder de manera amigable. - Pregunta con contexto:
¿Cuál es la capital de Francia?Luego:¿Y su población?Gracias a la memoria, el bot entenderá que «su» se refiere a Francia. - Pregunta para Wikipedia:
¿Quién fue Albert Einstein?El bot debería buscar en Wikipedia y dar una respuesta informada.
9.3 Verificar las ejecuciones en N8N
- Ve a N8N
- Haz clic en «Executions» en el menú lateral
- Verás una lista de todas las veces que el workflow se ejecutó
- Haz clic en cualquier ejecución para ver los datos que pasaron por cada nodo
Paso 10: Personalizar el Bot (opcional)
10.1 Añadir un prompt del sistema
- Ve al nodo AI Agent
- Busca el campo «Prompt» o «System Message»
- Añade instrucciones personalizadas:
Eres un asistente útil y amigable. Respondes de manera clara y concisa.
Siempre eres educado y profesional. Si no sabes algo, lo admites honestamente.
10.2 Cambiar el modelo de IA
Si quieres probar otros modelos:
- Ve al nodo OpenRouter Chat Model
- En «Model», selecciona otro modelo:
google/gemini-2.0-flash-exp:free(gratis, rápido)meta-llama/llama-3.1-8b-instruct:free(gratis)anthropic/claude-3.5-sonnet(de pago, muy potente)openai/gpt-4o-mini(de pago, económico)
10.3 Ajustar la memoria
- Ve al nodo Simple Memory
- Cambia «Context Window Length»:
- 5: Memoria corta (últimos 5 mensajes)
- 10: Memoria media
- 20: Memoria larga (más contexto, pero más tokens usados)
10.4 Añadir más herramientas
En el nodo AI Agent, puedes añadir más herramientas:
- Calculator: Para cálculos matemáticos
- Code: Para ejecutar código
- HTTP Request: Para consultar APIs externas
Solución de problemas
❌ El bot no responde
Posibles causas:
- El workflow no está activo
- Solución: Ve a N8N y activa el toggle «Active»
- Token de Telegram incorrecto
- Solución: Verifica el token en las credenciales, debe coincidir con el de BotFather
- Ngrok se detuvo (si usas ngrok)
- Solución: Reinicia ngrok y actualiza la URL del webhook si es necesario
- Error en las credenciales
- Solución: Ve a «Executions» en N8N y mira el error específico
❌ Error «Invalid API Key» de OpenRouter
Solución:
- Ve a OpenRouter y verifica que la API Key sea correcta
- Asegúrate de copiar la key completa (incluyendo
sk-or-v1-) - Recrea las credenciales en N8N si es necesario
❌ El bot responde pero con errores o texto extraño
Posible causa: La expresión del campo «Text» es incorrecta
Solución:
- Ve al nodo Telegram (Send Message)
- Ejecuta el workflow manualmente
- Inspecciona la salida del AI Agent
- Ajusta la expresión según la estructura de datos
- Prueba:
={{ $json.output }} - O:
={{ $json.text }} - O:
={{ $json.response }}
- Prueba:
❌ El bot no recuerda la conversación
Posible causa: La memoria no está configurada o conectada
Solución:
- Verifica que el nodo Simple Memory esté conectado al AI Agent
- Asegúrate de que la memoria esté en el campo «Memory» del AI Agent
- Aumenta el «Context Window Length» si es necesario
❌ Respuestas muy lentas
Posible causa: El modelo tarda en procesar
Solución:
- Usa un modelo más rápido como
deepseek/deepseek-chat - Reduce el «Context Window Length» de la memoria
- Elimina herramientas innecesarias del AI Agent
Mejoras adicionales
1. Añadir comandos personalizados
Puedes hacer que el bot responda a comandos específicos:
- Añade un nodo «IF» entre Telegram Trigger y AI Agent
- Configura condiciones:
- Si el mensaje empieza con
/help: responder con instrucciones - Si el mensaje empieza con
/reset: limpiar la memoria - Si no: pasar al AI Agent normalmente
- Si el mensaje empieza con
2. Añadir límite de uso
Para evitar abusos:
- Añade un nodo «Code» para llevar un contador por usuario
- Limita a X mensajes por día/hora
- Responde con un mensaje cuando se alcance el límite
3. Guardar conversaciones en base de datos
Para análisis posterior:
- Añade un nodo de base de datos (PostgreSQL, MySQL, etc.)
- Guarda cada mensaje y respuesta con timestamp
- Analiza las conversaciones más tarde
4. Añadir botones interactivos
Telegram soporta botones en los mensajes:
- Usa el nodo Telegram con «Send Message»
- Añade «Reply Markup» con botones inline
- Captura las respuestas con Telegram Trigger (callback_query)
Estructura final del Workflow
┌─────────────────┐
│ Telegram Trigger│
│ (message) │
└────────┬────────┘
│
▼
┌─────────────────┐
│ AI Agent │
│ ┌──────────┐ │
│ │OpenRouter│ │
│ │ Model │ │
│ └──────────┘ │
│ ┌──────────┐ │
│ │ Simple │ │
│ │ Memory │ │
│ └──────────┘ │
│ ┌──────────┐ │
│ │Wikipedia │ │
│ │ (Tool) │ │
│ └──────────┘ │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Telegram │
│ (Send Message) │
└─────────────────┘
Recursos adicionales
- Documentación de N8N: https://docs.n8n.io
- Documentación de OpenRouter: https://openrouter.ai/docs
- Telegram Bot API: https://core.telegram.org/bots/api
- Lista de modelos en OpenRouter: https://openrouter.ai/models
Conclusión
¡Felicidades! Ahora tienes un bot de Telegram inteligente funcionando con IA. El bot puede:
- Mantener conversaciones naturales
- Recordar el contexto de la conversación
- Buscar información en Wikipedia cuando sea necesario
- Responder 24/7 de manera automática
Puedes seguir mejorándolo añadiendo más herramientas, personalizando las respuestas, o integrándolo con otros servicios.