Continuando con la creación del chatbot «Puss in Boots» o Gato con Botas por Botcamp de Bruno Fazoli, recibimos un requisito de nuestro cliente, el CEO de VegPet, para que sus usuarios puedan rastrear el envío de sus pedidos a través del chatbot.
Luego aprendimos cómo integrarnos con el sistema Correos do Brasil.
Descubrimos que usar la API de Correos tiene un costo, sin embargo, buscamos una solución y encontramos una API pública llamada Link & Track, sin costos operativos.
Los códigos de seguimiento de pedidos son datos públicos, ya que no proporcionan datos personales para el remitente y el destinatario.
Luego comenzamos con la etapa de Diseño Conversacional y creamos el intent #informar_tais_rastreamento con posibles uterancias de usuarios que desean conocer detalles del proceso de entrega de sus pedidos. Pudimos asignar un valor de expresión regular, lo que le permitió al bot reconocer el patrón de código de seguimiento necesario para obtener la información del servicio externo.
Una vez que se has creado el slot, es hora de habilitarla en el nodo que hace referencia a la intención de este usuario en el cuadro de diálogo y hacerla obligatoria. Es decir, si no está presente, el sistema solicita al usuario que ingrese el código.
El código de seguimiento debe enviarse a los servicios web del servicio postal para que la información de seguimiento actualizada se devuelva al usuario a través del bot. Como configuramos el slot o ranura como obligatoria, el cuadro de diálogo se atasca literalmente y se repite la misma solicitud hasta que el usuario ingresa un código de acuerdo con el patrón de expresiones regulares configurado.
Una vez que el usuario escribe el código correcto, es el momento de asignar el contenido literal de la entidad a la respuesta del asistente. En este punto, recibimos una llamada del CEO de VegPet pidiéndonos que entreguemos esta funcionalidad lo antes posible.
Es hora de compilar más este proceso y programar el literal directo en la definición del slot para que devuelva la variable de contexto con el valor deseado. Programamos el reconocimiento del slot en la intención como @trace_code.literal para que devuelva la variable de contexto $trace_code con el valor exacto para ser validado con el servicio web de seguimiento de pedidos… ¡y funciona!
Es importante restablecer la variable de contexto en el diálogo, para que el sistema no se atasque y la conversación pueda fluir de forma natural si el usuario decide cambiar de actividad en medio del proceso.
Variable de contexto definida, es hora de validarla.
Webhooks – Watson Side
Ahora es el momento de comprender el comportamiento de un webhook desde la perspectiva de Watson. El backend fue entregado en JavaScript por el profesor Bruno Fazoli. La URL base proporcionada fue http://letsbot-api.herokuapp.com, con Endpoint / Service en / watson_tracking
Solo la intención #traceamento_request podrá acceder a este puente con el sistema externo.
Una vez hecho esto, es hora de establecer los parámetros de backend en el frontend de Watson.
Las respuestas de esta integración, también definidas en el backend por el docente, se configuraron de la siguiente manera:
¡Hora de la verdad! Probando el webhook.
Spoiler: ¡funcionó!
El código de backend.js se puede verificar aquí: https://github.com/lucianareynaud/letsbot.git
En el próximo sprint, aprenderemos más sobre la estrategia del canal de integración.
¡Hasta la próxima!