Crea la automatización de tareas en IFTTT y actívalas con Dialogflow.
Tabla de contenidos
1: Introducción
Este post está dirigido a perfiles no técnicos interesados/as en crear un Asistente Virtual (interactuando con voz) o un chatbot (mediante texto) de forma fácil y sencilla con el menor número de líneas de código.
El software que vamos a crear se podrá consumir / utilizar desde un Altavoz Inteligente (Google Home) utilizando la voz, o un chat integrado en un web mediante texto.
2: Objetivo
En este post se pretende que el lector descubra y aprenda cómo puede crear un Asistente Virtual / Chatbot que realice tareas automáticas con muy pocas líneas de código.
La principal tarea es definir en IFTTT la acción que se quiere automatizar (no es necesario tener conocimientos en programación) y luego, conectarla con Dialogflow para activarla a partir de un “intent”.
Cualquier perfil no técnico podrá definir tareas automáticas en la plataforma IFTTT sin necesidad de tener conocimientos en programación.
IFTTT permite “conectar” diferentes plataformas o aplicaciones de forma automática en base a eventos y acciones.
3: Caso de Uso
Imaginemos que una empresa quiere desarrollar un Asistente Virtual para atender solicitudes de sus empleados/as para automatizar el desbloqueo de los usuarios (de un Sistema Operativo, de una Aplicación o de cualquier otro software) y dejar un registro en una Excel: (usuario que solicita el desbloqueo y la fecha y hora que lo solicita).
Para no complicar el código del ejemplo no se va a mostrar el código para desbloquear el usuario (del sistema operativo); de esta forma el lector podrá seguir más claramente la explicación.
4: Acciones a realizar
- Crear un Agente en Dialogflow (en este post asumiremos que ya está creado).
- Crear un Agente en Dialogflow (en este post asumiremos que ya está creado).
- Crear en IFTTT un applet Webhook -> Google Sheets (GoogleDrive).
- Obtener desde IFTTT el endpoint del Applet creado.
- Configurar el “intent” mediante fulfillment realizando una invocación al endpoint anterior informando los parámetros recogidos del usuario.
4.1: Crear un “intent” para que el empleado/a solicite “desbloquear su usuario”
- name: “desbloquearUsuario”
- frases de entrenamiento:
____________________“Desbloquea mi usuario”
____________________”Necesito desbloquear mi usuario”
- definir tres parámetros obligatorios:
_____________________value1: recoger el nombre completo del empleado/a
_____________________value2: recoger el usuario (id) del empleado/a
_____________________value3: recoger el motivo del bloqueo de usuario
- definir como respuesta: “La respuesta se genera desde fulfillment”
- activar fulfilltime del “intent”
- guardar los cambios (save)
4.2 Crear en IFTTT un applet Webhook -> Google Sheets (GoogleDrive)
- Acceder a IFTTT (previamente es necesario estar registrado) y crear un nuevo Applet.
- Clic en “+ this”. Se va a crear un Webhook para comunicar Dialogflow con IFTTT.
- Seleccionar el servicio Webhook:
- Seleccionar “Receive a web request”
- Informar el nombre del evento: “desbloquearUsuario” y pulsar “Create Trigger”
- Pulsar “+that”. Cuando se genere el evento que activa el Webhook que acabamos de crear, en esta opción “+that” se habilitará la acción a realizar.
- Buscar la opción: Google Sheets (Google Drive). En este punto se puede “elegir” cualquiera de las múltiples opciones que ofrece IFTTT para desencadenar la acción. Para este ejemplo, vamos a utilizar escribir en una hoja de cálculos (añadir una nueva fila cada vez que un empleado/a solicita desbloquear su usuario).
- Seleccionar la acción: “Add row to spreadsheet”
- Definir la configuración de la hoja de cálculos:
_________Spreadsheet name: “Registro desbloqueo usuario”
_________Formatted row: Define el orden de las columnas en cada fila de la excel. Se escriben 5 columnas y en este orden: timestamp, nombre del evento, valor 1 (nombre del empleado/a), valor 2 (usuario) y valor 3 (motivo) de la petición. Estos tres últimos valores son los que están definidos como obligatorios en el “intent” de dialogflow.
________ Drive folder path: Definir el path donde se almacenará la hoja de cálculos en Google Drive.
_________Pulsar Create action
- Finalizar la creación del Applet: Finish
- Con esta acciones se habrá finalizado la creación del Applet:
4.3. Obtener desde IFTTT el endpoint del Applet creado
- Seleccionar “My Applets” en IFTTT
- Seleccionar el Applet que acabamos de crear:
- Pulsar la opción “Webhook” marcada en la imagen:
- Pulsar la opción “settings”
- Seleccionar endpoint o URL que aparece:
- Cargar el endpoint (URL) en un navegador; IFTTT ofrece esta opción para hacer test sobre el Applet creado.
- Puedes hacer un test sobre el Applet que acabamos de crear informando los parámetros:
______________event: desbloquearUsuario
______________value1: Javier Porras Castaño
______________value2: U1234D (usuario)
______________value3: Se me olvidó cambiar la contraseña
- Al pulsar “Test It” se desencadenará la acción definida en el Applet: es decir, insertar una fila en la hoja de cálculos:
- Copiar el endpoint del webhook del Applet (será el que utilicemos en Dialogflow asociado al “intent” a través de fulfillment
4.4 Configurar el “intent” mediante fulfillment realizando una invocación al endpoint del applet (IFTTT) informando los parámetros recogidos del usuario.
- Acceder a Fulfillment de Dialogflow:
- Añadir una nueva función asociada el intent:
____________intent: “desbloquearUsuario”
____________función: “metodoDesbloquearUsuario”
incluir la línea: intentMap.set(‘desbloquearUsuario’, metodoDesbloquearUsuario);
- Implementar la siguiente función: “metodoDesbloquearUsuario”
- Pulsar la opción DEPLOY. Tras la compilación y despliegue de la nueva función, ya tendremos conectado Dialogflow con IFTTT.
- Con estas acciones se habrá finalizado el desarrollo del caso de uso.
5: Pruebas
Para probar la funcionalidad, utilizamos la opción de Web demo de Dialogflow (Integrations)
En el siguiente vídeo podéis ver de forma más clara la funcionalidad del desarrollo realizada, en este vídeo se utiliza el Asistente Virtual mediante un chat (sólo texto) integrado en una Web.
En el siguiente vídeo se muestra cómo interactuar con el Asistente Virtual mediante el Altavoz Inteligente Google Home mini: