Chat
Canales
Conexiones a WhatsApp, Telegram, Messenger e Instagram
Plantillas
Plantillas aprobadas por Meta para cada número de WhatsApp
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)
Bots IA
Bots que atienden conversaciones, su conocimiento (instrucciones y manuales) y los modelos que usan.
Un bot responde a las conversaciones del canal al que se asigna (en Canales → editar). Desde el chat se pausa por conversación; al contestar un humano se pausa solo.
Nuevo bot
{ bot, channel, contact, message, history } y responde { "reply": "…", "pause"?: true|minutos, "tags"?: [] } o texto plano.Herramientas propias (webhook)
{ tool, args, bot, channel, contact }, firmado con el secreto del bot (X-Comunica-Signature), y le pasa al bot la respuesta. Nombres en minúsculas y _.Biblioteca reutilizable: cada conocimiento reúne instrucciones y manuales (PDF, Word, texto). Asígnalos a uno o varios bots; el bot decide cuándo consultarlos por su descripción.
Dónde viven las credenciales (Anthropic, OpenAI, Google, OpenRouter, Ollama…) y qué modelos pueden usar los bots.
Últimas intervenciones de todos los bots: respuestas, saltos y errores.
Perfiles y permisos
Qué puede hacer cada perfil. Los perfiles se asignan en Usuarios.
Qué puede hacer cada perfil. Un usuario tiene uno o varios perfiles y suma sus permisos, siempre dentro de los canales a los que tiene acceso. Los ADMIN lo pueden todo. Los perfiles también sirven para dirigir avisos en las reglas.
Reglas
Automatiza respuestas, seguimientos, etiquetas y avisos según lo que pase en cada conversación
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.
Usuarios y permisos
Gestiona quién accede a la app y qué puede hacer en cada canal.
Para usar Comunica desde Claude (Claude Code, Claude Desktop…). La de mensajería la puede descargar todo el equipo desde su menú de usuario; la de administración, solo los administradores.
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
Opciones globales de la instalación, por apartados.
Solo para ti: se guarda en tu usuario y se aplica en cualquier navegador donde entres. También puedes pedírselo al asistente («ponme el modo oscuro»).
El chat del botón de abajo a la derecha. Cada usuario lo usa con sus propios permisos: solo consulta y hace lo que él podría hacer en el panel, y todo lo que cambia algo (enviar, etiquetar, reglas, campañas…) le pide confirmación con un botón.
Lo que mandan los clientes se lee con IA: las notas de voz se transcriben y las fotos se describen (con el texto que se vea). La transcripción aparece en el chat y los bots la usan para contestar; si un bot va a responder, espera a tenerla. Los modelos son los de Bots IA y se llaman por la API compatible con OpenAI, así que puedes cambiar de modelo o de proveedor cuando quieras. En Bots IA, «Detectar» comprueba qué sabe hacer cada modelo.
whisper-1 o gpt-4o-mini-transcribe (OpenAI), whisper-large-v3 (Groq) o un Whisper propio compatible con OpenAI. Sin idioma, lo detecta solo.Los manuales de los conocimientos se trocean por secciones y los bots buscan en ellos solo los fragmentos que necesitan. La búsqueda por palabras funciona siempre, sin configurar nada, y acierta con términos exactos (códigos, referencias, precios). Con un modelo de embeddings se añade la búsqueda por significado (pgvector), que acierta aunque se pregunte con otras palabras; las dos se combinan.
text-embedding-3-small (OpenAI), gemini-embedding-001 (Google) o nomic-embed-text (Ollama). Al guardar se prueba. DeepSeek no ofrece embeddings.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.
Credenciales OAuth de tus apps en Google Cloud y en Microsoft Entra (Azure). Con ellas cada usuario conecta su cuenta desde Calendario y sincroniza en los dos sentidos. Ver docs/CALENDARIO.md.
Se generan en el servidor y se descargan cuando terminan. Caducan a las 24 h.
pg_dump: solo funciona la copia de Configuración. Para las otras dos hay que reconstruir la imagen.
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.