เริ่มการสนทนา

ในการสนทนากับตัวแทน Business Messages ข้อความต้อนรับจะตั้งค่า น้ำเสียงในการปฏิสัมพันธ์ นอกจากนี้ยังช่วยให้ผู้ใช้ทราบว่าตัวแทนสามารถทำอะไรได้บ้าง กำหนดคำถามและความคาดหวังของผู้ใช้

ตัวแทนจะส่งข้อความต้อนรับทุกครั้งที่ผู้ใช้เปิดการสนทนา Agent ยังสามารถแสดงข้อความเริ่มต้นการสนทนา เพื่อนำทางผู้ใช้ไปยังเส้นทางที่รู้จักหรือที่ใช้บ่อย

หากผู้ใช้พยายามเริ่มการสนทนานอกเวลาทำการของตัวแทน ตัวแทนแสดงข้อความออฟไลน์ คุณสามารถใช้เพื่อแชร์ช่องทางอื่นๆ หรือแนะนำขั้นตอนต่อไปได้ ใช้ประโยชน์จาก คุณจะสามารถเพิ่มความน่าเชื่อถือและความสามารถในการใช้งานของตัวแทน

ข้อความเริ่มการสนทนา

การตั้งค่าระดับตัวแทนและระดับสถานที่ตั้ง

คุณระบุการตั้งค่าการสนทนาได้ในระดับของตัวแทนหรือสถานที่ตั้ง

  • ระดับตัวแทน การตั้งค่าการสนทนาเหล่านี้จะใช้กับการสนทนาทั้งหมดกับ Agent ในจุดแรกเข้าทั้งหมด

    ข้อความต้อนรับระดับตัวแทนอาจขึ้นต้นว่า "ขอขอบคุณที่ติดต่อ Bridgepoint Runners..." ข้อความเริ่มการสนทนาสามารถมุ่งเน้น ข้อมูลหรือการดำเนินการทั่วทั้งบริษัท

  • ระดับสถานที่ตั้ง: การตั้งค่าเหล่านี้จะลบล้างการตั้งค่าระดับตัวแทนและ ใช้ได้เฉพาะกับการสนทนาที่มีสถานที่ตั้งดังกล่าวในช่วง PLACESHEET และ MAPS จุดแรกเข้า

    ข้อความต้อนรับระดับสถานที่ตั้งอาจขึ้นว่า "ขอขอบคุณที่ติดต่อ Bridgepoint Runners on Amphitheatre Pkwy..." ข้อความเริ่มการสนทนาสามารถโฟกัสได้ เกี่ยวกับงานหรือข้อมูลที่เกี่ยวข้องกับสถานที่ ข้อความออฟไลน์อาจกล่าวถึง สถานที่จะเปิดครั้งต่อไปเมื่อใด

ภาษา

ตัวแทนและสถานที่ตั้งสามารถระบุการตั้งค่าแยกกันได้สำหรับแต่ละภาษา การสนับสนุน ตัวอย่างเช่น ตัวแทนอาจระบุข้อความต้อนรับเป็นภาษาอังกฤษสำหรับ "en" และมีข้อความต้อนรับเดียวกันเป็นภาษาสเปนสำหรับ "es" ภาษา Business Messages จะแก้ไขการจับคู่ระหว่างภาษาที่อุปกรณ์ของผู้ใช้รายงานกับ ภาษาที่ตัวแทนหรือสถานที่ตั้งแต่ละแห่งมีการตั้งค่าสำหรับการสนทนา

ระบบจะรายงานการจับคู่ภาษานี้ในแต่ละข้อความ resolvedLocale คุณ สามารถระบุ defaultLocale ของตัวแทนหรือสถานที่ตั้ง ซึ่งแก้ไขน้ำหนักแล้ว การจับคู่ภาษา ดูการแปลและ ภาษา

Business Messages จะใช้ภาษาที่แก้ไขแล้วเพื่อระบุว่าเป็นการสนทนาใด การตั้งค่าที่จะใช้

ข้อความต้อนรับ

ข้อความแรกในการสนทนาระหว่างตัวแทนและผู้ใช้คือ ข้อความต้อนรับ ข้อความต้อนรับจะปรากฏขึ้นโดยอัตโนมัติหลังจากที่ผู้ใช้เริ่ม การสนทนาใหม่ ข้อความต้อนรับที่ดี ระบุความคาดหวังของผู้ใช้ในการโต้ตอบกับตัวแทน วิธีแก้ไขข้อความต้อนรับ โปรดดูอัปเดตการตั้งค่าการสนทนา

ข้อความเริ่มการสนทนา

ขณะที่ข้อความต้อนรับที่ดีจะครอบคลุมการทำงานของตัวแทนในระดับสูง เป็นคำถามปลายเปิด ข้อความเริ่มการสนทนาที่ดี แนะนำผู้ใช้เกี่ยวกับคำถามที่พบบ่อยหรือฟังก์ชันการทำงานที่ทราบ

ข้อความเริ่มการสนทนาจะปรากฏเป็นรายการแนะนำแบบเรียงซ้อนในแนวตั้ง ตอบกลับและทำตามข้อความต้อนรับโดยตรง เมื่อผู้ใช้แตะการสนทนา เงื่อนไขเริ่มต้น Agent จะได้รับเนื้อหาและข้อมูลระบบรายงานผล Conversion ที่กำหนดไว้ล่วงหน้าซึ่งคุณตั้งค่าไว้ เมื่อระบุเงื่อนไขเริ่มต้น

หากตัวแทนรองรับฟังก์ชันการทำงานอัตโนมัติสำหรับคำขอบางอย่าง ข้อความเริ่มการสนทนาอาจจับคู่กับคำขอเหล่านั้น เพื่อให้คุณอาศัยข้อมูลที่ เพื่อการทำงานอัตโนมัติ และส่งคำถามของผู้ใช้รูปแบบอิสระไปยังตัวแทนแบบเรียลไทม์ที่พร้อม คำตอบ

