https://d226lax1qjow5r.cloudfront.net/blog/blogposts/send-and-request-data-with-webhooks-with-ai-studio/send-request-data_webhooks_ai-studio.png

Enviar y solicitar datos con Webhooks con AI Studio

Publicado el November 29, 2022

Tiempo de lectura: 6 minutos

Introducción

Vonage AI Studio es una plataforma de IA conversacional de código bajo y sin código que ayuda a las empresas a manejar interacciones complejas con los clientes a través de voz y texto. A medida que creas agentes virtuales con AI Studio, no pasará mucho tiempo antes de que necesites recuperar datos de una fuente de terceros, como un Webhook. En esta entrada de blog, aprenderás:

  • Cómo recuperar datos de un Webhook en AI Studio desde un REST Endpoint

  • Cómo almacenar los datos como un parámetro (para su uso posterior)

  • Ejemplos de sentencias condicionales para realizar operaciones con los datos

Para entender cómo interactuar con un Webhook en AI Studio, utilizaremos un escenario en el que un banco desea validar la identidad de un cliente comparando un número pin con el número recuperado de un Webhook.

Comprender los datos de la carga útil

A continuación se muestra un fragmento de los datos devueltos en nuestra carga útil de ejemplo:

[
  ...
  {
    "id": 4,
    "email": "michael.crump@vonage.com",
    "phone": "14259999999",
    "name": "Michael Crump",
    "cc_balance": "76.31",
    "pin": "1234"
  }
]

Una vez que el cliente marque el número de teléfono del Banco, utilizaremos la función teléfono para buscar el valor correcto del pin a través de este Webhook.

Integración de laGancho web

En este punto, ya ha creado un proyecto de AI Studio que utiliza un archivo Entrada de entrada. Si todavía lo necesitas, sigue esta guía. Desplácese hacia abajo desde Nodos hasta llegar a Integracionesseleccione Webhooky arrástrelo y suéltelo en el lienzo.

Integrations Dialogintegrations.png

Haga clic en el evento Webhook recién creado, ya que tendrá que proporcionar la URL de su punto final.

Dado que la consulta se basará en el número de teléfono, utilizaremos la siguiente URL codificada (que apunta a un número de teléfono específico): https://my-json-server.typicode.com/mbcrump/ai-studio-api/customers?phone=14259999999. Una vez que la haya añadido, pulse Probar solicitud como se muestra a continuación.

Si desea obtener más información sobre Chatbot Tester, haga clic aquí.

Testing our Webhook calltest-webhook-1.png

