> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ryvo.so/llms.txt
> Use this file to discover all available pages before exploring further.

# Conectar WhatsApp Business

> Conecta el número de WhatsApp de tu negocio para que tu agente conteste los mensajes.

Con esta integración, tu agente del Engine contesta los mensajes que lleguen al número de WhatsApp de tu negocio, usando la **Cloud API de Meta** con tu propia app. Meta aloja la API, así que no dependes de ningún proveedor intermedio: Ryvo habla directo con WhatsApp.

Para conectarlo necesitas cinco datos de Meta, que reúnes en los pasos 1 a 4, y después los pegas en Ryvo en el paso 5:

| Dato                                       | Dónde sale |
| ------------------------------------------ | ---------- |
| **ID de la app de Meta**                   | Paso 1     |
| **App secret**                             | Paso 4     |
| **WABA ID** (WhatsApp Business Account ID) | Paso 2     |
| **Phone number ID**                        | Paso 2     |
| **Token permanente**                       | Paso 3     |

<Note>
  Meta cambia su interfaz con frecuencia. Si tu pantalla no se ve igual que las capturas, busca la sección de configuración de la API de WhatsApp de tu app: los IDs siempre aparecen junto al número seleccionado.
</Note>

## Qué necesitas

1. Una cuenta de **Meta Business** (portafolio de negocio). Para pasar de pruebas a producción, Meta pide verificarla.
2. Un número de teléfono que **no esté ligado a otra cuenta de WhatsApp**, ni a la app de WhatsApp normal ni a la de WhatsApp Business. Si tu número está activo en la app del celular, no lo registres por este flujo: escríbenos a [soporte@ryvo.so](mailto:soporte@ryvo.so) para ver la mejor forma de migrarlo.
3. Un **agente publicado** en tu cuenta de Ryvo. WhatsApp siempre contesta con la versión publicada, nunca con el borrador.

## Paso 1: crea (o elige) la app en Meta for Developers

<Steps>
  <Step title="Entra a Meta for Developers">
    En [developers.facebook.com/apps](https://developers.facebook.com/apps) elige una app existente o da clic en **Crear app**.

    <Frame caption="El panel de apps: elige una existente o da clic en Crear app.">
      <img src="https://mintcdn.com/ryvo-3dab4d1a/u5UK13z9BXTsDyaf/images/guias/whatsapp/01-crear-app.webp?fit=max&auto=format&n=u5UK13z9BXTsDyaf&q=85&s=24b99d1b8669dbb47afb31f092d77f3b" alt="Panel de apps de Meta for Developers con el botón Crear app" width="1600" height="805" data-path="images/guias/whatsapp/01-crear-app.webp" />
    </Frame>
  </Step>

  <Step title="Ponle nombre">
    Si es nueva, escribe el nombre de la app y un correo de contacto, y da **Siguiente**.

    <Frame caption="Detalles de la app: nombre y correo de contacto, y Siguiente.">
      <img src="https://mintcdn.com/ryvo-3dab4d1a/u5UK13z9BXTsDyaf/images/guias/whatsapp/02-nombre-de-la-app.webp?fit=max&auto=format&n=u5UK13z9BXTsDyaf&q=85&s=0d568c9edbf1ca281b3a2af393ee6235" alt="Formulario de nombre y correo de contacto de la app" width="1600" height="605" data-path="images/guias/whatsapp/02-nombre-de-la-app.webp" />
    </Frame>
  </Step>

  <Step title="Elige el caso de uso de WhatsApp">
    En la pantalla de casos de uso, marca **Conectar con clientes a través de WhatsApp** y da **Siguiente**.

    <Frame caption="El caso de uso correcto es el de WhatsApp.">
      <img src="https://mintcdn.com/ryvo-3dab4d1a/u5UK13z9BXTsDyaf/images/guias/whatsapp/03-caso-de-uso-whatsapp.webp?fit=max&auto=format&n=u5UK13z9BXTsDyaf&q=85&s=076d52734266ac8546ec5a6f4549dcee" alt="Selección del caso de uso Conectar con clientes a través de WhatsApp" width="1600" height="989" data-path="images/guias/whatsapp/03-caso-de-uso-whatsapp.webp" />
    </Frame>
  </Step>

  <Step title="Elige el portafolio de negocio">
    Selecciona el portafolio que es (o será) dueño de tu cuenta de WhatsApp Business. Si no tienes uno, Meta te deja crearlo aquí.

    <Frame caption="El portafolio de negocio al que pertenece la WABA.">
      <img src="https://mintcdn.com/ryvo-3dab4d1a/u5UK13z9BXTsDyaf/images/guias/whatsapp/04-portafolio.webp?fit=max&auto=format&n=u5UK13z9BXTsDyaf&q=85&s=0584cd86a84a12ee78919f3507e389f8" alt="Selección del portafolio de negocio" width="1600" height="913" data-path="images/guias/whatsapp/04-portafolio.webp" />
    </Frame>
  </Step>

  <Step title="Revisa y crea la app">
    Revisa los datos, el caso de uso y el portafolio, y da **Crear app**.

    <Frame caption="Resumen antes de crear la app.">
      <img src="https://mintcdn.com/ryvo-3dab4d1a/u5UK13z9BXTsDyaf/images/guias/whatsapp/05-revisar-y-crear.webp?fit=max&auto=format&n=u5UK13z9BXTsDyaf&q=85&s=c20373718024ad9177f40ffa87d530db" alt="Pantalla de revisión con el botón Crear app" width="1600" height="928" data-path="images/guias/whatsapp/05-revisar-y-crear.webp" />
    </Frame>
  </Step>

  <Step title="Copia el ID de la app">
    Ya dentro de la app, el **ID de la app** aparece en la barra superior del panel (junto a "App ID"). Cópialo: es el primer campo del formulario de Ryvo.
  </Step>
</Steps>

## Paso 2: registra tu número y copia los dos IDs

<Steps>
  <Step title="Abre la configuración de la API">
    En el menú de la app, entra a **Casos de uso**, busca **Conectar con clientes a través de WhatsApp** y da **Personalizar**.

    <Frame caption="Casos de uso → Personalizar.">
      <img src="https://mintcdn.com/ryvo-3dab4d1a/u5UK13z9BXTsDyaf/images/guias/whatsapp/06-casos-de-uso-personalizar.webp?fit=max&auto=format&n=u5UK13z9BXTsDyaf&q=85&s=0b062d43ffc2e4a4edc029ae14f202d5" alt="Lista de casos de uso con el botón Personalizar" width="1600" height="981" data-path="images/guias/whatsapp/06-casos-de-uso-personalizar.webp" />
    </Frame>

    En la interfaz nueva de Meta, ve a **Configuración básica → Paso 2. Configuración de producción** y abre **Registra tu número de WhatsApp**. En apps más viejas, la misma pantalla está en **WhatsApp → Configuración de la API**.

    <Frame caption="Configuración de producción: aquí se registra el número.">
      <img src="https://mintcdn.com/ryvo-3dab4d1a/u5UK13z9BXTsDyaf/images/guias/whatsapp/07-registrar-numero.webp?fit=max&auto=format&n=u5UK13z9BXTsDyaf&q=85&s=03089a16b270fce3d0ada37f8365aa1c" alt="Sección Registra tu número de WhatsApp en la configuración de producción" width="1600" height="1311" data-path="images/guias/whatsapp/07-registrar-numero.webp" />
    </Frame>
  </Step>

  <Step title="Agrega o elige tu número">
    Elige un número existente en el selector, o da **Agregar número**. Si es nuevo, escribe el nombre que verán tus clientes, el número, elige verificación por SMS o llamada y captura el código que te manda Meta.

    <Frame caption="Alta de un número nuevo con verificación por SMS o llamada.">
      <img src="https://mintcdn.com/ryvo-3dab4d1a/u5UK13z9BXTsDyaf/images/guias/whatsapp/08-agregar-numero.webp?fit=max&auto=format&n=u5UK13z9BXTsDyaf&q=85&s=d8b0c812316593f3b7990759d12917cf" alt="Formulario para agregar un número de teléfono" width="1600" height="1207" data-path="images/guias/whatsapp/08-agregar-numero.webp" />
    </Frame>
  </Step>

  <Step title="Copia el WABA ID y el Phone number ID">
    Con el número seleccionado, la pantalla muestra el **WhatsApp Business Account ID** (el WABA ID) y el **Phone Number ID**. Copia los dos.

    <Frame caption="Arriba, el WABA ID; abajo, junto al número, el Phone number ID.">
      <img src="https://mintcdn.com/ryvo-3dab4d1a/u5UK13z9BXTsDyaf/images/guias/whatsapp/09-ids-phone-y-waba.webp?fit=max&auto=format&n=u5UK13z9BXTsDyaf&q=85&s=ca9efbf5687f6535ff556e1a88de72b5" alt="Pantalla de configuración con el WhatsApp Business Account ID y el Phone Number ID señalados" width="1600" height="1077" data-path="images/guias/whatsapp/09-ids-phone-y-waba.webp" />
    </Frame>
  </Step>
</Steps>

## Paso 3: genera un token permanente

El token que Meta muestra por omisión caduca en 24 horas. Para que la conexión no se caiga, genera uno **sin expiración** desde un usuario del sistema.

<Steps>
  <Step title="Abre los usuarios del sistema">
    En [business.facebook.com/settings](https://business.facebook.com/settings) elige el portafolio dueño de tu WABA y ve a **Usuarios → Usuarios del sistema**. Si ya tienes uno, selecciónalo; si no, da **Agregar**.

    <Frame caption="Configuración del negocio → Usuarios → Usuarios del sistema.">
      <img src="https://mintcdn.com/ryvo-3dab4d1a/u5UK13z9BXTsDyaf/images/guias/whatsapp/10-usuarios-del-sistema.webp?fit=max&auto=format&n=u5UK13z9BXTsDyaf&q=85&s=5637b1d179f7c1d8d9df765810c87368" alt="Lista de usuarios del sistema en la configuración del negocio" width="1600" height="960" data-path="images/guias/whatsapp/10-usuarios-del-sistema.webp" />
    </Frame>
  </Step>

  <Step title="Crea el usuario del sistema">
    Ponle un nombre (por ejemplo, "Ryvo WhatsApp"), elige el rol **Administrador** y da **Crear usuario del sistema**.

    <Frame caption="Nombre y rol de administrador para el usuario del sistema.">
      <img src="https://mintcdn.com/ryvo-3dab4d1a/u5UK13z9BXTsDyaf/images/guias/whatsapp/11-crear-usuario-del-sistema.webp?fit=max&auto=format&n=u5UK13z9BXTsDyaf&q=85&s=4aa4d2ec018a9ff6326eee264207ab43" alt="Formulario para crear un usuario del sistema" width="1600" height="1043" data-path="images/guias/whatsapp/11-crear-usuario-del-sistema.webp" />
    </Frame>
  </Step>

  <Step title="Asígnale la app y la WABA">
    Con el usuario seleccionado, da **Asignar activos**: agrega tu app de Meta y tu cuenta de WhatsApp Business con **control total**. Después da **Generar token**.

    <Frame caption="Asignar activos y luego Generar token.">
      <img src="https://mintcdn.com/ryvo-3dab4d1a/u5UK13z9BXTsDyaf/images/guias/whatsapp/12-asignar-activos-y-generar-token.webp?fit=max&auto=format&n=u5UK13z9BXTsDyaf&q=85&s=56b12b70f541f312967934647da2335f" alt="Usuario del sistema con los botones Asignar activos y Generar token" width="1600" height="960" data-path="images/guias/whatsapp/12-asignar-activos-y-generar-token.webp" />
    </Frame>
  </Step>

  <Step title="Elige la app">
    Selecciona la app que creaste en el paso 1 y da **Siguiente**.

    <Frame caption="La app para la que se genera el token.">
      <img src="https://mintcdn.com/ryvo-3dab4d1a/u5UK13z9BXTsDyaf/images/guias/whatsapp/13-elegir-la-app.webp?fit=max&auto=format&n=u5UK13z9BXTsDyaf&q=85&s=b1ab859e6a6628859a830ee606ec55b1" alt="Selección de la app para el token" width="1600" height="1035" data-path="images/guias/whatsapp/13-elegir-la-app.webp" />
    </Frame>
  </Step>

  <Step title="Sin expiración">
    En la caducidad del token elige **Nunca** y da **Siguiente**.

    <Frame caption="El token debe ser permanente.">
      <img src="https://mintcdn.com/ryvo-3dab4d1a/u5UK13z9BXTsDyaf/images/guias/whatsapp/14-token-sin-expiracion.webp?fit=max&auto=format&n=u5UK13z9BXTsDyaf&q=85&s=59282544f81367d5b5eacb3721e85db0" alt="Selección de caducidad del token con la opción Nunca" width="1600" height="1043" data-path="images/guias/whatsapp/14-token-sin-expiracion.webp" />
    </Frame>
  </Step>

  <Step title="Permisos">
    Marca `whatsapp_business_messaging` y `whatsapp_business_management`, y genera el token.

    <Frame caption="Los dos permisos de WhatsApp que Ryvo necesita.">
      <img src="https://mintcdn.com/ryvo-3dab4d1a/u5UK13z9BXTsDyaf/images/guias/whatsapp/15-permisos-del-token.webp?fit=max&auto=format&n=u5UK13z9BXTsDyaf&q=85&s=c806e1efc0096613a0bfcddaaeaa6716" alt="Lista de permisos con whatsapp_business_messaging y whatsapp_business_management marcados" width="1600" height="960" data-path="images/guias/whatsapp/15-permisos-del-token.webp" />
    </Frame>
  </Step>

  <Step title="Copia el token">
    Da **Copiar** y guárdalo en un lugar seguro: Meta no lo vuelve a mostrar.

    <Frame caption="Copia el token en cuanto aparece.">
      <img src="https://mintcdn.com/ryvo-3dab4d1a/u5UK13z9BXTsDyaf/images/guias/whatsapp/16-copiar-token.webp?fit=max&auto=format&n=u5UK13z9BXTsDyaf&q=85&s=6bfc030721b4665497a1e638a7aa9a85" alt="Token generado con el botón Copiar" width="1600" height="1156" data-path="images/guias/whatsapp/16-copiar-token.webp" />
    </Frame>
  </Step>
</Steps>

<Warning>
  Quien tenga ese token puede mandar mensajes desde tu número. No lo compartas por chat ni por correo; pégalo sólo en el formulario de Ryvo, donde se guarda cifrado.
</Warning>

## Paso 4: copia el App secret

En tu app de Meta, ve a **Configuración de la app → Básica** y da **Mostrar** junto a **Clave secreta de la app** (Meta puede pedirte tu contraseña). Cópiala. Ryvo la usa para verificar que cada mensaje que llega al webhook viene de Meta y no de alguien más.

## Paso 5: conecta en Ryvo

En Ryvo, ve a **Configuración → Integraciones**, busca la tarjeta **WhatsApp Business** y da clic en **Configurar**. Se abre una página con los pasos a la izquierda y el formulario a la derecha:

<Steps>
  <Step title="Conectar tu cuenta">
    Pega los cinco datos: **ID de la app de Meta** (paso 1), **App secret** (paso 4), **WABA ID** y **Phone number ID** (paso 2) y **Token permanente** (paso 3). Al dar **Crear canal de WhatsApp**, Ryvo valida las credenciales contra Meta antes de guardar nada. Si algo está mal, el error aparece debajo del campo que hay que corregir.
  </Step>

  <Step title="Elegir agente">
    Selecciona el agente que va a contestar (sólo aparecen los publicados) y da **Asignar agente**. Puedes dejarlo para después, pero mientras no haya agente el número recibe mensajes sin contestar.
  </Step>

  <Step title="¡Listo!">
    Ryvo intenta configurar el webhook de tu app y suscribir tu WABA automáticamente. Si lo logra, no tienes que tocar nada más en Meta. Si no, la misma pantalla te da la **URL de callback** y el **verify token** para hacerlo a mano (siguiente sección).
  </Step>
</Steps>

## Si Ryvo no pudo configurar el webhook solo

La pantalla de WhatsApp Business (Configuración → Integraciones → Configurar) te muestra la **URL de callback** y el **verify token**. Completa estos pasos en tu app de Meta:

<Steps>
  <Step title="Pega la URL y el verify token">
    En tu app, ve a **WhatsApp → Configuración**. En la sección **Webhook**, pega la URL de callback y el verify token y da **Verificar y guardar**.

    <Frame caption="Webhook: URL de callback, verify token y el botón Verificar y guardar.">
      <img src="https://mintcdn.com/ryvo-3dab4d1a/u5UK13z9BXTsDyaf/images/guias/whatsapp/17-webhook-url-y-token.webp?fit=max&auto=format&n=u5UK13z9BXTsDyaf&q=85&s=bda93eff379fc3c4c14da23f1e305c6d" alt="Configuración del webhook en la app de Meta" width="1600" height="849" data-path="images/guias/whatsapp/17-webhook-url-y-token.webp" />
    </Frame>
  </Step>

  <Step title="Suscríbete al campo messages">
    En la lista de campos del webhook, activa **messages**. Sin este campo, Ryvo no recibe los mensajes de tus clientes.

    <Frame caption="El campo messages debe quedar suscrito.">
      <img src="https://mintcdn.com/ryvo-3dab4d1a/u5UK13z9BXTsDyaf/images/guias/whatsapp/18-webhook-suscribir-messages.webp?fit=max&auto=format&n=u5UK13z9BXTsDyaf&q=85&s=fd0452838e94b7f3ad373d3f2f31c9a9" alt="Lista de campos del webhook con messages suscrito" width="1600" height="1084" data-path="images/guias/whatsapp/18-webhook-suscribir-messages.webp" />
    </Frame>
  </Step>

  <Step title="Suscribe la WABA a la app">
    En la pantalla del paso 2 (configuración de producción), activa **Suscribir webhooks** junto a tu cuenta de WhatsApp Business. Si no ves el interruptor, escríbenos y lo hacemos por ti.
  </Step>
</Steps>

## Cómo probar

Manda un "hola" desde tu celular al número que conectaste. Si todo quedó bien, el agente contesta en unos segundos y la conversación aparece en **Conversaciones** como cualquier otra.

## Estados de la conexión

| Estado                          | Qué significa                                                                                            |
| ------------------------------- | -------------------------------------------------------------------------------------------------------- |
| **Esperando el primer mensaje** | La conexión quedó lista; todavía no llega ningún mensaje.                                                |
| **Activo**                      | Ya hay conversación entrando y saliendo.                                                                 |
| **Pausado**                     | La pausaste tú; el número deja de contestar hasta que la reanudes.                                       |
| **Token inválido**              | Meta rechazó el token (por ejemplo, lo revocaste). Da **Reconectar** y genera uno nuevo desde el paso 3. |

## Límites de hoy

* **Sólo texto.** Si un cliente manda audio, imagen o documento, recibe un aviso de que el agente todavía no los procesa.
* **Un número por cuenta.** Para varios números, escríbenos a [soporte@ryvo.so](mailto:soporte@ryvo.so).
* El agente contesta con su **versión publicada**; los cambios en el borrador no aplican hasta que publiques.
* Aplica la **ventana de 24 horas** de Meta: el agente sólo responde a mensajes de tus clientes; no inicia conversaciones ni manda plantillas.
* La cuenta necesita el **Engine activo** y **saldo**; si el saldo se agota, el agente deja de contestar igual que en voz o chat.

## Problemas frecuentes

| Síntoma                                                               | Causa probable                                                                     | Qué hacer                                                                                       |
| --------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
| "Meta rechazó el token o no tiene permiso sobre ese número"           | El usuario del sistema no tiene asignada la WABA, o faltan los permisos del paso 3 | Vuelve al paso 3: asigna la WABA con control total y genera un token nuevo con los dos permisos |
| "No encontramos ese Phone number ID o WABA ID"                        | Copiaste un ID de otra app o de otro portafolio                                    | Revisa que los dos IDs salgan de la pantalla del paso 2, con el mismo número seleccionado       |
| El agente no contesta y la tarjeta dice "Esperando el primer mensaje" | El webhook no quedó configurado o falta la suscripción de la WABA                  | Completa la sección del webhook manual                                                          |
| Contesta a textos pero no a audios                                    | Es el límite de hoy                                                                | Nada que configurar; el aviso al cliente es automático                                          |
