designer – Xenioo Wed, 02 Dec 2020 15:51:56 +0000 en-US hourly 1 https://wordpress.org/?v=5.5.3 /wp-content/uploads/2018/09/cropped-xenioo-badge-32x32.png designer – Xenioo 32 32 TUTORIAL #8: Integrating external API services /integrating-external-api-services/ /integrating-external-api-services/#respond Wed, 06 Dec 2017 14:22:39 +0000 https://www.xenioo.com/?p=532 Now that we’ve learned all the basic aspects of the Xenioo chat flow design, we’re ready to further extend our chatbot by reaching out to external services. In this lesson we will learn how to call an external API service, extract specific data from the results and display it in the chatflow. You can follow our lesson directly from the video below. At the end of the post you will find a Xenioo bot file that simply restores the example ...

Read MoreTUTORIAL #8: Integrating external API services

The post TUTORIAL #8: Integrating external API services appeared first on Xenioo.

]]>
Now that we’ve learned all the basic aspects of the Xenioo chat flow design, we’re ready to further extend our chatbot by reaching out to external services.

In this lesson we will learn how to call an external API service, extract specific data from the results and display it in the chatflow.

You can follow our lesson directly from the video below. At the end of the post you will find a Xenioo bot file that simply restores the example bot into your account for playback and testing. Let’s start!

YouTube Video

Adding the API Service

Besides service specific actions (like MailChimp and SendGrid Actions), Xenioo provides a generic, multipurpose API Action that we can use to call an external service.

To add a new API integration, we just need to select an interaction and click on “Add Action”. In the Available Actions dialog, under the Integration tab, select “Call API Service”.

The new action will then be added to your interaction ready to be configured.

To keep this example simple, we’re going to skip services with a sign-up and API key and go straight for a public, immediate one.

We found Pokèapi: a free public API endpoint that can reply to a RESTful GET call with details about a named Pokémon. A standard GET call to something like http://pokeapi.co/api/v2/pokemon/pikachu will return a full JSON with details about Pikachu and its abilities.

How awesome is that? Let’s use it!

As you see, besides specifying the service full request URL, we can also select a property to be extracted from the resulting JSON and a variable where we want the value to be stored.

Notice how the JSON property is fully specified based on the model structure: Xenioo is going to extract the object at index zero of the abilities collection and read the property name of the sub-object ability.

Making it dynamic

The action we have just configured is going to retrieve the data about our Pokémon but it will always be the same.

We want the user to tell us what Pokémon to search, and dynamically display our results. To do so, we need to place a Generic Input Action like we’ve already configured in our previous lessons and make our call dynamic, using variables.

We will utilise the user input in our API call so that each call will be based on what the user says.

The important bit here is the service reply: a fully compliant RESTful request will usually reply with a 404 code (Not Found) as the requested record is not found.

This is not always the case however, and Xenioo allows you to fully control it by just using a built-in variable called ‘last_api_message’. By checking the contents of this variable after the API call, we can tell the user that a Pokémon does not exist, or display its abilities.

There we go! After setting up our interactions and personalizing the reply interactions, we’re ready to test drive our Pokémon look-up chatbot.

Sync or Async

API Calls may take a while to complete as some services may be slow or congested.

Xenioo’s approach to an API call is two-fold: if your API call has no child operations, the call will always be done asynchronously. If the API call has at least one child operation, the call will always be synchronous.

In the first case, the chatbot conversation will move forward while Xenioo completes the API call while in the second case, the conversation will hold until Xenioo has completed the API call.

In this lesson we’ve learned how to implement an API call to an external server and use the call results in our chatbot conversation.

As with all our lessons, you can find the chatbot sample in your Xenioo account so that you can import it to further experiment and learn.

