Görüşmeyi başlatma

Business Messages temsilcileriyle yapılan görüşmelerde karşılama mesajı, etkileşimin tonunu belirler. Ayrıca, kullanıcılara aracının neler yapabileceğini bildirerek kullanıcının sorularını ve beklentilerini şekillendirir.

Temsilci, kullanıcı bir görüşmeyi her açtığında karşılama mesajı gönderir. Ajan, kullanıcıları bilinen veya sık kullanılan yollara yönlendirmek için sohbet başlatıcılar da gösterebilir.

Bir kullanıcı, bir temsilciyle çalışma saatlerinin dışında görüşme başlatmaya çalışırsa temsilci, alternatif kanalları paylaşmak veya sonraki adımları önermek için kullanabileceğiniz bir çevrimdışı mesaj gösterir. Bu ayarlardan yararlanarak temsilcinizin güvenilirliğini ve kullanılabilirliğini artırabilirsiniz.

Konuşmaya başlarken söylenebilecekler

Aracı ve konum düzeyindeki ayarlar

Sohbet ayarlarını temsilci veya konum düzeyinde belirtebilirsiniz.

  • Temsilci düzeyi: Bu sohbet ayarları, tüm giriş noktalarında temsilciyle yapılan tüm sohbetler için geçerlidir.

    Temsilci düzeyinde bir karşılama mesajı "Bridgepoint Runners ile iletişime geçtiğiniz için teşekkür ederiz..." şeklinde başlayabilir. Sohbet başlatıcılar, şirket genelindeki işlemlere veya bilgilere odaklanabilir.

  • Konum düzeyi: Bu ayarlar, temsilci düzeyindeki ayarları geçersiz kılar ve yalnızca PLACESHEET ile MAPS giriş noktaları üzerinden ilgili konumla yapılan görüşmeler için geçerlidir.

    Konum düzeyinde bir karşılama mesajı "Amphitheatre Pkwy'deki Bridgepoint Runners ile iletişime geçtiğiniz için teşekkür ederiz..." şeklinde başlayabilir. Sohbet başlatıcılar, konuma dayalı görevlere veya bilgilere odaklanabilir. Çevrimdışı mesajlarda, konumun bir sonraki açılış zamanı belirtilebilir.

Yerel ayarlar

Acenteler ve konumlar, destekledikleri yerel ayarlar için ayrı ayarlar belirtebilir. Örneğin, bir temsilci "en" yerel ayarı için İngilizce bir karşılama mesajı belirleyebilir ve "es" yerel ayarı için aynı karşılama mesajını İspanyolca olarak kullanabilir. İşletme Mesajları, kullanıcının cihazının bildirilen yerel ayarı ile bir temsilcinin veya konumun herhangi bir görüşme ayarına sahip olduğu yerel ayarlar arasındaki eşleşmeyi çözer.

Bu yerel ayar eşleşmesi, her iletinin resolvedLocale alanında bildirilir. Çözümlenen yerel ayar eşleşmesine ağırlık veren bir temsilcinin veya konumun defaultLocale değerini belirtebilirsiniz. Yerelleştirme ve yerel ayarlar başlıklı makaleyi inceleyin.

İşletme Mesajları, hangi sohbet ayarlarının uygulanacağını belirlemek için çözümlenmiş yerel ayarı kullanır.

Karşılama mesajı

Bir temsilci ile kullanıcı arasındaki görüşmedeki ilk mesaj, temsilcinin karşılama mesajıdır. Karşılama mesajı, kullanıcı yeni bir görüşme başlattıktan sonra otomatik olarak gösterilir. İyi bir karşılama mesajı, kullanıcının temsilciyle etkileşim kurma beklentilerini belirler. Karşılama mesajını düzenlemek için Sohbet ayarlarını güncelleme başlıklı makaleye bakın.

Konuşmaya başlarken söylenebilecekler

İyi bir karşılama mesajı, temsilcinin işlevselliğini üst düzeyde kapsar ve açık uçludur. İyi bir sohbet başlatıcı ise kullanıcıları sık sorulan sorulara veya bilinen işlevlere yönlendirir.

Görüşme başlatıcılar, doğrudan karşılama mesajının altında dikey olarak yığılmış yanıt önerileri halinde görünür. Kullanıcı bir sohbet başlatıcıya dokunduğunda, aracı, başlatıcıyı belirtirken ayarladığınız önceden tanımlanmış içeriği ve geri gönderme verilerini alır.

