Conectar WhatsApp
AllyOneCRM conecta números mediante Embedded Signup — el flujo oficial de Meta. Nunca pegas un token de acceso manualmente.
1. Obtener la configuración del widget
Exige autenticación (sesión de usuario o API key) — tu backend pasa appId y configId al frontend, que inicializa el SDK JavaScript de Meta.
{ "enabled": true, "appId": "...", "configId": "..." }
2. Ejecutar el Embedded Signup
El usuario final inicia sesión mediante el widget oficial de Meta (FB.login) directamente en tu pantalla — AllyOne nunca ve la contraseña de su cuenta de Meta. Al final, el widget devuelve un code de autorización.
3. Intercambiar el código por la conexión
{
"code": "AQC8k2...",
"wabaId": "1058...",
"phoneNumberId": "1049..."
}
Lo que ocurre en esta llamada, del lado del servidor:
- El
codese intercambia por un access token de larga duración directamente en la Graph API de Meta. - Los metadatos verificados del número (nombre para mostrar, calidad, límite de mensajes) se consultan y se guardan.
- La app se suscribe automáticamente a los webhooks de ese número — ningún paso manual de configurar webhooks en la App de Meta.
- El token se cifra antes de persistirse.
Cada waba_id/phone_number_id solo puede estar conectado a un tenant a la vez — la API rechaza el intento de conectar un número ya vinculado a otra cuenta.
Ventana de 24 horas
Este comportamiento viene directamente de la Cloud API de Meta, no es una regla propia de AllyOne:
| Situación | Qué se puede enviar |
|---|---|
| El contacto respondió en las últimas 24 h | Texto libre, medios, botones — cualquier contenido |
| Fuera de la ventana de 24 h | Solo Templates preaprobados por Meta |
