flexigo-support-bot / GUIA_WHATSAPP.md
victor34593993's picture
feat: one-click whatsapp onboarding
c3692d2 verified
|
Raw
History Blame Contribute Delete
5.47 kB

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)

  1. Entra en https://developers.facebook.com con tu cuenta de Facebook/Meta.
  2. My Apps → Create App → tipo Business → ponle nombre (ej. "Flexigo Bot").
  3. 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).
  4. 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

  1. En la app de Meta: WhatsApp → Configuration → Webhook → Edit.
  2. 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).
  3. Pulsa Verify and save (Meta llama al webhook; debe poner la marca verde).
  4. En Webhook fields, pulsa Manage y suscríbete a messages (solo ese).

Parte 3 — Conectar la tienda en el admin del bot

  1. Abre el admin del bot → elige la tienda (tenant).
  2. Sección WhatsApp (Meta Cloud API):
    • Phone Number ID: el de la Parte 1.
    • Access Token: el token (se guarda cifrado).
  3. 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)

  1. 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).
  2. 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).
  3. App secret (recomendado, valida que los webhooks vienen de Meta):
    • App Settings → Basic → App Secret → ponlo como secret WHATSAPP_APP_SECRET en el HF Space. A partir de ahí el webhook rechaza cualquier petición que no firme Meta.
  4. 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:

  1. 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).
  2. 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.