Protocollo di consegna

Il protocollo di consegna della Piattaforma Messenger consente la partecipazione di due o più app a una conversazione mediante il passaggio del controllo dall'una all'altra. Per le app iscritte da una Pagina Facebook, il protocollo di consegna è abilitato automaticamente.

Nota: ora è disponibile il Routing delle conversazioni, che presto sostituirà il protocollo di consegna. Devi aggiornare la tua app il prima possibile in modo che usi il Routing delle conversazioni.

Come funziona

Una Pagina Facebook o un account Instagram per professionisti può usare più app di messaggistica per comunicare con clienti o persone interessate ai propri contenuti. Ad esempio, per l'assistenza clienti, i clienti possono essere inviati a un'esperienza automatizzata, ma se tale esperienza non è in grado di risolvere il problema di un cliente, quest'ultimo può essere inviato a un'altra app con operatori. Per trasferire la conversazione e i relativi metadati da un'app all'altra, o tra un'app e la posta di una Pagina Facebook o di Instagram, è necessario trasferire il controllo della conversazione. Il protocollo di consegna consente questo trasferimento.

Per impostazione predefinita, quando un cliente invia un messaggio per avviare una conversazione, tale conversazione è inattiva. Le app riceveranno una notifica, tramite i webhook, che indica che è stato ricevuto un messaggio e che questo è in attesa di risposta. Per ricevere questa notifica, l'app deve essere iscritta ai webhook specifici per la consegna.

Qualsiasi app può assumere il controllo della conversazione mentre quest'ultima è inattiva. L'app che controlla la conversazione ha la capacità esclusiva di rispondere al messaggio. Il controllo è attribuito solo a un'app alla volta e altre app non possono inviare alcun messaggio finché l'app che ha il controllo non lo rilascia. Quando un'app rilascia il controllo, la conversazione torna inattiva e il controllo può essere assunto dall'app successiva.

L'app che controlla la conversazione riceverà notifiche dai webhook dei messaggi. Tutte le altre app riceveranno notifiche dai webhook specifici per la consegna.

Una conversazione torna automaticamente inattiva quando non riceve attività per 24 ore. Se necessario, l'app che ha il controllo può estenderlo oltre le 24 ore.

Se un'app che non ha il controllo della conversazione cerca di inviare un messaggio a una persona, viene restituito un errore 400 con sottocodice 2018300.

Destinatario principale

Se desideri che i messaggi, una volta ricevuti, vengano gestiti da un'app specifica, puoi indicare tale app come destinatario principale. Il destinatario principale riceve tutti i nuovi messaggi di una conversazione, può trasferire il controllo a un'altra app o alla posta della Pagina Facebook o di Instagram e può assumere il controllo di una conversazione da un'altra app, se necessario. Quando un'app che non è il destinatario principale termina una conversazione e rilascia il controllo, la conversazione è impostata su inattiva.

Se una conversazione è inattiva e una persona invia un nuovo messaggio alla tua Pagina o al tuo account, il destinatario principale ha il controllo della conversazione e riceve una notifica webhook in merito al nuovo messaggio.

Nota: non è obbligatorio impostare un destinatario principale.

Posta

Non è possibile indicare la posta di una Pagina Facebook o di Instagram come destinatario principale. Tuttavia, se sposti il messaggio nella cartella principale o rispondi a un messaggio in una conversazione non controllata dalla posta, quest'ultima assume il controllo della conversazione. Se rispondi a un messaggio contrassegnato come Archivio nella posta, il controllo resta all'app che aveva il controllo precedentemente, ovvero il destinatario principale, se impostato, oppure la conversazione viene contrassegnata come inattiva.

Punti di accesso della conversazione

Una conversazione può essere assegnata a un'app specifica quando usi un punto di accesso della conversazione che rimanda a Messenger (CTM). Un'azienda può usare un CTM per avviare conversazioni con i clienti per generare contatti, aumentare la notorietà del brand e molto altro.

Menu always-on

Qualsiasi app può impostare il menu a livello della Pagina a meno che non sia stato impostato un destinatario principale. Se è stata impostata un'app principale, solo quest'ultima può impostare o eliminare un menu a livello della Pagina.

L'app che controlla la conversazione può impostare o eliminare un menu a livello dell'utente anche se l'app non è il destinatario principale e qualsiasi app può impostare un menu a livello dell'utente quando la conversazione è inattiva.

Quando un cliente seleziona un elemento da un menu, l'app che ha creato il menu assume il controllo della conversazione. Questo avviene perché l'app che ha creato il menu è configurata per gestire quei dati.

Call to action postback

Quando un cliente clicca su una call to action (CTA) postback, l'app che ha creato la CTA postback ottiene il controllo della conversazione anche tale controllo era attribuito a un'altra app. Questo avviene perché l'app che ha creato la CTA postback è configurata per gestire quei dati.

Sondaggi per i clienti

Se viene inviato un sondaggio mentre un'altra app controlla la conversazione, questo non viene pubblicato finché l'app non rilascia il controllo e la conversazione diventa inattiva.

Componenti

Per implementare correttamente il protocollo di consegna per le app di messaggistica a cui la tua Pagina Facebook ha attivato l'iscrizione, sono necessari i componenti seguenti.

Token d'accesso

Per le chiamate agli endpoint del protocollo di consegna, è necessario un token d'accesso della Pagina richiesto da un utente che può eseguire l'attività MODERATE sulla Pagina.

Analisi dell'app

