इवेंट, सूचनाएं होती हैं. इन्हें आपका एजेंट भेज और पा सकता है. इवेंट तीन तरह के होते हैं:
- सर्वर से जनरेट किया गया: RBM प्लैटफ़ॉर्म से आपके एजेंट को भेजा गया
- उपयोगकर्ता द्वारा जनरेट किया गया: उपयोगकर्ता के डिवाइस द्वारा आपके एजेंट को भेजा गया
- एजेंट के ज़रिए जनरेट किया गया: आपके एजेंट ने उपयोगकर्ता को भेजा
सर्वर से जनरेट होने वाले इवेंट
RBM प्लेटफ़ॉर्म आपके एजेंट को सर्वर-स्तरीय अपडेट, जैसे कि संदेश समाप्ति, के बारे में सूचित करने के लिए ईवेंट भेजता है.
फ़ॉर्मैटिंग और वैल्यू के विकल्पों के लिए, ServerEvent देखें.
एजेंट लॉन्च की स्थिति बदल गई है
आरबीएम प्लैटफ़ॉर्म, आपके एजेंट के लॉन्च स्टेटस में हुए हर बदलाव के लिए AgentLaunchEvent भेजता है. उदाहरण के लिए, जब आपके एजेंट की स्थिति मोबाइल और इंटरनेट सेवा देने वाली कंपनी की मंज़ूरी के बाद PENDING से बदलकर LAUNCHED हो जाती है, तो आपको बदलाव का संकेत देने के लिए एक AgentLaunchEvent इवेंट मिलता है. ये इवेंट, सभी RBM एजेंट के लिए भेजे जाते हैं. साथ ही, ये इवेंट, कैरियर लॉन्च की स्थिति में हुए सभी बदलावों के लिए भी भेजे जाते हैं.
वेबहुक कॉन्फ़िगरेशन
इन सूचनाओं को पाने के लिए, पार्टनर-लेवल या एजेंट-लेवल के वेबबुक का इस्तेमाल किया जा सकता है.
ज़रूरी शर्तें
- RBM मैसेज सेवा के लिए, वेबहुक कॉन्फ़िगर करें. यह उपयोगकर्ताओं के मैसेज और उपयोगकर्ता के जनरेट किए गए इवेंट पाने के लिए ज़रूरी है.
- उपयोगकर्ता के जनरेट किए गए इवेंट और एजेंट लॉन्च करने की स्थिति वाले इवेंट के बीच अंतर करने के लिए,
agent_launch_eventवैल्यू के लिएmessage.attributes.typeपाथ देखें.
इवेंट पेलोड का स्ट्रक्चर
AgentLaunchEvent को Pub/Sub संदेश के रूप में भेजा जाता है. यहां एक उदाहरण दिया गया है:
{
"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 फ़ील्ड एजेंट की नई लॉन्च स्थिति को दर्शाता है.
संभावित मान इस प्रकार हैं:
| मान | एजेंट लॉन्च की स्थिति | विवरण |
|---|---|---|
UNLAUNCHED |
लॉन्च नहीं किया गया | संपादन की अनुमति है. |
PENDING |
मंज़ूरी बाकी है | अनुरोध को समीक्षा के लिए, मोबाइल और इंटरनेट सेवा देने वाली कंपनी को भेज दिया गया है. |
LAUNCHED |
लॉन्च किया गया | मैसेज भेजने की सुविधा, चुने गए मोबाइल और इंटरनेट सेवा देने वाली कंपनी के नेटवर्क पर काम करती हो. |
REJECTED |
मोबाइल और इंटरनेट सेवा देने वाली किसी कंपनी के लिए अस्वीकार किया गया | अस्वीकृति का कारण टिप्पणी में निर्दिष्ट किया गया है. |
SUSPENDED |
किसी कैरियर पर निलंबित किया गया हो | निलंबन का कारण टिप्पणी में निर्दिष्ट किया गया है. |
डेटा फ़ील्ड में लॉन्च स्थिति विवरण के साथ एक बेस64-एन्कोडेड 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 |
TERMINATED |
निलंबित एजेंट को बंद कर दिया गया है. |
TERMINATED |
LAUNCHED |
हटाए गए एजेंट को लॉन्च किया गया. |
संदेश की समय सीमा समाप्त हो गई है; निरस्तीकरण सफल हुआ
संदेश की समय सीमा समाप्त हो गई है और उसे सफलतापूर्वक रद्द कर दिया गया है. यह इवेंट, फ़ॉलबैक मैसेज भेजने की रणनीति के लिए एक अच्छा ट्रिगर होगा.
{ "phoneNumber": [phone number of recipient that the original message was intended for] , "messageId": [RCS message ID of the message], "agentId": [bot ID], "eventType": "TTL_EXPIRATION_REVOKED", "eventId": [unique ID generated by the RBM platform], "sendTime": [time at which the server sent this event] }
संदेश की समय सीमा समाप्त हो गई है; निरस्तीकरण विफल
संदेश की समय सीमा समाप्त हो गई है, लेकिन इसे रद्द नहीं किया गया है.
{ "phoneNumber": [phone number of recipient that the original message was intended for] , "messageId": [RCS message ID of the message], "agentId": [bot ID], "eventType": "TTL_EXPIRATION_REVOKE_FAILED", "eventId": [unique ID generated by the RBM platform], "sendTime": [time at which the server sent this event] }
मैसेज डिलीवर होने की कोई गारंटी नहीं है.
- अगर मैसेज डिलीवर हो गया है, तो आपको अपने वेबहुक पर
DELIVEREDइवेंट मिलेगा. - अगर मैसेज डिलीवर नहीं हुआ है, तो रद्द करने का अनुरोध भेजने के लिए, रद्द करने वाले एपीआई का इस्तेमाल करें.
अगर मैसेज में समयसीमा से जुड़ी जानकारी है, जैसे कि ओटीपी या धोखाधड़ी की चेतावनी, तो उसे एसएमएस जैसे किसी दूसरे चैनल से भेजना सबसे अच्छा होता है. भले ही, इससे उपयोगकर्ता को डुप्लीकेट मैसेज मिलें.
उपयोगकर्ता के बनाए गए इवेंट
उपयोगकर्ता के मैसेज और क्षमता की जांच की तरह ही, आपके एजेंट को उपयोगकर्ता के इवेंट JSON के तौर पर मिलते हैं.
फ़ॉर्मैटिंग और वैल्यू के विकल्पों के लिए, 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 संदेशों में RBM वार्तालाप से सदस्यता समाप्त कर सकता है.
UNSUBSCRIBE इवेंट यह दर्शाता है कि उपयोगकर्ता ने आपके एजेंट और उसके द्वारा प्रतिनिधित्व किए जाने वाले व्यवसाय के साथ अपनी बातचीत से सदस्यता समाप्त कर दी है. JSON पेलोड का एक उदाहरण यहां दिया गया है:
{
"senderPhoneNumber": "PHONE_NUMBER",
"eventType": "UNSUBSCRIBE",
"eventId": "EVENT_ID",
"agentId": "AGENT_ID"
}यह कैसे काम करता है
- चैट मेनू में सदस्यता समाप्त करें विकल्प हमेशा उपलब्ध रहता है. प्रचारात्मक और बहु-उपयोगी एजेंटों के लिए, यह विकल्प एक निश्चित संख्या में अपठित संदेशों के बाद सीधे चैट में भी दिखाई देता है (विशिष्ट नियम देश के अनुसार अलग-अलग होते हैं).
सदस्यता छोड़ें चुनने पर एक साथ दो क्रियाएं शुरू होती हैं: Google संदेश आपके एजेंट को एक देश-विशिष्ट कीवर्ड (उदाहरण के लिए, "STOP") भेजता है, और RBM प्लेटफ़ॉर्म आपके वेबहुक पर एक UNSUBSCRIBE ईवेंट भेजता है.
कीवर्ड, उपयोगकर्ता के फ़ोन नंबर के दो अक्षरों वाले देश के कोड से तय होता है. यहां दी गई टेबल में, हर उस देश के लिए कीवर्ड दिए गए हैं जहां यह सुविधा उपलब्ध है.
देश (देश का कोड) सदस्यता छोड़ने के लिए कीवर्ड अमेरिका (US), भारत (IN), यूनाइटेड किंगडम (GB), जर्मनी (DE) बंद करें स्पेन (ES), मेक्सिको (MX) BAJA फ़्रांस (FR) बंद करें ब्राज़ील (BR) parar अनसब्सक्राइब करने के बाद, बातचीत उपयोगकर्ता के इनबॉक्स में ही रहती है. हालांकि, अगर इसकी शिकायत स्पैम के तौर पर की जाती है, तो इसे स्पैम और ब्लॉक किए गए फ़ोल्डर में भेज दिया जाता है.
नीति और कारोबार के नियमों के उल्लंघन का पता लगाने के लिए, Google किसी उपयोगकर्ता के सदस्यता छोड़ने के बाद, मैसेज के पैटर्न पर नज़र रखता है.
कारोबार के नियम
- इस बातचीत को मैनेज करने वाले आरबीएम पार्टनर के तौर पर, यह आपकी ज़िम्मेदारी है कि आप सदस्यता छोड़ने के लिए उपयोगकर्ता के अनुरोध का पालन करें.
- अगर मैसेज थ्रेड में सदस्यता रद्द नहीं की जा सकती, तो आपको तुरंत एक मैसेज भेजना होगा. इसमें सदस्यता रद्द करने की पुष्टि की गई हो. साथ ही, इसमें वेबसाइट या ऐप्लिकेशन का डायरेक्ट लिंक दिया गया हो, जहां लोग सदस्यता से जुड़ी अपनी प्राथमिकताओं को मैनेज कर सकें.
- उपयोगकर्ता के सदस्यता छोड़ने के बाद, उसे गै़र-ज़रूरी मैसेज नहीं भेजे जा सकते.
- ज़रूरी मैसेज अब भी भेजे जा सकते हैं. इनमें ये शामिल हैं:
- पुष्टि करने से जुड़ी जानकारी, जैसे कि एक बार इस्तेमाल होने वाले पासवर्ड (ओटीपी)
- उपयोगकर्ता ने जिस सेवा के लिए अनुरोध किया है और सहमति दी है उससे जुड़ी सूचनाएं
- उपयोगकर्ता को सदस्यता छोड़ने के अनुरोध की पुष्टि करने वाला ईमेल. इसमें, ईमेल पाने से जुड़ी प्राथमिकताओं को मैनेज करने के बारे में जानकारी दी गई हो
उदाहरण
अगर कोई उपयोगकर्ता, किसी एयरलाइन एजेंट से सदस्यता छोड़ता है और उस एजेंट का इस्तेमाल कई कामों के लिए किया जाता है, तो आपको मार्केटिंग ईमेल भेजना बंद करना होगा. हालांकि, अगर उपयोगकर्ता ने किसी फ़्लाइट के अपडेट पाने के लिए साफ़ तौर पर सहमति दी है, तो उसे फ़्लाइट के अपडेट भेजे जा सकते हैं.
सदस्यता छोड़ने की वजहें
जब कोई व्यक्ति आपके एजेंट की सदस्यता छोड़ता है, तो वह इनमें से कोई वजह चुन सकता है:
- साइन अप नहीं किया
- बहुत ज़्यादा मैसेज आते हैं
- अब दिलचस्पी नहीं है
- स्पैम
- अन्य
फ़िलहाल, सदस्यता छोड़ने की वजहें पार्टनर या कैरियर के साथ शेयर नहीं की जाती हैं.
उपयोगकर्ता ने बातचीत की सदस्यता फिर से ली हो
उपयोगकर्ता, Google Messages में किसी बातचीत की सदस्यता फिर से ले सकते हैं. इसके लिए, उन्हें उस बातचीत की सदस्यता लेनी होगी जिसे उन्होंने पहले रद्द किया था.
SUBSCRIBE इवेंट से पता चलता है कि उपयोगकर्ता आपके एजेंट से मैसेज पाना चाहता है. इनमें प्रमोशन जैसे ग़ैर-ज़रूरी कॉन्टेंट भी शामिल है. यहां JSON पेलोड का एक उदाहरण दिया गया है:
{
"senderPhoneNumber": "PHONE_NUMBER",
"eventType": "SUBSCRIBE",
"eventId": "EVENT_ID",
"agentId": "AGENT_ID"
}यह कैसे काम करता है
- सदस्यता लें विकल्प, चैट मेन्यू और चैट में मौजूद लिंक, दोनों से उपलब्ध होता है. इससे उपयोगकर्ता, उस बातचीत की सदस्यता फिर से ले सकते हैं जिसकी सदस्यता उन्होंने छोड़ दी थी.
सदस्यता लें को चुनने पर, एक साथ दो कार्रवाइयां ट्रिगर होती हैं: Google Messages आपके एजेंट को देश के हिसाब से कीवर्ड भेजता है. उदाहरण के लिए, "START". साथ ही, RBM प्लैटफ़ॉर्म आपके वेबुक को SUBSCRIBE इवेंट भेजता है.
खास कीवर्ड, उपयोगकर्ता के फ़ोन नंबर के दो अक्षर वाले देश कोड से तय होता है. यहां दी गई टेबल में, हर उस देश के लिए कीवर्ड दिए गए हैं जहां यह सुविधा उपलब्ध है.
देश (देश का कोड) कीवर्ड की सदस्यता लें अमेरिका (US), भारत (IN), यूनाइटेड किंगडम (GB), जर्मनी (DE) शुरू करें स्पेन (ES), मेक्सिको (MX) ALTA फ़्रांस (FR) Démarrer ब्राज़ील (BR) começar
कारोबार के नियम
- इस बातचीत को मैनेज करने वाले आरबीएम पार्टनर के तौर पर, यह आपकी ज़िम्मेदारी है कि आप सदस्यता फिर से लेने के लिए उपयोगकर्ता के अनुरोध का पालन करें.
- फिर से सदस्यता लेने की सुविधा, हर तरह के मैसेज पर लागू होती है. इसमें प्रमोशन जैसे गैर-ज़रूरी कॉन्टेंट भी शामिल है.
- अगर कोई उपयोगकर्ता सदस्यता छोड़ने के बाद आपके कारोबार को मैसेज करता है, तो इसे सदस्यता फिर से लेने का अनुरोध माना जा सकता है.
- अगर कोई उपयोगकर्ता मैसेजिंग चैनल के बाहर (उदाहरण के लिए, आपकी वेबसाइट पर) फिर से सदस्यता लेता है, तो आरबीएम पार्टनर के तौर पर यह आपकी ज़िम्मेदारी है कि आप उसकी स्थिति को अपडेट करें और उसके हिसाब से मैसेज भेजना फिर से शुरू करें.
एजेंट से जनरेट हुए इवेंट
आपका एजेंट, लोगों के साथ बातचीत करने का अनुभव देने के लिए इवेंट भेजता है. इससे लोगों को यह भरोसा मिलता है कि आपका एजेंट उनके मैसेज के साथ इंटरैक्ट कर रहा है. उपयोगकर्ताओं को इवेंट, बातचीत में सूचनाओं के तौर पर दिखते हैं.
फ़ॉर्मैटिंग और मान विकल्पों के लिए, phones.agentEvents देखें.
एजेंट READ इवेंट भेजता है
उपयोगकर्ताओं के लिए, यह ईवेंट किसी विशिष्ट संदेश की पठन रसीद के रूप में दिखाई देता है. इससे उपयोगकर्ता को पता चलता है कि आरबीएम प्लेटफॉर्म ने उनका संदेश पहुंचा दिया है और एजेंट उस पर काम कर रहा है.
नीचे दिया गया कोड, मैच करने वाले messageId के साथ मैसेज के लिए READ इवेंट भेजता है.
cURL
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentEvents?eventId=EVENT_ID&agentId=AGENT_ID" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/rcs-business-messaging" \ -H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \ -d "{ 'eventType': 'READ', 'messageId': 'MESSAGE_ID' }"
Node.js
// Reference to RBM API helper const rbmApiHelper = require('@google/rcsbusinessmessaging'); // Send the device an event to indicate that messageId has been read rbmApiHelper.sendReadMessage('+12223334444', messageId);
Java
import com.google.rbm.RbmApiHelper; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(); // Send the device an event to indicate that messageId has been read rbmApiHelper.sendReadMessage(messageId, "+12223334444");
Python
# Reference to RBM Python client helper and messaging object structure from rcs_business_messaging import rbm_service # Send the device an event to indicate that message_id was read rbm_service.send_read_event('+12223334444', message_id)
C#
using RCSBusinessMessaging; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation, projectId); // Send the device an event to indicate that messageId has been read rbmApiHelper.SendReadMessage(messageId, "+12223334444");
एजेंट IS_TYPING इवेंट भेजता है
उपयोगकर्ताओं को यह इवेंट, टाइपिंग इंडिकेटर के तौर पर दिखता है. इससे उन्हें पता चलता है कि आपका एजेंट कोई मैसेज लिख रहा है. टाइपिंग इंडिकेटर कुछ समय (लगभग 20 सेकंड) के बाद या जब उपयोगकर्ता के डिवाइस को आपके एजेंट से कोई नया मैसेज मिलता है, तब बंद हो जाता है. आपका एजेंट, टाइपिंग इंडिकेटर के खत्म होने के टाइमर को रीसेट करने के लिए, कई IS_TYPING इवेंट भेज सकता है.
नीचे दिया गया कोड, IS_TYPING इवेंट भेजता है.
cURL
curl -X POST "https://REGION-rcsbusinessmessaging.googleapis.com/v1/phones/PHONE_NUMBER/agentEvents?eventId=EVENT_ID&agentId=AGENT_ID" \ -H "Content-Type: application/json" \ -H "User-Agent: curl/rcs-business-messaging" \ -H "`oauth2l header --json PATH_TO_SERVICE_ACCOUNT_KEY rcsbusinessmessaging`" \ -d "{ 'eventType': 'IS_TYPING', }"
Node.js
// Reference to RBM API helper const rbmApiHelper = require('@google/rcsbusinessmessaging'); // Send the device an event to indicate that the agent is typing rbmApiHelper.sendIsTypingMessage('+12223334444', function() { console.log('Typing event sent!'); });
Java
import com.google.rbm.RbmApiHelper; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(); // Send the device an event to indicate that the agent is typing rbmApiHelper.sendIsTypingMessage("+12223334444");
Python
# Reference to RBM Python client helper and messaging object structure from rcs_business_messaging import rbm_service # Send the device an event to indicate that the agent is typing rbm_service.send_is_typing_event('+12223334444')
C#
using RCSBusinessMessaging; … // Create an instance of the RBM API helper RbmApiHelper rbmApiHelper = new RbmApiHelper(credentialsFileLocation, projectId); // Send the device an event to indicate that the agent is typing rbmApiHelper.SendIsTypingMessage(messageId, "+12223334444");