Bir temsilci belirli istekler için otomatik işlevselliği destekliyorsa sohbet başlatıcılar bu isteklerle eşlenebilir. Böylece otomasyon için bilinen girişleri kullanabilir ve canlı temsilcilere serbest biçimli kullanıcı soruları gönderebilirsiniz.

Bir ajan en fazla 5 sohbet başlatıcıya sahip olabilir ve her başlatıcı en fazla 35 karakterden oluşabilir.

Sohbet başlatıcı eklemek veya düzenlemek için Sohbet ayarlarını güncelleme başlıklı makaleye bakın.

Çevrimdışı mesajlar

Bir kullanıcı, bir temsilciyle çalışma saatlerinin dışında (MessagingAvailability tarafından tanımlandığı şekilde) görüşme başlattığında temsilcinin çevrimdışı mesajını alır. Çevrimdışı mesaj tetiklenirken yalnızca müşteri temsilcisinin uygunluğu dikkate alınır. Yalnızca bot temsilcileri olan müşteri temsilcileri her zaman hoş geldiniz mesajı gönderir. İyi bir çevrimdışı mesaj

  • Temsilcinin neden kullanılamadığını açıklar.
  • Kullanıcıya uygun sonraki adımlar veya alternatif iletişim kanalları hakkında bilgi verir.
  • Karşılama mesajının ve sohbet başlatıcıların tonuyla eşleşir.

Kötü çevrimdışı mesaj

"Üzgünüz, kapalıyız."

İyi bir çevrimdışı mesaj

"Şu anda kapalıyız ancak yarın sabah saat 8'de tekrar iş başında olacağız. Acil yardıma ihtiyacınız varsa +12223334444 numaralı telefondan veya support@gtb.com adresinden Destek Ekibi ile iletişime geçin."

Çevrimdışı mesajları düzenlemek için Sohbet ayarlarını güncelleme başlıklı makaleyi inceleyin.

Sohbet ayarlarını güncelleme

Karşılama mesajını veya sohbet başlatıcıları yönetmek için Business Communications API ile bir PATCH isteği göndererek bir temsilcinin veya konumun conversationalSettings alanını güncelleyin.

conversationalSettings alanını güncellediğinizde, ConversationalSetting nesnesindeki tüm alanların değerlerini eklemeniz gerekir. Güncelleme istekleri, alt alanlar da dahil olmak üzere düzenlediğiniz tüm alanların içeriğinin üzerine yazar. Örneğin, bir karşılama mesajını değiştirme isteğinde bulunursanız ancak sohbet başlatıcılar eklemezseniz istek, önceki tüm sohbet başlatıcıları kaldırır.

Ön koşullar

Sohbet ayarlarını güncellemeden önce aşağıdaki öğelere ihtiyacınız vardır:

  • Geliştirme makinenizde GCP projenizin hizmet hesabı anahtarının yolu
  • Ayarlarını güncellemek istediğiniz yerel ayar
  • Ajan düzeyindeki ayarlar için ajan name (örneğin, "brands/12345/agents/67890")

    Temsilcinin name bilmiyorsanız Bir marka için tüm temsilcileri listeleme başlıklı makaleyi inceleyin.

  • Konum düzeyindeki ayarlar için konum name (örneğin, "brands/12345/locations/67890")

    Konumun name değerini bilmiyorsanız Bir markanın tüm konumlarını listeleme başlıklı makaleyi inceleyin.

  • Güncellenecek yerel ayar, iki karakterli ISO 639-1 dil kodu olarak

  • Yeni karşılama mesajı

  • Gizlilik politikası URL'si

  • (İsteğe bağlı) Sohbet başlatıcılar için metin

  • (İsteğe bağlı) Sohbet başlatıcılar için geri gönderme verileri

  • (İsteğe bağlı) Yeni çevrimdışı mesaj

Mevcut conversationalSettings değerlerini bilmiyorsanız Aracı bilgilerini alma ve Konum bilgilerini alma başlıklı makaleleri inceleyin.

Güncelleme isteğini gönderme

Aracıyı veya konumu güncellemek için aşağıdaki komutu çalıştırın. Değişkenleri, Ön koşullar bölümünde belirlediğiniz değerlerle değiştirin.

