>_ Black Engine

Cómo crear un bot en Telegram paso a paso (con IA opcional)

Por Black Engine · 6 de noviembre de 2026

Para crear un bot en Telegram abres un chat con @BotFather (el bot oficial de Telegram para crear bots), escribes /newbot, eliges nombre y usuario, y recibes un token. Con ese token, un programa (en Python, Node o una herramienta como n8n) recibe los mensajes y responde. La API de bots de Telegram es gratuita. Aquí tienes los pasos completos, código listo y cómo agregarle IA.

Paso 1: crear el bot con BotFather

  1. En Telegram busca @BotFather (verifica que tenga la palomita azul de cuenta oficial).
  2. Escribe /newbot.
  3. Escribe el nombre visible, por ejemplo: Pedidos Panadería Sol.
  4. Escribe el usuario, que debe terminar en bot: panaderiasol_bot.
  5. BotFather te responde con un token parecido a 123456789:AAH.... Guárdalo como contraseña: quien lo tenga controla tu bot.

Comandos útiles de BotFather:

  • /setdescription y /setabouttext: lo que ve la gente antes de iniciar.
  • /setuserpic: foto del bot.
  • /setcommands: menú de comandos (por ejemplo start - Iniciar, menu - Ver menú).
  • /setprivacy: si está activado, en grupos el bot solo ve comandos y menciones.

Paso 2: hacer que el bot responda (Python)

La librería más usada es python-telegram-bot:

python3 -m venv .venv && source .venv/bin/activate
pip install python-telegram-bot
export TELEGRAM_TOKEN="tu_token"
# bot.py
import os
from telegram import Update
from telegram.ext import Application, CommandHandler, MessageHandler, ContextTypes, filters

async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
    await update.message.reply_text("¡Hola! Escribe /menu para ver opciones.")

async def menu(update: Update, context: ContextTypes.DEFAULT_TYPE):
    await update.message.reply_text("1) Horario\n2) Ubicación\n3) Hacer pedido")

async def texto(update: Update, context: ContextTypes.DEFAULT_TYPE):
    t = update.message.text.lower()
    if "horario" in t or t == "1":
        await update.message.reply_text("Lun-sáb de 7 a 20 h.")
    else:
        await update.message.reply_text("No te entendí. Escribe /menu.")

app = Application.builder().token(os.environ["TELEGRAM_TOKEN"]).build()
app.add_handler(CommandHandler("start", start))
app.add_handler(CommandHandler("menu", menu))
app.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, texto))
app.run_polling()

Corre python bot.py, busca tu bot en Telegram, escribe /start y listo. Este ejemplo usa polling (el programa pregunta a Telegram si hay mensajes nuevos), que sirve para empezar sin configurar un servidor web. Para producción puedes usar webhooks. La sintaxis corresponde a las versiones recientes de la librería (v20 en adelante); revisa la documentación de python-telegram-bot si usas otra.

Opción sin código: n8n

En n8n hay un nodo Telegram Trigger (recibe mensajes) y un nodo Telegram (envía). Agregas la credencial con tu token, conectas: Telegram Trigger → lógica → Telegram (Send Message). Es una forma rápida de crear un bot sin programar. Si n8n es nuevo para ti, empieza por qué es n8n.

Bot para Telegram con IA

Para que el bot entienda preguntas libres, cambia la función texto para que mande el mensaje a un modelo (ChatGPT, Claude, Gemini o uno local):

import anthropic
claude = anthropic.AsyncAnthropic()  # lee ANTHROPIC_API_KEY

async def texto(update: Update, context: ContextTypes.DEFAULT_TYPE):
    r = await claude.messages.create(
        model="claude-sonnet-5-5",  # verifica el modelo vigente en docs.anthropic.com
        max_tokens=400,
        system="Eres el asistente de Panadería Sol. Solo hablas de productos, horarios y pedidos.",
        messages=[{"role": "user", "content": update.message.text}],
    )
    await update.message.reply_text(r.content[0].text)

En n8n es todavía más simple: pones un nodo AI Agent entre el trigger y el envío. Si prefieres no pagar API y tienes una computadora potente, puedes usar un modelo local; ver crear agente de IA local.

Botones en lugar de “escribe 1, 2 o 3”

Telegram permite poner botones debajo de un mensaje (inline keyboard). Son más cómodos para el usuario y te ahorran interpretar texto:

from telegram import InlineKeyboardButton, InlineKeyboardMarkup
from telegram.ext import CallbackQueryHandler

async def menu(update: Update, context: ContextTypes.DEFAULT_TYPE):
    botones = [[InlineKeyboardButton("Horario", callback_data="horario"),
                InlineKeyboardButton("Hacer pedido", callback_data="pedido")]]
    await update.message.reply_text("¿Qué necesitas?", reply_markup=InlineKeyboardMarkup(botones))

