WhatsApp (Evolution API)
Sentinel se conecta a WhatsApp Web vía Evolution API, un bridge open-source. El pairing es por QR (mismo flujo que WhatsApp Web del browser).
¿Por qué Evolution API y no WhatsApp Business Cloud?
Evolution API permite onboarding inmediato sin aprobación previa de Meta Business Manager. Para volúmenes altos o templates marketing oficiales, el roadmap incluye Cloud API; hoy el 100% del tráfico va por Evolution.
Setup
- En
/settings/integrations→ WhatsApp → Generar QR. Sentinel pide una instancia nueva al worker Evolution. - Abrí WhatsApp en el teléfono que vas a usar como número del negocio → Configuración → Dispositivos vinculados → Vincular dispositivo.
- Escaneá el QR. La conexión se valida server-side (esperá 5–10 segundos) y la integración pasa a Connected.
Permisos / requisitos
- Un número de WhatsApp dedicado al negocio (no el personal).
- El device debe quedar online (igual que WhatsApp Web). Si se cierra la sesión, el QR pairing tiene que regenerarse.
- Para WhatsApp Business (la app), funciona igual; Sentinel solo necesita una sesión activa.
Qué data toca Sentinel
- Mensajes entrantes y salientes (texto + media URL). Los media files se descargan al storage del workspace; podés desactivar esto en settings.
- Metadata del chat (timestamp, contact phone, status).
- NO toca: status, calls, lists, broadcasts globales.
Flujo de datos
Mensaje inbound → Evolution worker → webhook firmado HMAC → API Sentinel /api/integrations/evolution/webhook → cola → sub-agents (KB Indexer, Lead Triage). La data nunca pasa por servidores de terceros además de Evolution + Sentinel.
Troubleshooting
- El QR no se escanea
- Suele ser el QR expirado (validez ~60s). Cerrá el modal y volvé a generar. Si persiste, reiniciá la instancia Evolution desde Troubleshooting → WhatsApp QR.
- Sesión se desconecta sola
- WhatsApp limita dispositivos vinculados a 4. Asegurate de no haber desvinculado Sentinel desde el teléfono. Si el dispositivo queda offline >14 días, WhatsApp lo cierra automáticamente.
- Mensajes outbound “queued” pero no llegan
- Casi siempre falta consent. Chequeá
workspace_agent_runscon errorconsent_missingen la página del agent.