Agent จะมีข้อความเริ่มการสนทนาได้สูงสุด 5 รายการ และเงื่อนไขเริ่มต้นแต่ละรายการสามารถ มีอักขระได้สูงสุด 35 ตัว

หากต้องการเพิ่มหรือแก้ไขข้อความเริ่มการสนทนา โปรดดูหัวข้ออัปเดตการสนทนา การตั้งค่า

ข้อความออฟไลน์

เมื่อผู้ใช้เริ่มต้นการสนทนากับตัวแทนที่อยู่นอกเหนือปฏิบัติงานของตัวแทน ชั่วโมง (ตามที่กำหนดโดย MessagingAvailability), ผู้ใช้จะได้รับข้อความออฟไลน์ของตัวแทน ตัวแทนที่เป็นมนุษย์เท่านั้น ระบบจะพิจารณาความพร้อมจำหน่ายสินค้าเมื่อทริกเกอร์ข้อความออฟไลน์ ตัวแทนที่มีเพียง ให้ตัวแทนบ็อตส่งข้อความต้อนรับเสมอ ข้อความออฟไลน์ที่ดี

  • แชร์สาเหตุที่ตัวแทนไม่พร้อมให้บริการ
  • แนะนำผู้ใช้เกี่ยวกับขั้นตอนถัดไปหรือช่องทางการติดต่ออื่นๆ ที่เหมาะสม
  • เหมาะกับน้ำเสียงของข้อความต้อนรับและคำเริ่มการสนทนา

ข้อความออฟไลน์ไม่ดี

"ขออภัย เราปิดแล้ว"

ข้อความออฟไลน์ที่ดี

"เราปิดทำการอยู่ในขณะนี้ แต่จะกลับมาให้บริการอีกครั้งในวันพรุ่งนี้เวลา 8 โมงเช้า ถ้า ถ้าต้องการความช่วยเหลือเร่งด่วน โปรดติดต่อฝ่ายสนับสนุนที่ +12223334444 หรือ support@gtb.com"

หากต้องการแก้ไขข้อความออฟไลน์ โปรดดูหัวข้ออัปเดตการตั้งค่าการสนทนา

อัปเดตการตั้งค่าการสนทนา

หากต้องการจัดการข้อความต้อนรับหรือข้อความเริ่มการสนทนา คุณต้องส่งคำขอ Patch ด้วยฝ่ายการสื่อสารทางธุรกิจ API เพื่ออัปเดตช่อง conversationalSettings ของตัวแทนหรือสถานที่

เมื่ออัปเดตช่อง conversationalSettings คุณต้องระบุค่าสำหรับ ฟิลด์ทั้งหมดใน ConversationalSetting ออบเจ็กต์ คำขออัปเดตจะเขียนทับเนื้อหาในทุกช่องที่คุณแก้ไข ซึ่งรวมถึง ช่องย่อยใดก็ได้ เช่น หากคุณส่งคำขอให้แก้ไขข้อความต้อนรับ แต่อย่าใส่ข้อความเริ่มการสนทนา คำขอจะนำรายการก่อนหน้าออก ข้อความเริ่มการสนทนา

ข้อกำหนดเบื้องต้น

ก่อนอัปเดตการตั้งค่าการสนทนา คุณต้องมีสิ่งต่อไปนี้

  • เส้นทางไปยังคีย์บัญชีบริการของโปรเจ็กต์ GCP ในเครื่องพัฒนา
  • ภาษาที่คุณต้องการอัปเดตการตั้งค่า
  • สำหรับการตั้งค่าระดับตัวแทน ให้ตัวแทน name (เช่น "brands/12345/agents/67890")

    หากคุณไม่รู้จัก name ของตัวแทน โปรดดูที่แสดงตัวแทนทั้งหมดสำหรับ แบรนด์

  • สำหรับการตั้งค่าระดับสถานที่ตั้ง ให้เลือกสถานที่ตั้ง name (เช่น "brands/12345/locations/67890")

    หากคุณไม่ทราบ name ของตำแหน่ง โปรดดูแสดงรายการสถานที่ทั้งหมดสำหรับ แบรนด์

  • ภาษาที่จะอัปเดต เป็นภาษา ISO 639-1 แบบ 2 อักขระ โค้ด

  • ข้อความต้อนรับใหม่

  • URL นโยบายความเป็นส่วนตัว

  • (ไม่บังคับ) ข้อความสำหรับเริ่มการสนทนา

  • (ไม่บังคับ) ข้อมูลระบบรายงานผล Conversion สําหรับข้อความเริ่มการสนทนา

  • (ไม่บังคับ) ข้อความออฟไลน์ใหม่

หากคุณไม่ทราบค่า conversationalSettings ปัจจุบัน โปรดดูที่รับตัวแทน ข้อมูล และดูข้อมูลสถานที่ตั้ง

ส่งคำขออัปเดต

หากต้องการอัปเดต Agent หรือตำแหน่ง ให้เรียกใช้คำสั่งต่อไปนี้ แทนที่ตัวแปร ด้วยค่าที่คุณระบุในข้อกำหนดเบื้องต้น

หากไม่ต้องการเริ่มการสนทนา ให้ข้าม conversationStarters และทั้งหมด ช่องย่อย

การตั้งค่าระดับตัวแทน

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();
    }
  }
}
โค้ดนี้อิงตาม ธุรกิจ Java ไลบรารีของไคลเอ็นต์สำหรับการสื่อสาร

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)

การตั้งค่าระดับสถานที่ตั้ง

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