Le campagne automatiche consentono di automatizzare l'invio di comunicazioni o notifiche ai clienti quando soddisfano determinate caratteristiche o condizioni che si verificano ripetutamente.
Dalla sezione Campagne - Automatiche - Crea campagna, puoi creare il flusso di condizioni combinando gruppi di contatti e messaggi.
Elementi del costruttore di campagne
INGRESSO
Pubblico: è un nodo di ingresso. Qui puoi combinare, utilizzando gruppi e filtri, le condizioni che il destinatario deve soddisfare affinché venga inviato il trigger automatico.
Imposta un nome per questo nodo e seleziona a quali gruppi e filtri deve corrispondere il destinatario.
Clicca su [Salva]
Iniettare: qui puoi integrare dinamicamente i contatti da altri sistemi tramite API in tempo reale per eseguire la campagna automatizzata.
Imposta un nome per questo nodo.
Clicca su [Salva].
Dopo aver salvato la campagna automatizzata, al nodo verrà assegnato un endpoint che potrai quindi copiare e utilizzare.
Per utilizzare questo endpoint è necessario configurare la chiamata API come segue.
URL: https://api.convos.la/consumer/webhooks/<ID>
METHOD: POST
HEADERS:
X-Tenant: {YourXTenant}
Authorization: Bearer {YourToken}
Content-Type: application/json
Accept: application/json
BODY
{
"cellphone": "<Cellphone, example: +5491100000000>",
}
CONTROLLI
Condizione: il nodo condizione consente di controllare il flusso di una campagna. Data una condizione di filtro, il flusso continua lungo il percorso vero, altrimenti lungo il percorso falso.
Test A/B: il nodo Test A/B viene utilizzato per dividere il pubblico in un massimo di quattro gruppi e mostrare loro diversi percorsi di conversazione per valutare quale sia il più efficace.
AZIONI
Messaggio: è un nodo di azione. Qui devi selezionare il template che deve essere inviato quando l'utente soddisfa le condizioni selezionate nel nodo Pubblico.
Tags: servono per assegnare etichette ai contatti o alle conversazioni, in modo che possano essere filtrati e categorizzati.
Campi: si usano per salvare i dati nei profili dei contatti.
Gestione contatti: è un nodo di azione. È possibile decidere se gli utenti, dopo aver ricevuto il modello, debbano essere segmentati in un nuovo gruppo. Qui devi selezionare in quale gruppo copiarli o spostarli.
Webhook: il nodo webhook è un componente flessibile che consente di inviare richieste agli endpoint per notifiche e consumo esterno.
È necessario configurare:
URL: <URL della API di destinazione>.
METHOD: È possibile configurare il verbo HTTP richiesto per la comunicazione (POST, GET, PUT, PATCH, DELETE)
HEADERS: è possibile configurare gli header necessari per l'integrazione del sistemi.
BODY: Puoi configurare il JSON di cui la tua API ha bisogno per l'integrazione del sistemi.
All'interno del body è possibile utilizzare dati dinamici raccolti nel dialogo oppure dati che il contatto ha già nel sistema.
Nel prossimo esempio useremo una variabile campione chiamata rating, in cui potremmo chiedere al cliente di valutare il servizio che stiamo fornendo.
{
name: "{{contact.name}}",
campo_personalizzato_1: "{{contact.field_1}}",
rating: {{rating}},
... (puoi aggiungere i campi necessari)
}
All'interno del body è possibile utilizzare dati dinamici del contatto presenti nel sistema.
{ name: "{{contact.name}}", campo_personalizzado_1: "{{contact.field_1}}", ... (puoi aggiungere i campi necessari) }
Codice: è un nodo che consente di risolvere idee o esigenze avanzate. Questo nodo consente di scrivere codice di programmazione in JavaScript. Potresti quindi sviluppare un codice che, a seconda delle tue esigenze in determinati momenti del dialogo, possa interagire con API esterne, logiche avanzate, generazione dinamica di messaggi, ecc.
Inoltre, avrai accesso ai dati richiesti al cliente tramite i nodi di domanda. Si possono anche utilizzare le informazioni di contatto già disponibili nel sistema Convos.
Per terminare lo script, è necessario chiamare la funzione output. Questa funzione termina il nodo di codice e comunica al sistema 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 nella finestra di dialogo o da salvare nel sistema, devi aggiungere una key variables con il numero di variabili necessarie. È possibile creare variabili composte 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 del contatto esistenti nel sistema.
let fullname = `${variables.firstname} ${variables.lastname}`
let age = null
if (contact.birthdate) {
age = new Date().getFullYear() - (new Date(contact.birthdate)).getFullYear()
}
output({
state: {
wait: false
},
variables: {
fullname: fullname,
age: age
},
messages: [
{
type: 'text',
text: {
body: `Hola ${fullname} 👋🏻, tienes ${age} años.`,
},
}
]
})
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);
output({
state: {
wait: false,
},
messages: [
{
type: 'text',
text: {
body: `Dato dalla API ${response.data1}`,
},
}
]
});
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 in base alla quale solo la parte che deve essere eseguita venga eseguita.
let stateInternal = {
wait: true
}
let messages = []
// Codigo que se ejecuta la primera vez.
if (!state.step) {
messages.push({
type: 'text',
text: {
body: `Primer mensaje`,
},
})
stateInternal.step = 2
}
// Codigo que se ejecutar la segunda vez.
if (state?.step == 2) {
messages.push({
type: 'text',
text: {
body: `Segundo mensaje`,
},
})
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 questa variabile per salvare un riferimento alla sezione del codice da eseguire all'interno della logica. È importante non dichiarare una variabile con quel nome, poiché ciò genererà 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 del codice potrebbe non funzionare, dovremo scrivere un messaggio di errore per fornire un feedback all'utente.
Tempo di attesa: puoi utilizzare questo nodo per configurare i tempi di attesa tra i nodi per continuare il flusso.
ALTRI
Commento: utilizza il nodo commento per lasciare note/osservazioni interne sulla configurazione del dialogo.
Fine: imposta questa opzione ogni volta che vuoi terminare la sessione della campagna automatica.
Una volta configurati tutti i passaggi, ecco come apparirà la tua campagna automatica:
Proprietà della campagna
Nell'angolo in alto a destra vedrai l'opzione Proprietà, dove puoi configurare la frequenza di esecuzione e riattivazione della campagna automatizzata.
Frequenza di esecuzione: si riferisce alla frequenza con cui la campagna viene eseguita per inviare messaggi ai contatti che soddisfano i criteri di segmentazione o i trigger stabiliti. Ad esempio, se la campagna è impostata per essere eseguita ogni 24 ore, il sistema controllerà i contatti idonei ogni 24 ore e, se soddisfano i requisiti, verrà inviato il messaggio corrispondente.
Esempio: se imposti una campagna da eseguire ogni giorno, il sistema invierà automaticamente il messaggio ai contatti corrispondenti una volta al giorno.
Frequenza di riavvio: si riferisce al momento o alla condizione in cui la campagna viene riavviata o rivalutata dall'inizio. Di solito fa riferimento ai contatti o alle informazioni della campagna. Ad esempio, se un contatto ha già ricevuto un messaggio in una campagna, puoi impostare una frequenza di riavvio in modo che non gli venga più inviato lo stesso messaggio prima che sia trascorso un certo periodo di tempo.
Esempio: se imposti come frequenza di riavvio ogni 7 giorni, impedirai a un contatto di ricevere lo stesso messaggio se lo ha già ricevuto negli ultimi 7 giorni, anche se la campagna viene eseguita con maggiore frequenza.
In sintesi:
Frequenza di esecuzione: determina quando la campagna viene eseguita e i messaggi vengono inviati.
Frequenza di reimpostazione: determina quando un contatto viene rivalutato per garantire che non riceva lo stesso messaggio più di una volta durante il periodo di reimpostazione.
Entrambe le opzioni consentono di controllare il modo in cui i messaggi vengono recapitati agli utenti, per evitare messaggi ripetuti o eccessivamente frequenti, ottimizzando così l'esperienza del cliente.