The post TUTORIAL #8: Integrating external API services appeared first on Xenioo.

]]>
/integrating-external-api-services/feed/ 0
LEZIONE #8: integrare servizi esterni attraverso chiamate API restful /integrazione-servizi-api-rest/ /integrazione-servizi-api-rest/#respond Wed, 06 Dec 2017 14:22:39 +0000 https://www.xenioo.com/?p=532 Now that we’ve learned all the basic aspects of the Xenioo chat flow design, we’re ready to further extend our chatbot by reaching out to external services. In this lesson we will learn how to call an external API service, extract specific data from the results and display it in the chatflow. You can follow our lesson directly from the video below. At the end of the post you will find a Xenioo bot file that simply restores the example ...

Read MoreLEZIONE #8: integrare servizi esterni attraverso chiamate API restful

The post LEZIONE #8: integrare servizi esterni attraverso chiamate API restful appeared first on Xenioo.

]]>
Now that we’ve learned all the basic aspects of the Xenioo chat flow design, we’re ready to further extend our chatbot by reaching out to external services. In this lesson we will learn how to call an external API service, extract specific data from the results and display it in the chatflow.

You can follow our lesson directly from the video below. At the end of the post you will find a Xenioo bot file that simply restores the example bot into your account for playback and testing. Let’s start!

YouTube Video

Adding the API Service

Besides service specific actions (like MailChimp and SendGrid Actions), Xenioo provides a generic, multipurpose API Action that we can use to call an external service. To add a new API integration, we just need to select an interaction and click on “Add Action”. In the Available Actions dialog, under the Integration tab, select “Call API Service”. The new action will then be added to your interaction ready to be configured.

To keep this example simple, we’re going to skip services with a sign-up and API key and go straight for a public, immediate one. We found Pokèapi: a free public API endpoint that can reply to a RESTful GET call with details about a named Pokémon. A standard GET call to something like http://pokeapi.co/api/v2/pokemon/pikachu will return a full JSON with details about Pikachu and its abilities..how awesome is that? Let’s use it!

As you see, besides specifying the service full request url, we can also select a property to be extracted from the resulting JSON and a variable where we want the value to be stored. Notice how the JSON property is fully specified based on the model structure: Xenioo is going to extract the object at index zero of the abilities collection and read the property name of the sub-object ability.

Making it dynamic

The action we have just configured is going to retrieve the data about our Pokémon but it will always be the same. We want the user to tell us what Pokémon to search, and dynamically display our results. To do so, we need to place a Generic Input Action like we’ve already configured in our previous lessons and make our call dynamic, using variables. We will utilise the user input in our API call so that each call will be based on what the user says.

The important bit here is the service reply: a fully compliant RESTful request will usually reply with a 404 code (Not Found) as the requested record is not found. This is not always the case however, and Xenioo allows you to fully control it by just using a built-in variable called ‘last_api_message’. By checking the contents of this variable after the API call, we can tell the user that a Pokémon does not exist, or display its abilities.

There we go! After setting up our interactions and personalizing the reply interactions, we’re ready to test drive our Pokémon look-up chatbot.

Sync or Async

API Calls may take a while to complete as some services may be slow or congested. Xenioo’s approach to an API call is two-fold: if your API call has no child operations, the call will always be done asynchronously. If the API call has at least one child operation, the call will always be synchronous. In the first case, the chatbot conversation will move forward while Xenioo completes the API call while in the second case, the conversation will hold until Xenioo has completed the API call.

In this lesson we’ve learned how to implement an API call to an external server and use the call results in our chatbot conversation.

You can find this chatbot in the Templates section of your Xenioo account. From there you can easily restore the chabot to
to further experiment and learn more.

The post LEZIONE #8: integrare servizi esterni attraverso chiamate API restful appeared first on Xenioo.

]]>
/integrazione-servizi-api-rest/feed/ 0
TUTORIAL #7: Creating a split-test driven conversation /creating-split-test-driven-conversation/ /creating-split-test-driven-conversation/#respond Mon, 04 Dec 2017 22:29:11 +0000 https://www.xenioo.com/?p=522 Now that we’ve learned how to manage our chatbot flow through Variables and Xenioo’s Natural Language Processing engine, in this lesson we will move forward to learn a different way to manipulate our chatbot conversation: random split-testing. You can follow our lesson directly from the video below. At the end of the article you will find a Xenioo bot file that simply restores the example bot into your account for playback and testing. Let’s start! Splitting the conversation path During ...