Sohbet başlatıcıları istemiyorsanız conversationStarters ve alt alanlarının tümünü atlayın.

Aracı düzeyinde ayarlar

cURL

# This code updates the conversational settings of a Business Messages agent.
# Read more: https://developers.google.com/business-communications/business-messages/reference/business-communications/rest/v1/brands.agents/patch

# Replace the __BRAND_ID__, __AGENT_ID__ and __LOCALE__
# Make sure a service account key file exists at ./service_account_key.json

curl -X PATCH \
"https://businesscommunications.googleapis.com/v1/brands/__BRAND_ID__/agents/__AGENT_ID__?updateMask=businessMessagesAgent.conversationalSettings.__LOCALE__" \
-H "Content-Type: application/json" \
-H "User-Agent: curl/business-communications" \
-H "$(oauth2l header --json ./service_account_key.json businesscommunications)" \
-d '{
  "businessMessagesAgent": {
    "conversationalSettings": {
      "__LOCALE__": {
        "welcomeMessage": {
          "text": "My first welcome message"
        },
        "offlineMessage": {
          "text": "My first offline message"
        },
        "privacyPolicy": {
          "url": "https://www.your-company-website.com/privacy"
        },
        "conversationStarters": [
          {
            "suggestion": {
              "reply": {
                "text": "Suggestion 1",
                "postbackData": "post_back_suggestion_1"
              }
            }
          }
        ]
      }
    }
  }
}'

Node.js

/**
 * This code snippet updates the conversationalSettings of a Business Messages agent.
 * Read more: https://developers.google.com/business-communications/business-messages/reference/business-communications/rest/v1/brands.agents/patch
 *
 * This code is based on the https://github.com/google-business-communications/nodejs-businesscommunications Node.js
 * Business Communications client library.
 */

/**
 * Edit the values below:
 */
const BRAND_ID = 'EDIT_HERE';
const AGENT_ID = 'EDIT_HERE';
const LOCALE = 'en';
const PATH_TO_SERVICE_ACCOUNT_KEY = './service_account_key.json';

const businesscommunications = require('businesscommunications');
const {google} = require('googleapis');

// Initialize the Business Communications API
const bcApi = new businesscommunications.businesscommunications_v1.Businesscommunications({});

// Set the scope that we need for the Business Communications API
const scopes = [
  'https://www.googleapis.com/auth/businesscommunications',
];

// Set the private key to the service account file
const privatekey = require(PATH_TO_SERVICE_ACCOUNT_KEY);

async function main() {
  const authClient = await initCredentials();

  const agentName = 'brands/' + BRAND_ID + '/agents/' + AGENT_ID;

  if (authClient) {
    // Setup the parameters for the API call
    const apiParams = {
      auth: authClient,
      name: agentName,
      updateMask: 'businessMessagesAgent.conversationalSettings.' + LOCALE,
      resource: {
        businessMessagesAgent: {
          conversationalSettings: {
            [LOCALE]: {
              privacyPolicy: { url: 'https://www.your-company-website.com/privacy' },
              welcomeMessage: { text: 'My updated welcome message' },
              offlineMessage: { text: 'My updated offline message' },
              conversationStarters: [
                {
                  suggestion: {
                    reply: {
                      'text': 'Suggestion 2',
                     'postbackData': 'post_back_suggestion_2',
                    },
                  },
                }
              ],
            },
          }
        }
      }
    };

    bcApi.brands.agents.patch(apiParams, {}, (err, response) => {
      if (err !== undefined && err !== null) {
        console.dir(err);
      } else {
        // Agent found
        console.log(response.data);
      }
    });
  }
  else {
    console.log('Authentication failure.');
  }
}

