Damit die Interaktionen der Nutzer mit dem Agent zufriedenstellend sind, sendet Google Umfragen an Nutzer, nachdem sie die Unterhaltungen mit dem Agent abgeschlossen haben. Wenn Sie Daten mit unterschiedlichem Timing erfassen möchten, z. B. am Ende einer Unterhaltung, können Sie im Kontext einer Unterhaltung Umfragen senden. Umfragen sind Teil der Unterhaltung und bieten Nutzern je nach Frage verschiedene Optionen, um Feedback zu geben.
Der Zeitpunkt der von Google ausgelösten Umfragen hängt von der Verfügbarkeit der Nachrichten des Agents ab:
Verfügbarkeit | Dauer der Umfrage |
---|---|
Nur Bot | 30 Minuten nach der letzten Nachricht |
Nur für Menschen | 24 Geschäftsstunden nach der letzten Nachricht |
Bot und Mensch | 24 Geschäftsstunden nach der letzten Nachricht |
Bei weniger als 24 Geschäftsstunden in den nächsten 7 Tagen verwenden wir stattdessen 24 Stunden.
Sie können alle 24 Stunden eine Umfrage pro Unterhaltung senden. Wenn Sie eine Umfrage in einer Unterhaltung vor Google senden, sendet Google keine Umfrage an diese Unterhaltung. Wenn Ihr Agent innerhalb von 24 Stunden mehrere Umfragen in derselben Unterhaltung sendet, versucht Business Messages nur, die erste Umfrage an den Nutzer zu senden.
Wenn ein Nutzer das nächste Mal nach Abschluss einer Umfrage eine Unterhaltung mit Ihrem Agent beginnt, zeigt der Agent eine greeting an. Wenn ein Nutzer nicht an einer Umfrage teilnimmt, läuft die Umfrage nach 7 Tagen ab. Nach Ablauf der Umfrage wird in der nächsten Unterhaltung eine Begrüßung angezeigt.
Wenn ein Nutzer eine Nachricht sendet, die nichts mit einer Umfrage zu tun hat, während eine Umfrage in der Unterhaltung aktiv ist, bricht Business Messages die Umfrage ab und sendet die Nachricht des Nutzers an den Webhook des Agents.
Auch wenn Sie keine Umfragen an Nutzer senden, erhält der Agent die Ergebnisse der Umfragen von Google im Webhook und sollte sie akzeptieren und entsprechend verarbeiten.
Fragen
Umfragen können bis zu fünf Fragen enthalten, die in drei Kategorien unterteilt sind: erforderlich, Vorlage und Benutzerdefiniert. Eine Umfrage enthält immer die erforderliche Frage, dann werden bis zu zwei Vorlagenfragen und dann bis zu zwei benutzerdefinierte Fragen angezeigt.
Pflichtfrage
Die erforderliche Frage ist für alle Sprachen lokalisiert, die Business Messages unterstützt. Nutzer können mit „Mag ich“ oder „Mag ich nicht“ antworten.
Die erforderliche Frage: „War dieser Messaging-Dienst auf Ihre Anforderungen in Bezug auf AGENT_NAME eingegangen?“
Fragen zu Vorlagen
Vorlagenfragen sind optionale, von Google definierte Fragen, die in allen Sprachen lokalisiert sind, die von Business Messages unterstützt werden. Eine Umfrage kann bis zu zwei Fragenvorlage enthalten. Das Format der Nutzerantworten variiert je nach Frage.
Zu den Vorlagenfragen gehören
- Wie hat dir die Kommunikation mit AGENT_NAME gefallen?
- Wie wahrscheinlich ist es, dass Sie AGENT_NAME Freunden empfehlen?
- Wenn du AGENT_NAME das nächste Mal kontaktierst, wie wahrscheinlich ist es, dass du die Nachrichtenfunktion auswählst?
- Wie einfach war die Interaktion mit AGENT_NAME insgesamt?
- Inwieweit stimmst du der folgenden Aussage zu: AGENT_NAME hat es mir leicht gemacht, das Problem zu lösen.
- Bitte geben Sie an, wie zufrieden Sie insgesamt mit dem Supportmitarbeiter sind.
- Konnten Sie mit dieser Chatsitzung einen Anruf an AGENT_NAME vermeiden?
Um eine Liste aller verfügbaren Vorlagenfragen aufzurufen und Vorlagen-IDs abzurufen,
- Öffnen Sie die Business Communications Developer Console und melden Sie sich mit Ihrem Google-Konto für Business Messages an.
- Wählen Sie den Agent aus.
- Klicken Sie im linken Navigationsbereich auf Umfrage.
Benutzerdefinierte Fragen
Eine Umfrage kann bis zu zwei benutzerdefinierte Fragen enthalten. Wenn Sie eine benutzerdefinierte Frage angeben, fügen Sie für jede vom Agent unterstützte Sprache Versionen der Frage hinzu. Sie müssen für jede Frage eine Version für Ihre Standardsprache angeben. Wenn ein Nutzer eine Umfrage erhält, sich aber in einer Sprache befindet, in der es keine bestimmte Version einer benutzerdefinierten Frage gibt, wird die Frage so angezeigt, wie sie in der Standardsprache des Agents definiert ist.
Antworten auf benutzerdefinierte Fragen unterstützen separate Text- und Postback-Daten, ähnlich wie bei vorgeschlagenen Antworten.
Umfrage anpassen
Um die Umfrage für einen Kundenservicemitarbeiter anzupassen,
- Öffnen Sie die Business Communications Developer Console und melden Sie sich mit Ihrem Google-Konto für Business Messages an.
- Wählen Sie den Agent aus.
- Klicken Sie im linken Navigationsbereich auf Umfrage.
- Fügen Sie der Umfrage bis zu zwei verfügbare Fragenvorlagen hinzu.
- Klicken Sie auf Benutzerdefinierte Frage erstellen, um Ihrer Umfrage benutzerdefinierte Fragen hinzuzufügen.
Informationen zu Formatierungs- und Wertoptionen finden Sie unter surveyConfig
.
Umfrage senden
Führen Sie den folgenden Befehl aus, um eine Umfrage zu senden. Ersetzen Sie CONVERSATION_ID durch die ID der Unterhaltung, an die Sie die Umfrage senden möchten, und SURVEY_ID durch eine eindeutige ID für die Umfrage.
cURL
# Copyright 2021 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # https://www.apache.org/licenses/LICENSE-2.0 # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # This code sends a survey to the user: # Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/message/surveys?hl=en # Replace the __CONVERSATION_ID__ with a conversation id that you can send messages to # Make sure a service account key file exists at ./service_account_key.json curl -X POST "https://businessmessages.googleapis.com/v1/conversations/__CONVERSATION_ID__/surveys?surveyId=f4bd7576-6c2e-4674-9db4-d697166f63ce" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/business-messages" \ -H "$(oauth2l header --json ./service_account_key.json businessmessages)"
Node.js
/** * This code sends a survey to the user: * Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/message/surveys?hl=en * * This code is based on the https://github.com/google-business-communications/nodejs-businessmessages Node.js * Business Messages client library. */ /** * Edit the values below: */ const PATH_TO_SERVICE_ACCOUNT_KEY = './service_account_key.json'; const CONVERSATION_ID = 'EDIT_HERE'; const businessmessages = require('businessmessages'); const uuidv4 = require('uuid').v4; const {google} = require('googleapis'); // Initialize the Business Messages API const bmApi = new businessmessages.businessmessages_v1.Businessmessages({}); // Set the scope that we need for the Business Messages API const scopes = [ 'https://www.googleapis.com/auth/businessmessages', ]; // Set the private key to the service account file const privatekey = require(PATH_TO_SERVICE_ACCOUNT_KEY); /** * Posts a survey to the Business Messages API. * * @param {string} conversationId The unique id for this user and agent. */ async function sendSurvey(conversationId) { const authClient = await initCredentials(); // Create the payload for creating a new survey const apiParams = { auth: authClient, parent: 'conversations/' + conversationId, surveyId: uuidv4(), resource: {} }; // Call the message create function using the // Business Messages client library bmApi.conversations.surveys.create(apiParams, {auth: authClient}, (err, response) => { console.log(err); console.log(response); }); } /** * Initializes the Google credentials for calling the * Business Messages API. */ async function initCredentials() { // configure a JWT auth client const authClient = new google.auth.JWT( privatekey.client_email, null, privatekey.private_key, scopes, ); return new Promise(function(resolve, reject) { // authenticate request authClient.authorize(function(err, tokens) { if (err) { reject(false); } else { resolve(authClient); } }); }); } sendSurvey(CONVERSATION_ID);
Java
import com.google.api.client.googleapis.services.AbstractGoogleClientRequest; import com.google.api.client.http.HttpBackOffUnsuccessfulResponseHandler; import com.google.api.client.http.HttpRequest; import com.google.api.client.googleapis.auth.oauth2.GoogleCredential; import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; import com.google.api.client.http.HttpTransport; import com.google.api.client.json.jackson2.JacksonFactory; import com.google.api.client.util.ExponentialBackOff; import com.google.api.services.businessmessages.v1.Businessmessages; import com.google.api.services.businessmessages.v1.model.*; import java.io.FileInputStream; import java.util.Arrays; import java.util.UUID; class SendSurveySnippet { /** * Initializes credentials used by the Business Messages API. */ private static Businessmessages.Builder getBusinessMessagesBuilder() { Businessmessages.Builder builder = null; try { GoogleCredential credential = GoogleCredential .fromStream(new FileInputStream("PATH_TO_SERVICE_ACCOUNT_KEY")); credential = credential.createScoped(Arrays.asList( "https://www.googleapis.com/auth/businessmessages")); credential.refreshToken(); HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport(); JacksonFactory jsonFactory = JacksonFactory.getDefaultInstance(); // Create instance of the Business Messages API builder = new Businessmessages .Builder(httpTransport, jsonFactory, null) .setApplicationName("Sample Application"); // Set the API credentials and endpoint builder.setHttpRequestInitializer(credential); } catch (Exception e) { e.printStackTrace(); } return builder; } public static void main(String args[]) { try { String conversationId = "CONVERSATION_ID"; // Create client library reference Businessmessages.Builder builder = getBusinessMessagesBuilder(); // Create a new survey to send to the user associated with the conversationId Businessmessages.Conversations.Surveys.Create request = bmBuilder.build().conversations().surveys() .create("conversations/" + conversationId, new BusinessMessagesSurvey()); request.setSurveyId(UUID.randomUUID().toString()); // Setup retries with exponential backoff HttpRequest httpRequest = ((AbstractGoogleClientRequest) request).buildHttpRequest(); httpRequest.setUnsuccessfulResponseHandler(new HttpBackOffUnsuccessfulResponseHandler( new ExponentialBackOff())); // Execute request httpRequest.execute(); } catch (Exception e) { e.printStackTrace(); } } }
Python
"""This code sends a survey to the user. Read more: https://developers.google.com/business-communications/business-messages/guides/how-to/message/surveys?hl=en This code is based on the https://github.com/google-business-communications/python-businessmessages Python Business Messages client library. """ import uuid from businessmessages import businessmessages_v1_client as bm_client from businessmessages.businessmessages_v1_messages import BusinessmessagesConversationsSurveysCreateRequest from businessmessages.businessmessages_v1_messages import BusinessMessagesSurvey from oauth2client.service_account import ServiceAccountCredentials # Edit the values below: path_to_service_account_key = './service_account_key.json' conversation_id = 'EDIT_HERE' credentials = ServiceAccountCredentials.from_json_keyfile_name( path_to_service_account_key, scopes=['https://www.googleapis.com/auth/businessmessages']) client = bm_client.BusinessmessagesV1(credentials=credentials) # Create the survey request survey_request = BusinessmessagesConversationsSurveysCreateRequest( surveyId=str(uuid.uuid4().int), parent='conversations/' + conversation_id, businessMessagesSurvey=BusinessMessagesSurvey()) # Send the survey bm_client.BusinessmessagesV1.ConversationsSurveysService( client=client).Create(request=survey_request)
Informationen zu Formatierungs- und Wertoptionen finden Sie unter conversations.surveys
.
Umfrageantworten erhalten
Wenn ein Nutzer auf eine Frage in einer Umfrage antwortet, erhält der Agent die Antwort im Webhook. Sie erhalten und verarbeiten Umfrageantworten genauso, wie Sie Nachrichten empfangen.
Alle Fragen in einer Umfrage haben denselben surveyResponse.survey
-Wert. Wenn Ihre Umfrage mehrere Fragen umfasst, muss Ihre Infrastruktur mehrere Antworten mit demselben surveyResponse.survey
-Wert akzeptieren und einzelne Fragen im Feld surveyResponse.surveyQuestionId
identifizieren.
Textwerte für Umfrageantworten werden in surveyResponse.questionResponseText
angezeigt. Bei erforderlichen und Vorlagenfragen gibt Business Messages eine „Mag ich“-Antwort als VERY_SATISFIED
und eine „Mag ich nicht“-Antwort als VERY_DISSATISFIED
zurück. Wenn eine benutzerdefinierte Frageantwort ein Emoji enthält, empfiehlt es sich, sich auf surveyResponse.questionResponsePostbackData
zu verlassen, anstatt zu versuchen, den Unicode-Wert zu parsen.
Die Umfrageantworten haben das folgende Format.
{ "agent": "brands/BRAND_ID/agents/AGENT_ID", "sendTime": "SEND_TIME", "conversationId": "CONVERSATION_ID", "requestId": "REQUEST_ID", "surveyResponse": { "survey": "conversations/CONVERSATION_ID/surveys/SURVEY_ID", "rating": "SURVEY_RATING", "createTime": "CREATE_TIME", "surveyQuestionId": "QUESTION_ID", "questionResponseText": "RESPONSE_TEXT", "questionResponsePostbackData": "RESPONSE_POSTBACK_DATA", "questionType": "QUESTION_TYPE", "questionIndex": QUESTION_INDEX, "totalQuestionCount": TOTAL_QUESTION_COUNT, "surveyTriggerSource": "TRIGGER_SOURCE" } }
Informationen zu Formatierungs- und Wertoptionen finden Sie unter UserMessage
und SurveyResponse
.