npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

n8n-nodes-wachat

v0.4.0

Published

Nodo de n8n para WaChat: envía mensajes de WhatsApp y gestiona conversaciones (asignar agente, fila, estado, etapa de pipeline) desde tus automatizaciones.

Readme

n8n-nodes-wachat

Nodo comunitario de n8n para WaChat: envía mensajes de WhatsApp (texto, archivos y botones) y publica estados desde tus automatizaciones, usando una conexión que ya tienes configurada en tu cuenta.

Todo lo que envíes con este nodo queda guardado en el chat de WaChat y es visible para tus asesores, igual que si lo hubieran escrito ellos.

Instalación

En n8n: Settings → Community nodes → Install, e ingresa:

n8n-nodes-wachat

Credencial

Crea una credencial WaChat API con:

| Campo | Valor | |---|---| | URL de WaChat | La dirección de tu WaChat, ej. https://app.wachat.cc | | Token API | El token de tu empresa: Configuración → API / Integración | | ID de conexión | El ID de la conexión de WhatsApp desde la que se envían los mensajes: Configuración → Conexiones |

Usa el botón de test de la credencial para comprobar que funciona antes de armar el flujo.

La conexión queda fija en la credencial, no se elige en el nodo. Si necesitas enviar desde distintas conexiones, crea una credencial WaChat API por cada una (mismo token de empresa, distinto ID de conexión) y usa la que corresponda en cada nodo.

Operaciones

Elige la credencial (define la conexión) y la operación. El número va con código de país y sin +, ej. 593991234567.

Enviar Texto

Un mensaje de texto simple.

Enviar Archivo

Documento, imagen, video, audio o sticker. Dos orígenes:

  • URL — WaChat descarga el archivo. Debe ser una URL pública: por seguridad se rechazan direcciones de red interna (localhost, IPs privadas). Si no indicas nombre o tipo, se deducen de la URL.
  • Binario — toma el archivo de la propiedad binaria del ítem de entrada (p. ej. la salida de un nodo HTTP Request o Google Drive).

Enviar Botones

Hasta 3 botones: respuesta rápida, abrir URL, llamar o copiar.

Solo funciona en conexiones WhatsApp Plus. En una conexión WhatsApp (QR) la API responde con un error explicando esto, porque ese tipo de botones no se ve correctamente en muchos teléfonos y el cliente recibiría un mensaje roto.

Publicar Estado de WhatsApp

Publica un estado (la historia de 24 horas) en la conexión de la credencial. Lo ven los contactos que tienen guardado el número; no envía mensajes a nadie, así que no tiene el riesgo de bloqueo de una campaña. No pide número de destino.

  • Texto — hasta 700 caracteres.
  • Imagen o Video — con descripción opcional. El archivo puede venir de una URL (lo descarga n8n) o de la propiedad binaria del ítem de entrada. Máximo 16 MB para imágenes y 64 MB para videos. El formato ideal es vertical 9:16 (1080×1920).

Solo funciona en conexiones WhatsApp Plus. En una conexión WhatsApp (QR) la API responde con un error.

Ejemplo: un Schedule Trigger todos los lunes a las 9:00 → Google Drive (descarga la imagen de la promo) → WaChat · Publicar Estado de WhatsApp con origen Binario.

Gestión de conversaciones (Asignar, Fila, Estado, Pipeline)

Estas 4 operaciones no envían un mensaje — modifican una conversación (ticket) ya existente en WaChat: a quién está asignada, en qué fila, en qué estado, o en qué etapa de un embudo de ventas. Útil, por ejemplo, después de que tu propio flujo de n8n resolvió una solicitud (agendó una cita, generó una cotización) y quieres que el chat pase a un asesor humano, o marcarlo directamente como resuelto.

Todas piden un ID de conversación, no un número de teléfono. Si tu flujo arranca desde el webhook de eventos de WaChat (Configuración → Conexiones → tu conexión → n8n), ese ID viene en el payload como ticket.id — usa la expresión {{ $json.data.ticket.id }} en el campo.

Asignar a Agente

Asigna el chat a un asesor. Opcionalmente, activando También Mover a Fila, lo reubica en una fila al mismo tiempo — así el asesor destino puede verlo aunque no tuviera acceso a la fila anterior.

Asignar Fila

Mueve el chat a otra fila de atención, sin tocar a quién está asignado.

Cambiar Estado

Marca el chat como Abierto, Pendiente o Resuelto — las mismas 3 pestañas que ve un asesor en WaChat.

Cambiar Etapa De Pipeline

Mueve el chat a otra etapa de un embudo de ventas. Elige primero el Pipeline, y el desplegable de Etapa se llena con las etapas configuradas en ese embudo específico (en el orden en que están definidas, no alfabético).

Ejemplo

examples/badent-flow.json reproduce un caso real: saludo → PDF por URL → botones. Impórtalo en n8n (Workflows → Import from File), asigna tu credencial en cada nodo y ejecútalo.

Migración desde n8n-nodes-whazing

| | whazing | wachat | |---|---|---| | Nodo | whazing | waChat | | Credencial | una por conexión | una por conexión (URL + token de empresa + ID de conexión) | | Conexión | implícita en la credencial | implícita en la credencial | | Texto | number, body | igual | | Archivo | sendFile con fileType: url | igual, más el campo kind (por defecto document) | | Botones | resource: apiPlus, buttons[].title | operación sendButtons, buttons[].text (title → text) | | Resultado | — | { id, messageId, conversationId } |

Dos diferencias que conviene tener presentes:

  1. Los envíos ahora abren ticket. Cada mensaje crea o reabre la conversación del contacto y la deja en Abiertos, siguiendo las reglas de asignación (fila/asesor) de esa conexión. Es intencional —así el asesor ve el historial completo—, pero cambia el volumen de tu bandeja.
  2. En archivos, id viene vacío. El envío de media es asíncrono y durable: la fila se encola y se sube en segundo plano. El estado final llega al chat por sí solo; usa conversationId / messageId si necesitas correlacionar.

Contrato de la API

Enviar mensajes (sendText/sendFile/sendButtons) usa POST /api/sessions/{conexión}/messages. Gestionar conversaciones usa cuatro endpoints propios bajo /api/crm/conversations/{id}/... (assign, fila, status, stage). Ambos grupos se autentican igual, con Authorization: Bearer <token> — el token de empresa de Configuración → API / Integración sirve para los dos. Los endpoints de mensajería están documentados ahí mismo dentro de WaChat, con ejemplos de cURL equivalentes a cada operación.

Licencia

MIT