/**
 * 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);
      }
    });
  });
}

main();

Java

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.services.businesscommunications.v1.BusinessCommunications;
import com.google.api.services.businesscommunications.v1.model.*;
import com.google.common.collect.ImmutableMap;
import java.io.FileInputStream;
import java.util.Arrays;

class Main {
  /**
   * Initializes credentials used by the Business Communications API.
   */
  private static BusinessCommunications.Builder getBusinessCommunicationsBuilder() {
    BusinessCommunications.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/businesscommunications"));

      credential.refreshToken();

      HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
      JacksonFactory jsonFactory = JacksonFactory.getDefaultInstance();

      // Create instance of the Business Communications API
      builder = new BusinessCommunications
          .Builder(httpTransport, jsonFactory, null)
          .setApplicationName(credential.getServiceAccountProjectId());

      // Set the API credentials and endpoint
      builder.setHttpRequestInitializer(credential);
    } catch (Exception e) {
      e.printStackTrace();
    }

    return builder;
  }

  public static void main(String args[]) {
    try {
      // Create client library reference
      BusinessCommunications.Builder builder = getBusinessCommunicationsBuilder();

      String agentName = "brands/BRAND_ID/agents/AGENT_ID";

      Agent agent = new Agent().setBusinessMessagesAgent(
          new BusinessMessagesAgent().setConversationalSettings(ImmutableMap.of("LOCALE",
              new ConversationalSetting()
                  .setPrivacyPolicy(new PrivacyPolicy().setUrl("PRIVACY_POLICY_URL"))
                  .setWelcomeMessage(new WelcomeMessage().setText("WELCOME_MESSAGE"))
                  .setOfflineMessage(new OfflineMessage().setText("OFFLINE_MESSAGE"))
                  .setConversationStarters(Arrays.asList(
                      new ConversationStarters().setSuggestion(new Suggestion()
                          .setReply(new SuggestedReply()
                              .setText("REPLY_TEXT")
                              .setPostbackData("POSTBACK_DATA"))),
                      )))));

      BusinessCommunications.Brands.Agents.Patch request = builder
          .build().brands().agents().patch(agentName, agent);

      request.setUpdateMask("businessMessagesAgent.conversationalSettings.LOCALE");

      Agent updatedAgent = request.execute();
      System.out.println(updatedAgent.toPrettyString());
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}
Bu kod, Java Business Communications istemci kitaplığına dayanmaktadır.

Python

"""This code updates the conversational settings of a Business Messages agent.

Read more: https://developers.google.com/business-communications/business-messages/reference/business-communications/rest/v1/brands.agents/patch

This code is based on the https://github.com/google-business-communications/python-businessmessages
Python Business Messages client library.
"""

from oauth2client.service_account import ServiceAccountCredentials
from businesscommunications.businesscommunications_v1_client import BusinesscommunicationsV1
from businesscommunications.businesscommunications_v1_messages import (
    Agent,
    BusinessMessagesAgent,
    ConversationStarters,
    ConversationalSetting,
    OfflineMessage,
    PrivacyPolicy,
    WelcomeMessage,
    NegativeBotFeedbackMessage,
    BusinesscommunicationsBrandsAgentsPatchRequest,
)

# Edit the values below:
BRAND_ID = 'EDIT_HERE'
AGENT_ID = 'EDIT_HERE'
SCOPES = ['https://www.googleapis.com/auth/businesscommunications']
SERVICE_ACCOUNT_FILE = './service_account_key.json'

credentials = ServiceAccountCredentials.from_json_keyfile_name(
    SERVICE_ACCOUNT_FILE, scopes=SCOPES)

client = BusinesscommunicationsV1(credentials=credentials)

agents_service = BusinesscommunicationsV1.BrandsAgentsService(client)

agent_name = 'brands/' + BRAND_ID + '/agents/' + AGENT_ID

agent=Agent(
                businessMessagesAgent=BusinessMessagesAgent(
                        conversationalSettings=BusinessMessagesAgent.ConversationalSettingsValue(
                        additionalProperties=[BusinessMessagesAgent.ConversationalSettingsValue.AdditionalProperty(
                            key='en',
                            value=ConversationalSetting(
                                privacyPolicy=PrivacyPolicy(url='https://www.your-company-website.com/privacy'),
                                welcomeMessage=WelcomeMessage(text='Welcome to Business Messages'),
                            offlineMessage=OfflineMessage(text='This is an offline message'),
                                conversationStarters=[
                                    ConversationStarters(
                                        suggestion=Suggestion(
                                           reply=SuggestedReply(text='Option 1',
                                  postbackData='option_1')
                                        )
                                    )]
                                )
                            )
                        ]
                    )
                )
)

updated_agent = agents_service.Patch(
        BusinesscommunicationsBrandsAgentsPatchRequest(
            agent=agent,
            name=agent_name,
            updateMask='businessMessagesAgent.conversationalSettings.en'
        )
    )

print(updated_agent)

Konum düzeyindeki ayarlar

# This code updates the agent interaction of a bot and human representatives.
# Read more: https://developers.google.com/business-communications/business-messages/reference/business-communications/rest/v1/brands.locations/patch

# Replace the __BRAND_ID__, __AGENT_ID__, __LOCATION_ID__, __LOCALE__
# Make sure a service account key file exists at ./service_account_key.json

curl -X PATCH \
"https://businesscommunications.googleapis.com/v1/brands/__BRAND_ID__/locations/__LOCATION_ID__?updateMask=conversationalSettings.__LOCALE__" \
-H "Content-Type: application/json" \
-H "User-Agent: curl/business-communications" \
-H "$(oauth2l header --json ./service_account_key.json businesscommunications)" \
-d '{
  "conversationalSettings": {
    "__LOCALE__": {
      "welcomeMessage": {
        "text": "My second welcome message"
      },
      "offlineMessage": {
        "text": "My second offline message"
      },
      "privacyPolicy": {
        "url": "https://www.your-company-website.com/privacy"
      },
      "conversationStarters": [
        {
          "suggestion": {
            "reply": {
              "text": "Suggestion 2",
              "postbackData": "post_back_suggestion_2"
            }
          }
        }
      ]
    }
  }
}'

