Bird Connectivity Platform से SMS माइग्रेट करें
यह पेज rest.messagebird.com पर मौजूद Bird Connectivity Platform API को, जिसे आप शायद अब भी MessageBird API के नाम से जानते हैं, Bird से मैप करता है। मुख्य माइग्रेशन गाइड का क्रम से पालन करें और चरण 3, 4 और 5 के लिए इन मैपिंग का उपयोग करें।
दोनों प्लेटफ़ॉर्म Bird के हैं, और बदलने वाला हिस्सा API है। तीन अंतर हर कॉल पर असर डालते हैं। अनुरोध एक वैश्विक होस्ट के बजाय आपके क्षेत्रीय होस्ट, https://us1.platform.bird.com या https://eu1.platform.bird.com, पर जाते हैं। प्रमाणीकरण Authorization: AccessKey के बजाय bearer API कुंजी (Authorization: Bearer bk_us1_…) से होता है। और भेजना एसिंक्रोनस है: POST /v1/sms/messages संदेश को कतार में डालकर 202 Accepted लौटाता है, जबकि Connectivity Platform हर प्राप्तकर्ता की स्थिति के साथ संदेश ऑब्जेक्ट लौटाता था।
इसे अपने एजेंट को सौंपें
इस ब्रीफ़ का उपयोग अपने कोडिंग एजेंट में करें। यह खोजबीन से शुरू होता है और किसी भी प्रोडक्शन बदलाव से पहले समीक्षा योग्य माइग्रेशन योजना बनाता है।
Help me migrate my SMS integration from Bird Connectivity Platform to Bird.
1. Inspect this repository's sends, senders, callbacks, schedules, templates, opt-outs and tests. List the traffic and behavior that must survive the migration.
2. Read the Markdown guides at https://bird.com/docs/guides/sms/migrate/connectivity-platform.md and https://bird.com/docs/guides/sms/migrate.md. Use an existing authenticated Bird MCP or CLI connection. If neither is available, follow https://bird.com/docs/ai/set-up-your-agent.md. Discover the actual operations; do not invent commands or ask me to paste credentials into chat.
3. Prepare the code changes, sender/destination requirements, consent migration, webhook verification and rollout/rollback plan. Preserve the scope of each customer's preferences, including requests outside SMS replies. Separate API batches from audience broadcasts and preserve any behavior that has no direct endpoint equivalent.
4. Show me the exact affected resources, destinations, test volume and known costs before an action that sends messages, spends money, registers or changes a sender, or moves production traffic. Require explicit human authorization for each paid submission or production change. Name one-off 10DLC registration and resubmission fees before requesting approval. An existing explicit approval for that exact action is sufficient; broad migration approval is not. Simulated SMS destinations are billable and still require authorization.
5. If I am keeping Connectivity Platform numbers, prepare the human support port request and obtain authorization to send it. Read bird support-tickets create --help, then use the available CLI or MCP support operation with the reviewed number list and requirements. Return the ticket ID and follow the reply; support arranges the port on its own schedule, separately from the code cutover.
6. Run local and intercepted tests first. When authorized, perform the agreed bounded integration tests, inspect accepted and final outcomes separately, and report failures or uncertainty. Do not claim a delivery receipt proves reading or that request idempotency guarantees exactly-once delivery.
7. Keep production cutover and retiring the old provider as explicit steps in the approved rollout. Finish with the diff, evidence, unresolved requirements and the next action.भेजने वाली कॉल को मैप करें
| यह क्या करता है | Connectivity Platform | Bird |
|---|---|---|
| प्राप्तकर्ता | recipients (अधिकतम 50) | to, हर अनुरोध में एक |
| प्रेषक | originator | from |
| संदेश का मुख्य भाग | body | text |
| उद्देश्य | (कोई नहीं) | category, फ़्री टेक्स्ट पर आवश्यक |
| एन्कोडिंग | datacoding | अपने आप पहचाना जाता है |
| लिप्यंतरण | (कोई नहीं) | options.smart_encoding (डिफ़ॉल्ट false) |
| क्लाइंट संदर्भ | reference | metadata, या tags जब आप इस पर फ़िल्टर करते हैं |
| स्टेटस रिपोर्ट | reportUrl | नीचे दिए गए डिलीवरी इवेंट के लिए सब्सक्राइब किया गया वर्कस्पेस वेबहुक |
| सुरक्षित फिर से प्रयास | (कोई नहीं) | Idempotency-Key हेडर |
| शेड्यूलिंग | scheduledDatetime | कोई समकक्ष नहीं: scheduled_at अस्वीकार कर दिया जाता है |
| वैधता अवधि | validity | कोई समकक्ष नहीं: validity_period अस्वीकार कर दिया जाता है |
| रूट चयन | gateway | रूट Bird चुनता है |
| मैसेज क्लास | mclass | कोई समकक्ष नहीं |
| बाइनरी और फ़्लैश | type, typeDetails | केवल टेक्स्ट |
अस्वीकार किए जाने वाले दोनों फ़ील्ड आरक्षित हैं और इनका उत्तर 422 SMSUnsupportedFeature होता है।
पोर्टिंग से जुड़ी बातें:
- प्राप्तकर्ताओं की array हर प्राप्तकर्ता के लिए एक कॉल बन जाती है। 50 प्राप्तकर्ताओं वाली Connectivity Platform कॉल 50 अलग सेंड बन जाती है, या स्वतंत्र संदेशों का एक बैच। बैच एक ही बॉडी को कई लोगों तक नहीं फैलाता: हर एंट्री का अपना प्राप्तकर्ता, प्रेषक और टेक्स्ट होता है।
datacodingका कोई समकक्ष नहीं है, और यह जानबूझकर है। Bird बॉडी से एन्कोडिंग पहचानता है और संदेश पर सेगमेंट की संख्या बताता है। अगर आप संदेशों को GSM-7 के भीतर रखने के लिएdatacoding: autoसेट करते थे, तो सबसे नज़दीकी व्यवहारoptions.smart_encodingहै, जो Bird की प्रलेखित प्रतिस्थापन तालिका लागू करता है। यह सामान्य ट्रांसलिटरेटर नहीं है; असमर्थित वर्णों के लिए फिर भी Unicode एन्कोडिंग की ज़रूरत पड़ सकती है।referenceदो फ़ील्ड में बँट जाता है। आंतरिक पहचानकर्ताmetadataमें रखें, जो हर वेबहुक इवेंट पर वापस भेजा जाता है। जिन कम-कार्डिनैलिटी लेबल से आप एनालिटिक्स को फ़िल्टर और विभाजित करना चाहते हैं, उनके लिएtagsका उपयोग करें।- फ़्लैश संदेश, बाइनरी पेलोड और UDH concatenation पोर्ट नहीं होते। अगर आप
mclassयाtypeDetailsपर निर्भर हैं, तो कटओवर की योजना बनाने से पहले ही सपोर्ट से बात करें, बाद में नहीं। - क्या आप Connectivity Platform Verify API का भी उपयोग करते हैं? उसका पोर्ट एक अलग काम है और उसकी अपनी गाइड है: किसी अन्य प्रदाता से Verify माइग्रेट करें देखें।
ऑप्ट-आउट साथ ले जाएँ
Connectivity Platform में स्टॉप-कीवर्ड संभालने की ज़िम्मेदारी आपकी थी, चाहे आपने इसे Flows में बनाया हो या इनबाउंड संदेशों के आधार पर अपने एप्लिकेशन में। Bird यह काम खुद करता है: समर्थित देशों में यह आपके नंबरों पर stop, start और help कीवर्ड पहचानता है, सप्रेशन दर्ज करता है और हर भेजे गए संदेश पर उसे लागू करता है। किसी पुराने हैंडलर को तभी हटाएँ जब आप पुष्टि कर लें कि Bird का कैटलॉग उसके व्यवहार को कवर करता है और आपकी व्यापक प्राथमिकता प्रक्रिया अब भी काम करती है।
सूची को हटाया नहीं जाता। आप जो भी सूची रखते हैं, उसे सब्सक्राइबर नंबर और उस ओरिजिनेटर के जोड़ों के रूप में एक्सपोर्ट करें जिससे उन्होंने संदेश रुकवाए थे। फिर पहला प्रोडक्शन संदेश भेजने से पहले उसे सप्रेशन लूप के ज़रिए इंपोर्ट करें। अगर आपने ऑप्ट-आउट करने वाले सब्सक्राइबरों की केवल एक वैश्विक सूची रखी थी, तो हर सब्सक्राइबर को हर उस ओरिजिनेटर के लिए एक बार इंपोर्ट करें जिससे आप अब भी संदेश भेजते हैं।
स्टेटस रिपोर्ट का रूपांतरण करें
इस तालिका का उपयोग लाइफ़साइकल अवधारणाओं की तुलना के लिए करें, इवेंट के नाम यांत्रिक रूप से बदलने के लिए नहीं। Bird रिपोर्ट किए गए स्टेटस और कारण के आधार पर विफलता इवेंट चुनता है। अस्वीकृत API अनुरोध से कोई संदेश नहीं बनता। स्वीकृति के बाद अस्वीकृति होने पर sms.rejected मिल सकता है, कैरियर द्वारा अस्वीकृति भी इसमें शामिल है। डिलीवरी का प्रमाण न होने पर स्थिति अज्ञात रहती है। अपने सामान्यीकृत परिणाम के साथ प्रदाता का मूल स्टेटस और कोड भी सुरक्षित रखें।
| परिणाम | Connectivity Platform | Bird |
|---|---|---|
| API द्वारा स्वीकार किया गया | (सिंक्रोनस) | sms.accepted |
| कैरियर को सौंपा गया | sent, buffered | sms.sent |
| कैरियर ने डिलीवरी की पुष्टि की | delivered | sms.delivered |
| डिलीवरी विफल रही | delivery_failed | sms.failed |
| वैधता अवधि समाप्त हो गई | expired | sms.expired |
| स्वीकार करते समय अनुरोध अस्वीकृत | अनुरोध त्रुटि | HTTP त्रुटि; कोई संदेश या इवेंट नहीं |
| भेजे जाने की प्रतीक्षा में | scheduled | अभी कोई समकक्ष नहीं |
शब्दावली से ज़्यादा डिलीवरी का तरीका बदलता है:
- हस्ताक्षरित JSON पोस्ट,
reportUrlGET कॉलबैक की जगह लेते हैं। स्टेटस रिपोर्टGETअनुरोधों के रूप में आती थीं, जिनमें परिणाम क्वेरी स्ट्रिंग में होता था (status,statusReason,statusErrorCode,mccmnc,price[amount])। Bird आपके वर्कस्पेस द्वारा पंजीकृत एंडपॉइंट पर JSON इवेंटPOSTकरता है, जो Standard Webhooks के अनुसार हस्ताक्षरित होता है। हैंडलर को सिर्फ़ URL बदलकर नहीं, बल्कि दोबारा लिखना होगा। - सहसंबंध अब
referenceपर निर्भर नहीं है। स्टेटस रिपोर्ट तभी उपयोगी होती थी जब आपने रेफ़रेंस सेट किया हो; Bird इवेंट में हमेशाsms_id, दोनों नंबर, और आपके लौटाए गएmetadataऔरtagsहोते हैं। - फिर से प्रयास करने का व्यवहार अलग है। Connectivity Platform विफल रिपोर्ट के लिए 10 बार तक फिर से प्रयास करता था। Bird की डिलीवरी कम से कम एक बार होती है और क्रम में नहीं होती, इसलिए
webhook-idहेडर के आधार पर डुप्लिकेट हटाएँ और पेलोड केtimestampके आधार पर क्रम लगाएँ। - लागत का मिलान संदेश और बिलिंग के ज़रिए करें। Connectivity Platform की रिपोर्ट में
price[amount]औरprice[currency]होते थे। संदेश की दर्ज लागतGET /v1/sms/messages/{id}से पढ़ें और शुल्कों का मिलान बिलिंग से करें। Stats API डिलीवरी मेट्रिक्स के लिए है, आधिकारिक बिलिंग कुल के लिए नहीं।
इनबाउंड संदेश भी इसी तरह काम करते हैं: हर नंबर को किसी URL पर पॉइंट करने के बजाय वर्कस्पेस के लिए एक बार sms.received की सदस्यता लें।
कटओवर करें
गंतव्य, प्रेषक और ट्रैफ़िक रैंप प्रदाता पर निर्भर नहीं हैं और मुख्य गाइड में शामिल हैं। आपके ओरिजिनेटर वह विषय हैं जिसे जल्दी उठाना चाहिए। अल्फ़ान्यूमेरिक प्रेषक ID यहाँ फिर से बनाए जाते हैं, और जहाँ देश इसकी माँग करता है, वहाँ फिर से पंजीकृत किए जाते हैं। Connectivity Platform पर आपके नंबर पोर्ट के ज़रिए स्थानांतरित होते हैं, जिसकी व्यवस्था सपोर्ट करता है। यह कोई सेटिंग नहीं है जिसे आप बस बदल दें।
अगले कदम
-
Bird SMS देखें: प्रोडक्ट वर्कफ़्लो और इम्प्लीमेंटेशन के तरीके
-
SMS भेजना: वह पेलोड, जिस पर आप पोर्ट कर रहे हैं, पूरे विवरण के साथ
-
ऑप्ट-आउट और कीवर्ड: Bird आपकी ओर से किन संदेशों का जवाब देता है, और सप्रेशन कैसे प्रबंधित करें
-
SMS इवेंट: वह इवेंट शब्दावली, जिस पर आपका स्टेटस हैंडलर जाता है
-
वेबहुक और इवेंट: एंडपॉइंट सेटअप और Standard Webhooks सत्यापन
संबंधित संसाधन
इस विषय के लिए दस्तावेज़, गाइड और उदाहरणों के साथ आगे बढ़ें।