گفتگو را آغاز کنید

در مکالمه با نمایندگان Business Messages، پیام خوش آمدگویی لحن تعامل را تعیین می کند. همچنین به کاربران اجازه می‌دهد بدانند که عامل چه کاری می‌تواند انجام دهد، که سؤالات و انتظارات کاربر را شکل می‌دهد.

هر بار که کاربر مکالمه ای را باز می کند، نماینده پیام خوش آمدگویی ارسال می کند. این عامل همچنین می‌تواند شروع‌کننده‌های مکالمه را نمایش دهد تا کاربران را در مسیرهای شناخته شده یا مکرر راهنمایی کند.

اگر کاربر سعی کند مکالمه ای را خارج از ساعات کاری نماینده شروع کند، نماینده یک پیام آفلاین نمایش می دهد که می توانید از آن برای اشتراک گذاری کانال های جایگزین یا پیشنهاد مراحل بعدی استفاده کنید. با استفاده از این تنظیمات، می توانید قابلیت اطمینان و قابلیت استفاده نماینده خود را افزایش دهید.

شروع کننده مکالمه

تنظیمات سطح عامل و مکان

می توانید تنظیمات مکالمه را در سطح نماینده یا مکان تعیین کنید.

  • سطح نماینده: این تنظیمات مکالمه برای همه مکالمات با نماینده در تمام نقاط ورودی اعمال می شود.

    ممکن است یک پیام خوش آمدگویی در سطح نماینده شروع شود "از تماس با Bridgepoint Runners متشکریم..." شروع کنندگان مکالمه می توانند بر اقدامات یا اطلاعات در سطح شرکت تمرکز کنند.

  • سطح مکان: این تنظیمات تنظیمات سطح عامل را نادیده می گیرند و فقط برای مکالمات با آن مکان در نقاط ورودی PLACESHEET و MAPS اعمال می شوند.

    ممکن است یک پیام خوشامدگویی در سطح مکان شروع شود "از تماس با Bridgepoint Runners در Amphitheatre Pkwy..." شروع کننده مکالمه می تواند روی وظایف یا اطلاعات مبتنی بر مکان تمرکز کند. یک پیام آفلاین ممکن است به زمان باز شدن مکان بعدی اشاره کند.

محلی ها

نمایندگی‌ها و مکان‌ها می‌توانند تنظیمات جداگانه‌ای را برای هر محلی که پشتیبانی می‌کنند مشخص کنند. به عنوان مثال، یک نماینده ممکن است یک پیام خوشامدگویی را به زبان انگلیسی برای محلی "en" مشخص کند و همان پیام خوشامدگویی را در اسپانیایی برای محلی "es" داشته باشد. «پیام‌های تجاری» تطابق بین منطقه گزارش‌شده دستگاه کاربر و زبان‌هایی را که یک نماینده یا مکان تنظیمات مکالمه‌ای برای آنها دارد، حل می‌کند.

این تطابق محلی در هر یک از پیام‌ها در قسمت resolvedLocale گزارش می‌شود. می‌توانید defaultLocale یک نماینده یا مکان را مشخص کنید که مطابقت محلی حل‌شده را وزن می‌کند. به محلی سازی و مناطق محلی مراجعه کنید.

Business Messages از محلی حل‌شده برای تعیین تنظیمات مکالمه استفاده می‌کند.

پیام خوش آمد

اولین پیام در مکالمه بین یک نماینده و یک کاربر، پیام خوشامدگویی نماینده است. پیام خوش آمدگویی به طور خودکار پس از شروع مکالمه جدید توسط کاربر ظاهر می شود. یک پیام خوش آمدگویی خوب انتظارات کاربر را برای تعامل با نماینده تعیین می کند. برای ویرایش پیام خوشامدگویی، به به‌روزرسانی تنظیمات مکالمه را ببینید.

شروع کننده مکالمه

در حالی که یک پیام خوشامدگویی خوب، عملکرد یک نماینده را در سطح بالایی پوشش می‌دهد و پایان باز است، شروع‌کننده‌های مکالمه خوب کاربران را به سؤالات مکرر یا عملکردهای شناخته شده راهنمایی می‌کنند.

شروع‌کننده‌های مکالمه به‌عنوان پاسخ‌های پیشنهادی به صورت عمودی ظاهر می‌شوند و مستقیماً پیام خوش‌آمدگویی را دنبال می‌کنند. وقتی کاربر روی شروع کننده مکالمه ضربه می زند، عامل محتوای از پیش تعریف شده و داده های پس بک را دریافت می کند که هنگام تعیین شروع کننده تنظیم می کنید.

اگر یک نماینده از عملکرد خودکار برای یک درخواست خاص پشتیبانی کند، شروع کننده‌های مکالمه ممکن است به آن درخواست‌ها نگاشت شوند و به شما امکان می‌دهند برای اتوماسیون به ورودی‌های شناخته‌شده تکیه کنید و سؤالات کاربر را به شکل آزاد برای نمایندگانی که آماده پاسخگویی هستند ارسال کنید.

