Google, kullanıcıların temsilcinizle etkileşimde bulunarak tatmin edici bir deneyim yaşamalarını sağlamak için Temsilcinizle görüşmeleri bittikten sonra kullanıcılara anket gönderir. Eğer verileri farklı zamanlamalarda (ör. en sonda bir görüşme bağlamında anket gönderebilirsiniz yardımcı olur. Anketler, görüşmede gösterilir ve kullanıcıların sorulara bağlı olarak çeşitli seçeneklerle geri bildirim gönderebilirsiniz.
Google tarafından tetiklenen anketlerin zamanlaması, temsilcinin mesajlaşmasına bağlıdır. stok durumu:
Kullanılabilirlik | Anket zamanlaması |
---|---|
Yalnızca bot | Son mesajdan 30 dakika sonra |
Yalnızca insanlar | Son mesajdan sonra 24 iş saati |
Bot ve insan | Son mesajdan sonra 24 iş saati |
< sonraki 7 gün için 24 çalışma saati yerine 24 saati kullanırız.
Her 24 saatte bir görüşme başına bir anket gönderebilirsiniz. Google’da anket gönderirseniz görüşmeniz varsa Google o görüşmeye anket göndermez. Temsilciniz 24 saat içinde aynı görüşmede birden fazla anket gönderirse Business Messages, kullanıcıya yalnızca ilk anketi göndermeyi dener.
Bir kullanıcı, işlemi tamamladıktan sonra temsilcinizle görüşme başlattığında müşteri temsilcisi bir selamlama mesajı görüntüler. Kullanıcı anketi yanıtlamazsa, anketin süresi 7 gün sonra dolar ve Kullanıcı, anketin süresi dolduktan sonra bir sonraki görüşmesinde bir karşılama mesajı görür.
Bir kullanıcı Business Messages anketi iptal eder ve kullanıcının mesajını gönderir webhook'a yönlendirmelidir.
Kullanıcılara anket göndermeseniz bile temsilciniz verileri almaya devam eder. webhook'unuzda bulunan Google anketlerinin sonuçlarını uygun şekilde düzenlemenizi sağlar.
Sorular
Anketler, üç kategoriye ayrılmış en fazla beş soru içerebilir: gerekli, template ve custom değerleridir. Anket her zaman gerekli soruyu içerir ve ardından en fazla iki şablon görüntüler ve ardından iki özel soru gösterilir.
Yanıtlanması zorunlu soru
Zorunlu soru, Business Messages'ın yayınladığı tüm yerel ayarlarda yerelleştirilir. destekler. Kullanıcılar, beğenme veya beğenmeme simgesiyle yanıt verebilir.
Gerekli soru: "Bu mesajlaşma hizmeti, AGENT_NAME?"
Şablon soruları
Şablon soruları isteğe bağlı ve Google tarafından tanımlanan, yerelleştirilmiş sorulardır Business Messages'ın desteklediği tüm yerel ayarlarda. Bir anket en fazla iki şablon sorusu var. Kullanıcı yanıt biçimleri soruya göre değişir.
Şablon soruları şunları içerir:
- AGENT_NAME ile mesajlaşma deneyiminiz nasıldı?
- AGENT_NAME ürününü arkadaşlarınıza tavsiye eder misiniz?
- AGENT_NAME ile iletişime geçtiğiniz bir sonraki seferde mesajlaşmayı seçmek ister misiniz?
- Genel olarak AGENT_NAME ile etkileşim kurmak ne kadar kolaydı?
- Aşağıdaki ifadeye ne ölçüde katılıyorsunuz veya katılmıyorsunuz? AGENT_NAME, sorunumla ilgilenmemi kolaylaştırdı.
- Lütfen destek ortağı ile ilgili genel memnuniyetinizi değerlendirin.
- Bu sohbet oturumu AGENT_NAME numaralı telefonu aramadan kaçınmanıza yardımcı oldu mu?
Mevcut tüm şablon sorularının listesini görmek ve şablon kimliklerini almak için:
- Business Communications Developer'u (İşletme İletişimi Geliştirici) açın. Konsol ve Business Messages Google hesabınızla oturum açın.
- Temsilcinizi seçin.
- Soldaki gezinme menüsünden Anket'i tıklayın.
Özel sorular
Bir anket en fazla iki özel soru içerebilir. Özel bir Her biri için sorunun farklı versiyonlarını yerel ayar müşteri temsilcisinin desteklediğini gösterir. Varsayılan yerel ayar. Bir kullanıcı anket alır, ancak özel bir sorunun belirtilen sürümü seçildiğinde, soru tanımlandığı şekilde yerel ayarında olmalı.
Özel sorulara verilen yanıtlar, ayrı metin ve geri gönderme verilerini destekler. önerilen yanıt olarak gönderin.
Anketi özelleştirme
Temsilcilere yönelik anketi özelleştirmek için:
- Business Communications Developer'u (İşletme İletişimi Geliştirici) açın. Konsol ve Business Messages Google hesabınızla oturum açın.
- Temsilcinizi seçin.
- Soldaki gezinme menüsünden Anket'i tıklayın.
- Ankete en fazla iki mevcut şablon sorusu ekleyin.
- Anketinize özel sorular eklemek için Özel soru oluştur'u tıklayın.
Biçimlendirme ve değer seçenekleri için bkz.
surveyConfig
.
Anket gönderme
Anket göndermek için aşağıdaki komutu çalıştırın. CONVERSATION_ID adlı cihazı değiştirin ve anket göndermek istediğiniz görüşmenin tanımlayıcısını Anket için benzersiz tanımlayıcıya sahip SURVEY_ID.
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)
Biçimlendirme ve değer seçenekleri için bkz.
conversations.surveys
.
Anket yanıtları alma
Kullanıcı anketteki bir soruya yanıt verdiğinde temsilciniz yanıtı alır. API'sine bağlanıyor. Anket yanıtlarını, aldığınız şekilde alın ve işleyin mesajlar bölümüne gidin.
Bir anketteki tüm sorular aynı surveyResponse.survey
değerine sahiptir. Eğer
Anketiniz birden çok soru içerir. Altyapınızın bu soruları kabul ettiğinden emin olun
aynı surveyResponse.survey
değerine sahip birden çok yanıta karşılık gelir
tek tek soruları surveyResponse.surveyQuestionId
alanına göre sıralayabilirsiniz.
Anket yanıtlarının metin değerleri şurada görünür:
surveyResponse.questionResponseText
Zorunlu sorular ve şablon sorular için
Business Messages, VERY_SATISFIED
olarak beğenme ve beğenme yanıtını döndürür.
olumsuz yanıt olarak VERY_DISSATISFIED
yazın. Özel bir soru yanıtı
emojinin bulunduğundan emin olmak için
ayrıştırmak yerine surveyResponse.questionResponsePostbackData
Unicode değeri.
Anket yanıtları aşağıdaki biçimdedir.
{ "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" } }
Biçimlendirme ve değer seçenekleri için bkz.
UserMessage
ve
SurveyResponse
.