Chat
Canales
Conexiones a WhatsApp, Telegram, Messenger e Instagram
Plantillas
Plantillas de WhatsApp asociadas al canal seleccionado
Plantillas locales
Multicanal · texto plano o markdown · se adapta al formato nativo de cada canal al enviar
Biblioteca de archivos
Archivos reutilizables entre conversaciones. Pueden ser globales o limitados a ciertos canales.
Últimos eventos
Mensajes entrantes y salientes recientes
Webhooks sin procesar (0)
Reglas
Reenvía mensajes a otras URLs según condiciones
API keys
Para clientes MCP (Claude Desktop, Cursor, agentes propios) e integraciones HTTP. Cada key hereda los permisos del usuario que la creó.
/mcp con Authorization: Bearer comunica_xxx/api/... con el mismo header (también X-API-Key)docs/MCP.md.Campañas
Envía un mensaje o plantilla a un grupo de contactos en un canal.
SNAPSHOT congela la lista al lanzar; DYNAMIC añade nuevos contactos que cumplan el filtro mientras corre.Usuarios y permisos
Gestiona quién accede a la app y qué puede hacer en cada canal.
ADMIN hace todo. USER solo ve canales asignados.Ver · Enviar (incluye Ver) · Gestionar (incluye todo, edita el canal).| Usuario | Rol | Estado | Permisos por canal | Acciones | |
|---|---|---|---|---|---|
| Cargando... | |||||
Plugins
Extiende Comunica con código JS. Cada plugin se ejecuta en un sandbox aislado y puede suscribirse a eventos, registrar comandos slash y rutas HTTP.
📚 Referencia rápida del API
Los plugins reciben un objeto api con estas capacidades:
api.on(event, handler)— suscribirse a eventos. Eventos:message.inbound,message.outbound,message.status,message.reaction,contact.created,contact.updated.api.registerCommand(slug, handler, { description })— añade un comando slash/<slug>al composer.api.registerRoute('GET'|'POST'|..., '/path', handler)— endpoint montado en/api/p/<plugin>/path.api.sendMessage({ channelId, to, text|template|mediaId })— enviar mensajes.api.prisma— cliente Prisma (lectura/escritura).api.fetch(axiosConfig)— cliente HTTP con timeout 15s.api.logger— pino logger scoped al plugin.api.settings.get()/api.settings.set(obj)— config persistente.
⚠️ No tienes require() ni filesystem. Sí: fetch, Promise, setTimeout, JSON, URL, Buffer.
📖 Documentación completa: docs/PLUGINS.md — guía paso a paso, catálogo de eventos, recetas y FAQ.
Ajustes
URL pública, túnel ngrok, app de Meta y otras opciones globales
Título, subtítulo y logo que aparecen en la cabecera lateral. Personaliza la app con tu marca.
Pega tu API key (distinta del authtoken) y la app listará tus dominios reservados automáticamente. Sin esto tienes que crearlos a mano.
La API key se obtiene en dashboard.ngrok.com/api-keys.
Procesos de agente conectados a ngrok. El plan free permite máx. 3 simultáneas — si tienes zombies de containers que crashearon, ocupan slot hasta cerrarlas.
Cada endpoint = un dominio reservado de tu cuenta. Sincronízalos arriba con la API key, o créalos manualmente abajo.
Separadas por uso. Cualquier campo vacío hereda automáticamente de URL base (o, si está vacía, del túnel ngrok activo).
Dominio canónico donde se sirve el panel. Se usa para enlaces compartibles, emails y branding.
Dónde Meta / Telegram envían los webhooks de mensajes. Si tu servidor está detrás de túnel ngrok pero el panel está en otro dominio, pon aquí la URL del túnel.
Dominio que debe coincidir con App Domains / JSSDK Allowed Domains en tu app de Facebook. Normalmente es igual a la URL base.
App ID + App Secret de tu app en Meta for Developers. Se usa para "Conectar con Meta" y para refrescar tokens automáticamente.
Estado y refresco de tokens de los canales WhatsApp / Facebook / Instagram. El sistema los refresca solo cada 6h cuando quedan ≤ 7 días — aquí puedes forzarlo o ver el estado.
Últimos warnings y errores del servidor (en memoria, máx. 500). Útil para depurar errores 4xx/5xx desde la UI sin entrar al container.
Registro de borrados destructivos (vaciar conversación, borrar contacto, borrar mensaje): quién, qué y cuándo. Cuando hay snapshot, se puede restaurar.