Sign inGet started

WhatsApp टेम्पलेट लिखना

Bird का प्रबंधित कैटलॉग सामान्य मामलों को कवर करता है, लेकिन आपके अपने शब्दों में बोलने वाला टेम्पलेट आपके कनेक्ट किए गए WhatsApp Business Account पर लिखना होगा। यह पेज एक टेम्पलेट बनाने को कवर करता है; WhatsApp टेम्पलेट पहले से मौजूद टेम्पलेट ब्राउज़ और भेजने को कवर करता है।
तीन चीज़ें पूरे फ़्लो को आकार देती हैं:
  • एक टेम्पलेट में संस्करण होते हैं, और एक संस्करण में हर भाषा की एक प्रविष्टि होती है। वास्तव में जो भेजा जाता है वह एक संस्करण की एक भाषा है, टेम्पलेट नहीं।
  • सामग्री एक ड्राफ़्ट में लिखी जाती है। एक टेम्पलेट में अधिकतम एक खुला ड्राफ़्ट होता है, और जब तक आप सबमिट नहीं करते, इसमें कुछ भी WhatsApp तक नहीं पहुँचता।
  • स्वीकृति हर भाषा के लिए अलग आती है। एक भाषा स्वीकृत हो सकती है जबकि उसी संस्करण की दूसरी भाषा अस्वीकृत हो।

शुरू करने से पहले

आपको एक कनेक्ट किया हुआ अपना नंबर चाहिए, जो आपके वर्कस्पेस को लिखने के लिए एक WhatsApp Business Account देता है। जो अकाउंट आपने कनेक्ट नहीं किया है वह अस्वीकार कर दिया जाता है, और Bird के बिल्ट-इन bird_ टेम्पलेट को संपादित करना भी: वे Bird के अपने अकाउंट पर होते हैं, इसलिए उन्हें अपने अकाउंट पर डुप्लिकेट करें।
authentication टेम्पलेट लिखने के लिए अतिरिक्त रूप से एक सत्यापित बिज़नेस चाहिए; utility और marketing के लिए नहीं। उस शर्त के लिए Authentication टेम्पलेट देखें।
डैशबोर्ड में WhatsApp > Templates के तहत, bird CLI से, या MCP सर्वर के ज़रिए टेम्पलेट लिखें। डैशबोर्ड उन्हीं चरणों से गुज़रता है जो यह पेज बताता है; आगे के उदाहरण CLI का उपयोग करते हैं।

डैशबोर्ड में

