Dopo aver effettuato la registrazione a Business Messaggi, puoi ricevere messaggi per conto del tuo agente di test. Puoi ricevere messaggi per i brand che gestisci dopo di te create, verify e lancia di questi brand.
Quando un cliente invia un messaggio a un agente che gestisci, Business Messages invia un payload JSON al webhook che contiene vari ID, contenuti dei messaggi e informazioni sulla posizione.
Utilizza i log di Business Communications Developer Console per eseguire il debug dei problemi di recapito dei messaggi.
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.
Conferma il messaggio
Per confermare un messaggio ricevuto dal webhook, restituisci una risposta HTTP valida ai messaggi inviati al webhook.
Se un messaggio non viene recapitato a causa del timeout della consegna, della raggiungibilità del webhook di reindirizzamento o di autorizzazione, Google archivia e inoltra il messaggio con più tentativi, per 7 giorni o finché il webhook non riceve correttamente .
Verifica che il messaggio provenga da Google
Devi verificare che Google abbia inviato il messaggio prima di elaborarlo contenuti.
Per verificare che Google abbia inviato un messaggio che hai ricevuto:
- Analizza l'intestazione
X-Goog-Signature
del messaggio. Questo è un hash, copia con codifica Base64 del payload del corpo del messaggio. Utilizzando il token client (presente al momento della configurazione della webhook) come chiave, creiamo un HMAC SHA512 dei byte del payload dei messaggi con la codifica base64 del risultato.
Confronta l'hash
X-Goog-Signature
con l'hash che hai creato.- Se gli hash corrispondono, significa che il messaggio è stato inviato da Google.
- Se gli hash non corrispondono, controlla la procedura di hashing su un prodotto noto . Se la procedura di hashing funziona correttamente e ricevi un che ritieni ti sia stato inviato in modo fraudolento, contattaci (devi firmare con un Account Google Business Messages).
Guarda l'esempio di verifica dei messaggi nei repository GitHub per gli Echo Bots in Java, Node.js e Python.
Identifica le impostazioni internazionali
Gli utenti comunicano da molte località e in molte lingue. Business Messages
rappresenta gli utenti le preferenze relative alla lingua con i resolvedLocale
e
userDeviceLocale
campi, basati sui rispettivi dispositivi impostazioni internazionali.
Consulta la sezione Localizzazione e
impostazioni internazionali.
Se possibile, indirizza i messaggi e scrivi risposte in base alle lingua preferenze.
Instrada il messaggio in base al contesto
Il contesto del messaggio indica il tipo di informazioni che l'utente potrebbe cercare.
Ad esempio, se un utente invia un messaggio con un
placeId
valore, hanno inviato messaggi a una località specifica (identificata da placeId
) e
più probabilità di fare domande specifiche per ogni località. Analogamente, se un messaggio ha
nearPlaceId
, che identifica una località vicina all'utente, probabilmente l'utente
vuole conoscere informazioni specifiche della sede, ma l'agente deve confermare
il luogo con cui l'utente desidera chattare prima di iniziare la conversazione.
Utilizzando le informazioni di contesto del messaggio, indirizzalo al meglio nella località più adatte a rispondere:
- Se il messaggio si trova in una nuova conversazione ed è una domanda comune, potresti di risposta con l'automazione.
- Se l'automazione non è in grado di gestire la domanda, indirizzala a un operatore.
- Se le impostazioni internazionali del messaggio non corrispondono a quelle predefinite dell'agente, indirizza il un messaggio a un operatore in grado di supportare quella lingua.
- Se la domanda riguarda una località specifica, indirizzala a una persona che informazioni su quel luogo.
- Se il messaggio è in una conversazione in corso, indirizzalo all'operatore partecipare alla conversazione.
Identifica il tipo di messaggio inviato dall'utente
Gli utenti possono inviare tre tipi di messaggi:
- Gli SMS sono risposte libere.
- I messaggi immagine includono l'URL firmato per un'immagine dell'utente. caricato.
- I messaggi di suggerimenti includono i dati dei postback e il testo di l'azione o la risposta suggerita che l'utente ha toccato.
Elabora i contenuti del messaggio
Se l'agente utilizza l'automazione, sono i contenuti del messaggio dell'utente a guidare la tua la logica dell'agente e la risposta successiva 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 la comprensione del linguaggio naturale (ad esempio con Dialogflow integrazione per elaborare il messaggio dell'utente e identificare un percorso da seguire.
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 affidando la conversazione a un operatore.
Rispondi all'utente
Dopo che l'agente ha identificato la risposta corretta, attraverso l'automazione o un di un operatore: invia una messaggio e continua la conversazione con l'utente.
Quando scrivi una risposta, considera le impostazioni internazionali dell'utente. Puoi inoltre
personalizza le risposte recuperando i valori dall'oggetto userInfo
in ogni
che ricevi.
Tipi di messaggi
Il seguente codice mostra il modo in cui l'agente riceve i messaggi.
Per informazioni sulla formattazione e sui valori, consulta
UserMessage
Testo
Il modo più comune utilizzato dagli utenti per rispondere è il testo normale. Gli SMS hanno il seguente formato.
{ "agent": "brands/BRAND_ID/agents/AGENT_ID", "conversationId": "CONVERSATION_ID", "customAgentId": "CUSTOM_AGENT_ID", "requestId": "REQUEST_ID", "message": { "messageId": "MESSAGE_ID", "name": "conversations/CONVERSATION_ID/messages/MESSAGE_ID", "text": "MESSAGE_TEXT", "createTime": "MESSAGE_CREATE_TIME", }, "dialogflowResponse": { "autoResponded": "BOOLEAN", "faqResponse": { "userQuestion": "USER_QUESTION", "answers": [{ "faqQuestion": "FAQ_QUESTION", "faqAnswer": "FAQ_ANSWER", "matchConfidenceLevel": "CONFIDENCE_LEVEL", "matchConfidence": "CONFIDENCE_NUMERIC", }], }, }, "context": { "entryPoint": "CONVERSATION_ENTRYPOINT", "placeId": "LOCATION_PLACE_ID", "resolvedLocale": "MATCH_OF_USER_AND_AGENT_LOCALES", "userInfo": { "displayName": "USER_NAME", "userDeviceLocale": "USER_LOCALE", }, }, "sendTime": "SEND_TIME", }
Per le opzioni di formattazione e valore, consulta
Message
Immagine
Oltre a inviare testo, gli utenti possono inviare immagini all'agente sotto forma di messaggi.
Business Messages archivia le immagini condivise, per 7 giorni, quando
URL
e include questi URL nel campo text
del payload dei messaggi.
Se il tuo agente include l'automazione, assicurati che sappia come rispondere se un utente condivide un'immagine. Gli operatori devono assicurarsi che le immagini vengano passate tramite o che gli URL nei messaggi siano cliccabili.
...
"message": {
"text": "https://storage.googleapis.com/business-messages-us/936640919331/jzsu6cdguNGsBhmGJGuLs1DS?x-goog-algorithm\u003dGOOG4-RSA-SHA256\u0026x-goog-credential\u003duranium%40rcs-uranium.iam.gserviceaccount.com%2F20190826%2Fauto%2Fstorage%2Fgoog4_request\u0026x-goog-date\u003d20190826T201038Z\u0026x-goog-expires\u003d604800\u0026x-goog-signedheaders\u003dhost\u0026x-goog-signature\u003d89dbf7a74d21ab42ad25be071b37840a544a43d68e67270382054e1442d375b0b53d15496dbba12896b9d88a6501cac03b5cfca45d789da3e0cae75b050a89d8f54c1ffb27e467bd6ba1d146b7d42e30504c295c5c372a46e44728f554ba74b7b99bd9c6d3ed45f18588ed1b04522af1a47330cff73a711a6a8c65bb15e3289f480486f6695127e1014727cac949e284a7f74afd8220840159c589d48dddef1cc97b248dfc34802570448242eac4d7190b1b10a008404a330b4ff6f9656fa84e87f9a18ab59dc9b91e54ad11ffdc0ad1dc9d1ccc7855c0d263d93fce6f999971ec79879f922b582cf3bb196a1fedc3eefa226bb412e49af7dfd91cc072608e98"
}
...
Per le opzioni di formattazione e valore, consulta
Message
Suggerimento
Le risposte e le azioni suggerite consentono agli utenti di rispondere o eseguire attività azioni con un tocco. Quando un utente tocca un suggerimento, l'agente riceve un payload. con il testo del suggerimento e i dati di postback.
I messaggi di suggerimento hanno il seguente formato.
{ "agent": "brands/BRAND_ID/agents/AGENT_ID", "conversationId": "CONVERSATION_ID", "customAgentId": "CUSTOM_AGENT_ID", "requestId": "REQUEST_ID", "suggestionResponse": { "message": "conversations/CONVERSATION_ID/messages/MESSAGE_ID", "postbackData": "POSTBACK_DATA", "createTime": "RESPONSE_CREATE_TIME", "text": "SUGGESTION_TEXT", "suggestionType": "SUGGESTION_TYPE", } "context": { "entryPoint": "CONVERSATION_ENTRYPOINT", "placeId": "LOCATION_PLACE_ID", "resolvedLocale": "MATCH_OF_USER_AND_AGENT_LOCALES", "userInfo": { "displayName": "USER_NAME", "userDeviceLocale": "USER_LOCALE", }, }, "sendTime": "SEND_TIME", }
Per le opzioni di formattazione e valore, consulta
SuggestionResponse
Richiesta di autenticazione
Il suggerimento per la richiesta di autenticazione consente agli utenti di accedere con un token OAuth di fornire all'agente i dettagli dell'identità o di consentirgli di eseguire azioni sull'account utente per conto tuo. Vedi Autenticazione con OAuth.
Se un utente accede correttamente con il provider OAuth specificato, l'agente riceve un payload con il codice di autorizzazione. Se un utente non riesce a eseguire dopo aver eseguito l'accesso, l'agente riceve un payload con i dettagli dell'errore.
I messaggi di richiesta di autenticazione hanno il seguente formato.
{ "agent": "brands/BRAND_ID/agents/AGENT_ID", "conversationId": "CONVERSATION_ID", "customAgentId": "CUSTOM_AGENT_ID", "requestId": "REQUEST_ID", "authenticationResponse": { "code": "AUTHORIZATION_CODE", "redirect_uri": "REDIRECT_URI", "errorDetails": { "error": "ERROR", "errorDescription": "ERROR_DESCRIPTION", }, } "context": { "entryPoint": "CONVERSATION_ENTRYPOINT", "placeId": "LOCATION_PLACE_ID", "resolvedLocale": "MATCH_OF_USER_AND_AGENT_LOCALES", "userInfo": { "displayName": "USER_NAME", "userDeviceLocale": "USER_LOCALE", }, }, "sendTime": "SEND_TIME", }
Per le opzioni di formattazione e valore, consulta
AuthenticationResponse
Contesto del messaggio
Ogni messaggio contiene informazioni di contesto sul luogo di origine del messaggio.
... "context": { "customContext": "CUSTOM_CONTEXT", "entryPoint": "CONVERSATION_ENTRYPOINT", "placeId": "LOCATION_PLACE_ID", "nearPlaceId": "NEARBY_LOCATION_PLACE_ID", "deflectedPhoneNumber": "DEFLECTED_PHONE_NUMBER", "resolvedLocale": "MATCH_OF_USER_AND_AGENT_LOCALES", "userInfo": { "displayName": "USER_NAME", "userDeviceLocale": "USER_LOCALE", }, "widget": { "url": "WEBSITE_URL", "widgetContext": "WIDGET_CONTEXT", }, }, ...
Campo | Descrizione |
---|---|
customContext |
Dati di contesto specificati dal partner. |
entryPoint |
La piattaforma di messaggistica da cui l'utente ha avviato la conversazione, come definito per EntryPoint. |
placeId |
Un identificatore univoco della sede dal database di Google Places a cui l'utente ha inviato messaggi. Appaiono solo nei messaggi provenienti da località specifiche i punti di ingresso. |
nearPlaceId |
Un identificatore univoco del database di Google Places
in un pacchetto locale. Conferma le sedi con cui gli utenti vogliono chattare
con il momento in cui ricevi i valori nearPlaceId . |
deflectedPhoneNumber |
Il numero di telefono che Business Messages ha impedito all'utente di chiamare dall'inizio della conversazione. |
resolvedLocale |
La migliore corrispondenza calcolata della lingua dell'utente (segnalata in
Il valore delle impostazioni internazionali è un tag lingua IETF BCP 47 in formato corretto. |
userInfo.displayName |
Il nome dell'utente che ha inviato il messaggio. Se l'utente disattiva condivisione dell'identità, questo campo è vuoto. |
userInfo.userDeviceLocale |
La lingua dell'utente, segnalata dal suo dispositivo, come un formato corretto Tag per la lingua IETF BCP 47. |
widget.url |
L'URL del sito web in cui è stata lanciata la piattaforma di conversazione. |
widget.widgetContext |
Lo
Valore dell'attributo data-bm-widget-context del widget utilizzato
per iniziare la conversazione. |
Cronologia conversazione
Google non fornisce cronologie delle conversazioni. Gestire i dati storici conversazioni, nel rispetto delle tue norme sulla privacy e delle tue best practice, per inviare risposte informate ai messaggi futuri degli utenti.