WhatsApp यूटिलिटी टेम्पलेट
यूटिलिटी टेम्पलेट उस चीज़ का फ़ॉलो-अप करता है जो प्राप्तकर्ता पहले ही कर चुका है: कोई ऑर्डर, भुगतान, बुकिंग या साइन-इन। Bird के कैटलॉग में इनमें से आठ उपलब्ध हैं, जिनमें bird_signin_alert और bird_delivery_update शामिल हैं। किसी slug की कैटेगरी उसके नाम से नहीं, बल्कि टेम्पलेट लिस्ट से लें: bird_signin_alert ऑथेंटिकेशन टेम्पलेट जैसा दिखता है लेकिन है नहीं, यह यूटिलिटी है।
भेजने से पहले
एक प्रबंधित कैटलॉग टेम्पलेट चुनें या अपने कनेक्टेड बिज़नेस अकाउंट पर खुद एक बनाएं।
Bird के स्टॉक्ड कैटलॉग टेम्पलेट भेजने के लिए आपको कोई वेरिफ़िकेशन नहीं चाहिए, ठीक ऑथेंटिकेशन की तरह। अपना खुद का यूटिलिटी टेम्पलेट बनाने के लिए भी कोई वेरिफ़िकेशन नहीं चाहिए: ऑथेंटिकेशन के विपरीत, Meta का बिज़नेस-वेरिफ़िकेशन गेट यूटिलिटी पर कभी लागू नहीं होता, इसलिए आप अनवेरिफ़ाइड वर्कस्पेस पर यूटिलिटी टेम्पलेट बना और एडिट कर सकते हैं। वेरिफ़िकेशन और क्या अनलॉक करता है, इसके लिए WhatsApp बिज़नेस वेरिफ़िकेशन देखें।
to एक E.164 फ़ोन नंबर या बिज़नेस-स्कोप्ड यूज़र ID हो सकता है। यूटिलिटी टेम्पलेट में कोई OTP बटन नहीं होता, इसलिए इसे ऑथेंटिकेशन की तरह सिर्फ़ फ़ोन-नंबर वाले प्राप्तकर्ता की ज़रूरत नहीं होती।
हर मैनेज्ड कैटलॉग यूटिलिटी टेम्पलेट केवल en में on_missing_language: fail के साथ रजिस्टर्ड है। कैटलॉग में उपलब्ध न होने वाली भाषा माँगने पर अंग्रेज़ी या किसी और भाषा में फ़ॉलबैक होने के बजाय भेजना विफल हो जाता है।
यूटिलिटी टेम्पलेट भेजना
कैटलॉग slug नाम देने वाले template ऑब्जेक्ट के साथ POST /v1/whatsapp/messages:
const msg = await bird.whatsapp.send({
to: "+16505551234",
template: {
slug: "bird_order_confirmation",
language: "en",
components: [
{
type: "body",
parameters: [
{ type: "text", name: "ref", text: "A1B2C3D4" },
{ type: "text", name: "amount", text: "USD 49.99" },
],
},
],
},
});
console.log(msg.id, msg.status);msg = client.whatsapp.send(
to="+16505551234",
template="bird_order_confirmation",
language="en",
components=[
{
"type": "body",
"parameters": [
{"type": "text", "name": "ref", "text": "A1B2C3D4"},
{"type": "text", "name": "amount", "text": "USD 49.99"},
],
}
],
)
print(msg.id, msg.status)package main
import (
"context"
"fmt"
"log"
"os"
bird "github.com/messagebird/bird-sdk-go"
"github.com/messagebird/bird-sdk-go/option"
)
func main() {
client, err := bird.NewClient(option.WithAPIKey(os.Getenv("BIRD_API_KEY")))
if err != nil {
log.Fatal(err)
}
ref := "A1B2C3D4"
amount := "USD 49.99"
refName := "ref"
amountName := "amount"
components := []bird.WhatsAppMessageTemplateComponent{{
Type: "body",
Parameters: &[]bird.WhatsAppMessageTemplateComponentParameter{
{Type: "text", Name: &refName, Text: &ref},
{Type: "text", Name: &amountName, Text: &amount},
},
}}
msg, err := client.Whatsapp.Send(context.Background(), bird.WhatsappSendParams{
To: "+16505551234",
Template: "bird_order_confirmation",
Language: "en",
Components: components,
})
if err != nil {
log.Fatal(err)
}
fmt.Println(msg.Id, *msg.Status)
}$components = [
(new WhatsAppMessageTemplateComponent())
->setType('body')
->setParameters([
(new WhatsAppMessageTemplateComponentParameter())->setType('text')->setName('ref')->setText('A1B2C3D4'),
(new WhatsAppMessageTemplateComponentParameter())->setType('text')->setName('amount')->setText('USD 49.99'),
]),
];
$message = $bird->whatsapp->send(
to: '+16505551234',
template: 'bird_order_confirmation',
language: 'en',
components: $components,
);
echo $message->getId(), ' ', $message->getStatus();bird whatsapp send \
--components '[{"parameters":[{"name":"ref","text":"A1B2C3D4","type":"text"},{"name":"amount","text":"USD 49.99","type":"text"}],"type":"body"}]' \
--language en \
--template bird_order_confirmation \
--to +16505551234curl -X POST "https://us1.platform.bird.com/v1/whatsapp/messages" \
-H "Authorization: Bearer $BIRD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"to": "+16505551234",
"template": {
"slug": "bird_order_confirmation",
"language": "en",
"components": [
{
"type": "body",
"parameters": [
{
"type": "text",
"name": "ref",
"text": "A1B2C3D4"
},
{
"type": "text",
"name": "amount",
"text": "USD 49.99"
}
]
}
]
}
}'किसी भी मैनेज्ड टेम्पलेट की तरह, from छोड़ दें: Bird कैटेगरी और रीजन से भेजने वाला नंबर चुनता है, और इसे सेट करने पर 422 E15018 WhatsAppSenderNotAllowed लौटता है। अपना खुद का यूटिलिटी टेम्पलेट बनाकर भेजना किसी भी authored send की तरह काम करता है; सामान्य कॉन्ट्रैक्ट के लिए टेम्पलेट से भेजना देखें।
वेरिएबल भरना
यूटिलिटी पैरामीटर नामित (named) होते हैं, ऑथेंटिकेशन के एकल positional कोड के उलट। हर पैरामीटर में एक name होता है, और नामित पैरामीटर का अरे में क्रम कोई मायने नहीं रखता। हर उस ब्लॉक के लिए एक components एंट्री भेजें जिसमें वास्तव में कोई प्लेसहोल्डर हो; बिना वेरिएबल वाली बॉडी के लिए कोई components एंट्री नहीं चाहिए।
URL बटन एक अपवाद है: इसका वेरिएबल हमेशा positional {{1}} होता है, और भेजते समय पूरे पते के बजाय केवल बेयर वैल्यू दी जाती है:
{ "type": "button", "parameters": [{ "type": "text", "text": "A-4192" }] }कंपोनेंट, sub_type, और भेजते समय components टेम्पलेट के घोषित प्लेसहोल्डर से कैसे मैप होते हैं, इसके साझा नियमों के लिए टेम्पलेट से भेजना और कंपोनेंट और पैरामीटर देखें।
लागत
खुली कस्टमर सर्विस विंडो के अंदर डिलीवर हुआ यूटिलिटी टेम्प्लेट 30 सितंबर 2026 तक Meta की मुफ़्त दर के लिए योग्य है; 1 अक्टूबर 2026 से Meta इसके लिए किसी भी अन्य यूटिलिटी टेम्प्लेट की तरह शुल्क लेगा (अक्टूबर 2026 मूल्य निर्धारण परिवर्तन)। Bird का आउटबाउंड शुल्क मैसेज प्रोसेसिंग के दौरान, सबमिशन से पहले लिया जाता है। बाद में आने वाला delivered या read कॉलबैक यह तय करता है कि Meta का शुल्क लागू होगा या नहीं। कुल अनुमान लगाते समय दोनों घटकों की जाँच करें।
भेजने पर शुल्क कब लगता है यह जानने के लिए लागत और बिलिंग देखें, और दरों के लिए WhatsApp मूल्य निर्धारण देखें।
ध्यान देने योग्य बातें
- Meta अपनी पहल पर किसी यूटिलिटी टेम्पलेट को मार्केटिंग में रीकैटेगराइज़ कर सकता है, और मैसेज नई, ऊँची कीमत पर भेजा जाता रहता है। जिस बिज़नेस को Meta पहले ही गलत कैटेगराइज़ेशन की चेतावनी दे चुका है, उसे अप्रैल 2025 से कोई पूर्व सूचना नहीं मिलती; बदलाव तुरंत लागू हो जाता है। यूटिलिटी टेम्पलेट की कॉपी में प्रमोशनल भाषा, ऑफ़र या अपसेल न रखें, क्योंकि यही इस बदलाव को ट्रिगर करता है। क्या प्रमोशनल माना जाता है, इसके लिए टेम्पलेट गाइडलाइन देखें।
- मार्केटिंग के बाहर
gifहेडर याcopy_codeबटन अस्वीकार कर दिया जाता है। दोनों केवल-मार्केटिंग कंपोनेंट हैं; इनमें से कोई भी यूटिलिटी टेम्पलेट पर डिक्लेयर करने पर विफल होता है। - authored send में शुल्क लगने से पहले पैरामीटर काउंट की जाँच नहीं होती। अपने खुद के टेम्पलेट पर ग़लत संख्या में पैरामीटर भेजें तो मैसेज स्वीकार और चार्ज हो जाता है, फिर Meta द्वारा रिजेक्ट कर दिया जाता है। मैनेज्ड कैटलॉग sends में यह कमी नहीं है।
- ग़लत WhatsApp Business Account पर मौजूद सेंडर किसी भी शुल्क से पहले अस्वीकार कर दिया जाता है।
fromको टेम्पलेट के समान अकाउंट पर होना चाहिए; अन्यथा भेजने का अनुरोध422E15023WhatsAppSenderWABAMismatchके साथ विफल होता है।
अगले कदम
- WhatsApp टेम्पलेट: कैटलॉग ब्राउज़ करना और टेम्पलेट से भेजने का साझा कॉन्ट्रैक्ट
- ऑथेंटिकेशन टेम्पलेट: वन-टाइम सत्यापन कोड और इसे बनाने के लिए सत्यापन गेट
- मार्केटिंग टेम्पलेट: प्रमोशनल sends और इसे बनाने के लिए ज़रूरी अकाउंट
संबंधित संसाधन
इस विषय के लिए दस्तावेज़, गाइड और उदाहरणों के साथ आगे बढ़ें।