Saltar a contenido

Integración Chatbot

Este es un servicio que se encargará de las integraciones que realicemos con el bot y otros servicios de comunicación como WhatsApp® y otros.

El servicio cumple con el flujo definido para mantener una conversación con el servicio chatbot-core.

¿Cómo funciona?

El servicio requiere una suscripción con el proveedor de comunicación para poder funcionar.

Como estos funcionan a traves de webhooks, cada vez que se reciba un mensaje al endpoint dado al proveedor entonces se obtiene la sesión y se lanza al usuario las opciones del bot como funcionaria en la versión web.

En caso de agentes, hay un endpoint para que se envíe el mensaje al proveedor para que el usuario reciba el mensaje sin pasar por el flujo del bot.

Integración con WhatsApp

Se soporta la versión de API v14.0 y v15.0

La integración con WhatsApp por el momento soporta:

  • Suscripción del webhook
  • Flujo de bot
  • Mensajes tipo:
    • Text (enviar y recibir)
    • Imágenes (enviar y recibir)
    • Documentos adjuntos (solo enviar)
  • Agentes

Tomar en cuenta

Enviar es desde chatbot-integ hacia usuario y recibir es de usuario a chatbot-integ

Para realizar la integración, se requiere un token de verificación y el id del bot a la cual estará asignado ese webhook.

Al momento de configurar el webhook, la url de devolución de llamada debe ser:

https://aless-intg.ofimatic.net/api/v1/whatsapp/{CUSTOMER_ID}/{BOT_ID}/{PRONE_ID}

El token de verificación debe estar en la tabla whatsapp_bot_config en la columna verification_token para dicho bot, la columna subscribed debe tener el valor 0. Una vez que se suscribe entonces el token se remueve de la base de datos y subscribed pasa a tener el valor 1 para el bot.

Luego de registrar, en los Campos del webhook darle a Administrar y suscribirse al que dice messages en la versión de api soportada`.

Pruebas

Para probar, en la sección de primeros pasos de la aplicación en https://developers.facebook.com/apps poner el Token de acceso temporal en la columna token y el Identificador de número de teléfono en la columna phone_id en la tabla whatsapp_bot_config. Y la versión del api en api_version.

Notificación por evento

Hay un API protegido para iniciar la conversación sin esperar que el usuario la inicie.

POST: https://aless-intg.ofimatic.net/api/bots/{BOT_ID}/init
X-Api-Key: {{API_KEY}} 
Content-Type: application/json
{
    "provider": string,
    "to": string,
    "script_id": int,
    "reference_id": string,
    "variables": {
        string: "URL"
    }
}
Donde los campos script_id y variables son opcionales.