New template दो रास्ते देता है। Start with a template गैलरी खोलता है, सबसे तेज़ रास्ता: जो पहले से लगभग वही कहता हो जो आपको चाहिए, उसे चुनें, Bird का कोई टेम्पलेट भी, और कॉपी आपके अकाउंट पर खुले ड्राफ़्ट के रूप में आ जाती है।
Bird डैशबोर्ड में टेम्पलेट गैलरी: टेम्पलेट कार्ड की एक ग्रिड, हर कार्ड अपने मैसेज का प्रीव्यू दिखाता है और उस पर नाम, slug, स्थिति, श्रेणी और भाषाएँ लेबल हैं, साथ में टेम्पलेट स्रोत, श्रेणी और भाषा के फ़िल्टर
Start from scratch श्रेणी, एक नाम और एक डिफ़ॉल्ट भाषा माँगता है, फिर एडिटर खोलता है। एक marketing टेम्पलेट एक मैसेज प्रकार भी चुनता है। नाम slug बन जाता है, और slug और श्रेणी वे दो विकल्प हैं जिन्हें बाद में बदला नहीं जा सकता।
Bird डैशबोर्ड में Create a new template चरण: Name फ़ील्ड और Default language सिलेक्टर के ऊपर Marketing, Utility और Authentication श्रेणी टाइल, साथ में Create template बटन
एडिटर एक समय में एक भाषा लिखता है: साइडबार टेम्पलेट की भाषाओं को उनकी समीक्षा स्थिति के साथ सूचीबद्ध करता है, बीच का कॉलम सामग्री रखता है, और फ़ोन प्रीव्यू उदाहरण मानों के साथ मैसेज रेंडर करता है।
Order update utility टेम्पलेट के लिए Bird डैशबोर्ड में टेम्पलेट एडिटर: भाषा साइडबार में Dutch के बगल में English Approved चिह्नित, और रेंडर किए गए मैसेज का फ़ोन प्रीव्यू जिसमें Track order और Contact support बटन हैं
टेम्पलेट के अनुसार एडिटर का रूप बदलता है। एक carousel मैसेज के बगल में हर कार्ड के लिए एक टैब जोड़ता है, और हर कार्ड को कार्ड 1 की संरचना दोहरानी होती है: वही हेडर फ़ॉर्मेट और वही बटन उसी क्रम में।
एक carousel marketing टेम्पलेट के लिए Bird डैशबोर्ड में टेम्पलेट एडिटर: मैसेज बॉडी के ऊपर Message, Card 1, Card 2 और Card 3 टैब, नीचे Variable samples सेक्शन, और फ़ोन प्रीव्यू जिसमें मैसेज के बाद स्वाइप करने योग्य इमेज कार्ड दिख रहे हैं, हर एक पर Show me बटन
एक authentication टेम्पलेट में कोई मैसेज एडिटर नहीं होता। WhatsApp कॉपी लिखता है, इसलिए एडिटर केवल वे दो सेटिंग देता है जिनसे वह लिखता है: Add security recommendation और Code expiration (minutes)
एक authentication टेम्पलेट के लिए Bird डैशबोर्ड में टेम्पलेट एडिटर: Add security recommendation टॉगल और Code expiration (minutes) फ़ील्ड वाला Authentication settings पैनल, और WhatsApp द्वारा लिखे गए सत्यापन कोड मैसेज का फ़ोन प्रीव्यू जिसमें Copy code बटन है
Save as draft आपके काम को WhatsApp से संपर्क किए बिना सहेजता है। Submit for review संस्करण को फ़्रीज़ करता है और उसे WhatsApp को भेजता है। नीचे दिया गया CLI का सबमिट भी वही फ़्रीज़ करता है।

शुरू करने के दो तरीके

मौजूदा टेम्पलेट का डुप्लिकेट बनाएँ

एक डुप्लिकेट स्रोत की सामग्री को खुले ड्राफ़्ट के रूप में लाता है और WhatsApp को शून्य बार कॉल करता है, इसलिए जब तक आप न चाहें कुछ भी सबमिट नहीं होता। कॉपी बनाने से पहले दो बातें जानने लायक हैं:
  • श्रेणी विरासत में मिलती है और बदली नहीं जा सकती। अगर आपको दूसरी श्रेणी चाहिए, तो शुरुआत से बनाएँ।
  • कॉपी बनाते समय आप स्रोत में उपलब्ध भाषाओं में से कम भाषाएँ चुन सकते हैं; उस समय नई भाषा नहीं जोड़ सकते। 70 भाषाओं वाले कैटलॉग टेम्पलेट की सभी 70 भाषाएँ लेने की ज़रूरत नहीं है: वह सबसेट चुनें जिसे आप वास्तव में बनाए रखेंगे। जो भाषा स्रोत में नहीं है उसकी माँग E15060 के साथ अस्वीकार होती है, और प्रतिक्रिया बताती है कि कौन सी भाषाएँ मेल नहीं खाईं। कॉपी बन जाने के बाद उसमें और भाषाएँ जोड़ें।
भाषा सबसेट एक array है, इसलिए यह फ़्लैग के बजाय रिक्वेस्ट बॉडी में जाता है:
कोड उदाहरण
bird whatsapp templates duplicate bird_order_confirmation --body-file copy.json
कोड उदाहरण
{
  "waba": "102290129340398",
  "slug": "acme_order_update",
  "include_languages": ["en", "es-ES"],
  "default_language": "en"
}
include_languages छोड़ दें तो कॉपी स्रोत की सभी भाषाएँ लेती है। default_language छोड़ दें तो कॉपी स्रोत का डिफ़ॉल्ट रखती है जब आपके सबसेट में वह अभी भी हो; अन्यथा यह कॉपी की भाषाओं में कैनोनिकल टैग के अनुसार पहली लेती है, जो ज़रूरी नहीं कि वही हो जो आपने पहले सूचीबद्ध की, इसलिए अगर यह मायने रखता है तो इसे स्पष्ट रूप से सेट करें।

शुरुआत से बनाएँ

