Telegram y WhatsApp

Por: Artiko
nodtelegramwhatsappcanalesbotwebhook

Telegram y WhatsApp

Objetivos

  • Emparejar un bot de Telegram con Nod desde la app.
  • Vincular WhatsApp por código QR o con Meta Cloud API.
  • Usar los comandos del chat.
  • Saber qué pasos no se pueden hacer desde un canal.
  • Configurar un canal con variables de entorno y registrar un webhook de Telegram.

Una conversación, varios canales

Con Telegram o WhatsApp chateas con el mismo asistente: la misma conversación, memoria y tareas que en la app de Nod. Nod responde en la app desde la que escribiste, y todo aparece también en el chat de la app de Nod.

Con un servidor propio, los canales siguen conectados mientras el servidor está en marcha. Con un asistente local, funcionan mientras Nod está abierto y el equipo despierto.

TelegramWhatsApp con código QR
NecesitasUn bot de Telegram, creado con BotFatherUna cuenta de WhatsApp registrada
Funciona en un portátilSíSí
Quién puede escribir a NodSolo la cuenta de Telegram que emparejasTu número personal, o tu propio chat contigo
Archivos de NodImágenes, documentos, vídeo y audioImágenes, documentos, vídeo y audio
Cuándo puede escribir NodMientras Nod correMientras Nod corre y WhatsApp está conectado

Conectar Telegram

Entra en Channels en la barra lateral y selecciona Connect en Telegram.

sequenceDiagram
    actor Tu as Tú
    participant Nod
    participant BF as BotFather
    participant Bot as Tu bot
    Tu->>BF: /newbot, nombre y username terminado en bot
    BF-->>Tu: Token del bot
    Tu->>Nod: Pega el token y Connect bot
    Nod-->>Tu: Código de emparejamiento, válido 15 minutos
    Tu->>Bot: Start
    Bot-->>Nod: Cuenta que pulsó Start
    Tu->>Nod: Revisa nombre y username, Connect account
    Nod-->>Tu: Solo esa cuenta puede escribir a Nod
  1. En Create a bot, escanea el código o selecciona Open Telegram para abrir BotFather. Envía /newbot, elige un nombre y después un username que termine en bot, por ejemplo my_nod_bot.
  2. Selecciona I have my token. Pega la respuesta de BotFather, o solo el token, en Bot token y selecciona Connect bot.
  3. En Link your account, escanea el código nuevo o selecciona Open Telegram, y después Start en el chat del bot. El código sirve durante 15 minutos. Si Start no conecta, selecciona Copy pairing command y pégalo en el chat del bot.
  4. En Confirm account, revisa tu nombre y username y selecciona Connect account.
  5. Abre Manage Telegram. En Chat from Telegram, selecciona Open on this computer o Scan on phone para abrir el chat del bot.

Detalles:

  • Si el enlace no funciona, selecciona Enter your user ID instead y escribe el ID que te envía @userinfobot.
  • Esta configuración funciona sin URL pública. Si tu bot ya usa un webhook, elimínalo antes de conectar aquí.
  • Para desconectar, selecciona Disconnect Telegram.

Conectar WhatsApp por código QR

La conexión por QR usa Baileys, un cliente no oficial. No necesita cuenta de desarrollador de Meta, token de API ni URL pública. La documentación avisa de un riesgo pequeño de restricciones sobre la cuenta y de que una actualización de WhatsApp puede romper la conexión durante un tiempo, y pide revisar los términos de WhatsApp antes de conectarlo.

  1. Elige Separate bot number o Use my own number.
  2. Si eliges un número de bot, registra un segundo número en WhatsApp o en WhatsApp Business. Escribe en Nod tu número personal, con código de país y sin + ni espacios. Solo tu número personal puede iniciar trabajo.
  3. Lee el riesgo de la cuenta y los términos, y selecciona Show QR code.
  4. En el teléfono de la cuenta que vas a vincular, abre Settings → Linked Devices → Link a Device y escanea el código de Nod. El código caduca en 1 minuto y la configuración en 5 minutos.
  5. Con un número de bot, escribe al número vinculado desde tu WhatsApp personal. Con tu propio número, abre Message yourself y escribe allí.
ModoDónde escribesObservación
Separate bot numberAl número del bot, desde tu WhatsApp personalMantiene tus chats propios separados
Use my own numberEn el chat contigo, Message yourselfNod ignora sus propias respuestas