Si ve un estado de 200, significa que la solicitud se ha devuelto correctamente (puede ver en el campo Respuesta la información que recibimos basada en el número de teléfono de este usuario (que fue codificado).

Aunque estos datos estaban codificados en la URL de consulta, ¿cómo pasa AI Studio esta información en función del número al que se llama? Aquí es donde utilizaremos uno de los parámetros predefinidos del sistema parámetros del sistema denominado CALLER_PHONE_NUMBER, como se muestra a continuación.

Testing our Webhook callsystem_parameters.png

Puede activar este diálogo pulsando la tecla $ y seleccionando el parámetro del sistema que desea utilizar. Ahora nuestra URL es https://my-json-server.typicode.com/mbcrump/ai-studio-api/customers?phone=$CALLER_PHONE_NUMBER.

Una vez completado, recuerde pulsar Guardar y Salir.

Testing our Webhook callwebhook-with-phone-number.png

Si intentamos probar el WebHook ahora, obtendrás un código de estado 200, pero no habrá ningún dato dentro de la respuesta.

No Data Returnedno-data-returned.png

Podemos solucionarlo haciendo clic en el botón Configuración y especificando un NÚMERO_TELÉFONO_LLAMANTE, como se muestra a continuación.

Specifying a Phone Numbersetting-system-parameters.png

Ahora, si pulsa Reenviar solicitudobtendrá una respuesta adecuada, como se muestra a continuación.

Resent Webhook Requestsuccessful-response.png

Configuración de parámetros para hacer algo con los datos devueltos

Ahora que podemos llamar a un WebHook desde AI Studio y devolver datos, usaremos Parámetros para extraer y utilizar información específica de la entrada del usuario. Por ejemplo, para recopilar la información de un usuario (es decir, PIN o Account Balance), es necesario definir un parámetro que almacenará la información para que se pueda acceder a ella más tarde.

Para Crear un parámetro, en la navegación de la izquierda, haga clic en Propiedades y luego Parámetros.

Parameters Selectionparameters-selection.png

Añada un parámetro haciendo clic en la primera fila del menú Parámetros personalizados personalizados.

Tenemos que añadir aquí cuatro parámetros para almacenar el PIN que pertenece al cliente, el PIN que el cliente ha tecleado, el nombre del cliente y el saldo de la cuenta en caso de que haya introducido correctamente un número pin.

Name Entity Type
pin_number @ sys.number
input_number @ sys.number
name @ sys.any
balance @ sys.number

Una vez completado, su pantalla debería parecerse a la siguiente:

Custom Parametersparameters.png

Prensa Cerrar una vez introducida toda la información.

Haga clic en Gancho web 1 y busque en Asignación de respuestas. Aquí introduciremos la primera Ruta de objeto como [0][name] y le daremos el parámetro parámetro que hemos creado llamado nombre.

Response Mappingresponse-mapping.png

Cobraremos el saldo y PIN mientras estamos aquí.

Después de añadirlos, tu pantalla debería parecerse a la siguiente:

Response Mappingresponse-mapping-1.png

Una vez completado, no olvide pulsar Guardar y Salir.

Utilizaremos un Recoger Entrada para pedir al usuario su PIN. Arrastra y suelta el nodo desde la ventana Conversación Conversación.

Collect Input Nodecollect-input.png

Para el Parámetroutilice el parámetro número_entrada que definimos anteriormente. Para Avisosintroduzca "Introduzca su número pin de cuatro dígitos para acceder a su Account" o algo similar, como se muestra a continuación.

Collect Input Nodeparameter-input-number.png

Ahora conectaremos el Webhook 1 a la función Recoger Entrada 1 como se muestra a continuación.

Connect Webhook Collect Inputconnect-webhook-collect-input.png

Arrastre y suelte una Condición desde el nodo Conversación conversación. Haga clic en "Predeterminado" dentro de la nota y pulse Crear condición.

Como se muestra a continuación, crearemos una condición que compruebe si el Número introducido que introdujeron coincide con el PIN de nuestro Webhook.

Condition Requirementscondition-req.png

Una vez completado, no olvide pulsar Guardar y Salir.

Arrastrar y soltar dos más Hable en el lienzo. Para el nodo Hablar 2 introduzca el mensaje, Verification Successful Welcome $name. Your balance is $balance. Donde $name es el parámetro que definimos anteriormente.

Speak 2 Nodespeak-2-node.png

Para la Hablar 3 introduzca el mensaje "Lo siento, no era correcto", donde $name es el parámetro que definimos anteriormente. Una vez completado, pulse Intro y no olvide pulsar Guardar y Salir.

Por último, añada una llamada Llamada final en el lienzo.

Ahora debe conectar el Condición 1 (Nueva Condición) a Habla 2 y Condición 1 (Predeterminada) a Habla 3. A continuación, conecte Habla 2 y Altavoz 3 a la Finalizar llamada 1 como se muestra a continuación.

Final Resultfinal-result.png

Pulse el botón Comprobador en la parte superior derecha de la pantalla y, a continuación, seleccione Llamada entrante como evento y, a continuación Iniciar chat. Tendrás que establecer los parámetros iniciales como hicimos anteriormente para el NÚMERO_TELÉFONO_LLAMANTE y configurarlo como 14259999999.

Set Inital Parametersset-initial-parameters.png

Ahora, si vuelve a ejecutar la herramienta de comprobación, puede proporcionar un número de cuatro dígitos (como 1234), y el Agente Virtual le devolverá su Nombrey Saldo de la Account encontrados en el db.json como se muestra a continuación.

Tester Chat Completedtester-chat-completed.png

¡Impresionante! Hemos implementado con éxito un Webhook y creado la lógica con lo que los datos devueltos.

Resumen

Ahora te toca a ti. Hay varias formas de ampliar la aplicación, por ejemplo:

  • La lógica para una instancia cuando no se encuentra un PIN

  • Autenticación Webhook para fines de seguridad, como tokens de autenticación, etc.

  • Número máximo de reintentos en caso de intento fallido

¿A qué espera? Visita AI Studio para comenzar tu viaje.

Si tienes preguntas o comentarios, únete a nosotros en el Slack para desarrolladores de Vonage o envíame un Tweet a Twittery te responderé. Gracias de nuevo por leer, ¡y te espero en el próximo!

Compartir:

https://a.storyblok.com/f/270183/400x400/7cdff37c0e/michael-crump.png
Michael CrumpDirector de Experiencias de los Desarrolladores

Michael Crump trabaja en Vonage en el equipo de experiencias para desarrolladores y es programador, YouTuber y conferenciante habitual sobre diversos temas de desarrollo de .NET, la nube y las comunicaciones. Le apasiona ayudar a los desarrolladores a comprender las ventajas de cada uno de ellos de una forma sencilla.