
Flows es un motor de automatización potente de arrastrar y soltar para crear flujos de comunicación. Inicialmente lo concebimos como una solución sin código, pero descubrimos que muchos usuarios podían lograr un comportamiento realmente poderoso escribiendo algo de código para casos de uso específicos. Estos fragmentos de código pueden estar dentro de Flow Builder, o pueden ser funciones en la nube de terceros como funciones de AWS Lambda o Google Cloud Functions.
Esta es una demostración simple usando GoogleCloud Functions y Flows para hacer reconocimiento de imagen en una imagen enviada por Telegram.
Flujos y Beyond
Como desarrollador de Flows, a menudo pienso en quiénes son nuestros usuarios, por qué utilizan Flows, y qué necesitan para alcanzar sus objetivos; y luego, qué características necesitamos implementar para servir mejor a esos usuarios.
Flows es un potente motor de automatización de arrastrar y soltar para crear flujos de comunicación. Inicialmente lo concebimos como una solución sin código, pero encontramos que muchos usuarios podían lograr comportamientos realmente poderosos escribiendo algo de código para casos de uso específicos. Por ejemplo, puedes crear flujos que generen automáticamente leads y casos en Salesforce en función de las interacciones con clientes a través de múltiples canales. Estos fragmentos de código pueden estar dentro de Flows, o pueden ser funciones en la nube de terceros como funciones de AWS Lambda o Google Cloud Functions.
Un caso de uso interesante: Reconocimiento de Imágenes
Para un ejemplo corto y divertido, te mostraré cómo implementar una aplicación que reconoce hot dogs. Configuraremos un flujo en Flows, que recibirá imágenes de usuarios y decidirá si enviaron o no un hot dog.
Para muchos de nuestros clientes, este tipo de reconocimiento de imágenes puede ser muy poderoso. Imagina que diriges un servicio de entrega y quisieras verificar automáticamente las entregas exitosas. Similar a lo que te voy a mostrar, podrías usar datos de localización, fotos de paquetes, e incluso firmas de los destinatarios para crear un flujo de verificación en Flows.
Un plan para el éxito
Configurando la Google Cloud Function
Primero, necesitaremos configurar una función en la nube. Para comenzar rápidamente, siga el tutorial de inicio rápido de Cloud Functions de Google. Como ‘Trigger’ elija HTTP trigger, ambiente de ejecución: Node.js 10, y en el campo de código fuente inserte el fragmento de código. Es un código simple, que verifica si la solicitud contiene código JSON y responde sí o no.

A continuación, necesitarás desplegar esta función. Para probarla dentro de Google Cloud Platform, sigue los pasos del tutorial.
Para probar desde tu navegador, ve a la siguiente URL insertando la dirección específica para tu función:
https://your-function-address.cloudfunctions.net/HotDogOrNot/?url=hello
debería devolver {“isHotDog”: true} y la dirección https://your-function-address.cloudfunctions.net/HotDogOrNot
debería devolver {“isHotDog”: false}.
¡Buen trabajo! Has configurado una función de Google Cloud. Ahora necesitamos hacer que nuestra función en la nube sea más inteligente.
Configurando el Google Vision API
Para hacerlo más inteligente, añadamos reconocimiento de imágenes. Para este propósito, utilizaremos el Google Vision API. Para comenzar, sigue los pasos 1-4 en la guía de inicio rápido de Vision API. En el tutorial activarás el Vision API y crearás una cuenta de servicio para utilizarlo.
Ahora vuelve a la función en la nube que creaste. Alterna "Variables de entorno, redes, límites de tiempo y más" y en el archivo "Cuenta de servicio" elige la cuenta de servicio de VisionAPI que acabas de crear. Ahora podemos acceder al Vision API dentro de nuestra función.

Ahora cambiemos el código. En una pestaña “Package.json”, inserta este código. Añadirá la librería de Google Vision API como una dependencia para tu función.
en la pestaña "Index.js" actualiza el código existente con el siguiente fragmento de código.

¿Cuál es la diferencia comparada con la versión anterior? Añadimos una solicitud a VisionAPI, que devuelve las ‘etiquetas’ que encontró en la imagen. Luego, filtramos estas etiquetas por descripción: si contiene “hot dog” y si tiene más del 60% de confianza en esa etiqueta. Si queda al menos 1 etiqueta después del filtrado, significa que encontramos un hotdog en la imagen.
Para entender cómo funciona el Google Vision API y ver respuestas de muestra, consulta la documentación oficial de Vision API.
Después de eso, despliega la nueva versión de nuestra función. Para probarla desde tu navegador, encuentra cualquier imagen de un hotdog y guarda su URL. Ahora ve a la URL de tu función (insertando la dirección correcta de tu función) https://your-function-address.cloudfunctions.net/HotDogOrNot?url=url_to_image
y reemplaza “url_to_image” con una URL a la imagen encontrada. Si hay un hotdog en la imagen, la página devolverá {“isHotDog”: true}.
Ahora conectemos esta función a Flow Builder.
Creating a flow in Flows
Inicia sesión en el Bird Dashboard o regístrate para obtener una cuenta si no tienes una.
Si eres nuevo en Flows y no tienes ningún canal configurado, necesitarás ir a la página de configuración de canales y elegir configurar el canal de Telegram. Elegí Telegram para esta demostración porque es fácil y rápido de configurar.

Ahora tienes un canal que podemos usar en Flows. Ve a la página de Flows, crea un nuevo flujo personalizado y elige el desencadenante del canal "Telegram".

Serás redirigido a una página de flujo, donde deberías elegir tu canal de Telegram como desencadenante, en nuestro caso es "Hotdog". Por favor, añade 2 pasos: "Fetch variables" y "Reply to channel message".
Dentro del paso "Fetch variables" llamaremos a nuestra función en la nube y recuperaremos la respuesta en la variable "isHotDog" que contendrá "true" o "false" como respuesta de la función Google Cloud. En el campo URL, por favor inserta la URL de tu función https://your-function-address.cloudfunctions.net/HotDogOrNot
y llena todos los demás campos como en la imagen del contenido del paso "Fetch variable step".
Y dentro del paso "Reply to channel message" responderemos al cliente con un mensaje que contenga la respuesta de sí o no. Para eso inserta en el campo "Reply with message" el siguiente texto: "¿Hotdog en la imagen? {{isHotDog}}".


Si tienes algún problema construyendo el flujo, puedes usar el siguiente fragmento:

Para probarlo, envía una imagen a tu bot de Telegram.
¡Hasta ahora se ve genial! Creamos un pequeño chat bot, que verifica las imágenes que envían los clientes. Para hacerlo más bonito, añadamos algunos pasos más como se muestra a continuación:

Si tienes algún problema construyendo el flujo, puedes usar el siguiente fragmento:
Resultados


Aunque este es un ejemplo divertido, creemos que este tipo de funcionalidad puede ser muy útil para nuestros usuarios.
Si deseas más características como esta integradas en Flows, escribe a nuestro equipo de soporte para hacérnoslo saber.