इवेंट, सूचनाएं होती हैं. इन्हें आपका एजेंट भेज और पा सकता है. इवेंट तीन तरह के होते हैं:
- सर्वर से जनरेट किया गया: 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 |
किसी कैरियर पर निलंबित किया गया हो | टिप्पणी में, निलंबन की वजह बताई गई है. |
डेटा फ़ील्ड में, 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 |
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 Messages में RBM बातचीत की सदस्यता छोड़ सकता है.
UNSUBSCRIBE
इवेंट से पता चलता है कि उपयोगकर्ता ने आपके एजेंट और उससे जुड़े कारोबार के साथ बातचीत से ऑप्ट आउट कर लिया है. यहां JSON पेलोड का एक उदाहरण दिया गया है:
{ "senderPhoneNumber": "PHONE_NUMBER", "eventType": "UNSUBSCRIBE", "eventId": "EVENT_ID", "agentId": "AGENT_ID" }
यह कैसे काम करता है
- चैट मेन्यू में, सदस्यता छोड़ें विकल्प हमेशा उपलब्ध होता है. प्रमोशन करने और कई कामों के लिए इस्तेमाल किए जाने वाले एजेंट के लिए, यह विकल्प सीधे तौर पर चैट में भी दिखता है. हालांकि, यह विकल्प तब दिखता है, जब उपयोगकर्ता ने कुछ मैसेज नहीं पढ़े हों. यह विकल्प दिखने से जुड़े नियम, देश के हिसाब से अलग-अलग होते हैं.
सदस्यता छोड़ें को चुनने पर, एक साथ दो कार्रवाइयां होती हैं: Google Messages आपके एजेंट को देश के हिसाब से कीवर्ड (उदाहरण के लिए, "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
इवेंट भेजता है
उपयोगकर्ताओं को यह इवेंट, किसी खास मैसेज के लिए पढ़े जाने की रसीद के तौर पर दिखता है. इससे उपयोगकर्ता को पता चलता है कि RBM प्लैटफ़ॉर्म ने उसका मैसेज डिलीवर कर दिया है और एजेंट उसे प्रोसेस कर रहा है.
नीचे दिया गया कोड, मैच करने वाले 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");