Nod ignora grupos, estados, otros remitentes e historial. Tus otros chats quedan fuera de la conversación de Nod.

Si la configuración no avanza, selecciona Start again. Para borrar las credenciales del dispositivo, selecciona Disconnect, o quita Nod desde Linked Devices en tu teléfono.


WhatsApp con Meta Cloud API

En el panel de configuración, selecciona Use Meta Cloud API instead. Necesitas una app de Meta con WhatsApp, un número emisor de negocio y un callback HTTPS público.

Campos del panel: el ID del número de teléfono de negocio, tu número personal, el token de acceso de negocio, el secreto de la app de Meta y un token de verificación del webhook. Después se usa el mismo callback y el mismo token en Meta y se activa la suscripción a messages.

AspectoCloud API
Dirección públicaObligatoria. Un servidor propio con HTTPS público, o un proxy que exponga solo /api/webhooks/whatsapp
Ventana de respuestaSolo dentro de las 24 horas desde tu último mensaje
Archivos y vozAcepta solo texto. Para archivos y voz se usa la conexión por QR
Documentos y exportacionesHay que abrir Nod para obtenerlos

Comandos del chat

EnvíaPara obtener
/usageEl gasto del mes y las acciones en apps, con un PDF de extracto
/memory (o /context)Un resumen de lo que Nod recuerda, con la exportación completa
/tasksLa lista de tareas abiertas, con un mensaje por tarea
/status, respondiendo a un mensaje de tareaObjetivo, pasos y estado de esa tarea
/stop, respondiendo a un mensaje de tareaDetiene solo esa tarea
/stop, sin responder a nadaDetiene todo el trabajo activo y cierra las tareas abiertas

Telegram y la conexión por QR reciben el PDF y la exportación como documentos. El resumen de /memory lo escribe tu modelo seleccionado, así que esa llamada cuenta como uso.

Señales mientras Nod trabaja

  • Aparece typing… mientras Nod trabaja en algo que pediste en ese chat.
  • En Telegram, si el primer mensaje de la tarea es un texto corto, Nod añade una sección de progreso citada que se actualiza en su sitio y se quita al terminar.
  • Un mensaje que escribes mientras Nod trabaja recibe una reacción de ojos hasta que Nod lo lee: indica que está en cola.
  • Tus reacciones a un mensaje de Nod se toman como feedback. Una reacción nunca responde una pregunta ni aprueba una acción.

Formato

Las respuestas conservan negrita, listas, enlaces, citas y código. Una tabla llega como una lista corta etiquetada por fila, y una respuesta larga llega en varios mensajes.


Archivos y voz

LímiteValor
Archivo que envía NodHasta 50 MB cada uno
Archivo entrante en Telegram20 MB
Mensaje de voz en Telegram25 MB
Entrada compartida10 archivos y 50 MB
Mensajes de archivo que Nod prepara a la vez4
Texto del pie y transcripción juntos100.000 caracteres

Las imágenes PNG, JPEG y WebP llegan directamente al modelo si las admite. Un archivo o una nota de voz no aprueban una acción: para aprobar, usa texto.

Voz entrante. Nod reutiliza una cuenta conectada de OpenAI, OpenRouter o ElevenLabs, o las voces locales descargadas. Una suscripción de ChatGPT o Claude sola no incluye voz en la nube. Sin voz configurada, Nod te pide que envíes texto.

Voz saliente. Pide una respuesta de voz para recibir una nota de voz nativa. La voz se elige en Settings → Voice & audio. Las respuestas de voz se detienen al llegar al límite mensual de gasto; transcribir tu propio mensaje de voz no se detiene, así que puedes pedir por voz que se cambie el límite.


Pasos privados fuera del chat

flowchart TD
    C["Estás en Telegram o WhatsApp"] --> Q{"¿Qué necesita Nod?"}
    Q -- "Contraseña o login guardado" --> A["Abre Nod<br/>formulario privado Sign in"]
    Q -- "Aprobar un pago" --> B["Abre Nod<br/>formulario Approve payment"]
    Q -- "Conectar una app" --> D["Abre Nod<br/>botón de conexión en el chat"]
    Q -- "Tomar el navegador" --> E["Abre Nod<br/>panel Browser"]
    Q -- "Código de un solo uso" --> F["Puedes responder en el chat<br/>con el código solo"]
    A --> R["La tarea sigue y responde<br/>en el chat original"]
    B --> R
    D --> R
    E --> R
    F --> R
  • Las contraseñas, los logins guardados, los inicios de sesión en apps y las aprobaciones de pago nunca pasan por la app de chat.
  • Un código de inicio de sesión de un solo uso sí se puede responder en el chat donde Nod lo pidió. Nod lo usa solo para ese inicio de sesión y no lo guarda en el historial.
  • Los códigos de seguridad de tarjeta solo funcionan en la app de Nod.

