
Flows is een krachtige drag-and-drop automatiseringsengine voor het creëren van communicatieflows. We bedachten het aanvankelijk als een no-code oplossing, maar we ontdekten dat veel gebruikers echt krachtige functionaliteiten konden creëren door wat code te schrijven voor specifieke use-cases. Deze stukjes code kunnen binnen Flow Builder zijn, of ze kunnen 3rd party cloudfuncties zijn zoals AWS Lambda functies of Google Cloud Functions.
Dit is een eenvoudige demonstratie met GoogleCloud Functions en Flows om beeldherkenning uit te voeren op een afbeelding die via Telegram is verzonden.
Flows en Beyond
Als ontwikkelaar van Flows denk ik vaak na over wie onze gebruikers zijn, waarom ze Flows gebruiken en wat ze nodig hebben om hun doelen te bereiken; en vervolgens, welke functies we moeten implementeren om die gebruikers het beste van dienst te zijn.
Flows is een krachtige drag-and-drop automatiseringsmotor voor het creëren van communicatieflows. We hebben het aanvankelijk bedacht als een no-code oplossing, maar we ontdekten dat veel gebruikers echt krachtige functionaliteiten konden verkrijgen door wat code te schrijven voor specifieke toepassingen. Bijvoorbeeld, je kunt flows creëren die automatisch leads en cases in Salesforce genereren op basis van klantinteracties over meerdere kanalen. Deze stukjes code kunnen binnen Flows zijn, of ze kunnen 3rd party cloudfuncties zijn zoals AWS Lambda functies of Google Cloud Functions.
Een interessant gebruiksvoorbeeld: Beeldherkenning
Voor een kort en grappig voorbeeld, zal ik je laten zien hoe je een app implementeert die hotdogs herkent. We zullen een flow in Flows opzetten, die afbeeldingen van gebruikers ontvangt en beslist of ze een hotdog hebben verzonden of niet.
Voor veel van onze klanten kan dit type beeldherkenning zeer krachtig zijn. Stel je voor dat je een bezorgdienst runt en je wilt succesvolle leveringen automatisch verifiëren. Vergelijkbaar met wat ik ga laten zien, zou je locatiegegevens, foto's van pakketten en zelfs handtekeningen van ontvangers kunnen gebruiken om een verificatiestroom in Flows te creëren.
Een plan voor succes
Het instellen van de Google Cloud Function
Eerst moeten we een cloudfunctie instellen. Om snel aan de slag te gaan, volg je Google’s Cloud Functions quickstart tutorial. Kies als 'Trigger' HTTP-trigger, uitvoering omgeving: Node.js 10, en plaats in het broncodeveld het codefragment. Het is eenvoudige code, die controleert of het verzoek JSON-code bevat en antwoordt met ja of nee.

Vervolgens moet je deze functie implementeren. Om het binnen Google Cloud Platform te testen, volg je de stappen uit de tutorial.
Om vanuit je browser te testen, ga je naar de volgende URL en voer je het specifieke adres voor jouw functie in:
https://your-function-address.cloudfunctions.net/HotDogOrNot/?url=hello
zou {“isHotDog”: true} moeten teruggeven en het adres https://your-function-address.cloudfunctions.net/HotDogOrNot
zou {“isHotDog”: false}. moeten teruggeven.
Goed gedaan! Je hebt een Google-cloudfunctie ingesteld. Nu moeten we onze cloudfunctie slimmer maken.
Het instellen van de Google Vision API
Om het slimmer te maken, laten we beeldherkenning toevoegen. Voor dit doel zullen we de Google Vision API gebruiken. Om te beginnen, volg stappen 1-4 in de Vision API quickstart gids. In de handleiding activeert u de Vision API en maakt u een serviceaccount om deze te gebruiken.
Keer nu terug naar de cloudfunctie die u heeft gecreëerd. Schakel "Omgevingsvariabelen, netwerken, time-outs en meer" in en kies in het bestand "Serviceaccount" het zojuist gemaakte VisionAPI-serviceaccount. Nu hebben we toegang tot de Vision API binnen onze functie.

