Description
n8n-nodes-baileys-instance
Community node de n8n para consumir una instancia wa-instance basada en Baileys 7 con una UI guiada, operativa y preparada para agentes.
Qué incluye
- Recurso
Instancepara health, status, pairing, logout, colas y webhook test - Recurso
History Syncpara estado y fetch on-demand - Recurso
Eventpara inspección de eventos persistidos - Recurso
Chatpara snapshots, archive, mute y read state - Recurso
Contactpara snapshots persistidos - Recurso
Grouppara snapshots y gestión operativa real - Recurso
Messagepara texto, media, previews y operaciones avanzadas - Recurso
Batchpara envíos y previews batch - Recurso
Consentpara alta, revocación y consulta - Recurso
Recipientpara límites operativos por JID - Recurso
Privacypara settings, blocklist y updates de visibilidad - Recurso
Webhook Deliverypara inspección y retry - Recurso
Custom API Requestcomo escape hatch usableAsTool: truepara reutilizar el nodo como tool dentro de flujos/agentes de n8n- Nodo
Baileys Triggerpara polling de eventos persistidos en/events - n8n self-hosted con soporte para community nodes
- una instancia
wa-instanceaccesible por HTTP/HTTPS - API key válida del backend
Base URLAPI KeyTimeout (ms)Allow Self-Signed TLS Certificates- una instancia con API key válida puede responder bien a
GET /statusaunque todavía no esté pairada GET /health/depssigue disponible como check operativo estricto- mientras WhatsApp no tenga
connection: open,GET /health/depspuede devolver503sin que eso signifique credenciales inválidas - para distinguir entre onboarding pendiente y readiness estricta, usa
Get Statusjunto conGet Pairing QRoRequest Pairing Code - un
credential test = OKsolo confirma reachability y autenticación básica del backend; no garantiza que la sesión esté lista para enviar mensajes - Get Health
- Get Dependencies Health
- Get Status
- Get Queue Status
- Get Pairing QR
- Request Pairing Code
- Logout Session
- Send Webhook Test
- Get Status
- Fetch
- Get Many
- Get
- Get Many
- Get Recent Messages
- Archive
- Mute
- Set Read State
- Get Many
- Get Many
- Get
- Create
- Join
- Update Subject
- Update Description
- Update Participants
- Update Participant Requests
- Get Invite Code
- Revoke Invite Code
- Update Settings
- Update Ephemeral
- Send Text
- Send Media
- Preview Send
- Get
- Get Many
- Get Inbound Message
- Reply
- Forward
- Delete
- Edit
- React
- Mark Read
- Send Receipts
- Refresh Media
- Usa
GET /sendspara auditoría outbound. - Mantiene los filtros existentes:
status,tojid,clientref,from,to,limit. - Añade soporte para los filtros nuevos:
tophone,textcontains,cursor. Limitahora admite hasta1000.- La salida del nodo conserva el comportamiento histórico: devuelve el JSON completo del backend en un único item, incluyendo
items,count,hasmoreynextcursorcuando estén presentes. - Send Text Batch
- Send Media Batch
- Preview Batch
- Get
- Upsert
- Revoke
- Get
- Get Limits
- Get Settings
- Get Blocklist
- Update Block Status
- Update Last Seen
- Update Online
- Update Profile Photo
- Update Status
- Update Groups Add
- Update Read Receipts
- Update Default Disappearing Mode
- Get Many
- Retry
- Execute
- Los endpoints de envío añaden
X-Idempotency-Keyautomáticamente si no se informa una clave manual. Send Text,Send Media,Send Text BatchySend Media Batchpueden ejecutar unPreflight Readiness Checkopcional antes del envío. Está desactivado por defecto para mantener compatibilidad.- El modo
Dependencies Healthdel preflight es el check más estricto. El modoStatusintenta bloquear envíos cuando el payload de/statusindica pairing pendiente o socket no abierto. Preview SendyPreview Batchvalidan policy, normalización y destinatario antes de enviar, y no envíanX-Idempotency-Key.Custom API Requestreutiliza el mismo host y autenticación del credential, sin permitir cambiar de servidor.- Algunas operaciones pueden devolver
409cuando la capacidad no está disponible en el estado actual del socket/backend. - Para tareas habituales usa los recursos modelados;
Custom API Requestqueda como escape hatch para endpoints nuevos o no modelados. - Usa
GET /chats. - El filtro
Limitahora admite hasta1000, alineado con el backend actual. - Ejemplo: usa
Limit = 500para recuperar un lote grande de snapshots persistidos. - Usa
GET /chats/:jid/messages. - Parámetros:
- La salida principal del nodo devuelve directamente el array
itemsde la respuesta del backend, para que cada mensaje quede disponible como item de n8n. - Ejemplo:
Chat JID = 123456789@s.whatsapp.netyLimit = 20para traer los 20 mensajes persistidos más recientes de ese chat. - Si
Get Statusresponde peroGet Dependencies Healthdevuelve503, la instancia está autenticada pero no lista para enviar todavía. - Si ambos responden bien y
/send/textsigue abortando, revisa logs dewa-instance, timeout del proxy reverso y salud de colas internas. - Si subir
Timeout (ms)evita el fallo, el problema era latencia o tiempo de proceso y no autenticación. - el trigger integrado sirve para consumir eventos persistidos desde el backend mediante polling
- no registra ni gestiona webhooks dinámicos en
wa-instance - no sustituye la ingesta realtime vía webhook del backend
- Trigger architecture
- PARITYUPDATE_GUIDE.md”>Guía de paridad para actualizar la instancia
Requisitos
Credenciales
El credential Baileys Instance API pide:
Timeout (ms) es el primer mitigador cuando Send Text o Send Media fallan con aborts o timeouts. Si el backend encola, resuelve destinatarios o atraviesa un proxy con latencia, súbelo antes de asumir que la API está caída.
La comprobación de credenciales usa GET /status.
Notas importantes sobre onboarding y readiness:
Recursos y operaciones
Instance
History Sync
Event
Chat
Contact
Group
Message
Message -> Get Many
Batch
Consent
Recipient
Privacy
Webhook Delivery
Custom API Request
Notas de uso
Chat snapshots y mensajes recientes
Chat -> Get Many
Chat -> Get Recent Messages
– Chat JID obligatorio
– Limit opcional, por defecto 10, mínimo 1, máximo 100
Runbook de diagnóstico para ECONNABORTED
Cuando Message -> Send Text o Send Media fallen con ECONNABORTED, ETIMEDOUT o cierres de socket:
1. Ejecuta Instance -> Get Status.
2. Ejecuta Instance -> Get Dependencies Health.
3. Ejecuta Instance -> Get Queue Status.
4. Reproduce el envío con Custom API Request usando POST /send/text o POST /send/media para aislar si el corte ocurre fuera de la UI modelada.
Interpretación rápida:
Trigger y webhooks
El paquete incluye Baileys Trigger en modo polling sobre /events.
Esto significa:
Para eventos inbound realtime, la vía recomendada es:
1. configurar WEBHOOK_URL en wa-instance
2. recibir los eventos con el nodo nativo Webhook de n8n
3. enrutar por eventtype, instanceid o reglas de negocio dentro del workflow
Documentación relacionada:
Desarrollo local
npm install
npm run build
npm run dev
Publicación en npm
Este paquete está preparado para publicarse como paquete público de npm y seguir el flujo recomendado por n8n con GitHub Actions + provenance.
Flujo recomendado
1. Configura el Trusted Publisher del paquete en npm para este repositorio y el workflow publish.yml.
2. Haz un release con:
npm run release
3. El tag v* disparará GitHub Actions y publicará el paquete en npm.
Publicación manual
npm login
npm publish --access public
Para verificación en n8n, la publicación recomendada es desde GitHub Actions con provenance.