Introduzione
Dialoghi è la funzionalità che permette di creare chatbot e sondaggi tramite WhatsApp. Quando un cliente invia un messaggio al chatbot, questo ne analizza il contenuto e risponde automaticamente. L'utente riceve risposte immediate basate su istruzioni predefinite, personalizzate in base ai suoi interessi ed esigenze.
Creare un chatbot
Per creare un chatbot, è importante sapere quale obiettivo si desidera raggiungere. Ricorda che un chatbot per il servizio clienti non è lo stesso di uno per le vendite.
Per iniziare, vai alla sezione Dialoghi - Crea dialogo.
Quando accedi al costruttore di dialoghi, sulla sinistra troverai un menu di azioni e nodi che puoi utilizzare per creare il tuo chatbot.
Vediamo di seguito quali funzioni è possibile eseguire con ciascuno dei nodi:
Ingresso
Ascolta: puoi configurare le parole chiave che attivano il dialogo. Puoi selezionare una percentuale di approssimazione alla parola chiave di attivazione.
Controlli
Condizione: il nodo Condizione consente di controllare il flusso di un dialogo valutando la risposta dell'utente. Se la risposta corrisponde a un elenco di parole definite, il flusso prosegue lungo il percorso vero; in caso contrario, prosegue lungo il percorso falso.
Verifica valori vuoti o nulli: nel nodo Condizione, puoi anche selezionare l'opzione "vuoto" o "nullo" per verificare rapidamente se un'informazione, come il nome di un contatto, è già stata acquisita. Questo ti consente di porre domande più specifiche solo quando necessario, evitando di ripetere la stessa domanda durante la conversazione.
Variabile di sessione: questo nodo può anche interagire con le variabili di sessione, ovvero i dati acquisiti durante la conversazione o generati dal nodo di codice. Ciò consente di creare condizioni dinamiche senza dover memorizzare le informazioni nel profilo del contatto, utilizzando dati temporanei ottenuti in tempo reale all'interno della sessione del chatbot.
Test A/B: il nodo Test A/B viene utilizzato per dividere il pubblico in due gruppi e mostrare loro diversi percorsi di conversazione per valutare quale sia più efficace.
Connessione nodo: consente di reindirizzare gli utenti a un'istanza precedente della finestra di dialogo automatica quando desiderano "tornare indietro" dal menu delle opzioni precedentemente fornito.
Connessione di dialogo: consente di stabilire una connessione con un altro chatbot esistente. Questo nodo diventa un ponte che collega due flussi di chatbot, facilitando l'interazione continua.
Azioni
Testo: il nodo testo consente di inviare messaggi di testo normale agli utenti e di utilizzare variabili interne ottenute da nodi di acquisizione dati o eventi. È possibile aggiungere allegati e acquisire variabili per ciascun utente.
💡 Come catturare una variabile?
Abilita la funzione di cattura variabili e inserisci il nome della variabile che desideri richiedere all'utente. Ad esempio, potrebbe essere: nome, cognome, email, data di nascita, luogo, ecc.
In "Regola", indica il tipo di input: testo, numero, email, pattern personalizzato, data.
Indica quindi il numero di tentativi che l'utente può effettuare correttamente per completare le informazioni e avanzare nel flusso del chatbot.
Infine, configura i messaggi di errore nel caso in cui le informazioni inserite dall'utente siano errate.
Elenco: il nodo elenco viene in genere utilizzato per inviare all'utente un elenco di opzioni di selezione. È possibile includere fino a 10 opzioni per ogni sezione del messaggio.
Nota: anche questo nodo consente di attivare la funzione di cattura delle variabili per acquisire le risposte dei contatti e memorizzarle in variabili di sessione. Puoi utilizzare queste variabili per aggiornare i dati dei tuoi contatti e/o personalizzare i tuoi prossimi messaggi.
Pulsante: consente di aggiungere opzioni di selezione rapida
Nota: anche questo nodo consente di attivare la funzione di cattura delle variabili per acquisire le risposte dei contatti e memorizzarle in variabili di sessione. Puoi utilizzare queste variabili per aggiornare i dati dei tuoi contatti e/o personalizzare i tuoi prossimi messaggi.
Call to action: il nodo Call to action consente di inviare un messaggio con un URL in un pulsante in modo che il contatto venga reindirizzato a un sistema web esterno.
Questo nodo dispone anche di una configurazione avanzata che consente di utilizzare questi link esterni per eseguire un'azione sulla pagina esterna e di far sì che il flusso continui solo al completamento di tale azione (potrebbe trattarsi di un pagamento, una registrazione, ecc.).
Per configurare questa attesa, è necessario attivare l'opzione "Consenti la ripresa del flusso".
Quando questa opzione è attivata, la finestra di dialogo attenderà di ricevere un evento esterno per continuare la conversazione con il contatto sul sistema a cui reindirizziamo nella CTA. Il sistema sarà responsabile di notificare alle Convos di procedere.
Allegato: il nodo allegato consente di inviare all'utente sia documenti sia file multimediali.
Contatto: il nodo contatto invia all'utente un messaggio in formato contatto con i dati inseriti.
Mappa: consente di inviare all'utente una posizione geografica.
Webhook: il nodo webhook è un componente flessibile che consente di inviare richieste agli endpoint per notifiche e consumo esterno.
Devi configurare:
URL: <URL dell'API di destinazione>.
METODO: Puoi configurare il verbo HTTP necessario per la comunicazione (POST, GET, PUT, PATCH, DELETE).
INTESTAZIONI: Puoi configurare gli header necessari per l'integrazione di sistema.
BODY: Puoi configurare il JSON richiesto dall'API per l'integrazione di sistema.
Nel body, puoi utilizzare i dati dinamici raccolti nel dialogo o i dati che il contatto ha già nel sistema.
{
nome: "{{contact.name}}",
campo_personalizzato_1: "{{contact.field_1}}",
... (puoi aggiungere i campi che ti servono)
}
Tags: servono per assegnare etichette ai contatti o alle conversazioni, in modo che possano essere filtrati e categorizzati.
Campi: utilizzati per memorizzare i dati nei profili dei contatti. Ad esempio, se chiedi "Come ti chiami?" in un nodo di testo, devi aggiungere questo nodo campo per memorizzare i dati nel profilo del contatto.
Codice: questo nodo consente di fornire soluzioni a idee o esigenze avanzate. Consente di scrivere codice di programmazione in JavaScript, consentendo di implementare il codice in base alle esigenze in momenti specifici del dialogo. Questo codice può interagire con API esterne, logica avanzata, generazione dinamica di messaggi e altro ancora.
Per visualizzare le informazioni complete su questo nodo avanzato, puoi consultare il seguente articolo: https://help.convos.la/it/articles/11518905-nodo-di-codice-in-un-dialogo
Inoltre, i dati richiesti al cliente saranno disponibili tramite i nodi di domanda. Possiamo anche utilizzare le informazioni di contatto già disponibili nel sistema Convos.
Per completare lo script, è necessario chiamare la funzione di output. Questa funzione completa il nodo di codice e indica al sistema di eseguire diverse azioni.
output({
state: {
wait: false
},
variables: {},
messages: []
})Se devi inviare messaggi, puoi aggiungere una key messages con il numero di messaggi richiesti dal tuo processo.
Esempi di messaggi di testo normale.
output({
state: {
wait: false
},
variables: {},
messages: [
{
type: 'text',
text: {
body: `Ciao`,
},
},
{
type: 'text',
text: {
body: `Quanti anni hai?`,
},
}
]
})
Se devi creare variabili da utilizzare nel dialogo o da salvare nel sistema, devi aggiungere una key variables con il numero di variabili necessario. Puoi creare variabili composite tra due dati o dati provenienti da un'API esterna.
// code building variables.
const ageOfTheCustomer = 46
output({
state: {
wait: false,
},
variables: {
age: ageOfTheCustomer,
},
messages: [],
})
Nel caso in cui sia necessario accedere a variabili nel codice richiesto all'utente o se si desidera accedere a variabili di contatto esistenti nel sistema.
let fullname = `${variables.firstname} ${variables.lastname}`
let age = null
if (contact.birthdate) {
age = new Date().getFullYear() -(newDate(contact.birthdate)).getFullYear()
}
output({
state: {
wait: false
},
variables: {
fullname: fullname,
age: age
},
messages: [
{
type: 'text',
text: {
body: `Ciao ${fullname} 👋🏻, hai ${age} anni.`,
},
}
]
})
Se devi comunicare con un'altra API, puoi utilizzare il metodo fetch.
const params = {
header: {
'Content-Type': 'application/json',
Accept: 'application/json'
},
method: 'POST',
body: JSON.stringify({
variables
})
};
const response = await fetch('<API>', params);
const data = JSON.parse(response)
output({
state: {
wait: false,
},
messages: [
{
type: 'text',
text: {
body: `Dato dalla API ${data.info1}`,
},
}
]
});
Nel caso in cui tu debba porre domande al cliente e il nodo di codice continui a essere eseguito finché non hai finito di risolvere la tua esigenza, puoi restituire stage.wait = true, così la prossima volta che l'utente risponde, il nodo di codice verrà eseguito di nuovo. Qui devi tenerne conto nel tuo codice specifico, in modo da applicare la logica per cui solo la parte che deve essere eseguita venga eseguita.
let stateInternal = {
wait: true
}
let messages = []
// Codice che si esegue la prima volta.
if (!state.step) {
messages.push({
type: 'text',
text: {
body: `Primo messaggio`,
},
})
stateInternal.step = 2
}
// Codice che si esegue la seconda volta.
if (state?.step == 2) {
messages.push({
type: 'text',
text: {
body: `Secondo messaggio`,
},
})
stateInternal.wait = false
}
output({
state: stateInternal,
variables: {},
messages: messages
});
All'interno della variabile state è possibile salvare dati che potranno essere utilizzati in seguito per conoscere informazioni sulla sessione. Consigliamo di utilizzare questa variabile per salvare un riferimento alla sezione di codice da eseguire all'interno della logica. È importante non dichiarare una variabile con quel nome, poiché ciò genererebbe un errore.
Per leggere la risposta di un utente, è necessario accedere alla variabile inboundMessage o inboundMessageBody. La variabile inboundMessage contiene tutte le informazioni in una struttura JSON, mentre la variabile inboundMessageBody è una scorciatoia al messaggio di testo digitato dall'utente.
Poiché il nodo di codice può fallire, dovremo scrivere un messaggio di errore per rispondere all'utente.
Gestione contatti: consente di eseguire azioni di segmentazione dei contatti, ad esempio copiarli, spostarli o rimuoverli da un gruppo.
Posta in arrivo: questa opzione ti consentirà di reindirizzare le conversazioni alla posta in arrivo del servizio clienti, in modo che gli operatori possano fornirti assistenza personalizzata.
Altri
Commento: utilizzare il nodo commento per lasciare note/osservazioni interne sulla configurazione della finestra di dialogo.
Fine: impostalo ogni volta che vuoi terminare la sessione di dialogo automatico
Salvare e configurare le proprietà avanzate della finestra di dialogo
Per salvare e pubblicare un bot, è necessario prima configurarne le proprietà avanzate.
Come accedere alle proprietà avanzate
Clicca sul pulsante "Proprietà".
Si aprirà una finestra pop-up con diverse impostazioni chiave per il corretto funzionamento del bot.
Diamo un'occhiata alle opzioni disponibili:
Nome: Definisce un nome per il chatbot.
Etichette: Assegna uno o più tag per classificare il bot.
Note: Aggiunge una descrizione dello scopo e delle funzionalità di questo flusso conversazionale.
Abilitato: Attiva questa opzione per preparare il bot alla pubblicazione. Puoi impostare una data di inizio (attivazione) e una data di fine (disattivazione). Se non imposti le date, il flusso verrà eseguito a tempo indeterminato per impostazione predefinita.
Canale: Se hai più canali di messaggistica connessi, decidi se questo flusso sarà disponibile su tutti o solo su alcuni specifici.
Fallback: se questa opzione è abilitata, il bot risponderà sempre, indipendentemente dal messaggio iniziale dell'utente. Se disabilitata, darà priorità all'ascolto del nodo configurato all'inizio del flusso.
Uso esterno: consente al bot di ascoltare i messaggi in arrivo dai destinatari.
Priorità sul ticket attivo: attiva questa opzione solo se il bot è collegato a una campagna transazionale.
Test: pubblica il bot solo su determinati contatti, ideale per testare il flusso prima di renderlo visibile a tutti gli utenti.
Sessione: puoi configurare messaggi automatici per incoraggiare le conversazioni a proseguire quando il cliente è rimasto inattivo (con il bot) per un certo periodo. Questa funzionalità migliora il coinvolgimento mantenendo l'attenzione dell'utente anche dopo un periodo di inattività, facilitando un'esperienza di conversazione più fluida.
Configurare i messaggi automatici di inattività nel Bot
Sessione (minuti): definisce la durata massima della sessione del bot.
Notifica inattività dopo (minuti): imposta il tempo di inattività dopo il quale il bot invierà un messaggio automatico per riattivare la conversazione.
Messaggio di inattività: scrivi il messaggio che verrà inviato all'utente dopo X minuti di inattività, incoraggiandolo a continuare la conversazione. Ad esempio:
"Ciao, sei ancora lì?"
Notifica chiusura sessione quando mancano (minuti): definisce il tempo rimanente prima della chiusura della sessione del bot, per avvisare l'utente che la conversazione sta per terminare.
Messaggio di chiusura sessione: personalizza il messaggio che verrà inviato quando la sessione sta per terminare, dando all'utente la possibilità di continuare la conversazione o terminare l'interazione. Ad esempio:
"Ops! 😶 Abbiamo rilevato che la conversazione è inattiva da un po', quindi la stiamo terminando. Ricorda, puoi scriverci di nuovo in qualsiasi momento per ulteriori necessità. Buona giornata! 👋"
Copiare un dialogo tra progetti
In cosa consiste questa funzionalità?
Con questa funzionalità, ora è possibile copiare un dialogo già creato in un progetto in un altro progetto all'interno del sistema. Ciò è particolarmente utile se è necessario replicare logiche simili tra progetti, risparmiando tempo e riducendo al minimo i potenziali errori durante la configurazione manuale.
Dove si trova?
È possibile accedere a questa funzionalità in:
Dialoghi > Menu di ciascun dialogo > Duplica in altro progetto
Come funziona?
Seleziona il dialogo da copiare.
Vai alla sezione Dialoghi.
Identifica il dialogo che desideri copiare in un altro progetto.
Accedi al menu del dialogo.
Fai clic sul menu a tendina del dialogo (solitamente rappresentato da tre puntini o da un'icona di azione).
Seleziona l'opzione di copia.
Nel menu, scegli "Duplica in altro progetto".
Seleziona il progetto di destinazione.
Apparirà un elenco dei progetti disponibili nel tuo account.
Scegli il progetto in cui desideri duplicare il dialogo.
Conferma l'azione.
Controlla i dati e le impostazioni del dialogo da duplicare.
Fai clic su "Duplica" per completare il processo.
Vantaggi per il cliente e il team
Risparmio di tempo: la copia delle finestre di dialogo esistenti tra i progetti elimina la necessità di configurarle da zero.
Riduzione al minimo degli errori: duplicando la logica già testata, si riduce il margine di errore nella creazione manuale.
Efficienza di manutenzione: ideale per chi gestisce più progetti con configurazioni simili.
Quando utilizzare questa funzionalità?
Se si lavora su più progetti che condividono la stessa logica o gli stessi flussi di conversazione.
Quando è necessario implementare rapidamente un dialogo funzionale e testato in un nuovo progetto.
Per mantenere la coerenza tra i progetti riutilizzando configurazioni efficaci.
Con questo strumento, la gestione di più progetti sarà più semplice ed efficiente.
























