Resumen

Integrar un asistente virtual con una base de datos en la nube es una de las tareas más valiosas cuando se construyen aplicaciones conversacionales. En esta sesión se muestra paso a paso cómo exponer una función como API, consumirla desde Postman y, finalmente, conectar Watson Assistant con IBM Cloudant para persistir información del usuario en tiempo real.

¿Cómo exponer una función como Web Action?

El punto de partida es la función creada previamente en IBM Cloud Functions. Cada vez que se guarda un cambio, se genera un número de revisión que permite rastrear ediciones anteriores, además de un ID único asignado dinámicamente a cada documento dentro de Cloudant [01:06].

Para convertir la función en un endpoint accesible, se utiliza la opción Web Action dentro de la sección de acciones:

  • Se activa la casilla Enable as Web Action [01:20].
  • Se guarda la configuración.
  • Se obtiene la URL pública y, opcionalmente, la URL autenticada con API key.

El API key tiene un formato particular: dos partes separadas por dos puntos. La primera parte corresponde al usuario y la segunda al password de autenticación básica [02:00].

¿Cómo consumir la función desde Postman?

Con la URL de la Web Action copiada, se abre Postman para realizar una prueba de consumo [02:15]:

  • Se configura el método como POST.
  • En la pestaña de autorización se selecciona Basic Auth.
  • En username se pega la primera parte del API key.
  • En password se pega la segunda parte.
  • Se presiona Update Request.

Después, en el body se selecciona raw con formato JSON y se envía un objeto de prueba. Al presionar Send, la respuesta devuelve un activation ID que confirma la ejecución exitosa [03:05]. Verificando en Cloudant, el nuevo documento aparece registrado correctamente.

¿Cómo conectar Watson Assistant con la función y Cloudant?

Una vez confirmado que la función persiste datos, el siguiente paso es integrarla con Watson Assistant para que las conversaciones del usuario se almacenen automáticamente en la base de datos [03:40].

¿Qué cambios se necesitan en el diálogo?

Dentro del servicio de Watson Assistant se accede al skill existente y se crea un nuevo nodo de diálogo llamado Reservación [04:20]. La condición del nodo se asocia a la intención de reservación. Es importante recordar que los nodos se evalúan de forma secuencial, por lo que el orden en el árbol de diálogo importa; se puede mover un nodo con la opción move [04:50].

¿Cómo se configura el webhook?

El webhook es el mecanismo que permite a Watson Assistant llamar a servicios externos. En este caso, se reemplaza la URL anterior (que apuntaba al traductor) por la URL de la función recién expuesta [05:10]:

  • Se pega la nueva URL en la configuración del webhook.
  • Se eliminan headers innecesarios como content type.
  • Se configuran las credenciales: el username y el password del API key.
  • Se guarda la configuración.

Dentro del nodo de Reservación, en la opción Customize, se activa el webhook con un clic en on y se aplica [05:55]. Luego se define un parámetro con la clave Key y como valor se utiliza input.text, que captura exactamente lo que el usuario escribió en el chat [06:15].

¿Cómo se verifica que todo funcione?

Al probar con el mensaje "quiero hacer una reservación", Watson Assistant detecta la intención correcta, ejecuta el webhook y devuelve un activation ID como respuesta [06:40]. Al revisar Cloudant, el documento nuevo aparece con el campo Key conteniendo el texto del usuario.

También es posible personalizar la respuesta que el asistente devuelve al usuario mostrando la información que regresa el webhook, tal como se hizo en ejercicios anteriores con el traductor [06:55].

Este flujo completo — Assistant → función → Cloudant — es la arquitectura base que se utilizará en el proyecto final. Si tienes dudas sobre cómo adaptar esta conexión a otros casos de uso, comparte tu experiencia en los comentarios.