Ricevere messaggi

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:

  1. Analizza l'intestazione X-Goog-Signature del messaggio. Questo è un hash, copia con codifica Base64 del payload del corpo del messaggio.
  2. 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.

  3. 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 userDeviceLocale) e le impostazioni internazionali supportate dall'agente (determinato da impostazioni di conversazione specifiche). Consulta Localizzazione e Inizia la conversazione.

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.