Configurar un canal con variables de entorno

En una instalación desde código o en un servidor propio, los canales también se pueden definir en .env con las variables TELEGRAM_* y WHATSAPP_* del capítulo 7.

  • Cualquier valor no vacío convierte ese canal en gestionado por el servidor. La página Channels no puede editarlo ni quitarlo, y el emparejamiento de Telegram deja de estar disponible.
  • Para volver a configurarlo desde la app, borra todas las variables de ese canal y aplica la configuración de nuevo.

Configuración mínima de Telegram, que usa polling:

TELEGRAM_BOT_TOKEN=<token-de-botfather>
TELEGRAM_ALLOWED_USER_ID=<tu-id-de-usuario>

Webhook de Telegram

  1. Define el modo y el secreto, y aplica la configuración:

    TELEGRAM_MODE=webhook
    TELEGRAM_WEBHOOK_SECRET_TOKEN=<secreto-de-16-a-256-caracteres>
  2. Registra el webhook con el método setWebhook de Telegram y estos campos:

    CampoValor
    urlTu origen HTTPS público seguido de /api/webhooks/telegram
    secret_tokenEl mismo valor que TELEGRAM_WEBHOOK_SECRET_TOKEN
    allowed_updates["message", "message_reaction"]
    drop_pending_updatesfalse

Nod no registra el webhook por ti. Para comprobar la URL guardada y los errores de entrega se usa getWebhookInfo. Hay que registrarlo de nuevo tras cambiar la URL pública o el secreto.

Para volver a polling, elimina el webhook con deleteWebhook manteniendo drop_pending_updates=false, define TELEGRAM_MODE=polling y aplica la configuración. Telegram no permite polling mientras hay un webhook registrado.


Conexión y entrega

  • Las claves del dispositivo de WhatsApp se guardan cifradas en la base de datos del servidor. No entran en el modelo, el sandbox, la analítica ni el chat.
  • Tras un reinicio o una pérdida de red, Nod reconecta con el enlace guardado.
  • Un envío con resultado incierto no se repite automáticamente, para evitar duplicados. Si una respuesta no llega, revisa Nod.

Actividad

  1. Crea un bot con BotFather y empareja tu cuenta desde Channels.
  2. Envía desde Telegram: “Did the supplier reply yet?” y comprueba que el mensaje aparece también en la app.
  3. Prueba /tasks y /usage.
  4. Inicia una tarea que requiera un login y observa cómo Nod te pide abrir la app.
  5. Si usas WhatsApp, decide entre número de bot y número propio antes de mostrar el QR.

Autoevaluación

1. ¿Quién puede escribir a Nod por Telegram?

Solo la cuenta de Telegram que emparejaste y confirmaste en Confirm account.

2. ¿Necesita la conexión de WhatsApp por QR una URL pública?

No. Usa una conexión saliente. La Cloud API de Meta sí necesita un callback HTTPS público.

3. ¿Qué limitaciones tiene WhatsApp Cloud API frente al QR?

Responde solo dentro de las 24 horas desde tu último mensaje, acepta solo texto y los documentos hay que obtenerlos abriendo Nod.

4. ¿Se puede aprobar un pago desde Telegram?

No. Nod pide abrir la misma conversación en la app web o de escritorio, donde espera el formulario Approve payment.

5. ¿Qué hace /stop sin responder a ningún mensaje?

Detiene todo el trabajo activo y cierra las tareas abiertas.

6. ¿Qué pasa al definir TELEGRAM_BOT_TOKEN en .env?

Telegram pasa a estar gestionado por el servidor: la página Channels no puede editarlo ni quitarlo.


Lista de control

  • Mi bot de Telegram está emparejado con mi cuenta.
  • Sé qué modo de WhatsApp uso y sus límites.
  • Conozco los comandos /tasks, /status, /stop, /usage y /memory.
  • Sé que logins, pagos y conexiones de apps se terminan en la app de Nod.
  • Si uso webhook, lo registré con setWebhook y el secreto correcto.

Anterior: Aprobaciones, reglas y memoria · Siguiente: Gasto, operación y problemas