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 il messaggio al webhook configurato. L'agente può quindi decodificare il messaggio, elaborarlo ed emettere una risposta all'utente.

Gli utenti possono inviare qualsiasi testo, posizione o file consentito dal client RCS. Il tuo agente deve gestire qualsiasi testo, posizione o file che l'utente potrebbe inviare, nonché eventuali stati di errore che questi messaggi potrebbero attivare.
Gestire i messaggi in arrivo
Il modo in cui l'agente gestisce e risponde ai messaggi degli utenti dipende in larga misura dalla logica di business. In genere, tuttavia, i passaggi per rispondere a un messaggio di un utente sono coerenti.
Passaggio 1: identifica il tipo di messaggio inviato dall'utente
Gli utenti possono inviare quattro tipi di messaggi:
- I messaggi di testo sono risposte in formato libero.
- I messaggi suggeriti includono i dati di postback e il testo dell'azione o della risposta suggerita che l'utente ha toccato.
I messaggi Posizione 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 devono guidare la logica e la risposta successiva dell'agente nella conversazione.
Il modo più semplice per identificare l'intent dell'utente è utilizzare i dati di postback di una risposta o azione suggerita. Indipendentemente dal testo associato al suggerimento, i dati di postback sono leggibili da computer.
Se un utente invia un messaggio, l'agente potrebbe analizzare la risposta per parlare di parole chiave supportate o utilizzare l'elaborazione del linguaggio naturale (come Dialogflow) per elaborare il messaggio dell'utente e identificare un percorso da seguire.
I messaggi di posizione e file non includono dati di testo o postback, quindi 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, deve rispondere con uno stato di errore e provare a continuare la conversazione chiedendo all'utente ulteriori informazioni, chiedendo l'input in un modo diverso o presentando risposte suggerite e azioni suggerite a cui l'agente sa come rispondere.
Passaggio 3: implementa 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 interagisce con altri sistemi, se necessario, per soddisfare la logica di business dell'interazione.
Passaggio 4: rispondi all'utente
Dopo che l'agente soddisfa la logica di business per l'interazione, invia un altro messaggio e continua la conversazione con l'utente.
Esempi
Il seguente codice mostra come l'agente riceve i messaggi. Per informazioni sulla formattazione e sui valori, consulta UserMessage.
Nota: per il traffico statunitense, i messaggi degli utenti e i tocchi sulle azioni suggerite sono
soggetti alle classificazioni del modello di fatturazione statunitense. Quando l'agente riceve
questi eventi, include il campo richMessageClassification, che
determina il tipo di evento fatturabile. Per i dettagli sulla classificazione, consulta la guida al modello di fatturazione statunitense.
L'agente riceve il 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 entrata
L'agente riceve notifiche quando i messaggi che invia agli utenti vengono consegnati e letti.
Il seguente codice mostra come l'agente riceve i messaggi. Per informazioni sulla formattazione e sui valori, 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"
}