Laten we nu de code wijzigen. Voeg op een "Package.json"-tabblad deze code in. Het zal de Google Vision API-bibliotheek als een afhankelijkheid toevoegen aan uw functie.
Update op het "Index.js"-tabblad de bestaande code met de volgende codefragment.

Wat is het verschil vergeleken met de vorige versie? We hebben een verzoek toegevoegd aan VisionAPI, die de ‘labels’ retourneert die het op de afbeelding heeft gevonden. Vervolgens filteren we deze labels op beschrijving: als deze "hot dog" bevat en als er meer dan 60% vertrouwen in dat label is. Als er minstens 1 label overblijft na het filteren, betekent dat dat we een hotdog op de afbeelding hebben gevonden.
Om te begrijpen hoe de Google Vision API werkt en om voorbeeldreacties te bekijken, raadpleeg de officiële Vision API documentatie.
Daarna implementeert u de nieuwe versie van onze functie. Om deze vanuit uw browser te testen, zoek een afbeelding van een hotdog en sla de URL ervan op. Ga nu naar de URL van uw functie (door het juiste adres voor uw functie in te voeren) https://your-function-address.cloudfunctions.net/HotDogOrNot?url=url_to_image
en vervang de "url_to_image" door een URL naar de gevonden afbeelding. Als er een hotdog in de afbeelding is, zal de pagina {“isHotDog”: true} retourneren.
Laten we nu deze functie verbinden met Flow Builder.
Een flow maken in Flows
Meld je aan bij het Bird-dashboard of registreer je voor een account als je er nog geen hebt.
Als je nieuw bent bij Flows en nog geen kanalen hebt ingesteld, moet je naar de Kanaalinstellingen-pagina gaan en ervoor kiezen om het Telegram-kanaal in te stellen. Ik heb voor dit demo gekozen voor Telegram omdat het eenvoudig en snel in te stellen is.

Nu heb je een kanaal dat we in Flows kunnen gebruiken. Ga naar de Flows-pagina, maak een nieuwe aangepaste flow en kies de “Telegram”-kanaaltrigger.

Je wordt doorgestuurd naar een flowpagina, waar je je Telegram-kanaal als trigger moet kiezen, in ons geval is dat “Hotdog”. Voeg 2 stappen toe: “Fetch variables” en “Reply to channel message”.
In de stap “Fetch variables” zullen we onze cloudfunctie aanroepen en de reactie ophalen in de variabele “isHotDog” die “true” of “false” zal bevatten als een antwoord van de GoogleClound-functie. In het URL-veld graag de URL van jouw functie invoegen https://your-function-address.cloudfunctions.net/HotDogOrNot
en vul alle andere velden in zoals op de "Fetch variable step content" afbeelding.
En in de stap “Reply to channel message” zullen we antwoorden aan de klant met een bericht waarin de ja of nee reactie staat. Hiervoor in het veld "Reply with message" de volgende tekst invoegen "Hotdog op de afbeelding? {{isHotDog}}".


Als je problemen hebt met het opbouwen van de flow, kun je de volgende snippet gebruiken:

Om het te testen, stuur een afbeelding naar je Telegram-bot.
Tot nu toe ziet het er gaaf uit! We hebben een kleine chatbot gemaakt, die de door klanten verzonden afbeeldingen controleert. Om het mooier te maken, laten we enkele stappen toevoegen zoals hieronder getoond:

Als je problemen hebt met het opbouwen van de flow, kun je de volgende snippet gebruiken:
Resultaten


Hoewel dit een leuk voorbeeld is, denken we dat dit soort functionaliteit zeer nuttig kan zijn voor onze gebruikers.
Als u meer functies zoals deze ingebouwd in Flows wilt, schrijf dan naar ons ondersteuningsteam om ons dit te laten weten.