Read MoreTUTORIAL #7: Creating a split-test driven conversation

The post TUTORIAL #7: Creating a split-test driven conversation appeared first on Xenioo.

]]>
Now that we’ve learned how to manage our chatbot flow through Variables and Xenioo’s Natural Language Processing engine, in this lesson we will move forward to learn a different way to manipulate our chatbot conversation: random split-testing.

You can follow our lesson directly from the video below. At the end of the article you will find a Xenioo bot file that simply restores the example bot into your account for playback and testing. Let’s start!

YouTube Video

Splitting the conversation path

During marketing or product testing, it is normal to do a split-test.

A split-test is basically a way to randomly redirecting the user to different content, and verifying which content leads to more conversions, contacts or lead generation.

For example, a chatbot conversation can use this kind of approach to check which questions are answered more frequently by a user, which ones are skipped, and which conversation path leads to a better conversions rate.

Using the Random Split Action

By now, you should know that Xenioo always goes beyond the basics to offer you the best possible result and flexibility. The Random Split Action is a typical example.

With any bot, just click on an interaction where you want to create a split, and then click on “Add Action”. On the “Available Actions” dialog, select the Flow tab,  and then “Random Split”.

As you will see, the Random Split data is only a slider where you can set the split threshold: the true power of this action comes from all the operations you can add to alter your chatbot’s behavior, and later analyze the path taken.

Notice how by default, Xenioo will create a Tag Operation that you can use to set a tag based on the activation of the split and a Go To Interaction Operation that will move the conversation to another interaction if you so wish.

These are as always optional: feel free to delete them and build the split test outcome as you please.

Advanced Split-Testing

Each split you add to an interaction is calculated as a single action. This means that you’re not limited to A-B splits, as you can easily create A-B-C splits or even further complicate your scenario to do multiple cascading split testing.

Also, since the Random Split Actions and Operations just trigger a dynamic set of sub-operations, you can create very complex scenarios with random message picking, or multiple casual paths.

In this tutorial we’ve learned how easy it is to setup a split-test enabled chatbot flow using Xenioo.

As with all our lessons, you can find the chatbot sample in your Xenioo account so that you can import it to further experiment and learn.

The post TUTORIAL #7: Creating a split-test driven conversation appeared first on Xenioo.

]]>
/creating-split-test-driven-conversation/feed/ 0
LEZIONE #7: creare conversazioni dinamiche con lo split-test /conversazioni-dinamiche-split-test/ /conversazioni-dinamiche-split-test/#respond Mon, 04 Dec 2017 22:29:11 +0000 https://www.xenioo.com/?p=522 Now that we’ve learned how to manage our chatbot flow through Variables and Xenioo’s Natural Language Processing engine, in this lesson we will move forward to learn a different way to manipulate our chatbot conversation: random split-testing. You can follow our lesson directly from the video below. At the end of the post you will find a Xenioo bot file that simply restores the example bot into your account for playback and testing. Let’s start! Splitting the conversation path During marketing ...

Read MoreLEZIONE #7: creare conversazioni dinamiche con lo split-test

The post LEZIONE #7: creare conversazioni dinamiche con lo split-test appeared first on Xenioo.

]]>
Now that we’ve learned how to manage our chatbot flow through Variables and Xenioo’s Natural Language Processing engine, in this lesson we will move forward to learn a different way to manipulate our chatbot conversation: random split-testing.

You can follow our lesson directly from the video below. At the end of the post you will find a Xenioo bot file that simply restores the example bot into your account for playback and testing. Let’s start!

YouTube Video

Splitting the conversation path

During marketing or product testing, it is normal to do a split-test. A split-test is basically, a way or randomly redirecting the user to different content, and verifying which content leads to more conversions, contacts or lead generation. For example, a chatbot conversation can use this kind of approach to check which questions are answered more frequently by a user; which ones are skipped; and which conversation path leads to a better conversions ration.

