Damit Nutzer zufrieden mit Ihrem Agenten sind, sendet Google ihnen nach Abschluss einer Unterhaltung mit Ihrem Agenten Umfragen. Wenn Sie Daten zu anderen Zeitpunkten erheben möchten, z. B. am Ende einer Unterhaltung, können Sie Umfragen im Rahmen einer Unterhaltung senden. Umfragen werden in der Unterhaltung angezeigt und ermöglichen es Nutzern, je nach Frage mit verschiedenen Optionen Feedback zu geben.
Der Zeitpunkt von von Google ausgelösten Umfragen hängt von der Verfügbarkeit der Nachrichtenfunktion des Agenten ab:
| Verfügbarkeit | Zeitpunkt der Umfrage |
|---|---|
| Nur Bot | 30 Minuten nach der letzten Nachricht |
| Nur Mensch | 24 Geschäftsstunden nach der letzten Nachricht |
| Bot und Mensch | 24 Geschäftsstunden nach der letzten Nachricht |
Wenn in den nächsten 7 Tagen weniger als 24 Geschäftsstunden liegen, verwenden wir stattdessen 24 Stunden.
Sie können alle 24 Stunden eine Umfrage pro Unterhaltung senden. Wenn Sie vor Google eine Umfrage in einer Unterhaltung senden, sendet Google keine Umfrage für 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 nach dem Ausfüllen einer Umfrage eine Unterhaltung mit Ihrem Agenten beginnt, wird ihm eine Begrüßung angezeigt. Wenn ein Nutzer nicht auf eine Umfrage antwortet, läuft sie nach 7 Tagen ab. In der nächsten Unterhaltung nach Ablauf der Umfrage wird dem Nutzer eine Begrüßung angezeigt.
Wenn ein Nutzer während einer aktiven Umfrage in der Unterhaltung eine Nachricht sendet, die sich nicht auf die Umfrage bezieht, bricht Business Messages die Umfrage ab und sendet die Nachricht des Nutzers an den Webhook des Agenten.
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 bis zu zwei Vorlagefragen und dann bis zu zwei benutzerdefinierte Fragen.
Erforderliche Frage
Die erforderliche Frage ist in allen von Business Messages unterstützten Gebietsschemas lokalisiert. Nutzer können mit einem Daumen nach oben oder einem Daumen nach unten antworten.
Die erforderliche Frage: „Hat dieser Nachrichtendienst Ihre Bedürfnisse mit AGENT_NAME erfüllt?“
Vorlagefragen
Vorlagefragen sind optionale, von Google definierte Fragen, die in allen von Business Messages unterstützten Gebietsschemas lokalisiert sind. Eine Umfrage kann bis zu zwei Vorlagefragen enthalten. Die Formate der Nutzerantworten variieren je nach Frage.
Vorlagefragen umfassen:
- Wie zufrieden waren Sie mit der Unterhaltung mit AGENT_NAME?
- Wie wahrscheinlich ist es, dass Sie AGENT_NAME einem Freund empfehlen?
- Wie wahrscheinlich ist es, dass Sie beim nächsten Kontakt mit AGENT_NAME die Nachrichtenfunktion verwenden?
- Wie einfach war die Interaktion mit AGENT_NAME insgesamt?
- Inwieweit stimmen Sie der folgenden Aussage zu oder lehnen Sie sie ab: AGENT_NAME hat es mir leicht gemacht, mein Problem zu lösen.
- Wie zufrieden sind Sie insgesamt mit dem Supportmitarbeiter?
- Hat Ihnen diese Chatsitzung geholfen, einen Anruf bei AGENT_NAME zu vermeiden?
Eine Liste aller verfügbaren Vorlagefragen und Vorlagen-IDs finden Sie so:
- Öffnen Sie die Business Communications Developer Console und melden Sie sich mit Ihrem Google-Konto für Business Messages an.
- Wählen Sie Ihren Agenten aus.
- Klicken Sie in der linken Navigationsleiste auf Umfrage.
Benutzerdefinierte Fragen
Eine Umfrage kann bis zu zwei benutzerdefinierte Fragen enthalten. Wenn Sie eine benutzerdefinierte Frage angeben, fügen Sie Versionen der Frage für jedes Gebietsschema hinzu, das von Ihrem Agenten unterstützt wird. Sie müssen eine Version jeder Frage für Ihr Standardgebietsschema angeben. Wenn ein Nutzer eine Umfrage erhält, sich aber in einem Gebietsschema befindet, für das keine Version einer benutzerdefinierten Frage angegeben ist, wird die Frage so angezeigt, wie sie im Standardgebietsschema des Agenten definiert ist.
Antworten auf benutzerdefinierte Fragen unterstützen separate Text- und Postback-Daten, ähnlich wie vorgeschlagene Antworten.
Umfrage anpassen
So passen Sie die Umfrage für einen Agenten an:
- Öffnen Sie die Business Communications Developer Console und melden Sie sich mit Ihrem Google-Konto für Business Messages an.
- Wählen Sie Ihren Agenten aus.
- Klicken Sie in der linken Navigationsleiste auf Umfrage.
- Fügen Sie der Umfrage bis zu zwei verfügbare Vorlagefragen hinzu.
- Klicken Sie auf Benutzerdefinierte Frage erstellen , um benutzerdefinierte Fragen zu Ihrer Umfrage 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 Ihr Agent die Antwort an seinem Webhook. Umfrageantworten werden auf dieselbe Weise empfangen und verarbeitet wie Nachrichten.
Alle Fragen in einer Umfrage haben denselben surveyResponse.survey-Wert. Wenn
Ihre Umfrage mehrere Fragen enthält, muss Ihre Infrastruktur
mehrere Antworten mit demselben surveyResponse.survey-Wert akzeptieren und einzelne
Fragen über das Feld surveyResponse.surveyQuestionId identifizieren.
Textwerte für Umfrageantworten werden in surveyResponse.questionResponseText angezeigt. Bei erforderlichen Fragen und Vorlagefragen gibt Business Messages eine Antwort mit Daumen nach oben als VERY_SATISFIED und eine Antwort mit Daumen nach unten als VERY_DISSATISFIED zurück. Wenn eine benutzerdefinierte Frageantwort ein Emoji enthält, sollten Sie sich auf surveyResponse.questionResponsePostbackData verlassen, anstatt den Unicode-Wert zu parsen.
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.