ব্যবসায়িক বার্তা এজেন্টদের সাথে কথোপকথনে, স্বাগত বার্তাটি ইন্টারঅ্যাকশনের জন্য সুর সেট করে। এটি ব্যবহারকারীদের এজেন্ট কী করতে পারে তাও জানতে দেয়, যা ব্যবহারকারীর প্রশ্ন এবং প্রত্যাশাকে আকার দেয়।
ব্যবহারকারী যখনই কথোপকথন খোলে প্রতিবার এজেন্ট একটি স্বাগত বার্তা পাঠায়। এজেন্ট ব্যবহারকারীদের পরিচিত বা ঘন ঘন পথ দেখানোর জন্য কথোপকথনের সূচনা প্রদর্শন করতে পারে।
যদি কোনো ব্যবহারকারী কোনো এজেন্টের অপারেটিং সময়ের বাইরে কোনো কথোপকথন শুরু করার চেষ্টা করেন, তাহলে এজেন্ট একটি অফলাইন বার্তা প্রদর্শন করে যা আপনি বিকল্প চ্যানেল শেয়ার করতে বা পরবর্তী পদক্ষেপের পরামর্শ দিতে ব্যবহার করতে পারেন। এই সেটিংস ব্যবহার করে, আপনি আপনার এজেন্টের নির্ভরযোগ্যতা এবং ব্যবহারযোগ্যতা বাড়াতে পারেন।
এজেন্ট- এবং অবস্থান-স্তরের সেটিংস
আপনি এজেন্ট বা অবস্থানের স্তরে কথোপকথন সেটিংস নির্দিষ্ট করতে পারেন।
এজেন্ট স্তর: এই কথোপকথন সেটিংস সমস্ত এন্ট্রি পয়েন্টে এজেন্টের সাথে সমস্ত কথোপকথনের ক্ষেত্রে প্রযোজ্য।
একটি এজেন্ট-স্তরের স্বাগত বার্তা শুরু হতে পারে "ব্রিজপয়েন্ট রানার্সের সাথে যোগাযোগ করার জন্য ধন্যবাদ..." কথোপকথন শুরুকারীরা কোম্পানি-ব্যাপী ক্রিয়া বা তথ্যের উপর ফোকাস করতে পারে।
অবস্থান-স্তর: এই সেটিংস এজেন্ট-স্তরের সেটিংসকে ওভাররাইড করে এবং শুধুমাত্র সেই অবস্থানের সাথে
PLACESHEET
এবংMAPS
এন্ট্রি পয়েন্টগুলিতে কথোপকথনের ক্ষেত্রে প্রযোজ্য।একটি অবস্থান-স্তরের স্বাগত বার্তা শুরু হতে পারে "অ্যাম্ফিথিয়েটার Pkwy-এ ব্রিজপয়েন্ট রানারদের সাথে যোগাযোগ করার জন্য ধন্যবাদ..." কথোপকথন শুরুকারীরা অবস্থান-ভিত্তিক কাজ বা তথ্যের উপর ফোকাস করতে পারে। একটি অফলাইন বার্তা উল্লেখ করতে পারে যে অবস্থানটি পরবর্তী কখন খোলা হবে৷
লোকেল
এজেন্ট এবং অবস্থানগুলি তারা যে লোকেলস সমর্থন করে তার জন্য আলাদা সেটিংস নির্দিষ্ট করতে পারে। উদাহরণস্বরূপ, একজন এজেন্ট "en" লোকেলের জন্য ইংরেজিতে একটি স্বাগত বার্তা নির্দিষ্ট করতে পারে এবং "es" লোকেলের জন্য স্প্যানিশ ভাষায় একই স্বাগত বার্তা থাকতে পারে। ব্যবসায়িক বার্তাগুলি ব্যবহারকারীর ডিভাইসের রিপোর্ট করা লোকেল এবং এজেন্ট বা অবস্থানের জন্য কোনো কথোপকথন সেটিংস আছে এমন লোকেলের মধ্যে একটি মিলের সমাধান করে।
এই লোকেল মিল প্রতিটি বার্তার resolvedLocale
ক্ষেত্রে রিপোর্ট করা হয়। আপনি একটি এজেন্টের বা অবস্থানের defaultLocale
নির্দিষ্ট করতে পারেন, যা লোকেল ম্যাচিং সমাধান করে। স্থানীয়করণ এবং লোকেল দেখুন।
কোন কথোপকথন সেটিংস প্রয়োগ করতে হবে তা নির্ধারণ করতে ব্যবসা বার্তাগুলি সমাধান করা লোকেল ব্যবহার করে৷
স্বাগতম বার্তা
একজন এজেন্ট এবং একজন ব্যবহারকারীর মধ্যে কথোপকথনের প্রথম বার্তাটি হল এজেন্টের স্বাগত বার্তা। একজন ব্যবহারকারী একটি নতুন কথোপকথন শুরু করার পরে স্বাগত বার্তা স্বয়ংক্রিয়ভাবে প্রদর্শিত হয়। একটি ভাল স্বাগত বার্তা এজেন্টের সাথে যোগাযোগের জন্য ব্যবহারকারীর প্রত্যাশা নির্ধারণ করে। একটি স্বাগত বার্তা সম্পাদনা করতে, কথোপকথন সেটিংস আপডেট করুন দেখুন।
কথোপকথন শুরু
যদিও একটি ভাল স্বাগত বার্তা একটি উচ্চ স্তরে একটি এজেন্টের কার্যকারিতা কভার করে এবং খোলামেলা, ভাল কথোপকথন শুরু ব্যবহারকারীদের ঘন ঘন প্রশ্ন বা পরিচিত কার্যকারিতা নির্দেশ করে।
কথোপকথন স্টার্টারগুলি উল্লম্বভাবে স্ট্যাক করা প্রস্তাবিত উত্তর হিসাবে উপস্থিত হয় এবং সরাসরি স্বাগত বার্তা অনুসরণ করে। যখন একজন ব্যবহারকারী একটি কথোপকথন স্টার্টার ট্যাপ করে, তখন এজেন্ট পূর্বনির্ধারিত সামগ্রী এবং পোস্টব্যাক ডেটা গ্রহণ করে যা আপনি স্টার্টার নির্দিষ্ট করার সময় সেট করেন।
যদি একটি এজেন্ট একটি নির্দিষ্ট অনুরোধের জন্য স্বয়ংক্রিয় কার্যকারিতা সমর্থন করে, কথোপকথন শুরুকারীরা সেই অনুরোধগুলির মানচিত্র করতে পারে, আপনাকে অটোমেশনের জন্য পরিচিত ইনপুটগুলির উপর নির্ভর করতে দেয় এবং উত্তর দেওয়ার জন্য প্রস্তুত লাইভ এজেন্টদের কাছে বিনামূল্যের ব্যবহারকারীর প্রশ্ন পাঠাতে পারে।
একজন এজেন্টের সর্বাধিক 5টি কথোপকথন স্টার্টার থাকতে পারে এবং প্রতিটি স্টার্টারের সর্বাধিক 35টি অক্ষর থাকতে পারে।
কথোপকথন স্টার্টার যোগ বা সম্পাদনা করতে, কথোপকথন সেটিংস আপডেট করুন দেখুন।
অফলাইন বার্তা
যখন একজন ব্যবহারকারী এজেন্টের অপারেটিং সময়ের বাইরে একজন এজেন্টের সাথে কথোপকথন শুরু করেন (যেমন MessagingAvailability
দ্বারা সংজ্ঞায়িত করা হয়েছে), তখন ব্যবহারকারী এজেন্টের অফলাইন বার্তাটি পান। একটি অফলাইন বার্তা ট্রিগার করার সময় শুধুমাত্র মানব প্রতিনিধি প্রাপ্যতা বিবেচনা করা হয়। যে এজেন্টদের শুধুমাত্র বট প্রতিনিধিরা সবসময় একটি স্বাগত বার্তা পাঠান। একটি ভাল অফলাইন বার্তা
- শেয়ার করে কেন এজেন্ট অনুপলব্ধ
- ব্যবহারকারীকে উপযুক্ত পরবর্তী পদক্ষেপ বা বিকল্প যোগাযোগ চ্যানেলের নির্দেশ দেয়
- স্বাগত বার্তা এবং কথোপকথন শুরুর সুরের সাথে মেলে
খারাপ অফলাইন বার্তা
"দুঃখিত, আমরা বন্ধ।"
ভালো অফলাইন বার্তা
"আমরা এখনই বন্ধ, কিন্তু আমরা আগামীকাল সকাল 8টায় আবার উপলব্ধ হব। আপনার যদি জরুরি সহায়তার প্রয়োজন হয়, তাহলে +12223334444 বা support@gtb.com-এ সহায়তার সাথে যোগাযোগ করুন।"
একটি অফলাইন বার্তা সম্পাদনা করতে, কথোপকথন সেটিংস আপডেট করুন দেখুন।
কথোপকথন সেটিংস আপডেট করুন
একটি স্বাগত বার্তা বা কথোপকথন শুরুকারীদের পরিচালনা করতে, আপনি একটি এজেন্ট বা অবস্থানের conversationalSettings
ফিল্ড আপডেট করার জন্য বিজনেস কমিউনিকেশন API এর সাথে একটি প্যাচ অনুরোধ করেন৷
আপনি conversationalSettings
ক্ষেত্র আপডেট করার সময়, আপনাকে অবশ্যই ConversationalSetting
অবজেক্টের সমস্ত ক্ষেত্রের মান অন্তর্ভুক্ত করতে হবে। আপডেটের অনুরোধ আপনার সম্পাদনা করা সমস্ত ক্ষেত্রের বিষয়বস্তুকে ওভাররাইট করে, যেকোনো চাইল্ড ফিল্ড সহ। উদাহরণস্বরূপ, যদি আপনি একটি স্বাগত বার্তা পরিবর্তন করার জন্য একটি অনুরোধ করেন কিন্তু কথোপকথন স্টার্টার অন্তর্ভুক্ত না করেন, অনুরোধটি পূর্ববর্তী কোনো কথোপকথন শুরুকারীকে সরিয়ে দেয়।
পূর্বশর্ত
আপনি কথোপকথন সেটিংস আপডেট করার আগে, আপনার নিম্নলিখিত আইটেমগুলির প্রয়োজন:
- আপনার ডেভেলপমেন্ট মেশিনে আপনার GCP প্রকল্পের পরিষেবা অ্যাকাউন্ট কী-এর পথ
- যে লোকেলের জন্য আপনি সেটিংস আপডেট করতে চান
এজেন্ট-লেভেল সেটিংসের জন্য, এজেন্টের
name
(উদাহরণস্বরূপ, "brands/12345/agents/67890")আপনি যদি এজেন্টের
name
না জানেন তবে একটি ব্র্যান্ডের জন্য সমস্ত এজেন্টদের তালিকা দেখুন৷অবস্থান-স্তরের সেটিংসের জন্য, অবস্থানের
name
(উদাহরণস্বরূপ, "brands/12345/locations/67890")আপনি যদি অবস্থানের
name
না জানেন তবে একটি ব্র্যান্ডের জন্য সমস্ত অবস্থানের তালিকা দেখুন৷দুই-অক্ষরের ISO 639-1 ভাষা কোড হিসাবে আপডেট করার জন্য লোকেল
নতুন স্বাগত বার্তা
গোপনীয়তা নীতি URL
(ঐচ্ছিক) কথোপকথন শুরু করার জন্য পাঠ্য
(ঐচ্ছিক) কথোপকথন শুরু করার জন্য পোস্টব্যাক ডেটা
(ঐচ্ছিক) নতুন অফলাইন বার্তা
আপনি যদি বর্তমান conversationalSettings
মানগুলি না জানেন, তাহলে এজেন্টের তথ্য পান এবং অবস্থানের তথ্য পান দেখুন।
আপডেট অনুরোধ পাঠান
এজেন্ট বা অবস্থান আপডেট করতে, নিম্নলিখিত কমান্ডটি চালান। আপনার পূর্বশর্তগুলিতে চিহ্নিত মানগুলির সাথে ভেরিয়েবলগুলি প্রতিস্থাপন করুন।
আপনি যদি কথোপকথন শুরু করতে না চান তবে 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();
জাভা
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(); } } }এই কোডটি জাভা বিজনেস কমিউনিকেশনস ক্লায়েন্ট লাইব্রেরির উপর ভিত্তি করে।
পাইথন
"""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', }, }, }, }, ], }, }, }"