टेम्पलेट बनाने के लिए एक slug, एक अकाउंट, एक श्रेणी और एक डिफ़ॉल्ट भाषा चाहिए:
कोड उदाहरण
bird whatsapp templates create order_update \
  --waba 102290129340398 \
  --category utility \
  --default-language en
slug और श्रेणी दोनों स्थायी हैं। WhatsApp slug से अपना टेम्पलेट नाम बनाता है, और न तो यह और न ही श्रेणी बाद में बदली जा सकती है; दूसरा चाहिए तो नया टेम्पलेट बनाएँ। bird_ प्रीफ़िक्स Bird के कैटलॉग के लिए आरक्षित है। आपकी चुनी हुई श्रेणी ज़रूरी नहीं कि वही हो जिस पर भेजने की कीमत लगती है: Meta हर भाषा के लिए अपनी श्रेणी लागू करता है और उसे बदल सकता है, और कीमत Meta की श्रेणी के अनुसार होती है।

हर भाषा लिखना

ड्राफ़्ट खोलें, फिर एक समय में एक भाषा लिखें:
कोड उदाहरण
bird whatsapp templates versions create order_update
bird whatsapp templates versions languages set order_update <version-id> en --body-file en.json
ड्राफ़्ट खोलना दोहराना सुरक्षित है: एक टेम्पलेट में केवल एक होता है, इसलिए यह दूसरा बनाने के बजाय खुला हुआ लौटाता है। टेम्पलेट इसे draft_version_id के रूप में भी रिपोर्ट करता है।
भाषा लिखना उस भाषा को बदल देता है, उसमें मर्ज नहीं करता। फ़ाइल हर बार उस भाषा का पूरा components ले जाती है, इसलिए पहले भाषा पढ़ें और पूरी वापस लिखें; केवल बदला हुआ ब्लॉक भेजने से बाकी हट जाता है।
हर वेरिएबल को एक उदाहरण मान चाहिए। WhatsApp टेम्पलेट के बजाय भरे हुए मैसेज की समीक्षा करता है, इसलिए प्लेसहोल्डर वाला और बिना उदाहरण पैरामीटर वाला ब्लॉक लिखते समय नहीं बल्कि सबमिट करते समय अस्वीकार होता है।

जाँचें, फिर सबमिट करें

कुछ भी फ़्रीज़ करने से पहले वैलिडेट करें। केवल-वैलिडेशन सबमिट हर भाषा पर हर जाँच चलाता है और हर समस्या एक ही पास में रिपोर्ट करता है, WhatsApp को कुछ नहीं भेजता:
कोड उदाहरण
bird whatsapp templates versions submit order_update <version-id> --validate-only
valid और errors पढ़ें; हर त्रुटि भाषा, फ़ील्ड और वह कोड बताती है जिसके साथ वास्तविक सबमिट विफल होता। फिर फ़्लैग हटाकर वास्तव में सबमिट करें। यह ड्राफ़्ट को अपरिवर्तनीय संस्करण के रूप में फ़्रीज़ करता है और 202 उत्तर देता है। जाँच और सबमिट के लिए अलग idempotency key का उपयोग करें, क्योंकि बदली हुई बॉडी के साथ एक ही key दोबारा उपयोग करना अस्वीकार होता है।
केवल वे भाषाएँ WhatsApp को जाती हैं जिनकी सामग्री उनकी स्वीकृत कॉपी से भिन्न है। जो पहले से मेल खाती है वह अपनी स्वीकृति आगे ले जाती है, इसलिए जहाँ कुछ नहीं बदला वहाँ सबमिट तुरंत पूरा हो जाता है और पोल करने को कुछ नहीं होता। बाद में कोई रिप्लेसमेंट ड्राफ़्ट नहीं खुलता: संपादन का अगला दौर फिर से ड्राफ़्ट बनाकर शुरू होता है।
एक साफ़ केवल-वैलिडेशन रन WhatsApp के निर्णय की भविष्यवाणी नहीं करता। WhatsApp पहले से पूछने का कोई तरीका नहीं देता, इसलिए वह ऐसी सामग्री भी अस्वीकार कर सकता है जो हर स्थानीय जाँच पास कर चुकी हो।

समीक्षा पर नज़र रखना

