WhatsApp टेम्पलेट
व्यवसाय की ओर से शुरू किए गए WhatsApp संदेश पहले से स्वीकृत टेम्पलेट का उपयोग करते हैं। टेम्पलेट में निश्चित टेक्स्ट और वेरिएबल होते हैं, इसलिए भेजते समय केवल OTP कोड या ऑर्डर नंबर जैसे मान देने होते हैं।
Bird एक प्रबंधित कैटलॉग देता है, उसकी सामग्री WhatsApp के साथ पंजीकृत करता है और उसे Bird के अपने नंबरों से भेजता है; इसके स्लग bird_ से शुरू होते हैं। जिस वर्कस्पेस ने अपना नंबर जोड़ा है, वह अपने WhatsApp Business Account पर टेम्पलेट भी बना सकता है। Approved templates पेज वे सभी टेम्पलेट दिखाता है जिन्हें वर्कस्पेस भेज सकता है, और यह भी कि हर टेम्पलेट कैसा दिखता है।

डैशबोर्ड में टेम्पलेट देखना
WhatsApp > Approved templates पर जाकर Approved templates खोलें। Your templates में वे टेम्पलेट होते हैं जिन्हें इस वर्कस्पेस ने बनाया है; All templates में Bird द्वारा प्रबंधित कैटलॉग भी जुड़ जाता है। नाम से खोजें या स्थिति और श्रेणी से फ़िल्टर करें, और फ़िल्टर के पास वाले टॉगल से कार्ड ग्रिड और सूची दृश्य के बीच बदलें।
सूची दृश्य में हर पंक्ति वे फ़ील्ड दिखाती है जिनकी ज़रूरत आपको टेम्पलेट चुनने और भेजने के लिए होती है:
- Status: टेम्पलेट कुल मिलाकर भेजा जा सकता है या नहीं। प्रबंधित कैटलॉग के टेम्पलेट
activeदिखाते हैं; आपका अपना टेम्पलेट अपनी स्वीकृति की स्थिति दिखाता है। ज़रूरी भाषा उपलब्ध है या नहीं, यह पक्का करने के लिए भाषा सूची देखें। - Name: प्रदर्शित नाम, जिसके नीचे टेम्पलेट का
slugहोता है। भेजते समयslugका उपयोग करें। - Languages: वे भाषाएँ जिनमें टेम्पलेट पंजीकृत है, जैसे अंग्रेज़ी और डच।
- Category:
authentication,utilityयाmarketing। श्रेणी तय करती है कि WhatsApp संदेश के साथ कैसा व्यवहार करता है, प्रबंधित टेम्पलेट किस Bird नंबर से भेजा जाता है, और गंतव्य देश के साथ मिलकर उसकी कीमत क्या होगी। - WABA: कैटलॉग टेम्पलेट के लिए Bird-managed। आपका अपना टेम्पलेट उस WhatsApp Business Account को दिखाता है जिसमें वह रखा है, और केवल उसी खाते के नंबर से भेजा जाता है।
- Updated: टेम्पलेट में आखिरी बार कब बदलाव हुआ।
टेम्पलेट का विवरण खोलने के लिए किसी पंक्ति पर क्लिक करें।
टेम्पलेट में क्या होता है
विवरण दृश्य संदेश का मुख्य भाग, वेरिएबल और बटन WhatsApp जैसे पूर्वावलोकन में दिखाता है।
विवरण में POST /v1/whatsapp/messages के लिए एक cURL उदाहरण भी होता है, जिसमें क्षेत्रीय होस्ट और टेम्पलेट के उदाहरण मान इस्तेमाल होते हैं। भेजने से पहले API कुंजी, प्राप्तकर्ता और वेरिएबल के मान बदल दें।
यह उदाहरण देखने का सबसे तेज़ तरीका है कि भेजे जाने वाले अनुरोध का ढाँचा कैसा होना चाहिए। API के ज़रिए यही सामग्री टेम्पलेट के संस्करण से मिलती है (टेम्पलेट की सामग्री पढ़ना)।
API से टेम्पलेट की सूची पाना
GET /v1/whatsapp/templates कर्सर-आधारित पेजिनेशन वाला कैटलॉग लौटाता है। इस अनुरोध के लिए whatsapp_management पढ़ने की अनुमति ज़रूरी है। HTTP या SDK की रॉ-अनुरोध विधि इस्तेमाल करें।
type Templates = { data: Array<{ slug: string; status: string }> };
const templates = await bird.request<Templates>({
method: "GET",
path: "/v1/whatsapp/templates",
});templates = client.get("/v1/whatsapp/templates")var out struct {
Data []struct {
Slug string `json:"slug"`
Status string `json:"status"`
} `json:"data"`
}
if err := client.Get(context.Background(), "/v1/whatsapp/templates", &out); err != nil {
log.Fatal(err)
}$templates = $bird->get('/v1/whatsapp/templates');curl https://us1.platform.bird.com/v1/whatsapp/templates \
-H "Authorization: Bearer $BIRD_API_KEY"हर प्रविष्टि टेम्पलेट, उसकी श्रेणी और उपलब्ध भाषाओं की पहचान बताती है। संदेश की सामग्री के लिए लाइव संस्करण अलग से पढ़ें।
{
"available_languages": ["en", "es", "pt-BR", "..."],
"category": "authentication",
"default_language": "en",
"description": "One-time passcode",
"id": "wat_01ky4x8e4genzb7way45txfkm1",
"languages": {
"en": { "status": "approved" },
"es": { "status": "approved" },
"pt-BR": { "status": "approved" },
"...": "..."
},
"name": "bird_otp",
"on_missing_language": "fail",
"scope": "system",
"slug": "bird_otp",
"status": "active"
}उदाहरण प्रतिक्रिया में bird_otp भाषा सूचियाँ संक्षिप्त की गई हैं।
वे फ़ील्ड जिन पर भेजना निर्भर करता है:
slug: भेजते समय इस्तेमाल होने वाला हैंडल। प्रबंधित टेम्पलेट के स्लगbird_से शुरू होते हैं, जो उन्हीं के लिए आरक्षित उपसर्ग है।waba: वह WhatsApp Business Account जिसमें Meta पर टेम्पलेट की भाषाएँ रखी हैं, और वही खाता जिससे भेजने वाले नंबर का जुड़ा होना ज़रूरी है। प्रबंधित टेम्पलेट पर यह मौजूद नहीं होता, क्योंकि उसका खाता Bird प्रबंधित करता है।available_languages: वे भाषाएँ जिनमें भेजा जा सकता है। रोकी गई, अक्षम, संग्रहीत या सीमित भाषा इस सूची से हट जाती है।on_missing_language: अनुरोधित भाषा उपलब्ध न होने पर क्या होता है। Bird द्वारा प्रबंधित WhatsApp टेम्पलेटfailका उपयोग करते हैं, जो किसी दूसरी भाषा को लगाने के बजाय भेजने को अस्वीकार कर देता है।
स्थिति और भाषा की स्थिति
Bird द्वारा प्रबंधित टेम्पलेट status: active बताते हैं। languages.<tag>.status किसी एक भाषा के लिए WhatsApp की स्थिति बताता है, जैसे approved, paused या disabled।
सक्रिय टेम्पलेट में भी कोई भाषा अनुपलब्ध हो सकती है। कोई भाषा भेजी जा सकती है या नहीं, यह तय करने के लिए available_languages का उपयोग करें।
टेम्पलेट की सामग्री पढ़ना
संदेश की सामग्री लाइव संस्करण की किसी भाषा से जुड़ी होती है। टेम्पलेट से live_version_id पढ़ें, फिर ज़रूरी भाषा का अनुरोध करें:
const language = await bird.request({
method: "GET",
path: "/v1/whatsapp/templates/bird_order_confirmation/versions/{version_id}/languages/en",
});language = client.get(
"/v1/whatsapp/templates/bird_order_confirmation/versions/{version_id}/languages/en"
)var language map[string]any
if err := client.Get(context.Background(),
"/v1/whatsapp/templates/bird_order_confirmation/versions/{version_id}/languages/en",
&language); err != nil {
log.Fatal(err)
}$language = $bird->get('/v1/whatsapp/templates/bird_order_confirmation/versions/{version_id}/languages/en');curl https://us1.platform.bird.com/v1/whatsapp/templates/bird_order_confirmation/versions/{version_id}/languages/en \
-H "Authorization: Bearer $BIRD_API_KEY"टेम्पलेट संदर्भ slug या wat_ ID स्वीकार करता है। GET …/versions/{version_id}/languages संस्करण की भाषाओं को उनकी सामग्री के बिना सूचीबद्ध करता है।
{
"category": "utility",
"components": [
{
"example_parameters": [
{ "name": "ref", "text": "A1B2C3D4", "type": "text" },
{ "name": "amount", "text": "USD 49.99", "type": "text" }
],
"text": "Your order {{ref}} has been confirmed for a total of {{amount}}. Thanks for shopping with us.",
"type": "body"
}
],
"language": "en",
"status": "approved"
}भेजते समय ये प्लेसहोल्डर नाम से भरे जाते हैं। हर प्लेसहोल्डर की पहचान example_parameters से होती है। इस उदाहरण में भेजने का parameters कुंजियाँ ref और amount लेता है। स्थान-आधारित टेम्पलेट की कुंजियाँ उसकी संख्याएँ होती हैं, जैसे 1, लेकिन इसके दो अपवाद हैं: ऑथेंटिकेशन टेम्पलेट का कोड code लेता है, और url बटन का क्रमांकित प्रत्यय button_url लेता है। पैरामीटर वाले बटनों का अपना example_parameters होता है।
भाषा का category वह Meta श्रेणी है जिससे मूल्य तय होता है। अगर Meta उस भाषा को पुनर्वर्गीकृत करता है, तो यह टेम्पलेट की पंजीकृत श्रेणी से अलग हो सकती है।
संस्करण की variables सूची हर प्लेसहोल्डर का सार देती है: उसकी कुंजी, प्रकार, अनिवार्य होने का संकेत और बाधा। नाम वाले प्लेसहोल्डर अपने नाम को कुंजी के रूप में इस्तेमाल करते हैं। स्थान-आधारित प्लेसहोल्डर अपनी संख्या इस्तेमाल करते हैं, सिवाय ऑथेंटिकेशन कोड (code) और url बटन के प्रत्यय (button_url) के। भेजते समय parameters इन्हीं कुंजियों को लेता है।
टेम्पलेट से भेजना
भेजने के अनुरोध के template ऑब्जेक्ट में टेम्पलेट का नाम दें और उसके वेरिएबल parameters के ज़रिए भरें; पूरे पेलोड के लिए WhatsApp संदेश भेजना देखें:
const msg = await bird.whatsapp.send({
to: "+15551234567",
template: {
slug: "bird_otp",
parameters: { code: "123456" },
},
});
console.log(msg.id, msg.status);msg = client.whatsapp.send(
to="+15551234567",
template="bird_otp",
language="en",
parameters={"code": "123456"},
)
print(msg.id, msg.status)msg, err := client.Whatsapp.Send(context.Background(), bird.WhatsappSendParams{
To: "+15551234567",
Template: "bird_otp",
Language: "en",
Parameters: map[string]any{"code": "123456"},
})
if err != nil {
log.Fatal(err)
}
fmt.Println(msg.Id, *msg.Status)$message = $bird->whatsapp->send(
to: '+15551234567',
template: 'bird_otp',
language: 'en',
parameters: ['code' => '123456'],
);
echo $message->getId(), ' ', $message->getStatus();bird whatsapp send \
--language en \
--parameters '{"code":"123456"}' \
--template bird_otp \
--to +15551234567curl -X POST https://us1.platform.bird.com/v1/whatsapp/messages \
-H "Authorization: Bearer $BIRD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "+14155550100",
"template": {
"slug": "bird_otp",
"language": "en",
"parameters": { "code": "481920" }
}
}'श्रेणी के अनुसार भेजना
हर टेम्पलेट में Meta की तीन श्रेणियों में से एक होती है। श्रेणी से तय होता है कि भेजना सफल होने से पहले आपको क्या करना है और उसकी लागत कितनी होगी। अपना खुद का ऑथेंटिकेशन टेम्पलेट बनाने या कॉपी करने के लिए सत्यापित व्यवसाय चाहिए, लेकिन उसे भेजने के लिए नहीं: Bird का प्रबंधित bird_otp Bird के अपने WhatsApp Business Account पर रहता है और आपके किसी सत्यापन के बिना भेजा जाता है। मार्केटिंग टेम्पलेट हमेशा आपके अपने WhatsApp Business Account से, Meta के एक दूसरे API के ज़रिए भेजे जाते हैं, जिस पर Bird उन्हें अपने आप भेजता है। तीनों में यूटिलिटी टेम्पलेट की पूर्व-शर्तें सबसे कम हैं।
- ऑथेंटिकेशन टेम्पलेट: एक बार इस्तेमाल होने वाले सत्यापन कोड, कोड कॉपी करने का बटन, और ऐसा टेम्पलेट बनाने के लिए ज़रूरी सत्यापन
- यूटिलिटी टेम्पलेट: ऑर्डर अपडेट, अपॉइंटमेंट रिमाइंडर और खाते से जुड़ी सूचनाएँ
- मार्केटिंग टेम्पलेट: प्रचार संदेश, आपको चाहिए बिज़नेस अकाउंट, और ऑप्ट-आउट की अपेक्षा
अगले चरण
- WhatsApp संदेश भेजना: भेजने का पूरा पेलोड, जिसमें
templateऑब्जेक्ट जुड़ता है - WhatsApp टेम्पलेट दिशानिर्देश: वे नियम जिनके आधार पर Meta टेम्पलेट की समीक्षा करता है
- Authentication templates: एक बार उपयोग होने वाले सत्यापन कोड, और टेम्पलेट बनाने से पहले आवश्यक व्यवसाय सत्यापन
- WhatsApp मूल्य निर्धारण: श्रेणी और गंतव्य से मूल्य कैसे तय होता है
संबंधित संसाधन
इस विषय के लिए दस्तावेज़, गाइड और उदाहरणों के साथ आगे बढ़ें।