El inbound webhook recibe datos desde cualquier lado hacia el chatbot, con una petición POST.
Con un inbound webhook tu bot puede incluso empezar una conversación con alguien que nunca le habló antes.
Por ejemplo: un cliente deja sus datos de contacto en tu sitio, esa información se envía al inbound webhook de un chatbot de SMS, y el bot le manda un mensaje de confirmación a su teléfono.
Si el webhook está en un bot de voz, el bot puede llamarlo en el momento.
Límite
Cada bot admite hasta 5 inbound webhooks.
Crear un inbound webhook
Está disponible en casi todos los canales. Desde tu Flow Builder, ve a Tools - Inbound Webhooks:

Haz clic en New Inbound Webhook, ponle un nombre y haz clic en Save:

Vas a ver esta pantalla de edición:

Dirección del webhook
Esta zona te indica a dónde mandar los datos y con qué método, que es POST. Cada inbound webhook tiene una URL única en todo GoChat.
Ejemplo del JSON recibido
Esta zona muestra un JSON de ejemplo como referencia. Describe la estructura de los datos que vamos a recibir después, y la necesitamos para encontrar los valores que identifican al usuario y los datos que queremos guardar.
Hay 2 formas de conseguir un JSON de ejemplo:
- escribirlo o pegarlo a mano
- escuchar los datos en tiempo real desde una prueba en vivo
Valores para identificar a un usuario
Cada vez que el webhook recibe datos, primero revisa las rutas que indicaste acá para ver si encuentra un usuario que ya exista en el chatbot.
Si no está en el sistema, el chatbot crea un perfil nuevo. Así es como el chatbot inicia una conversación con alguien que nunca le habló.
Ahora bien, algunos canales no permiten que el chatbot escriba primero, por cuestiones de privacidad y spam.
Por ejemplo, tu bot de SMS puede mandar mensajes con solo tener el teléfono del destinatario, mientras que tu chatbot de Facebook Messenger no puede escribirle a alguien que nunca le habló.
Cómo se identifica a un usuario
Este es el proceso que sigue el sistema:
- revisa el user_ns
- si hay un user_ns válido, usuario encontrado
- si no, pasa al siguiente paso
- revisa el teléfono o el correo
- si encuentra un usuario por teléfono o correo, usuario encontrado
- si no, pasa al siguiente paso
- valida el teléfono
- no hay usuario que coincida, ¿el teléfono es un número válido?
- si lo es, se crea el perfil
- si no, el webhook no se procesa
Zona de mapeo
La lista de mapeo indica qué valor se guarda en qué campo personalizado. Cuando tengas un JSON de ejemplo en la zona anterior, haz clic en Preview Payload para abrir la herramienta de mapeo.
Logs del webhook
Cada petición queda guardada en Logs. Haz clic en un registro para ver el JSON que llegó.
Ejemplo: confirmación de una reserva
La mejor herramienta para probar tu inbound webhook ya viene incluida. Toma cualquier chatbot, del canal que sea, y pruébalo en un Action Step.
Abre otra pestaña de GoChat en paralelo: en la página 1 deja la edición del inbound webhook y en la página 2 elige una petición externa:

Sigue los pasos 1 al 8 de esta captura:

Carga los datos que quieres enviarle al chatbot y haz clic en Test. Vas a recibir un error de “webhook inactive” porque todavía no lo activamos. Está bien: haz clic en Done en la página 1 y vas a ver los datos guardados.

Baja un poco y sigue los pasos 1, 2 y 3 para indicarle al sistema dónde están el teléfono y el correo dentro del JSON:

Después mapea el resto de los datos al chatbot:

Guarda la edición del inbound webhook:

Entra al sub-flow y manda un mensaje al usuario del bot:

Publica el flow y repite la prueba en vivo desde la petición externa:

Esta vez corre sin errores, porque activamos el webhook y usamos un teléfono real. En Logs se ve que se creó un perfil de usuario nuevo.
Del lado del usuario:

