Crear un Bot de Telegram con n8n: Comandos, Notificaciones y Menus Interactivos
En Latinoamerica, Telegram es una fuerza. Mientras que en otras regiones compite con WhatsApp de forma pareja, en LATAM ha crecido de manera impresionante, especialmente entre comunidades tech, emprendedores y negocios locales. Y hay una razon concreta: los bots de Telegram son increiblemente poderosos y accesibles.
Soy Javier, fundador de Trinico Ventures en Chile, y he creado bots de Telegram para varios clientes usando n8n como motor de automatizacion. Desde bots simples que envian notificaciones hasta sistemas completos de atencion al cliente para negocios locales con menus interactivos y procesamiento de pedidos.
En esta guia te voy a ensenar como crear tu propio bot de Telegram con n8n, paso a paso. Vamos a cubrir desde la configuracion basica hasta un ejemplo completo de bot de consultas para un negocio local, que es probablemente el caso de uso mas demandado en LATAM.
Por que Telegram y no WhatsApp
Antes de empezar, dejame explicar por que elijo Telegram para automatizaciones.
WhatsApp Business API existe, pero es cara, requiere aprobacion y tiene restricciones significativas sobre lo que puedes hacer. Telegram, en cambio, te deja crear bots gratis, sin limite de mensajes, con una API abierta y extremadamente bien documentada.
Ademas, Telegram tiene funcionalidades que WhatsApp no ofrece: botones inline, teclados personalizados, comandos con barra, grupos de hasta 200 mil miembros, canales con suscriptores ilimitados y soporte nativo para archivos grandes.
Para negocios en LATAM, Telegram se ha convertido en el canal preferido para comunidades, soporte al cliente y notificaciones automatizadas. Muchos restaurantes, tiendas online y negocios de servicios ya tienen bots en Telegram que atienden a sus clientes.
Crear tu bot en Telegram
El primer paso es crear el bot directamente en Telegram. Esto se hace a traves de BotFather, que es el bot oficial de Telegram para gestionar bots.
Abre Telegram y busca a BotFather. Inicia una conversacion y envia el comando /newbot. Te va a pedir un nombre para tu bot, que es el nombre que se muestra en el perfil, y un username que debe terminar en “bot”. Por ejemplo, si tu negocio se llama “Cafe Aroma”, puedes ponerle de nombre “Cafe Aroma Bot” y de username “CafeAromaBot”.
BotFather te va a dar un token de acceso. Ese token es como la contrasena de tu bot, asi que guardalo en un lugar seguro. Se ve algo asi: una secuencia de numeros, dos puntos y un string alfanumerico largo.
Opcionalmente, puedes configurar la descripcion del bot, la foto de perfil y los comandos disponibles. Te recomiendo hacer esto porque le da un aspecto profesional. Usa el comando /setdescription para agregar una descripcion, /setuserpic para agregar una foto y /setcommands para definir los comandos que tu bot acepta.
Configurar Telegram en n8n
Ahora vamos a conectar tu bot con n8n. Si todavia no tienes n8n, empieza aqui con una cuenta gratuita y en minutos tendras tu entorno listo.
En n8n, ve a Configuracion y luego a Credenciales. Crea una nueva credencial de tipo Telegram. Solo necesitas pegar el token que te dio BotFather. Prueba la conexion y si todo esta bien, guardala.
n8n tiene dos nodos principales para Telegram. El Telegram Trigger que escucha eventos de tu bot como mensajes nuevos, comandos y callbacks de botones. Y el nodo Telegram que envia mensajes, fotos, documentos y otras acciones.
Ejemplo 1: Bot de notificaciones para equipo
El caso de uso mas simple y util es un bot que envia notificaciones automaticas a un grupo de Telegram. Muchos equipos en LATAM usan grupos de Telegram en lugar de Slack porque es gratuito y mas accesible.
Primero, crea un grupo en Telegram e invita a tu bot. Para que el bot pueda leer mensajes del grupo, necesitas habilitarle el modo “puede leer mensajes de grupo” desde BotFather usando el comando /setprivacy y seleccionando Disable.
El flujo en n8n es simple. Tienes un trigger que puede ser un webhook, un horario programado o un evento de otra aplicacion. Luego un nodo de Telegram configurado con la accion “Send Message” donde especificas el chat ID del grupo como destinatario y el mensaje que quieres enviar.
Para obtener el chat ID del grupo, hay un truco simple. Agrega tu bot al grupo, enviale un mensaje, y luego usa el nodo HTTP Request en n8n para consultar la URL de la API de Telegram con el metodo getUpdates usando tu token. En la respuesta vas a encontrar el chat ID del grupo, que generalmente es un numero negativo.
Con esto configurado, puedes enviar notificaciones automaticas al grupo desde cualquier flujo de n8n. Yo lo uso para enviar alertas de ventas, recordatorios de reuniones y actualizaciones de proyectos.
Ejemplo 2: Bot de consultas para negocio local
Este es el ejemplo mas completo y el que mas valor le da a un negocio local. Voy a mostrarte como armar un bot que atienda consultas de clientes de un restaurante, pero la logica aplica para cualquier tipo de negocio: peluqueria, taller mecanico, tienda de ropa, consultorio medico.
El bot tiene que hacer tres cosas principales: mostrar el menu o catalogo, responder preguntas frecuentes y permitir hacer reservas o pedidos.
Empecemos con la estructura general del flujo.
El primer nodo es un Telegram Trigger configurado para escuchar mensajes y callback queries. Los mensajes son lo que el usuario escribe y las callback queries son las respuestas a los botones inline.
Despues del trigger, necesitas un nodo Switch que analiza el tipo de interaccion. Si es un comando como /start o /menu, toma un camino. Si es un callback de boton, toma otro. Si es un mensaje de texto libre, toma otro diferente.
Para el comando /start, configuras un nodo de Telegram que envia un mensaje de bienvenida con un teclado inline. El mensaje dice algo como: “Hola, bienvenido a Cafe Aroma. Soy el asistente virtual. Como puedo ayudarte?” y debajo muestra botones con las opciones: Ver Menu, Hacer Reserva, Horarios, Ubicacion y Hablar con un Humano.
Cada boton tiene un callback_data asociado que identifica la opcion seleccionada. Cuando el usuario presiona un boton, el Telegram Trigger recibe el callback y el nodo Switch lo dirige al camino correspondiente.
Para la opcion de Ver Menu, el flujo consulta una hoja de Google Sheets donde el dueno del restaurante mantiene su menu actualizado con nombre del plato, descripcion, precio y si tiene foto. El workflow arma un mensaje bonito con el menu formateado y lo envia. Si hay fotos, envia cada plato como una foto con caption.
Para la opcion de Hacer Reserva, el flujo inicia una conversacion guiada. Primero pregunta para cuantas personas, luego la fecha deseada, luego la hora preferida y finalmente el nombre para la reserva. Cada respuesta se guarda en variables del workflow.
Aqui viene algo importante: Telegram no tiene “sesiones” nativas, asi que necesitas manejar el estado de la conversacion. Yo uso una hoja de Google Sheets como base de datos simple donde guardo el chat ID del usuario y en que paso de la conversacion esta. Cada vez que llega un mensaje, el workflow busca en la hoja si ese usuario tiene una conversacion activa y en que paso esta.
Cuando el usuario completa todos los pasos de la reserva, el workflow crea un evento en Google Calendar, envia un mensaje de confirmacion al usuario con los detalles, y notifica al restaurante por un grupo de Telegram privado del staff.
Para Preguntas frecuentes, tengo una base de datos en Google Sheets con preguntas y respuestas comunes. Cuando el usuario escribe una pregunta libre, el workflow busca en la base usando coincidencia de palabras clave. Si no encuentra respuesta, le ofrece las opciones del menu principal o la opcion de hablar con un humano.
Para Hablar con un Humano, el bot envia un mensaje al grupo privado del staff diciendo que un cliente quiere atencion personalizada, incluye el nombre de usuario del cliente y la hora. El staff puede responder directamente al usuario desde el grupo usando la funcion de reply.
Este bot lo implemente para tres negocios locales en Santiago. El restaurante que lo uso como caso de prueba paso de recibir 15 llamadas diarias para hacer reservas a solo 3 o 4. El resto se maneja completamente por el bot. El dueno me dijo que le ahorra al menos 2 horas diarias de trabajo administrativo.
Ejemplo 3: Menu interactivo con categorias
Los menus interactivos de Telegram son una herramienta poderosa para guiar al usuario por diferentes opciones sin que tenga que escribir nada.
Puedes crear menus con multiples niveles. Por ejemplo, un primer nivel con las categorias principales: Productos, Servicios, Soporte, Contacto. Al seleccionar Productos, aparece un segundo nivel con las subcategorias: Electronica, Ropa, Hogar. Al seleccionar una subcategoria, aparecen los productos individuales.
En n8n, cada nivel del menu es un nodo de Telegram con botones inline. El callback_data de cada boton indica la categoria seleccionada y el nivel actual. Por ejemplo, el boton de Electronica tiene un callback como “cat_electronica_nivel2”. El nodo Switch lee ese callback y decide que submenu mostrar.
Para mantener esto mantenible cuando tienes muchas categorias, te recomiendo almacenar la estructura del menu en una hoja de calculo o base de datos externa. Asi el dueno del negocio puede agregar o quitar categorias sin tocar el workflow.
Ejemplo 4: Notificaciones programadas a suscriptores
Otro uso excelente es enviar notificaciones programadas a una lista de suscriptores. Piensa en esto como una newsletter pero por Telegram.
El flujo tiene dos partes. La primera es la suscripcion: cuando alguien envia /suscribir a tu bot, el workflow guarda su chat ID en una lista. Cuando envia /desuscribir, lo elimina. La lista puede estar en Google Sheets, Airtable o cualquier base de datos.
La segunda parte es el envio. Un S