Gli agenti RBM ricevono messaggi ed eventi tramite un webhook. Quando un utente invia un messaggio al tuo agente, il servizio RBM di Google invia al webhook configurato. L'agente può quindi decodificare il messaggio, elaborarlo e inviare una risposta all'utente.
Gli utenti possono inviare qualsiasi testo, posizione o file consentito dal client RCS. L'agente deve gestire eventuali testi, posizioni o file che l'utente potrebbe inviare, ed eventuali stati di errore che potrebbero essere attivati.
Gestire i messaggi in arrivo
Il modo in cui l'agente gestisce e risponde ai messaggi degli utenti dipende molto da come della tua logica di business. In genere, tuttavia, i passaggi per rispondere a un utente messaggi coerenti.
Passaggio 1: identifica il tipo di messaggio inviato dall'utente
Gli utenti possono inviare quattro tipi di messaggi:
- Gli SMS sono risposte libere.
- I messaggi di suggerimenti includono i dati dei postback e il testo di l'azione o la risposta suggerita che l'utente ha toccato.
I messaggi sulla località includono i valori di latitudine e longitudine.
I messaggi File includono l'URI di un file e i dati associati.
Passaggio 2: elabora i contenuti del messaggio
I contenuti del messaggio dell'utente dovrebbero guidare la logica e la risposta successiva dell'agente nella conversazione.
Il modo più semplice per identificare l'intenzione dell'utente è utilizzare i dati postback di un risposta o azione suggerita. Indipendentemente dal testo associato il suggerimento, i dati postback sono leggibili dalla macchina.
Se un utente invia un messaggio, l'agente potrebbe analizzare la risposta per parole chiave supportate o utilizzare NLU (come Dialogflow) per elaborare il messaggio dell'utente e a individuare il percorso da seguire.
I messaggi relativi a posizione e file non includono testo o dati di postback, quindi la tua L'agente deve considerare il contesto della conversazione e i messaggi recenti prima di rispondere.
Se l'agente non sa come rispondere al messaggio dell'utente, dovrebbe rispondi con uno stato di errore e prova a continuare la conversazione la richiesta di ulteriori informazioni all'utente, chiedendole in modo diverso o presentando risposte e azioni suggerite che a cui l'agente sa rispondere.
Passaggio 3: completa la logica di business per l'interazione
Una volta che l'agente identifica la risposta corretta al messaggio dell'utente, raccoglie le informazioni necessarie dalla tua infrastruttura e si impegna con gli altri sistemi, se necessario, per soddisfare la logica di business un'interazione.
Passaggio 4: rispondi all'utente
Dopo aver completato la logica di business per l'interazione, l'agente invia un altro messaggio e continua la conversazione con l'utente.
Esempi
Il seguente codice mostra il modo in cui l'agente riceve i messaggi. Per la formattazione e informazioni sul valore, vedi UserMessage.
L'agente riceve un messaggio
{ "agentId": "AGENT_ID", "senderPhoneNumber": "PHONE_NUMBER", "messageId": "MESSAGE_ID", "sendTime": "2018-12-31T15:01:23.045123456Z", "text": "Hello, world!" }
L'agente riceve un messaggio da un suggerimento
{ "agentId": "AGENT_ID", "senderPhoneNumber": "PHONE_NUMBER", "messageId": "MESSAGE_ID", "sendTime": "2018-12-31T15:01:23.045123456Z", "suggestionResponse": { "postbackData": "suggestion_1", "text": "Suggestion #1" } }
L'agente riceve una posizione
{ "agentId": "AGENT_ID", "senderPhoneNumber": "PHONE_NUMBER", "messageId": "MESSAGE_ID", "sendTime": "2018-12-31T15:01:23.045123456Z", "location": { "latitude": 37.422000, "longitude": -122.084056 } }
L'agente riceve un file
{ "agentId": "AGENT_ID", "senderPhoneNumber": "PHONE_NUMBER", "messageId": "MESSAGE_ID", "sendTime": "2018-12-31T15:01:23.045123456Z", "userFile": { "thumbnail": { "mimeType": "image/jpeg", "fileSizeBytes": 1280, "fileUri": "https://storage.googleapis.com/copper_test/77ddb795-24ad-4607-96ae-b08b4d86406a/d2dcc67ab888d34ee272899c020b13402856f81597228322079eb007e8c8", "fileName": "4_animated.jpeg" }, "payload": { "mimeType": "image/gif", "fileSizeBytes": 127806, "fileUri": "https://storage.googleapis.com/copper_test/77ddb795-24ad-4607-96ae-b08b4d86406a/d2dcc67ab888d34ee272899c020b13402856f81597228322079eb007e8c9", "fileName": "4_animated.gif" } } }
Gestire gli eventi in arrivo
L'agente riceve notifiche quando i messaggi che invia agli utenti vengono recapitate e lette.
Il seguente codice mostra il modo in cui l'agente riceve i messaggi. Per la formattazione e informazioni sul valore, vedi UserEvent.
Messaggio recapitato all'utente
{ "agentId": "AGENT_ID", "senderPhoneNumber": "PHONE_NUMBER", "messageId": "MESSAGE_ID", "eventId": "EVENT_ID", "sendTime": "2018-12-31T15:01:23.045123456Z", "eventType": "DELIVERED" }
Messaggio letto dall'utente
{ "agentId": "AGENT_ID", "senderPhoneNumber": "PHONE_NUMBER", "messageId": "MESSAGE_ID", "eventId": "EVENT_ID", "sendTime": "2018-12-31T15:01:23.045123456Z", "eventType": "READ" }
L'utente sta scrivendo…
{ "senderPhoneNumber": "PHONE_NUMBER", "eventType": "IS_TYPING", "eventId": "EVENT_ID", "sendTime": "2018-12-31T15:01:23.045123456Z", "agentId": "AGENT_ID" }