L'Analisi dell'app è obbligatoria per le app che:

  • saranno usate da persone che non hanno un ruolo nell'app;
  • consentono a un operatore di rispondere ai clienti.

Funzione Human Agent

Un'app può inviare un messaggio a una persona anche se non ha il controllo della conversazione se è stata approvata, tramite l'Analisi dell'app, per l'uso della funzione Human Agent e il messaggio è taggato con il tag Human Agent. Questo è l'unico scenario in cui un messaggio può essere inviato da un'app che non controlla la conversazione.

Autorizzazioni

Per chiedere ai clienti l'autorizzazione di accedere ai dati dei messaggi, le app devono avere l'autorizzazione pages_messaging.

Webhook

Nel protocollo di consegna ci sono due serie di webhook a cui un'app dovrebbe effettuare l'iscrizione: i webhook dei messaggi e i webhook di standby. Le notifiche ricevute da un'app dipendono dal controllo della conversazione. Se un'app controlla una conversazione, riceve le notifiche dei webhook dei messaggi. Se un'app non controlla la conversazione, riceve le notifiche dei webhook di standby.

Utilizzi comuni

Assistenza clienti

Un'azienda usa un'app per le esperienze automatizzate per le domande frequenti, ma trasferisce il cliente a un'altra app affinché riceva assistenza in diretta se l'esperienza automatizzata non è stata in grado di risolvere il suo problema. L'app automatizzata è impostata come destinatario principale, quindi tutte le conversazioni sono di sua proprietà. Quando alla conversazione deve partecipare un operatore, l'app di assistenza in diretta può richiedere il controllo. Una volta completata la conversazione nell'app con l'operatore, il controllo viene rilasciato di nuovo all'app automatizzata. Se l'app con l'operatore ha bisogno di più tempo per gestire il problema del cliente, può richiedere un'estensione. Entrambe le app devono effettuare l'iscrizione ai webhook per avere la certezza che la conversazione vada avanti correttamente.

Campagna di marketing - Contatti per i prodotti

Un'azienda pubblica una campagna di marketing e usa un'esperienza automatizzata per determinare l'idoneità dei contatti o fornire consigli sui prodotti in base a un quiz relativo ai prodotti. Dopo aver verificato l'idoneità dei contatti, l'azienda usa la posta della Pagina Facebook o di Instagram per contattare i potenziali clienti. L'app automatizzata è impostata come destinatario principale, quindi tutte le conversazioni sono di sua proprietà. Quando l'app automatizzata ha completato la fase di verifica dell'idoneità dei contatti, il controllo della conversazione viene passato alla posta della Pagina Facebook o di Instagram. Una volta completata la conversazione nella posta della Pagina Facebook o di Instagram, la conversazione viene contrassegnata come Archivio. Questa operazione trasferisce il controllo della conversazione all'app principale. Entrambe le app devono effettuare l'iscrizione ai webhook per avere la certezza che la conversazione vada avanti correttamente.

Campagna di marketing - Inserzioni che rimandano a Messenger

Un'azienda pubblica una campagna di marketing e invia i potenziali clienti a un'app automatizzata per un'esperienza specifica su Messenger. L'app automatizzata è impostata come destinatario principale, quindi tutte le conversazioni sono di sua proprietà. Quando alla conversazione deve partecipare un operatore, l'app di assistenza in diretta può richiedere il controllo. Una volta completata la conversazione nell'app con l'operatore, il controllo viene rilasciato di nuovo all'app automatizzata. Se l'app con l'operatore ha bisogno di più tempo per gestire il problema del cliente, può richiedere un'estensione. Entrambe le app devono effettuare l'iscrizione ai webhook per avere la certezza che la conversazione vada avanti correttamente.

Best practice

  1. Consigliamo di impostare l'app con le esperienze automatizzate come destinatario principale e le app per gli operatori come non principali. L'app per gli operatori dovrebbe ascoltare gli eventi di standby e non intervenire se non necessario.
  2. Usa sempre l'API Get Thread Control per verificare se hai il controllo della conversazione o meno, quindi chiama le altre API in base allo scenario. Non intervenire né interrompere se non hai il controllo.
  3. Assicurati di non provare a inviare messaggi alla conversazione quando il controllo è attribuito a un'altra app. Se sei un'app principale, usa l'API Take Thread Control solo se ritieni sia necessario. Nei casi non urgenti o se sei un'app non principale, richiedi il controllo della conversazione.
  4. Assicurati di onorare un evento di richiesta di controllo della conversazione ricevuto da qualsiasi altra app in tutti i casi possibili e passa il controllo della conversazione all'app richiedente. Se per qualsiasi motivo non riesci a passare immediatamente il controllo della conversazione, usa l'API Pass Metadata per inviare ulteriore contesto all'app richiedente e mantenere una coda in modo da poter passare il controllo della conversazione quando avrai terminato.
  5. Se hai terminato la conversazione, passa il controllo a un'app che l'ha richiesto in precedenza che è ancora in coda o contrassegna la conversazione come inattiva, in modo che qualsiasi altra app possa acquisire il controllo. Se non esegui questa operazione, la conversazione viene rilasciata automaticamente dalla tua app e impostata sulla modalità inattiva dopo 24 ore. Scrivi il codice per questo scenario e i relativi cambi di stato di conseguenza.
  6. Se noti che la conversazione è inattiva chiamando l'API Get Thread Control, usa Request Thread Control per assumere il controllo in modo da poter inviare in esclusiva messaggi all'utente senza interruzioni e rilascia il controllo al termine.