Using the Random Split Action

By now, you should know that Xenioo always goes beyond the basics to offer you the best possible result and flexibility. The Random Split Action is a typical example.
With any bot, just click on an interaction where you want to create a split, and then click on “Add Action”. On the “Available Actions” dialog, select the Flow tab,  and then “Random Split”. As you will see, the Random Split data is only a slider where you can set the split threshold: the true power of this action comes from all the operations you can add to alter your chatbot’s behavior, and later analyze the path taken.

Notice how by default, Xenioo will create a Tag Operation that you can use to set a tag based on the activation of the split; and a Go To Interaction Operation that will move the conversation to another interaction if you so wish. These are as always optional: feel free to delete them and build the split test outcome as you please.

Advanced Split-Testing

Each split you add to an interaction is calculated as a single action. This means that you’re not limited to A-B splits, as you can easily create A-B-C splits or even further complicate your scenario to do multiple cascading split testing. Also, since the Random Split Actions and Operations just trigger a dynamic set of sub-operations, you can create very complex scenarios with random message picking, or multiple casual paths.

In this tutorial we’ve learned how easy it is to setup a split-test enabled chatbot flow using Xenioo.

You can find this chatbot in the Templates section of your Xenioo account. From there you can easily restore the chabot to try the explained features at will.

The post LEZIONE #7: creare conversazioni dinamiche con lo split-test appeared first on Xenioo.

]]>
/conversazioni-dinamiche-split-test/feed/ 0
TUTORIAL #2: Asking a question and reacting to the reply /asking-question-reacting-reply/ /asking-question-reacting-reply/#respond Fri, 24 Nov 2017 10:32:52 +0000 https://www.xenioo.com/?p=407 In the previous lesson, we configured a very basic bot with a simple quick button interaction. In this lesson we are going to complicate things a little bit: we want to ask the user a question and then make the bot react accordingly. Xenioo supports many different built-in questions such as phone number, email and open, configurable actions that can be used to ask the user just about anything. For this lesson, we are going to ask for an e-mail ...

Read MoreTUTORIAL #2: Asking a question and reacting to the reply

The post TUTORIAL #2: Asking a question and reacting to the reply appeared first on Xenioo.

]]>
In the previous lesson, we configured a very basic bot with a simple quick button interaction.

In this lesson we are going to complicate things a little bit: we want to ask the user a question and then make the bot react accordingly.

Xenioo supports many different built-in questions such as phone number, email and open, configurable actions that can be used to ask the user just about anything.

For this lesson, we are going to ask for an e-mail address.

You can follow our lesson directly from the video below. At the end of the post you will find a Xenioo bot file that simply restores the example bot into your account for playback and testing. Let’s start!

YouTube Video

Setting up your new chatbot

First of all, let’s create a brand new chatbot.

As always, Xenioo will create a blank Behaviour and a simple Interaction with just a text action. Let’s click on the designer background to activate the Behaviour settings: from there we can click on the “add new interaction” button and add two more interactions.

We want to ask the user their email and modify the flow if the user gives us a correct address or just move ahead if he decides to skip the question.

So let’s call one interaction “Thank you” and the other “Going On”. In the “Thank you” interaction we can change the text to thank the user for giving us the email while in “Going On” we can go on with the normal flow.

Configuring the Email Input

Let’s go back to the first Interaction and add a new action.

This time we browse to get the Input section, and then pick an Email Input Action. Once selected, the Action is automatically added to the Interaction: we can click it on to see the properties available.

While powerful, the Email Input Action stays simple: all the validation is done by Xenioo so that you do not need to worry about getting bad addresses.

All you may want to do is change the validation reply with something you like and decide if you want the user to opt-out of your question.

With some questions, it may be a good idea to allow the user to go on. Every Xenioo Input Action allows you to do so: as the email input has a default setting of Never. However, you can change it to an Intent (using NLP), or using simple text.