स्वीकृति बाद में आती है और हर भाषा के लिए अलग। जब तक कोई भाषा अनसुलझी है, टेम्पलेट का pending_version_id सेट रहता है, और प्रति-भाषा सूची हर निर्णय दिखाती है:
  • approved स्थिति वाली भाषा में संदेश भेजे जा सकते हैं। टेम्पलेट का available_languages बताता है कि अभी भेजते समय किन भाषाओं का चयन किया जा सकता है।
  • rejected, submit_failed, paused के लिए एक नए ड्राफ़्ट पर संपादन चाहिए। WhatsApp रुकी हुई भाषा पर संपादन स्वीकार करता है, और दोबारा सबमिट करने से भाषा की रुकी हुई स्थिति हटती है।
  • disabled, limit_exceeded, in_appeal संपादन पूरी तरह अस्वीकार करते हैं; जब तक WhatsApp उन्हें नहीं बदलता, उन्हें केवल दोबारा पढ़ने की ज़रूरत है।
टेम्पलेट का अपना status एक समग्र मान है: active का मतलब है कम से कम एक भाषा भेजने योग्य है, सभी नहीं।

आपका लिखा हुआ भेजना

एक लिखा हुआ टेम्पलेट किसी भी अन्य की तरह उसी एंडपॉइंट से भेजा जाता है, Bird के कैटलॉग से एक अंतर के साथ: आपको from का मान देना होगा, और यह उसी WhatsApp Business Account का नंबर होना चाहिए जिस पर टेम्पलेट है। दूसरे अकाउंट का सेंडर कोई भी शुल्क लगने से पहले 422 E15023 के साथ अस्वीकार होता है।
एक टेम्पलेट language_source_required के ज़रिए प्राप्तकर्ता की भाषा अनिवार्य कर सकता है। अन्यथा, on_missing_language नियंत्रित करता है कि भाषा का चयन विफल हो या किसी स्वीकृत बेस भाषा या default_language का उपयोग किया जा सके। कॉन्फ़िगर की गई नीति को टेम्पलेट के स्वीकृत available_languages के विरुद्ध जाँचें; जिस डिफ़ॉल्ट भाषा को स्वीकृति नहीं मिली है उसमें संदेश नहीं भेजा जा सकता। आपके दिए गए मान वास्तव में चुनी गई भाषा के प्लेसहोल्डर भरने चाहिए, इसलिए भेजने से पहले उस भाषा की सामग्री पढ़ें। पूरे पेलोड के लिए WhatsApp मैसेज भेजना देखें।

ध्यान देने योग्य बातें

  • नवीनतम संस्करण वह नहीं है जो भेजा जाता है। संस्करण सूची नवीनतम-पहले होती है और इसमें कोई भी खुला ड्राफ़्ट शामिल होता है, इसलिए शीर्ष पंक्ति अक्सर एक ड्राफ़्ट या अभी भी समीक्षा में संस्करण होता है। टेम्पलेट सेवा में मौजूद संस्करण को live_version_id के रूप में नाम देता है; बिना लाइव संस्करण वाला टेम्पलेट भेजा ही नहीं जा सकता।
  • समीक्षा के दौरान भाषा की सामग्री लिखी नहीं जा सकती। WhatsApp समीक्षा पूरी होने तक उसे रोक कर रखता है, इसलिए pending के दौरान संपादन कतार में लगने के बजाय विफल होता है।
  • सूची पंक्ति में कोई सामग्री नहीं होती। टेम्पलेट सूचीबद्ध करना उन्हें खोजता है और जीवनचक्र स्थिति दिखाता है; एक टेम्पलेट वास्तव में क्या कहता है यह जानने के लिए संस्करण पढ़ना होगा।
  • हटाना अपरिवर्तनीय है। भाषा हटाना, ड्राफ़्ट हटाना और टेम्पलेट हटाना सभी को स्पष्ट पुष्टि चाहिए, और टेम्पलेट हटाना उस slug से हर भेजने को रोक देता है।

अगले कदम

संबंधित संसाधन

इस विषय के लिए डॉक्यूमेंटेशन, गाइड और उदाहरणों के साथ आगे बढ़ें। संसाधन अंग्रेज़ी में हैं।

अभ्यास करें और इम्प्लीमेंटेशन ब्रीफ़ पाएँ