یک نماینده می تواند حداکثر 5 شروع کننده مکالمه داشته باشد و هر شروع کننده حداکثر می تواند 35 کاراکتر داشته باشد.

برای افزودن یا ویرایش شروع مکالمه، به به‌روزرسانی تنظیمات مکالمه را ببینید.

پیام های آفلاین

هنگامی که کاربر در خارج از ساعات کاری نماینده (همانطور که توسط MessagingAvailability تعریف شده است)، مکالمه ای را با یک نماینده شروع می کند، کاربر پیام آفلاین نماینده را دریافت می کند. هنگام راه‌اندازی یک پیام آفلاین، فقط در دسترس بودن نماینده انسانی در نظر گرفته می‌شود. نمایندگانی که فقط نمایندگان ربات دارند همیشه پیام خوشامدگویی ارسال می کنند. یک پیام آفلاین خوب

  • دلیل در دسترس نبودن نماینده را به اشتراک می گذارد
  • به کاربر در مورد مراحل بعدی مناسب یا کانال های تماس جایگزین دستور می دهد
  • با لحن پیام خوشامدگویی و شروع مکالمه مطابقت دارد

پیام آفلاین بد

"ببخشید، ما بسته ایم."

پیام آفلاین خوب

"در حال حاضر بسته هستیم، اما فردا ساعت 8 صبح دوباره در دسترس خواهیم بود. اگر به کمک فوری نیاز دارید، با پشتیبانی در +12223334444 یا support@gtb.com تماس بگیرید."

برای ویرایش یک پیام آفلاین، به به‌روزرسانی تنظیمات مکالمه مراجعه کنید.

تنظیمات مکالمه را به روز کنید

برای مدیریت پیام خوشامدگویی یا شروع‌کننده‌های مکالمه، یک درخواست PATCH با Business Communications API برای به‌روزرسانی قسمت conversationalSettings یک نماینده یا مکان ارائه می‌کنید.

هنگامی که فیلد conversationalSettings را به روز می کنید، باید مقادیری را برای همه فیلدها در شی ConversationalSetting وارد کنید. درخواست‌های به‌روزرسانی، محتویات همه فیلدهایی را که ویرایش می‌کنید، از جمله فیلدهای فرزند، بازنویسی می‌کنند. به عنوان مثال، اگر درخواستی برای تغییر یک پیام خوشامدگویی ارائه دهید، اما شروع کننده مکالمه را شامل نشود، این درخواست شروع کننده های قبلی مکالمه را حذف می کند.

پیش نیازها

قبل از به‌روزرسانی تنظیمات مکالمه، به موارد زیر نیاز دارید:

  • مسیر کلید حساب سرویس پروژه GCP شما در ماشین توسعه شما
  • محلی که می خواهید تنظیمات را برای آن به روز کنید
  • برای تنظیمات در سطح عامل، name عامل (به عنوان مثال، "brands/12345/agents/67890")

    اگر name نماینده را نمی‌دانید، فهرست همه نمایندگی‌های یک برند را ببینید.

  • برای تنظیمات سطح مکان، name مکان (به عنوان مثال، "brands/12345/locations/67890")

    اگر name مکان را نمی‌دانید، فهرست همه مکان‌های یک مارک را ببینید.

  • محلی برای به روز رسانی، به عنوان کد زبان ISO 639-1 دو کاراکتری

  • پیام خوش آمد گویی جدید

  • URL خط مشی رازداری

  • (اختیاری) متن برای شروع مکالمه

  • (اختیاری) داده‌های بازپس‌گیری برای شروع مکالمه

  • (اختیاری) پیام آفلاین جدید

اگر مقادیر فعلی conversationalSettings را نمی‌دانید، به دریافت اطلاعات نماینده و دریافت اطلاعات مکان مراجعه کنید.

درخواست به روز رسانی را ارسال کنید

برای به روز رسانی عامل یا مکان، دستور زیر را اجرا کنید. متغیرها را با مقادیری که در پیش نیازها شناسایی کرده اید جایگزین کنید.

اگر شروع کننده مکالمه را نمی خواهید، conversationStarters و تمام فیلدهای فرزند آن را حذف کنید.

تنظیمات در سطح عامل

حلقه


# 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();

جاوا

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();
    }
  }
}
این کد بر اساس کتابخانه مشتری Java Business Communications است.

پایتون


"""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)

تنظیمات سطح مکان


# 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"
            }
          }
        }
      ]
    }
  }
}'

برای اطلاعات قالب‌بندی و ارزش، به brands.agents.patch ، brands.locations.patch و ConversationalSetting مراجعه کنید.

مثال ها

تنظیمات در سطح عامل

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',
                            },
                        },
                    },
                ],
            },
        },
    },
}"

تنظیمات سطح مکان

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',
                            },
                        },
                    },
                },
            ],
        },
    },
}"