Conectar el chatbot a WhatsApp Business (Meta Cloud API)
El mismo cerebro del bot (catálogo, pedidos, devoluciones, idiomas, seguridad) contesta también por WhatsApp. Gratis: las conversaciones de servicio (el cliente te escribe y tú respondes en 24h) no cuestan nada.
Lo que ya está hecho en el backend: el webhook /whatsapp/webhook, el envío
de respuestas, multi-tienda (cada número de WhatsApp → su tienda), sesiones por
teléfono y firma de seguridad. Solo falta el papeleo de Meta (esta guía).
Parte 1 — Crear la app en Meta (una sola vez, ~20 min)
- Entra en https://developers.facebook.com con tu cuenta de Facebook/Meta.
- My Apps → Create App → tipo Business → ponle nombre (ej. "Flexigo Bot").
- En el panel de la app, busca WhatsApp y pulsa Set up.
- Meta te crea un número de prueba gratis para empezar (sirve para probar ya).
- Apunta del panel WhatsApp → API Setup:
- Phone number ID (un número largo, NO es el teléfono) → se pega en el admin del bot.
- Temporary access token (caduca en 24h; para producción ver Parte 4).
Parte 2 — Configurar el webhook
- En la app de Meta: WhatsApp → Configuration → Webhook → Edit.
- Rellena:
- Callback URL:
https://victor34593993-flexigo-support-bot.hf.space/whatsapp/webhook - Verify token: el valor de
WHATSAPP_VERIFY_TOKEN(ya está puesto como secret en el Space; te lo di al desplegar — guárdalo).
- Callback URL:
- Pulsa Verify and save (Meta llama al webhook; debe poner la marca verde).
- En Webhook fields, pulsa Manage y suscríbete a messages (solo ese).
Parte 3 — Conectar la tienda en el admin del bot
- Abre el admin del bot → elige la tienda (tenant).
- Sección WhatsApp (Meta Cloud API):
- Phone Number ID: el de la Parte 1.
- Access Token: el token (se guarda cifrado).
- Guardar. Listo: escribe al número de WhatsApp y el bot contesta.
Multi-tienda: cada tienda con su propio número → su propio Phone Number ID y su token en su tenant. El bot nunca mezcla datos entre tiendas.
Parte 4 — Pasar a producción (cuando funcione la prueba)
- Número real: WhatsApp → API Setup → Add phone number (el número NO puede estar ya registrado en la app normal de WhatsApp; usa uno nuevo o da de baja el actual primero).
- Token permanente (el temporal caduca a las 24h):
- Business Settings → Users → System users → Add (rol Admin).
- Asigna la app al system user → Generate token → permisos
whatsapp_business_messaging+whatsapp_business_management→ sin caducidad. - Pega ese token en el admin del bot (campo Access Token de la tienda).
- App secret (recomendado, valida que los webhooks vienen de Meta):
- App Settings → Basic → App Secret → ponlo como secret
WHATSAPP_APP_SECRETen el HF Space. A partir de ahí el webhook rechaza cualquier petición que no firme Meta.
- App Settings → Basic → App Secret → ponlo como secret
- Verificar el negocio (Business Manager → Security Centre): sin verificar puedes hablar con hasta 5 números (modo dev); verificado, sin límite de clientes que te escriban.
Límites y costes (resumen honesto)
- Cliente te escribe → tú respondes (24h): GRATIS, ilimitado. Es el caso del bot.
- Tú inicias conversación (plantillas/marketing): de pago — el bot NO lo hace.
- El número de prueba de Meta solo habla con hasta 5 números que registres tú (perfecto para probar). El salto a número real es la Parte 4.
Alta de un CLIENTE nuevo (1 clic desde tu admin)
El webhook es global (configurado una vez): no se toca nunca más. Para cada tienda nueva:
- Registra su número en tu WhatsApp Manager (Business Manager → WhatsApp Manager → Añadir número). El cliente solo te pasa el código SMS que le llega. Tu negocio verificado permite hasta 20 números; cada cliente puede tener su propio WABA bajo tu portfolio (su nombre de empresa sale en WhatsApp).
- En el admin del bot → su tienda → sección WhatsApp → pega WABA ID + Phone Number ID (+ token si esa tienda usa uno propio; vacío = el global) → Conectar número. El backend suscribe el WABA, valida el número y lo deja contestando. Eso es todo.
Con un token permanente de system user de TU Business Manager (Parte 4) configurado como global, las tiendas bajo tu portfolio no necesitan token propio: el alta es literalmente pegar 2 IDs y pulsar un botón.
Futuro: autoservicio total (Embedded Signup)
Para que el cliente se conecte SOLO (botón "Conectar WhatsApp" → login con su
Facebook → listo, como Twilio/360dialog): requiere Verificación de acceso
(proveedor de tecnología; Configuración básica → Verificación de acceso, ~5
días) + acceso avanzado a whatsapp_business_management y
whatsapp_business_messaging (App Review). Cuando Meta lo apruebe, se monta el
botón sobre el mismo endpoint de conexión que ya existe.
Problemas típicos
- "Verify and save" falla: el verify token no coincide con el del Space, o
el Space estaba dormido (ábrelo primero:
/healthz). - El bot no contesta: ¿token caducado (el temporal dura 24h)? ¿Phone Number ID pegado en la tienda correcta? Mira los logs del Space.
- Contesta a unos números y a otros no: estás en modo prueba (5 números permitidos) o el negocio no está verificado.