Let’s use some simple text right now and specify ‘no thanks’ in the reply textbox.

Right away, the Input Action has added a Go To Interaction Operation: this operation will be triggered as the user gives a correct reply (in our case, gives a valid email address).

Select the Thank You interaction as the target: notice how Xenioo shows that the action, when successful, goes to the Thank You Interaction.

Question Opt-Out

In our configuration, if the user types ‘no thanks’, the successful reply never gets triggered and the interaction can move on.

Let’s put a message after our input and an immediate Go To Action, directed to the Going On Interaction. As the user uses the Opt-Out, the flow will continue back from the input block and immediately jump to the Going On Interaction.

Using Variables

The Email Input Action, like all other input actions, will automatically store the results of a user input into a variable.

Variables, like Tags, are stored at the user level and will remain forever, even if the user connects to the bot at a later time.

Everywhere in a Xenioo bot, you can reference these variables to change the flow conditionally, or simply display different data.

This is a very powerful Xenioo feature that we will discover in depth over the next tutorials.

Wrapping up

While simple, this example shows how incredibly easy it is to create conditional choices based on user input and to use them right away.

In the next lesson, we are going to explore the media capabilities of the chatbot using images, videos, audios and files.

As with all our lessons, you can find the chatbot sample in your Xenioo account so that you can import it to further experiment and learn.

The post TUTORIAL #2: Asking a question and reacting to the reply appeared first on Xenioo.

]]>
/asking-question-reacting-reply/feed/ 0
LEZIONE #2: fare domande e reagire alle risposte /fare-domande-reagire-risposte/ /fare-domande-reagire-risposte/#respond Fri, 24 Nov 2017 10:32:52 +0000 https://www.xenioo.com/?p=407 Nella lezione precedente abbiamo visto come configurare un primo semplice bot con testo e bottoni. In questa nuova lezione andremo a complicare leggermente le cose: il nostro bot dovrà fare una domanda all’utente e gestirne la risposta. Xenioo supporta nativamente differenti tipi di domande, come la richiesta di un numero telefonico e di una email. Inoltre consente di configurare azioni per poter chiedere qualsiasi cosa all’utente. Per ora ci accontenteremo di chiedere l’indirizzo email. Potrete seguire la lezione direttamente guardando ...

Read MoreLEZIONE #2: fare domande e reagire alle risposte

The post LEZIONE #2: fare domande e reagire alle risposte appeared first on Xenioo.

]]>
Nella lezione precedente abbiamo visto come configurare un primo semplice bot con testo e bottoni. In questa nuova lezione andremo a complicare leggermente le cose: il nostro bot dovrà fare una domanda all’utente e gestirne la risposta.

Xenioo supporta nativamente differenti tipi di domande, come la richiesta di un numero telefonico e di una email. Inoltre consente di configurare azioni per poter chiedere qualsiasi cosa all’utente.

Per ora ci accontenteremo di chiedere l’indirizzo email.

Potrete seguire la lezione direttamente guardando il video seguente. Ricordatevi inoltre che il chatbot di questa lezione lo potrete trovare e riutilizzare per i vostri esperimenti all’interno della sezione Templates del tuo account Xenioo.

Pronti? Non ci resta che cominciare!

YouTube Video


Prepariamo il chatbot

Prima di tutto, creiamo da zero un nuovo chatbot.

Come sempre, Xenioo crea un Behaviour(comportamento) vuoto con una semplice Interaction(interazione) ed una Text Action. Cliccate sullo sfondo del designer per visualizzare le impostazioni del Behaviour nel pannello di destra: da li è possibile cliccare sul bottone “Add new interaction” per aggiungere altre due nuove interazioni.

L’obiettivo è chiedere all’utente la propria email e decidere due percorsi diversi in base al fatto che l’utente inserisca un’email corretta oppure preferisca saltare la risposta.