async def boton(update: Update, context: ContextTypes.DEFAULT_TYPE):
    q = update.callback_query
    await q.answer()  # quita el "reloj" del botón
    if q.data == "horario":
        await q.edit_message_text("Lun-sáb de 7 a 20 h.")

app.add_handler(CallbackQueryHandler(boton))

El uso más subestimado: avisos para ti y tu equipo

No todo bot tiene que platicar con clientes. Uno de los usos más prácticos es que tus sistemas te avisen por Telegram: un pedido nuevo en la tienda, un pago recibido, un error en el servidor, el reporte diario de ventas. Para eso ni siquiera necesitas un programa corriendo todo el día; basta una llamada a la API desde cualquier script o desde n8n:

curl -s "https://api.telegram.org/bot$TELEGRAM_TOKEN/sendMessage" \
  -d chat_id=TU_CHAT_ID -d text="Nuevo pedido #1043 por $850"

El chat_id es el identificador de tu chat o grupo con el bot. Lo obtienes escribiéndole algo al bot y consultando https://api.telegram.org/bot<TOKEN>/getUpdates en el navegador (con el bot detenido, para que no “consuma” el mensaje antes). No compartas esa URL: lleva tu token.

Recordar a cada usuario

Cada mensaje trae update.effective_chat.id, un número único por conversación. Úsalo como clave para guardar el estado de cada persona (qué está pidiendo, en qué paso va, su historial con la IA). Para empezar, context.user_data de python-telegram-bot guarda datos por usuario en memoria; si el bot se reinicia, se pierden, así que para pedidos reales usa una base de datos.

¿Telegram o WhatsApp para tu negocio?

  • Telegram: gratis, sin aprobación de plantillas, bots oficiales en grupos y canales. Ideal para comunidades, avisos internos y equipos.
  • WhatsApp: es donde están casi todos tus clientes en México, pero la API oficial requiere verificación de Meta y cobra ciertos mensajes. Ve cómo crear un bot para WhatsApp.

Muchos negocios usan los dos: WhatsApp hacia el cliente y Telegram para los avisos internos.

Bots de Telegram en grupos

A diferencia de WhatsApp, en Telegram los bots en grupos son oficiales:

  1. Agrega el bot al grupo como cualquier miembro.
  2. Si debe borrar spam o dar bienvenida, hazlo administrador y dale solo los permisos necesarios.
  3. Con /setprivacy en BotFather decides si lee todos los mensajes o solo comandos.

Si buscabas esto para WhatsApp, lee bot para grupo de WhatsApp: allá es mucho más limitado.

Dónde dejar el bot corriendo

Tu bot solo responde mientras el programa está encendido. Opciones: un servidor virtual, una plataforma como Render, Railway o Fly.io, o una Raspberry Pi en tu casa. Si es en servidor, usa un administrador de procesos (systemd, Docker) para que se reinicie solo.

Errores comunes

  • Subir el token a GitHub: cualquiera puede tomar tu bot. Usa variables de entorno y, si se filtra, revócalo en BotFather.
  • “Conflict: terminated by other getUpdates request”: tienes dos copias del bot corriendo con el mismo token. Apaga una.
  • El bot no responde en el grupo: el modo privacidad está activado; menciona al bot o cambia /setprivacy.
  • Correr el bot en tu laptop y que se apague cuando cierras la tapa.

Para cerrar

Crear un bot de Telegram es de lo más accesible en automatización: gratis, oficial y con buena documentación en core.telegram.org/bots. Si lo quieres para tu negocio conectado a pedidos, inventario o IA, en Black Engine lo construimos y lo dejamos corriendo; escríbenos por WhatsApp.

Preguntas frecuentes

¿Crear un bot en Telegram cuesta?

No. Crear el bot con BotFather y usar la Bot API de Telegram es gratis. Solo pagas el servidor donde corre tu programa y, si lo usas, el modelo de IA.

¿Necesito saber programar para hacer un bot de Telegram?

Para crear el bot, no: BotFather lo hace con un chat. Para que haga algo útil, necesitas un poco de código o una herramienta como n8n o Make.

¿Puedo meter un bot de Telegram a un grupo?

Sí, es oficial. Lo agregas como miembro y, si debe moderar, lo haces administrador con los permisos que necesite.

¿Qué hago si mi token de bot se filtró?

En BotFather usa /revoke (o la opción para regenerar el token del bot). El token viejo deja de funcionar y actualizas el nuevo en tu programa.

Pide ayuda por WhatsApp