আপনার এজেন্ট RBM প্ল্যাটফর্ম থেকে ওয়েবহুক ইভেন্টগুলি গ্রহণ করে, যা আপনাকে ব্যবহারকারীর ইন্টারঅ্যাকশন এবং প্ল্যাটফর্ম-স্তরের আপডেট উভয়েরই বিজ্ঞপ্তি দেয়।
এই ঘটনাগুলি তাদের উৎপত্তি অনুসারে শ্রেণীবদ্ধ করা হয়েছে:
- ব্যবহারকারীর ইভেন্ট : ব্যবহারকারীর ডিভাইস থেকে আপনার এজেন্টের কাছে পাঠানো বিজ্ঞপ্তি, যা আপনার এজেন্টের সাথে বা তার বার্তাগুলির সাথে একটি মিথস্ক্রিয়ার ইঙ্গিত দেয়।
- প্ল্যাটফর্ম ইভেন্ট : RBM প্ল্যাটফর্ম দ্বারা প্রেরিত এজেন্ট লঞ্চের অবস্থার পরিবর্তন এবং বার্তার মেয়াদ শেষ হওয়ার বিষয়ে বিজ্ঞপ্তি।
আপনার এজেন্ট ব্যবহারকারীর ডিভাইসে যে স্ট্যাটাস ইভেন্টগুলি পাঠায় তার বিশদ বিবরণের জন্য, ইভেন্টগুলি পাঠান দেখুন।
ব্যবহারকারীর ইভেন্ট
ব্যবহারকারীর ইভেন্ট হল ব্যবহারকারীর ডিভাইস থেকে আসা বিজ্ঞপ্তি যা বার্তার স্থিতি বা সাবস্ক্রিপশনের পরিবর্তনগুলি রিপোর্ট করে (অর্থাৎ, ব্যবহারকারী Google Messages-এ আনসাবস্ক্রাইব করেছেন বা পুনরায় সাবস্ক্রাইব করেছেন )।
সম্পূর্ণ বিন্যাস এবং মান বিকল্পগুলির জন্য, UserEvent রেফারেন্স দেখুন।
ব্যবহারকারী এজেন্টের বার্তা পান
এই ইভেন্টটি নির্দেশ করে যে ব্যবহারকারীর ডিভাইসে একটি বার্তা সফলভাবে পৌঁছে দেওয়া হয়েছে।
{
"senderPhoneNumber": "PHONE_NUMBER",
"eventType": "DELIVERED",
"eventId": "EVENT_ID",
"messageId": "MESSAGE_ID",
"agentId": "AGENT_ID"
}ব্যবহারকারী এজেন্টের বার্তা পড়ছেন
এই ঘটনাটি নির্দেশ করে যে একটি বার্তা খোলা হয়েছে বা স্বীকৃত হয়েছে।
{
"senderPhoneNumber": "PHONE_NUMBER",
"eventType": "READ",
"eventId": "EVENT_ID",
"messageId": "MESSAGE_ID",
"agentId": "AGENT_ID"
}ব্যবহারকারী টাইপ করা শুরু করেন
এই ইভেন্টটি নির্দেশ করে যে একজন ব্যবহারকারী একটি প্রতিক্রিয়া টাইপ করছেন।
{
"senderPhoneNumber": "PHONE_NUMBER",
"eventType": "IS_TYPING",
"eventId": "EVENT_ID",
"agentId": "AGENT_ID"
}ব্যবহারকারী একটি টেক্সট মেসেজ পাঠান
{
"senderPhoneNumber": "PHONE_NUMBER",
"text": "Hi",
"eventId": "EVENT_ID",
"agentId": "AGENT_ID"
}ব্যবহারকারী একটি ফাইল পাঠান
{ "senderPhoneNumber": "PHONE_NUMBER", "userFile": { "payload": { "mimeType": "image/gif", "fileSizeBytes": 127806, "fileUri": "https://storage.googleapis.com/copper_test/77ddb795-24ad-4607-96ae-b08b4d86406a/d2dcc67ab888d34ee272899c020b13402856f81597228322079eb007e8c9", "fileName": "4_animated.gif" } }, "eventId": "EVENT_ID", "agentId": "AGENT_ID" }
ব্যবহারকারী একটি প্রস্তাবিত উত্তরে ট্যাপ করেন
যখন একজন ব্যবহারকারী একটি প্রস্তাবিত উত্তরে ট্যাপ করেন, তখন আপনার এজেন্ট উত্তরের পোস্টব্যাক ডেটা এবং টেক্সট সহ একটি ইভেন্ট পান।
{
"senderPhoneNumber": "PHONE_NUMBER",
"eventId": "EVENT_ID",
"agentId": "AGENT_ID",
"suggestionResponse": {
"postbackData": "postback_1234",
"text": "Hello there!"
}
}ব্যবহারকারী প্রস্তাবিত কোনও অ্যাকশনে ট্যাপ করেন
যখন একজন ব্যবহারকারী একটি প্রস্তাবিত অ্যাকশনে ট্যাপ করেন, তখন আপনার এজেন্ট অ্যাকশনের পোস্টব্যাক ডেটা সহ একটি ইভেন্ট পান।
{
"senderPhoneNumber": "PHONE_NUMBER",
"eventId": "EVENT_ID",
"agentId": "AGENT_ID",
"suggestionResponse": {
"postbackData": "postback_1234"
}
}ব্যবহারকারী কথোপকথন থেকে সদস্যতা ত্যাগ করেন
এই ইভেন্টটি ইঙ্গিত দেয় যে ব্যবহারকারী আপনার এজেন্ট এবং তার প্রতিনিধিত্বকারী ব্যবসা থেকে অপ্রয়োজনীয় বার্তা, যেমন প্রচার, গ্রহণ থেকে আনসাবস্ক্রাইব করেছেন। ব্যবহারকারীরা Google Messages-এ RBM কথোপকথন থেকে আনসাবস্ক্রাইব করে এই ইভেন্টটি ট্রিগার করে।
এখানে JSON পেলোডের একটি উদাহরণ দেওয়া হল:
{
"senderPhoneNumber": "PHONE_NUMBER",
"eventType": "UNSUBSCRIBE",
"eventId": "EVENT_ID",
"agentId": "AGENT_ID"
}আনসাবস্ক্রাইব কীভাবে কাজ করে
- চ্যাট মেনুতে সর্বদা একটি আনসাবস্ক্রাইব বিকল্প পাওয়া যায়। প্রচারমূলক এবং বহু-ব্যবহারকারী এজেন্টদের জন্য, এই বিকল্পটি নির্দিষ্ট সংখ্যক অপঠিত বার্তার পরে সরাসরি চ্যাটে প্রদর্শিত হয় (নির্দিষ্ট নিয়ম দেশ অনুসারে পরিবর্তিত হয়)।
আনসাবস্ক্রাইব নির্বাচন করলে একই সাথে দুটি অ্যাকশন শুরু হয়: গুগল মেসেজ আপনার এজেন্টের কাছে একটি দেশ-নির্দিষ্ট কীওয়ার্ড (যেমন, "স্টপ") পাঠায় এবং আরবিএম প্ল্যাটফর্ম আপনার ওয়েবহুকে একটি
UNSUBSCRIBEইভেন্ট পাঠায়।ব্যবহারকারীর ফোন নম্বরের দুই অক্ষরের দেশের কোড দ্বারা কীওয়ার্ডটি নির্ধারিত হয়। নিম্নলিখিত টেবিলে প্রতিটি সমর্থিত দেশের কীওয়ার্ডগুলি তালিকাভুক্ত করা হয়েছে।
দেশ (দেশের কোড) আনসাবস্ক্রাইব কীওয়ার্ড মার্কিন যুক্তরাষ্ট্র (মার্কিন), ভারত (IN), যুক্তরাজ্য (GB), জার্মানি (DE) থামো স্পেন (ES), মেক্সিকো (MX) বাজা ফ্রান্স (FR) থামো ব্রাজিল (ব্রাজিলস) পারার ব্যবহারকারী আনসাবস্ক্রাইব করার পরে, কথোপকথনটি তাদের ইনবক্সে থেকে যায় যদি না স্প্যাম হিসেবে রিপোর্ট করা হয়, এই ক্ষেত্রে এটি স্প্যাম এবং ব্লক করা ফোল্ডারে চলে যায়।
নীতি এবং ব্যবসায়িক নিয়ম লঙ্ঘন শনাক্ত করার জন্য, ব্যবহারকারী সদস্যতা ত্যাগ করার পরে Google বার্তার ধরণ পর্যবেক্ষণ করে।
ব্যবসার নিয়ম
- এই কথোপকথনটি পরিচালনাকারী RBM অংশীদার হিসেবে, ব্যবহারকারীর সদস্যতা ত্যাগের অনুরোধ মেনে চলা আপনার দায়িত্ব।
- যদি আপনি মেসেজ থ্রেডের মধ্যে আনসাবস্ক্রাইব করতে না পারেন, তাহলে আপনাকে অবিলম্বে ওয়েবসাইট বা অ্যাপের সরাসরি লিঙ্ক সহ একটি স্বীকৃতি বার্তা পাঠাতে হবে যেখানে ব্যবহারকারীরা তাদের সাবস্ক্রিপশন পছন্দগুলি পরিচালনা করতে পারবেন।
- ব্যবহারকারী সদস্যতা ত্যাগ করার পর, অপ্রয়োজনীয় বার্তা পাঠানো নিষিদ্ধ।
- গুরুত্বপূর্ণ বার্তাগুলি এখনও অনুমোদিত। এর মধ্যে রয়েছে:
- প্রমাণীকরণ, যেমন এককালীন পাসওয়ার্ড (OTP)
- ব্যবহারকারীর অনুরোধ করা এবং সম্মতি দেওয়া নির্দিষ্ট পরিষেবা সম্পর্কে বিজ্ঞপ্তি
- ব্যবহারকারীর আনসাবস্ক্রাইব অনুরোধের নিশ্চিতকরণ, তাদের যোগাযোগের পছন্দগুলি আরও পরিচালনা করার জন্য তথ্য সহ
উদাহরণ
যদি কোনও ব্যবহারকারী এমন কোনও এয়ারলাইন এজেন্টের সদস্যতা ত্যাগ করেন যার ব্যবহারের ক্ষেত্রে বহু-ব্যবহার রয়েছে, তাহলে আপনাকে অবশ্যই মার্কেটিং বার্তা পাঠানো বন্ধ করতে হবে। তবে, আপনি ফ্লাইট আপডেট পাঠাতে পারেন যদি ব্যবহারকারী সেই নির্দিষ্ট ফ্লাইটের জন্য আপডেট পাওয়ার জন্য স্পষ্ট সম্মতি প্রদান করে থাকেন।
আনসাবস্ক্রাইব করার কারণ
When a user unsubscribes from your agent, they can select a reason from the following options:
- স্প্যাম
- কখনও সাইন আপ করেননি
- অনেক বেশি মেসেজ
- আর আগ্রহী নই
- অন্যান্য
ব্যবহারকারীরা কেন আনসাবস্ক্রাইব করছেন তা অংশীদারদের বুঝতে সাহায্য করার জন্য অ্যানালিটিক্স ওভারভিউতে আনসাবস্ক্রাইব করার কারণগুলি দেখানো হয়েছে।
ব্যবহারকারী কথোপকথনে পুনরায় সদস্যতা নেন
এই ইভেন্টটি ইঙ্গিত দেয় যে একজন ব্যবহারকারী আপনার এজেন্টের কাছ থেকে আবার বার্তা পেতে চান, যার মধ্যে প্রচারের মতো অপ্রয়োজনীয় সামগ্রীও অন্তর্ভুক্ত। ব্যবহারকারীরা Google Messages-এ পূর্বে আনসাবস্ক্রাইব করা কোনও কথোপকথনে পুনরায় সাবস্ক্রাইব করে এই ইভেন্টটি ট্রিগার করতে পারেন।
এখানে JSON পেলোডের একটি উদাহরণ দেওয়া হল:
{
"senderPhoneNumber": "PHONE_NUMBER",
"eventType": "SUBSCRIBE",
"eventId": "EVENT_ID",
"agentId": "AGENT_ID"
}পুনঃসাবস্ক্রাইব কীভাবে কাজ করে
- চ্যাট মেনু এবং ইন-চ্যাট লিঙ্ক উভয় থেকেই একটি সাবস্ক্রাইব বিকল্প পাওয়া যায়, যা ব্যবহারকারীদের এমন একটি কথোপকথনে পুনরায় সাবস্ক্রাইব করতে দেয় যা থেকে তারা আনসাবস্ক্রাইব করেছিলেন।
"Subscribe" নির্বাচন করলে একই সাথে দুটি ক্রিয়া শুরু হয়: Google Messages আপনার এজেন্টকে একটি দেশ-নির্দিষ্ট কীওয়ার্ড (যেমন, "START") পাঠায় এবং RBM প্ল্যাটফর্ম আপনার ওয়েবহুকে একটি SUBSCRIBE ইভেন্ট পাঠায়। ব্যবহারকারীর ফোন নম্বরের দুই-অক্ষরের দেশের কোড দ্বারা নির্দিষ্ট কীওয়ার্ডটি নির্ধারিত হয়। নিম্নলিখিত টেবিলে প্রতিটি সমর্থিত দেশের কীওয়ার্ড তালিকাভুক্ত করা হয়েছে।
দেশ (দেশের কোড) সাবস্ক্রাইব কীওয়ার্ড মার্কিন যুক্তরাষ্ট্র (মার্কিন), ভারত (IN), যুক্তরাজ্য (GB), জার্মানি (DE) শুরু স্পেন (ES), মেক্সিকো (MX) ALTA সম্পর্কে ফ্রান্স (FR) ডেমারের ব্রাজিল (ব্রাজিলস) কমার
ব্যবসার নিয়ম
- এই কথোপকথনটি পরিচালনাকারী RBM অংশীদার হিসেবে, ব্যবহারকারীর পুনরায় সাবস্ক্রাইব করার অনুরোধ মেনে চলা আপনার দায়িত্ব।
- পুনঃসাবস্ক্রিপশন সকল ধরণের বার্তার ক্ষেত্রে প্রযোজ্য, যার মধ্যে প্রচারের মতো অপ্রয়োজনীয় সামগ্রীও অন্তর্ভুক্ত।
- যদি কোনও ব্যবহারকারী আপনার ব্যবসাকে আনসাবস্ক্রাইব করার পরে মেসেজ করেন, তাহলে এটিকে পুনঃসাবস্ক্রাইব করার অনুরোধ হিসেবে বিবেচনা করা যেতে পারে।
- যদি কোনও ব্যবহারকারী মেসেজিং চ্যানেলের বাইরে (উদাহরণস্বরূপ, আপনার ওয়েবসাইটে) পুনরায় সাবস্ক্রাইব করেন, তাহলে RBM অংশীদার হিসেবে তাদের স্ট্যাটাস আপডেট করা এবং সেই অনুযায়ী বার্তা পাঠানো পুনরায় শুরু করা আপনার দায়িত্ব।
প্ল্যাটফর্ম ইভেন্ট
The RBM platform sends platform events to notify your agent about changes to the agent's launch state or message expirations .
এজেন্ট লঞ্চের অবস্থা পরিবর্তিত হয়েছে
আপনার এজেন্টের লঞ্চ স্ট্যাটাসে প্রতিটি পরিবর্তনের জন্য RBM প্ল্যাটফর্ম একটি AgentLaunchEvent পাঠায়। উদাহরণস্বরূপ, যখন আপনার এজেন্টের স্ট্যাটাস PENDING থেকে LAUNCHED এ পরিবর্তিত হয়। ইভেন্টটি একটি Pub/Sub বার্তা হিসাবে বিতরণ করা হয়। অন্যান্য ইভেন্ট থেকে এটিকে আলাদা করতে, agent_launch_event মানের message.attributes.type পাথটি পরীক্ষা করুন।
ওয়েবহুক কনফিগারেশন
এই বিজ্ঞপ্তিগুলি পেতে আপনি আপনার পার্টনার-লেভেল বা এজেন্ট-লেভেল ওয়েবহুক ব্যবহার করতে পারেন।
পূর্বশর্ত
- Configure your webhook for RBM messaging (this is a requirement for receiving user messages and user events).
- ব্যবহারকারীর ইভেন্ট এবং এজেন্ট লঞ্চ স্টেট ইভেন্টের মধ্যে পার্থক্য করতে,
agent_launch_eventমানেরmessage.attributes.typeপাথটি পরীক্ষা করুন।
ইভেন্ট পেলোড কাঠামো
AgentLaunchEvent একটি পাব/সাব বার্তা হিসেবে সরবরাহ করা হয়। এখানে একটি উদাহরণ দেওয়া হল:
{
"message": {
"attributes": {
"business_id": "rbm-chatbot-id@rbm.goog",
"event_type": "REJECTED",
"product": "RBM",
"project_number": "3338881441851",
"type": "agent_launch_event"
},
"data": "....BASE64-encoded-JSON-with-notification...",
"messageId": "14150481888479752",
"message_id": "14150481888479752",
"publishTime": "2025-03-05T18:50:21.88Z",
"publish_time": "2025-03-05T18:50:21.88Z"
},
"subscription": "projects/rbm-partner-gcp/subscriptions/rbm-sub"
}
ইভেন্ট পেলোডের AgentLaunchEvent.LaunchState ফিল্ড এজেন্টের নতুন লঞ্চ অবস্থা নির্দেশ করে। সম্ভাব্য মানগুলি এখানে দেওয়া হল:
| মূল্য | এজেন্ট লঞ্চের অবস্থা | বিস্তারিত |
|---|---|---|
PENDING | মুলতুবি | অনুরোধটি পর্যালোচনার জন্য একটি ক্যারিয়ারের কাছে পাঠানো হয়েছে। |
LAUNCHED | চালু হয়েছে | নির্দিষ্ট কোনও পরিষেবা প্রদানকারীতে বার্তা পাঠানোর অনুমতি রয়েছে। |
REJECTED | প্রদত্ত ক্যারিয়ারে প্রত্যাখ্যাত | প্রত্যাখ্যানের কারণ মন্তব্যে উল্লেখ করা আছে। |
SUSPENDED | একটি নির্দিষ্ট ক্যারিয়ারে স্থগিত করা হয়েছে | স্থগিতাদেশের কারণ মন্তব্যে উল্লেখ করা হয়েছে। |
UNLAUNCHED | আনলঞ্চ করা হয়েছে | সমস্ত ক্যারিয়ার থেকে আনলঞ্চ করা এজেন্টদের জন্য সম্পাদনা অনুমোদিত। |
ডেটা ফিল্ডে একটি Base64-এনকোডেড JSON অবজেক্ট রয়েছে যেখানে লঞ্চ স্টেটের বিবরণ রয়েছে। ডিকোডেড JSON এর একটি উদাহরণ এখানে দেওয়া হল:
{
"eventId": "rbm-chatbot-id/0a7ed168-676e-4a56-b422-b23434",
"agentId": "rbm-chatbot-id@rbm.goog",
"botDisplayName": "RBM Welcome Bot 7 - RBM Chatbot name",
"brandId": "bd38fbff-392a-437b-a6f2-7f2e43745b56",
"brandDisplayName": "Chatbots brand",
"regionId": "/v1/regions/fi-rcs",
"oldLaunchState": "PENDING",
"newLaunchState": "REJECTED",
"actingParty": "rbm-support@google.com",
"comment": "Carrier has rejected the launch: policy violation",
"sendTime": "2025-03-05T18:50:19.386436Z"
}
ক্যারিয়ার-ইনিশিয়েটেড লঞ্চ স্টেট পরিবর্তন
এগুলি অনুমোদিত পরিবর্তন যা সাধারণত পর্যালোচনা এবং প্রয়োগ প্রক্রিয়ার সময় ক্যারিয়ার দ্বারা পরিচালিত হয়:
| পুরনো লঞ্চের অবস্থা | নতুন লঞ্চের অবস্থা | ট্রিগার অ্যাকশন |
|---|---|---|
PENDING | LAUNCHED | একটি লঞ্চ অনুরোধ অনুমোদন করুন। |
PENDING | REJECTED | একটি লঞ্চ অনুরোধ প্রত্যাখ্যান করুন। |
LAUNCHED | SUSPENDED | এনফোর্সমেন্ট/অ্যাডমিনের কারণে স্থগিত করুন। |
SUSPENDED | LAUNCHED | একটি এজেন্টকে সক্রিয় অবস্থায় ফিরিয়ে আনুন। |
SUSPENDED | UNLAUNCHED | একজন এজেন্টকে বরখাস্ত করুন। |
অংশীদার-প্রবর্তিত লঞ্চের অবস্থার পরিবর্তন
এগুলি অনুমোদিত রূপান্তর যা সাধারণত অংশীদারদের দ্বারা পরিচালিত হয়:
| পুরনো লঞ্চের অবস্থা | নতুন লঞ্চের অবস্থা | ট্রিগার অ্যাকশন |
|---|---|---|
UNSPECIFIED | PENDING | পর্যালোচনার জন্য জমা দিন। |
UNLAUNCHED | PENDING | পর্যালোচনার জন্য জমা দিন। |
REJECTED | PENDING | পর্যালোচনার জন্য পুনরায় জমা দিন। |
বার্তার মেয়াদ শেষ হয়ে গেছে; প্রত্যাহার সফল হয়েছে।
এই ইভেন্টটি ইঙ্গিত দেয় যে বার্তাটির লাইভ টাইম (TTL) মেয়াদ শেষ হয়ে গেছে এবং বার্তাটি সফলভাবে প্রত্যাহার করা হয়েছে। এটি আপনার ফলব্যাক মেসেজিং কৌশলের জন্য একটি ভাল ট্রিগার।
সম্পূর্ণ বিন্যাস এবং মান বিকল্পগুলির জন্য, ServerEvent রেফারেন্স দেখুন।
{ "phoneNumber": "[phone number]" , "messageId": "[RCS message ID]", "agentId": [bot ID], "eventType": "TTL_EXPIRATION_REVOKED", "eventId": "[unique ID]", "sendTime": "[time stamp]" }
বার্তার মেয়াদ শেষ হয়ে গেছে; প্রত্যাহার ব্যর্থ হয়েছে
এই ঘটনাটি ইঙ্গিত দেয় যে বার্তাটির TTL মেয়াদ শেষ হয়ে গেছে, কিন্তু এটি সফলভাবে প্রত্যাহার করা হয়নি।
সম্পূর্ণ বিন্যাস এবং মান বিকল্পগুলির জন্য, ServerEvent রেফারেন্স দেখুন।
{ "phoneNumber": "[phone number]", "messageId": "[RCS message ID]", "agentId": "[bot ID]", "eventType": "TTL_EXPIRATION_REVOKE_FAILED", "eventId": "[unique ID]", "sendTime": "[time stamp]" }
বার্তা সরবরাহের নিশ্চয়তা নেই।
- If the message was delivered, you'll receive a
DELIVEREDevent at your webhook. - যদি বার্তাটি সরবরাহ না করা হয়, তাহলে প্রত্যাহারের অনুরোধ পাঠাতে প্রত্যাহার API ব্যবহার করুন।
যদি বার্তাটি সময়-সংবেদনশীল হয়, যেমন OTP বা জালিয়াতির সতর্কতা, তাহলে SMS-এর মতো বিকল্প চ্যানেলের মাধ্যমে বার্তাটি পাঠানোই ভালো, এমনকি এর ফলে ব্যবহারকারীর কাছে ডুপ্লিকেট বার্তা আসে।