Chiameremo la prima interazione “Thank you” e l’altra “Going on”. Nella “Thank you” cambieremo il messaggio di testo predefinito con un messaggio per ringraziare l’utente per averci lasciato l’email, mentre nella “Going on” proseguiremo con il flusso normale del chatbot.

Configuriamo l’ Email Input

Torniamo alla prima interazione ed aggiungiamo una nuova azione.

Questa volta la troveremo nella sezione Input della finestra delle azioni: Email Address Input. Una volta selezionata, l’azione verrà automaticamente aggiunta all’interazione. Clicchiamoci sopra per visualizzare le impostazioni nel pannello di destra.

Sebbene molto potente, l’ Email Address Input è molto semplice da configurare: tutta la validazione viene gestita da Xenioo e non vi dovete preoccupare di gestire email non valide.

Infatti le uniche configurazioni da settare riguardano:

  • il testo da visualizzare all’utente quando inserisce un’email non valida (“Validation Failed Reply”)
  • il massimo numero di email non valide accettate. Superato tale numero, il flusso prosegue.
  • testo/intento per dare la possibilità all’utente di saltare la risposta

Proprio quest’ultima impostazione è importante dal momento che in molti casi potrebbe essere una buona idea permettere all’utente di scrivere un testo che gli consenta di saltare la risposta e proseguire nel flusso.
Non solo l’Email Action, ma ogni azione di Input di Xenioo, permette di impostare questo tipo di configurazione.

Per il nostro chatbot adremo a specificare “no thanks” come testo per saltare la risposta.

Come potete vedere dall’immagine, l’azione di input ha automaticamente aggiunto una Go To Operation: questo tipo di operazione verrà eseguita non appena l’utente inserisce una risposta corretta, che nel nostro caso corrisponde ad una email valida.

Selezionate “Thanks” nella tendina delle interazioni per definire la destinazione del flusso. Xenioo mostrera il collegamento tra le interazioni con una freccia in modo da rendere il tutto più intuitivo e semplice da capire.

Gestiamo l’opt-out

Nella nostra configurazione, se l’utente scrive “no thanks”, il flusso non prosegue dal momento che la Go To viene attivata solo quando viene interecettato un input valido (nel nostro caso un’email valida).

Per gestire questa situazione, andremo ad aggiungere un messaggio dopo l’azione di Input e subito dopo una Go To Action che direziona il flusso verso l’interazione “Going on”.

Cosa succederà? Non appena l’utente esprimerà con il messaggio “no thanks” il proprio desiderio di “opt-out” della richiesta di lasciare l’email, il flusso continuerà visualizzando il nuovo messaggio di testo ed eseguendo successivamente la Go To che farà proseguire il flusso allo step successivo.

Usiamo le variabili

L’ azione Email Address Input, come tutte le altre azioni di input, memorizza automaticamente l’input dell’utente all’interno di una variabile. Infatti troverete automaticamente valorizzata la variabile user_email con il valore dell’email valida inserita dall’utente.

Le variabili, come i tag, sono salvati a livello di utente nel chatbot e lì ci rimangono per sempre. Se l’utente si collega al chatbot dopo diversi giorni, il chatbot ritroverà le stesse variabili valorizzate con i valori della sessione precedente.

In Xenioo è possibile referenziare variabili e tag per cambiare la direzione del flusso oppure per visualizzare informazioni differenti.

Si tratta di una delle funzionalità più importanti di Xenioo e che verrà affrontata in modo dettagliato in una delle nostre prossime lezioni.

Ricapitolando

In questa lezione abbiamo visto la potenzialità e la flessibilità delle azioni di input e come sia semplice creare una scelta condizionale basata sull’input dell’utente.

Nella prossima lezione andremo ad esplorare la capacità del chatbot di gestire immagini, video, audio e file.

Come al solito per ogni lezione, troverai il chatbot di esempio all’interno della sezione Template del tuo account Xenioo, pronto per essere caricato e modificato a piacimento.

The post LEZIONE #2: fare domande e reagire alle risposte appeared first on Xenioo.

]]>
/fare-domande-reagire-risposte/feed/ 0