Biçimlendirme ve değer bilgileri için brands.agents.patch, brands.locations.patch ve ConversationalSetting başlıklı makaleleri inceleyin.

Örnekler

Aracı düzeyinde ayarlar

curl -X PATCH \
"https://businesscommunications.googleapis.com/v1/brands/BRAND_ID/agents/AGENT_ID?updateMask=businessMessagesAgent.conversationalSettings.en" \
-H "Content-Type: application/json" \
-H "User-Agent: curl/business-communications" \
-H "$(oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY businesscommunications)" \
-d "{
    'businessMessagesAgent': {
        'conversationalSettings': {
            'en': {
                'welcomeMessage': {
                    'text': 'Thanks for contacting Growing Tree Bank. What can I help with today?',
                },
                'offlineMessage': {
                    'text': 'We\'re closed for the night. Please reach out to us again tomorrow.',
                },
                'privacyPolicy': {
                    'url': 'https://www.growingtreebank.com/privacy',
                },
                'conversationStarters': [
                    {
                        'suggestion': {
                            'reply': {
                                'text': 'Set up an account',
                                'postbackData': 'new-account',
                            },
                        },
                    },
                    {
                        'suggestion': {
                            'reply': {
                                'text': 'Look up account information',
                                'postbackData': 'account-lookup',
                            },
                        },
                    },
                ],
            },
        },
    },
}"

Konum düzeyindeki ayarlar

curl -X PATCH \
"https://businesscommunications.googleapis.com/v1/brands/12345/locations/67890?updateMask=conversationalSettings.en" \
-H "Content-Type: application/json" \
-H "User-Agent: curl/business-communications" \
-H "$(oauth2l header --json /path/to/service/account/key businesscommunications)" \
-d "{
    'conversationalSettings': {
        'en': {
            'welcomeMessage': {
                'text': 'Thanks for contacting Growing Tree Bank on Amphitheatre Pkwy. What can I help with today?',
            },
            'offlineMessage': {
                'text': 'We\'re closed for the night. Please reach out to us again tomorrow.',
            },
            'privacyPolicy': {
                'url': 'https://www.growingtreebank.com/privacy',
            },
            'conversationStarters': [
                {
                    'suggestion': {
                        'reply': {
                            'text': 'What are your hours?',
                            'postbackData': 'hours',
                        },
                    },
                },
                {
                    'suggestion': {
                        'reply': {
                            'text': 'Set up an account',
                            'postbackData': 'new-account',
                        },
                    },
                },
                {
                    'suggestion': {
                        'reply': {
                            'text': 'Look up account information',
                            'postbackData': 'account-lookup',
                        },
                    },
                },
                {
                    'suggestion': {
                        'action': {
                            'text': 'Call us',
                            'postbackData': 'call',
                            'dialAction': {
                              'phoneNumber': '+12223334444',
                            },
                        },
                    },
                },
            ],
        },
    },
}"