SMS टेम्प्लेट
टेम्प्लेट एक पुन: उपयोग योग्य संदेश है जिसे आप संदर्भ द्वारा भेजते हैं, और एक बार का सत्यापन कोड या ऑर्डर नंबर जैसे मान देते हैं। Bird के बिल्ट-इन system टेम्प्लेट प्रमाणीकरण और लेन-देन संबंधी संदेशों को कवर करते हैं। वर्कस्पेस टेम्प्लेट ऑथरिंग API प्रीव्यू में है; डैशबोर्ड बिल्ट-इन कैटलॉग दिखाता रहता है।
टेम्प्लेट वह संदेश श्रेणी प्रदान करता है जिसका उपयोग गंतव्य अनुपालन जाँच के लिए होता है। बिल्ट-इन टेम्प्लेट गंतव्य के लिए सेंडर भी चुनते हैं, इसलिए आप from को छोड़ सकते हैं। वर्कस्पेस टेम्प्लेट के लिए आपका अपना सेंडर ज़रूरी है, जैसे फ़्री-टेक्स्ट सेंड में होता है।
डैशबोर्ड में टेम्प्लेट ब्राउज़ करना
SMS के अंतर्गत Templates पेज बिल्ट-इन टेम्प्लेट की सूची दिखाता है। नाम से खोजें या स्टेटस और श्रेणी से फ़िल्टर करें।

हर पंक्ति वे फ़ील्ड दिखाती है जो टेम्प्लेट चुनने और भेजने के लिए ज़रूरी हैं:
- Name: टेम्प्लेट का डिस्प्ले नाम और उसका slug (उदाहरण के लिए bird_order_confirmation)। slug वह हैंडल है जो आप भेजते समय पास करते हैं; यह बनाते समय तय हो जाता है।
- Status: बिल्ट-इन टेम्प्लेट Active होते हैं और भेजने के लिए तैयार होते हैं। वर्कस्पेस टेम्प्लेट प्रकाशित होने तक Draft रहते हैं, फिर Active हो जाते हैं। साझा स्टेटस फ़ील्ड को एक ओपन सेट मानें।
- Category: टेम्प्लेट से भेजे गए संदेशों पर लागू सामग्री वर्गीकरण (transactional, marketing, या authentication)।
- Language: टेम्प्लेट में उपलब्ध भाषाएँ, BCP 47 टैग के रूप में। जब कोई टेम्प्लेट कई भाषाओं में स्थानीयकृत होता है, तो पहली कुछ चिप्स के रूप में दिखती हैं और शेष +N ओवरफ़्लो में।
- Scope: Bird के बिल्ट-इन टेम्प्लेट के लिए System। Workspace उन टेम्प्लेट की पहचान करता है जिन्हें आप API प्रीव्यू के ज़रिए बनाते हैं।
- Updated: टेम्प्लेट में आखिरी बदलाव कब हुआ। बिल्ट-इन टेम्प्लेट कोई तारीख़ नहीं दिखाते।
टेम्प्लेट में क्या होता है
नाम, श्रेणी और भाषाओं के साथ, हर टेम्प्लेट उन variables को परिभाषित करता है जो भेजते समय भरे जाते हैं। एक वेरिएबल में key, type, required फ़्लैग, और एक मानव-पठनीय constraint होता है। बिल्ट-इन टेम्प्लेट में टाइप्ड स्लॉट होते हैं; वर्कस्पेस टेम्प्लेट जेनेरिक text स्लॉट इनफ़र करते हैं और स्केलर पैरामीटर मान स्वीकार करते हैं। एक sensitive वेरिएबल को संग्रहीत संदेश सामग्री में बदल दिया जाता है। ट्रांसपोर्ट क्यू अभी भी डिलीवरी के लिए आवश्यक टेक्स्ट रखती हैं। हर आवश्यक वेरिएबल दें और कोई अघोषित key न दें।
एक टेम्प्लेट एक या अधिक भाषाओं में उपलब्ध होता है, और जब सेंड में कोई भाषा निर्दिष्ट नहीं होती तो उसका default_language मिलता है। ऐसी भाषा माँगें जो टेम्प्लेट में नहीं है तो Bird फ़ॉलबैक करता है: पहले उसी भाषा के व्यापक रूप पर, फिर डिफ़ॉल्ट भाषा पर, क्योंकि SMS टेम्प्लेट on_missing_language को fallback पर डिफ़ॉल्ट करते हैं। बिल्ट-इन टेम्प्लेट language_source_required: false का उपयोग करते हैं। वर्कस्पेस टेम्प्लेट भाषा अनिवार्य कर सकते हैं या on_missing_language: fail सेट कर सकते हैं; ये नीतियाँ तुरंत लागू होती हैं, जबकि सामग्री और डिफ़ॉल्ट-भाषा बदलाव प्रकाशन पर लागू होते हैं।
API से टेम्प्लेट सूचीबद्ध करना
GET /v1/sms/templates टेम्प्लेट सारांशों का एक कर्सर-पेजिनेटेड पेज लौटाता है। next_cursor को starting_after का उपयोग करके तब तक फ़ॉलो करें जब तक वह null न हो; एक पेज पूरा कैटलॉग नहीं है। टेम्प्लेट पढ़ने के लिए sms_management स्कोप वाली API key चाहिए, जो सेंड में उपयोग होने वाले sms स्कोप से अलग है। scope, category, status, या language से फ़िल्टर करें, या q से खोजें:
for await (const tpl of bird.smsTemplates.list({ scope: "system" })) {
console.log(tpl.id, tpl.slug);
}for template in client.sms_templates.list(scope="system"):
print(template.id, template.slug)for tpl, err := range client.SmsTemplates.List(context.Background(), bird.SMSTemplateListParams{
Scope: "system",
}) {
if err != nil {
log.Fatal(err)
}
fmt.Println(tpl.Id, *tpl.Slug)
}foreach ($bird->smsTemplates->list(['scope' => 'system']) as $template) {
echo $template->getId(), ' ', $template->getSlug(), "\n";
}bird sms templates listcurl "https://eu1.platform.bird.com/v1/sms/templates?category=authentication" \
-H "Authorization: Bearer bk_eu1_..."टेम्प्लेट सारांश में पहचान, श्रेणी, स्टेटस, उपलब्ध भाषाएँ, और ड्राफ़्ट/लाइव वर्शन संदर्भ होते हैं। इनमें सोर्स टेक्स्ट और वेरिएबल नहीं होते। GET /v1/sms/templates/{template_ref} से slug या ID द्वारा टेम्प्लेट प्राप्त करें। संपादन योग्य वर्कस्पेस सामग्री देखने के लिए इसके draft_version_id का उपयोग करें, या भेजने में उपयोग होने वाली सामग्री देखने के लिए इसके live_version_id का। एक नए वर्कस्पेस टेम्प्लेट का प्रकाशन तक कोई लाइव वर्शन नहीं होता।
चयनित वर्शन को GET /v1/sms/templates/{template_ref}/versions/{version_id} के ज़रिए पढ़ें। रिस्पॉन्स में वेरिएबल और भाषा-कुंजी वाला सामग्री मैप होता है। एक भाषा प्राप्त करने के लिए /languages/{language} जोड़ें। सूची का language फ़िल्टर प्रकाशित सामग्री से मिलान करता है; केवल ड्राफ़्ट वाली भाषाएँ मिलान नहीं करतीं।
बिल्ट-इन टेम्प्लेट एक रीड-ओनली वर्शन दिखाते हैं। इसकी स्थिर ID कैटलॉग एंट्री की पहचान करती है; इसका कंटेंट हैश सोर्स अपडेट को अलग करता है। प्रकाशित वर्कस्पेस वर्शन अपरिवर्तनीय इतिहास सुरक्षित रखते हैं। वर्शन सूचियाँ भी कर्सर पेजिनेशन का उपयोग करती हैं और सोर्स टेक्स्ट शामिल नहीं करतीं।
API प्रीव्यू में वर्कस्पेस ऑथरिंग
sms_management राइट एक्सेस वाली API key का उपयोग करें। JSON रिक्वेस्ट अपनी key के रीजनल API होस्ट पर Authorization: Bearer <API_KEY> और Content-Type: application/json के साथ भेजें। हर म्यूटेशन को अपना Idempotency-Key दें; उस key का दोबारा उपयोग केवल वही रिक्वेस्ट फिर से प्रयास करते समय करें।
- POST /v1/sms/templates और {"slug":"order-shipped","category":"transactional"} के साथ टेम्प्लेट बनाएँ। 201 रिस्पॉन्स में id और draft_version_id होते हैं; टेम्प्लेट एक खाली अंग्रेज़ी ड्राफ़्ट से शुरू होता है। अगली कॉल के लिए दोनों ID सहेज लें।
- PUT /v1/sms/templates/{id}/versions/{draft_version_id}/languages/en और {"text":"Your order {{ order_number }} has shipped."} के साथ टेक्स्ट सहेजें। 200 रिस्पॉन्स में draft_revision शामिल होता है।
- POST /v1/sms/templates/{id}/versions/{draft_version_id}/submit से प्रकाशित करें, उस रिवीज़न को {"expected_revision":1} के रूप में पास करें (1 को लौटाए गए मान से बदलें)। valid: true के साथ 200 रिस्पॉन्स प्रकाशित वर्शन की पहचान करता है। 422 अमान्य ड्राफ़्ट सामग्री की सूचना देता है; लौटाई गई भाषा समस्याओं को ठीक करें और नई idempotency key के साथ दोबारा सबमिट करें।
प्रकाशन के लिए गैर-रिक्त टेक्स्ट और हर भाषा में समान वेरिएबल आवश्यक हैं। यह प्रदाता अनुमोदन के बिना तुरंत प्रभावी होता है। API प्रीव्यू, डुप्लिकेशन, ड्राफ़्ट को लाइव सामग्री पर रीसेट करना, और किसी प्रकाशित वर्शन पर रोलबैक भी सपोर्ट करता है। डैशबोर्ड एडिटिंग उपलब्ध नहीं है।
टेम्प्लेट सेटिंग अपडेट करने या रोलबैक करने से पहले वर्तमान रिवीज़न पढ़ें। भाषा सेव में एक रिवीज़न गार्ड भी शामिल किया जा सकता है; पुराना गार्ड 409 लौटाता है। प्रीव्यू चयनित वर्शन और पैरामीटर का उपयोग करके भेजने से पहले रेंडर किया गया टेक्स्ट, रिज़ॉल्व की गई भाषा, एन्कोडिंग, और सेगमेंट काउंट रिपोर्ट करता है।
टेम्प्लेट से भेजना
सेंड के template ऑब्जेक्ट को text के बजाय सेट करें। category और media_urls छोड़ दें। नीचे दिए गए बिल्ट-इन टेम्प्लेट के लिए from भी छोड़ दें। वर्कस्पेस टेम्प्लेट के लिए from ज़रूरी है और उसका एक प्रकाशित वर्शन होना चाहिए।
बिल्ट-इन प्रमाणीकरण टेम्प्लेट साझा सेंडर ब्रांड भी चुनता है: bird_otp_verification_ttl Authifly का उपयोग करता है, जबकि bird_otp_verification_ttl_bird_verify Bird Verify का उपयोग करता है। गंतव्य तय करता है कि सेंडर ब्रांड नाम, शॉर्ट कोड, या फ़ोन नंबर के रूप में दिखाई दे।
बिल्ट-इन टेम्प्लेट भेजें:
await bird.sms.send({
to: "+14155550100",
template: { slug: "bird_otp_verification", parameters: { code: "123456" } },
});client.sms.send(
to="+14155550100",
template="bird_otp_verification",
parameters={"code": "123456"},
)msg, err := client.Sms.Send(context.Background(), bird.SmsSendParams{
To: "+14155550100",
Template: "bird_otp_verification",
Parameters: map[string]any{"code": "123456"},
})
if err != nil {
log.Fatal(err)
}
fmt.Println(msg.Id)$message = $bird->sms->send(
to: '+14155550100',
template: 'bird_otp_verification',
parameters: ['code' => '123456'],
);
echo $message->getId(), ' ', $message->getStatus();bird sms send \
--parameters '{"code":"123456"}' \
--template bird_otp_verification \
--to +14155550100curl -X POST "https://eu1.platform.bird.com/v1/sms/messages" \
-H "Authorization: Bearer bk_eu1_..." \
-H "Content-Type: application/json" \
-d '{
"to": "+14155550100",
"template": {
"slug": "bird_otp_verification_ttl",
"language": "en",
"parameters": { "code": "481920", "ttl": "10" }
}
}'slug कैटलॉग से टेम्प्लेट का हैंडल है (आप इसके बजाय id से भी टेम्प्लेट की पहचान कर सकते हैं)। language स्थानीयकृत बॉडी चुनता है; टेम्प्लेट की डिफ़ॉल्ट भाषा के लिए इसे छोड़ दें। parameters टेम्प्लेट के हर वेरिएबल के लिए वेरिएबल नाम की key से एक मान प्रदान करता है। कोई आवश्यक वेरिएबल छूटने, अघोषित key, वेरिएबल की बाधा से मेल न खाने वाला मान, या सीरियलाइज़्ड 16 KB से बड़ा parameters ऑब्जेक्ट 422 के साथ अस्वीकार कर दिया जाता है।
202 रिस्पॉन्स में चयनित from, टेम्प्लेट श्रेणी, टेम्प्लेट और वर्शन ID, सोर्स हैश, और अनुरोधित/रिज़ॉल्व की गई भाषाएँ शामिल होती हैं। प्रमाणीकरण संदेश टेक्स्ट **REDACTED** के रूप में लौटाया जाता है। स्वीकृत संदेश रेंडर की गई सामग्री और चयनित वर्शन को बनाए रखते हैं, भले ही आप बाद में प्रकाशित करें, रोलबैक करें, या टेम्प्लेट हटाएँ।
सेंड से जुड़ी बाकी सब चीज़ें (प्राप्तकर्ता, टैग, मेटाडेटा, गंतव्य अनुमति सूची, और एसिंक 202 मॉडल) ठीक वैसे ही काम करती हैं जैसे फ़्री-टेक्स्ट सेंड में।
अगले कदम
- SMS भेजना: सेंड पेलोड में template फ़ील्ड जोड़ें।
- SMS लॉग: भेजा गया संदेश खोजें और उसके जीवनचक्र को फ़ॉलो करें।
- इवेंट्स: हर संदेश के डिलीवरी इवेंट प्राप्त करें।
- टेम्पलेट के साथ SMS भेजना: एक वीडियो जो टर्मिनल से पूर्व-स्वीकृत टेम्प्लेट में से एक भेजता है
संबंधित संसाधन
इस विषय के लिए डॉक्यूमेंटेशन, गाइड और उदाहरणों के साथ आगे बढ़ें। संसाधन अंग्रेज़ी में हैं।
टूल का उपयोग करेंPreview message segmentsक्षमता जानेंSMS content and templatesलर्निंग पाथ फ़ॉलो करेंBuild your first integration
अभ्यास करें और इम्प्लीमेंटेशन ब्रीफ़ पाएँ