WhatsApp Template API
अपने सिस्टम से मंज़ूर किए गए WhatsApp टेम्पलेट एक API कॉल से भेजें; इसके बाद बातचीत MonoChat में जारी रहती है।
ओवरव्यू
WhatsApp Template API आपके CRM, ERP, ई-कॉमर्स साइट या किसी भी बैकएंड को MonoChat के ज़रिए ग्राहक को मंज़ूर किया हुआ WhatsApp टेम्पलेट मैसेज भेजने देता है। एक अनुरोध में वह WhatsApp नंबर जिससे भेजना है, ग्राहक का फ़ोन नंबर, टेम्पलेट और उसके वेरिएबल बताए जाते हैं।
जब ग्राहक जवाब देता है, तो बातचीत किसी भी दूसरी बातचीत की तरह आपके MonoChat इनबॉक्स में आ जाती है। ऐप की अपनी कोई स्क्रीन नहीं है: सब कुछ तीन API एंडपॉइंट से होता है।
मुख्य विशेषताएँ
- एक API कॉल। टेम्पलेट को नाम और भाषा से भेजें, हेडर, बॉडी, बटन और कैरोसेल के वेरिएबल आपके डेटा से भरे हुए।
- सीधे चैट में। हर भेजने पर बातचीत की आईडी और MonoChat में उसका सीधा लिंक मिलता है।
- नए ग्राहकों का स्वागत। अगर फ़ोन नंबर अभी ग्राहक नहीं है, तो आपके भेजे नाम से ग्राहक बना दिया जाता है।
इंस्टॉल और सेट अप करें
- अपना WhatsApp Business नंबर MonoChat से कनेक्ट करें और पक्का करें कि वह वेरिफ़ाई हो चुका है और उस पर Meta से मंज़ूर टेम्पलेट हैं।
- सेटिंग › MonoStore › ऐप से WhatsApp Template API इंस्टॉल करें, या इंस्टॉल लिंक app.monochat.ai/apps/K6u29LpbwCHBozZ8o खोलें। अगर आपके पास MonoChat अकाउंट नहीं है, तो लिंक आपको पहले साइन अप करने देता है और फिर आपके लिए ऐप इंस्टॉल कर देता है।
- प्रोफ़ाइल › API टोकन में एक API टोकन बनाएँ। टोकन सिर्फ़ एक बार दिखाया जाता है, इसलिए उसे तुरंत कॉपी कर लें।
- अपने मंज़ूर टेम्पलेट और उनके वेरिएबल देखने के लिए
template/list.jsकॉल करें। - अपना पहला टेम्पलेट भेजने के लिए ग्राहक के नंबर और वेरिएबल के मानों के साथ
template/send.jsकॉल करें।


- हर संदेश का बिल MonoChat से भेजे गए किसी भी टेम्पलेट संदेश की तरह ही आता है।
- मीडिया URL तब तक पहुँच में रहने चाहिए जब तक WhatsApp फ़ाइल न ले ले।
- उन्हीं ग्राहकों को भेजें जिन्होंने आपसे संदेश पाने की सहमति दी है: जिन नंबरों के संदेश ब्लॉक या रिपोर्ट किए जाते हैं, उन्हें WhatsApp सीमित कर सकता है।
सुविधाएँ
टेम्पलेट की सूची
किसी WhatsApp नंबर के मंज़ूर किए गए टेम्पलेट, उनकी भाषा, कैटेगरी, स्थिति और वेरिएबल के साथ, ताकि आपके सिस्टम को पता रहे कि वह क्या भेज सकता है।
टेम्पलेट भेजें
टेम्पलेट के नाम और भाषा से, हेडर, बॉडी, बटन और कैरोसेल वेरिएबल के साथ। कोई मान छूट जाए तो भेजना रुक जाता है, इसलिए अधूरा भरा संदेश ग्राहक तक नहीं पहुँचता।
एजेंट को सौंपें
किसी एजेंट का ईमेल दें और बातचीत उनके नाम पर खुल जाती है।
मीडिया हेडर
थोड़ी देर चलने वाले अपलोड क्रेडेंशियल लें, MonoChat के स्टोरेज पर कोई इमेज, वीडियो या दस्तावेज़ रखें और उसके URL को टेम्पलेट के हेडर के रूप में इस्तेमाल करें।
बातचीत का लिंक
हर भेजने पर सेशन आईडी, मैसेज आईडी और MonoChat में बातचीत खोलने वाला लिंक मिलता है।
साफ़ एरर
असफल कॉल बताती है कि क्या गड़बड़ हुई, जैसे “Channel not found” या “Variable missing”।
शुरू करने से पहले
- आपका WhatsApp Business नंबर MonoChat से जुड़ा और वेरिफ़ाई हो चुका है। देखें चैनल।
- जो टेम्पलेट आप भेजना चाहते हैं वे Meta से मंज़ूर हैं। टेम्पलेट वह तरीका हैं जिससे आप पहले संदेश लिखते हैं, या 24 घंटे की विंडो के बाहर किसी ग्राहक तक पहुँचते हैं। देखें टेम्पलेट संदेश।
- आपके पास प्रोफ़ाइल › API टोकन से बना API टोकन है। देखें API टोकन।
- आप अपना टेनेंट स्लग जानते हैं: आपके MonoChat पते में
/tenants/के बाद वाला हिस्सा।https://app.monochat.ai/tenants/mybusinessमें स्लगmybusinessहै।
API रेफ़रेंस
ऐप की अपनी कोई स्क्रीन नहीं है। सब कुछ तीन एंडपॉइंट से होता है, जिनमें से हर एक JSON बॉडी के साथ POST है:
POST https://app.monochat.ai/api/<slug>/custom-functions/template-app/api/<endpoint>
Authorization: Bearer <API_TOKEN>
Content-Type: application/json
| एंडपॉइंट | यह क्या करता है |
|---|---|
template/list.js | आपके किसी WhatsApp नंबर के टेम्पलेट, उनके वेरिएबल के साथ, सूचीबद्ध करता है। |
template/send.js | ग्राहक को टेम्पलेट भेजता है और बातचीत का लिंक लौटाता है। |
upload/get-token.js | हेडर की इमेज, वीडियो या दस्तावेज़ के लिए थोड़ी देर चलने वाले अपलोड क्रेडेंशियल देता है। |
फ़ोन नंबर हमेशा देश कोड के साथ और + के बिना लिखे जाते हैं, जैसे 905334445566। सफल कॉल 200 के साथ जवाब देती है और एंडपॉइंट का डेटा result के अंदर होता है।
1. टेम्पलेट की सूची
POST /api/<slug>/custom-functions/template-app/api/template/list.js
दिए गए WhatsApp Business नंबर के हर टेम्पलेट की सूची देता है: नाम, भाषा कोड, कैटेगरी, कंपोनेंट (हेडर, बॉडी, फ़ुटर, बटन), वेरिएबल के प्रकार और अनुमोदन की स्थिति।
| फ़ील्ड | ज़रूरी | विवरण |
|---|---|---|
phoneNumber | हाँ | MonoChat में आपका WhatsApp Business नंबर, देश कोड के साथ, + के बिना। |
options | नहीं | पेजिंग और फ़िल्टर, जैसे { "pagination": { "currentPage": 1, "pageItems": 50 } }। |
POST /api/<slug>/custom-functions/template-app/api/template/list.js
Content-Type: application/json
Authorization: Bearer <API_TOKEN>
{
"phoneNumber": "905334445566"
}
जवाब (संक्षिप्त):
{
"result": {
"templateMessages": [
{
"name": "new_product_announcement",
"languageCode": "tr-TR",
"category": "MARKETING",
"components": [
{
"type": "HEADER",
"format": "IMAGE",
"variables": [
{ "type": "IMAGE", "value": null, "exampleValue": "https://.../sample-image.png" }
]
},
{
"type": "BODY",
"text": "Merhaba {{1}}, yeni ürünümüz {{2}} çıktı!",
"sampleText": "Merhaba [Ayşe], yeni ürünümüz [XYZ Telefon] çıktı.",
"variables": [
{ "type": "TEXT", "value": null, "exampleValue": "[Ayşe]" },
{ "type": "TEXT", "value": null, "exampleValue": "[XYZ Telefon]" }
]
},
{
"type": "FOOTER",
"text": "Teşekkürler",
"sampleText": "Teşekkürler"
}
],
"status": "APPROVED"
}
],
"options": {
"pagination": { "totalCount": 12, "currentPage": 1, "pageItems": 12, "totalPages": 1 }
}
}
}
इसे कैसे पढ़ें:
name: वह सिस्टम नाम जिससे आप टेम्पलेट भेजते हैं।languageCode: वह भाषा जिसमें उसे भेजना है।category: WhatsApp की कैटेगरी (MARKETING,UTILITY,AUTHENTICATION)।components: वे हिस्से जिनसे टेम्पलेट बना है।
| कंपोनेंट | सामग्री | विवरण |
|---|---|---|
HEADER | IMAGE, VIDEO, DOCUMENT या टेक्स्ट | मीडिया के लिए format दिया जाता है; वेरिएबल variables के तहत दिखते हैं। |
BODY | वेरिएबल वाला टेक्स्ट | संदेश की बॉडी, जिसमें {{1}}, {{2}} जैसे प्लेसहोल्डर होते हैं। |
FOOTER | टेक्स्ट | आम तौर पर इसमें वेरिएबल नहीं होते। |
BUTTONS | URL, क्विक रिप्लाई… | बटन के टेक्स्ट और उनके वेरिएबल, अगर हों। |
ऊपर के उदाहरण वाले टेम्पलेट को हेडर के लिए एक इमेज और बॉडी के लिए दो टेक्स्ट (ग्राहक का नाम और प्रोडक्ट का नाम) चाहिए। फ़ुटर तय है ("Teşekkürler") और कोई बटन नहीं है।
2. टेम्पलेट भेजें
POST /api/<slug>/custom-functions/template-app/api/template/send.js
ग्राहक को मंज़ूर किया हुआ टेम्पलेट भेजता है। अगर फ़ोन नंबर अभी ग्राहक नहीं है, तो ग्राहक बना दिया जाता है; बातचीत खोली (या दोबारा इस्तेमाल की) जाती है और उसी में टेम्पलेट भेजा जाता है।
| फ़ील्ड | ज़रूरी | विवरण |
|---|---|---|
phoneNumber | हाँ | वह WhatsApp Business नंबर जिससे भेजना है। यह MonoChat से जुड़ा और वेरिफ़ाई हो चुका होना चाहिए। |
templateMessageName | हाँ | टेम्पलेट का name, ठीक वैसा जैसा सूची लौटाती है। |
languageCode | हाँ | टेम्पलेट की भाषा, जैसी सूची लौटाती है (जैसे tr-TR)। |
customerPhoneNumber | हाँ | ग्राहक का WhatsApp नंबर। |
variables | जब टेम्पलेट में हों | टेम्पलेट के वेरिएबल के मान (नीचे देखें)। |
customerFirstName, customerLastName | नहीं | जब ग्राहक MonoChat में नया हो तब इस्तेमाल होते हैं। |
agentEmailAddress | नहीं | बातचीत को इस ईमेल वाले एजेंट को सौंपता है। |
वेरिएबल। variables ऐरे के हर आइटम में एक type और parameters की सूची होती है, जो टेम्पलेट के प्लेसहोल्डर के क्रम में दी जाती है:
type | parameters |
|---|---|
HEADER | हेडर का टेक्स्ट वेरिएबल, या हेडर की इमेज, वीडियो या दस्तावेज़ का सार्वजनिक URL। |
BODY | बॉडी के {{1}}, {{2}}, … क्रम से। |
BUTTONS | हर उस बटन के लिए एक मान जिसमें वेरिएबल है (जैसे URL बटन का डायनेमिक हिस्सा या कूपन कोड), बटन के क्रम में। |
CAROUSEL | parameters की जगह एक cards ऐरे, जिसमें हर कैरोसेल कार्ड के लिए एक एंट्री होती है और हर एक के अपने components होते हैं। |
{ "type": "CAROUSEL", "cards": [ { "components": [ { "type": "HEADER", "parameters": ["https://…/1.jpg"] }, { "type": "BODY", "parameters": ["…"] } ] } ] }
कोई मान छूट जाए तो भेजना Variable missing के साथ रुक जाता है, इसलिए अधूरा भरा संदेश ग्राहक तक नहीं पहुँचता। FOOTER में शायद ही कभी वेरिएबल होते हैं।
POST /api/<slug>/custom-functions/template-app/api/template/send.js
Content-Type: application/json
Authorization: Bearer <API_TOKEN>
{
"phoneNumber": "905334445566",
"templateMessageName": "new_product_announcement",
"languageCode": "tr-TR",
"customerPhoneNumber": "905306667788",
"customerFirstName": "Ayşe",
"agentEmailAddress": "sarah@yourcompany.com",
"variables": [
{ "type": "HEADER", "parameters": ["https://…/product.jpg"] },
{ "type": "BODY", "parameters": ["Ayşe", "XYZ Phone"] }
]
}
जवाब:
{
"result": {
"url": "https://app.monochat.ai/tenants/<slug>?tab=messages&sessionTab=all&filter=…&_id=<sessionId>",
"sessionId": "…",
"messageId": "…"
}
}
url: MonoChat में बातचीत खोलता है, उन लोगों के लिए जो साइन इन हैं और जिन्हें उसे देखने की अनुमति है।sessionId: बातचीत की आईडी।messageId: MonoChat में संदेश की आईडी। उसकी डिलीवरी और पढ़े जाने की स्थिति चैट में किसी भी दूसरे संदेश की तरह दिखती है।
टेम्पलेट में मीडिया। WhatsApp आपके दिए URL से हेडर का मीडिया डाउनलोड करता है, इसलिए URL मान्य और सार्वजनिक रूप से पहुँच योग्य होना चाहिए। जिन लिंक के लिए लॉगिन चाहिए वे काम नहीं करते। अगर आपने फ़ाइल upload/get-token.js से अपलोड की है, तो उस जवाब से बना फ़ाइल का URL इस्तेमाल करें।
3. हेडर के लिए मीडिया अपलोड करें
POST /api/<slug>/custom-functions/template-app/api/upload/get-token.js
जब टेम्पलेट का हेडर इमेज, वीडियो या दस्तावेज़ हो, तो फ़ाइल का एक सार्वजनिक पता चाहिए जहाँ से WhatsApp उसे डाउनलोड कर सके। यह एंडपॉइंट आपको फ़ाइल MonoChat के स्टोरेज पर रखने की थोड़ी देर की अनुमति देता है।
| फ़ील्ड | ज़रूरी | विवरण |
|---|---|---|
fileName | हाँ | एक्सटेंशन के साथ फ़ाइल का नाम, जैसे product.jpg या promo.pdf। |
फ़ाइलें हमेशा आपके वर्कस्पेस के chat-assets फ़ोल्डर में रखी जाती हैं; key फ़ील्ड भेजने वाले पुराने उदाहरण भी काम करते रहते हैं, उस मान की ज़रूरत नहीं है।
POST /api/<slug>/custom-functions/template-app/api/upload/get-token.js
Content-Type: application/json
Authorization: Bearer <API_TOKEN>
{
"fileName": "product.jpg"
}
जवाब बताता है कि फ़ाइल कहाँ रखनी है और ऐसा करने के लिए क्रेडेंशियल देता है:
| फ़ील्ड | विवरण |
|---|---|
bucket, region, path | फ़ाइल कहाँ जाएगी। |
temporaryCredentials | उसी एक पाथ के लिए सिर्फ़ अपलोड वाले क्रेडेंशियल, 15 मिनट के लिए मान्य। |
baseUrl | स्टोरेज का सार्वजनिक पता। फ़ाइल का URL baseUrl + / + path है। |
इन क्रेडेंशियल से किसी भी S3 क्लाइंट के साथ फ़ाइल तुरंत अपलोड करें, फिर टेम्पलेट भेजते समय उसका URL HEADER पैरामीटर के रूप में दें। बहुत बड़ी फ़ाइलें या ऐसे फ़ॉर्मैट जिन्हें WhatsApp सपोर्ट नहीं करता (यह आम इमेज, वीडियो और PDF फ़ॉर्मैट स्वीकार करता है) असफल होते हैं।
उदाहरण: इमेज हेडर वाला टेम्पलेट
मान लें आपके पास इमेज हेडर और दो बॉडी वेरिएबल (ग्राहक का नाम और प्रोडक्ट का नाम) वाला मंज़ूर टेम्पलेट new_product_announcement है, और आप उसे किसी ग्राहक को भेजना चाहते हैं।
- टेम्पलेट की सूची लें। अपने WhatsApp नंबर के साथ
template/list.jsकॉल करें औरnew_product_announcementढूँढें। उसके कंपोनेंट में हेडर में एकIMAGEवेरिएबल और बॉडी में दोTEXTवेरिएबल दिखते हैं। - इमेज अपलोड करें।
{ "fileName": "urun.jpg" }के साथupload/get-token.jsकॉल करें, लौटाए गए क्रेडेंशियल से फ़ाइल अपलोड करें औरbaseUrlवpathसे उसका URL बनाएँ। - टेम्पलेट भेजें। फ़ाइल के URL को
HEADERपैरामीटर के रूप में और["Ayşe", "XYZ Telefon"]कोBODYपैरामीटर के रूप में देकरtemplate/send.jsकॉल करें ({{1}}→ Ayşe,{{2}}→ XYZ Telefon)। अगर टेम्पलेट में बटन वेरिएबल होते, तो आप उसी तरह एकBUTTONSआइटम जोड़ते। - चैट खोलें। जवाब का
urlबातचीत खोलता है; जब ग्राहक जवाब देता है, तो वह आपके MonoChat इनबॉक्स में जारी रहती है।
एरर
असफल कॉल एक एरर स्टेटस और एक संदेश के साथ जवाब देती है जो बताता है कि क्या गड़बड़ हुई। इन संदेशों को अपने सिस्टम में लॉग करें और ज़रूरत पड़ने पर अपने उपयोगकर्ताओं को सार्थक संदेश दिखाएँ।
| संदेश | कारण |
|---|---|
phoneNumber field is required | template/list.js को phoneNumber के बिना कॉल किया गया। |
phoneNumber, templateMessageName, customerPhoneNumber fields are required | template/send.js का कोई ज़रूरी फ़ील्ड गायब है। |
Channel not found | phoneNumber आपके वर्कस्पेस का WhatsApp नंबर नहीं है। |
Channel is not verified | WhatsApp नंबर जुड़ा हुआ है लेकिन वेरिफ़ाई नहीं हुआ है। |
Template message not found | उस नंबर पर उस नाम और भाषा का कोई मंज़ूर टेम्पलेट नहीं है। वर्तनी और languageCode जाँचें। |
Template message is not approved | टेम्पलेट मौजूद है लेकिन Meta से मंज़ूर नहीं है। |
Variable missing: … | variables टेम्पलेट से मेल नहीं खाते, जैसे टेम्पलेट को दो बॉडी मान चाहिए और आपने एक भेजा। |
Agent user not found | agentEmailAddress में दिए ईमेल वाला कोई एजेंट नहीं है। |
Customer Channel not found | ग्राहक की WhatsApp आइडेंटिटी बनाई या ढूँढी नहीं जा सकी। |
HTTP स्टेटस कोड जो आपको दिख सकते हैं:
- 401 Unauthorized:
Authorization: Bearer <API_TOKEN>हेडर गायब है, या टोकन ग़लत या एक्सपायर हो चुका है। अपने अकाउंट का मान्य टोकन इस्तेमाल करें। - 403 Forbidden: टोकन को इस वर्कस्पेस या ऐप का एक्सेस नहीं है, जैसे ग़लत टेनेंट स्लग।
- 404 Not Found: एंडपॉइंट का पता ग़लत है। पूरा पाथ
/api/<slug>/custom-functions/template-app/api/...जाँचें। - 500 Internal Server Error: MonoChat या WhatsApp प्रोवाइडर में कोई अप्रत्याशित समस्या, या WhatsApp की तरफ़ से इनकार (नंबर WhatsApp पर नहीं है, ग्राहक ने आपको ब्लॉक किया है, क्वालिटी या रेट सीमाएँ)। बाद में दोबारा कोशिश करें और अगर समस्या बनी रहे तो MonoChat सपोर्ट से संपर्क करें।
स्क्रीनशॉट
CRM, ERP या ई-कॉमर्स सिस्टम से MonoChat के ज़रिए एक API कॉल से मंज़ूर WhatsApp टेम्पलेट भेजना
मंज़ूर WhatsApp टेम्पलेट की सूची, उनके वेरिएबल के साथ
नए नंबर पर टेम्पलेट भेजने से ग्राहक अपने आप बन जाता है
एक टेम्पलेट कई भाषाओं में भेजा गया
इमेज, वीडियो, दस्तावेज़ और PDF हेडर वाले टेम्पलेटअक्सर पूछे जाने वाले प्रश्न
क्या WhatsApp Template API में यूज़र इंटरफ़ेस है?
नहीं। यह सिर्फ़ API वाला ऐप है, जिसमें तीन एंडपॉइंट हैं: टेम्पलेट की सूची, टेम्पलेट भेजना और मीडिया हेडर के लिए अपलोड क्रेडेंशियल लेना।
इसे इस्तेमाल करने से पहले मुझे क्या चाहिए?
MonoChat से जुड़ा और वेरिफ़ाई हो चुका WhatsApp Business नंबर, Meta से मंज़ूर टेम्पलेट, और प्रोफ़ाइल › API टोकन से बना API टोकन।
जब ग्राहक जवाब देता है तो क्या होता है?
बातचीत किसी भी दूसरी बातचीत की तरह आपके MonoChat इनबॉक्स में आ जाती है। हर भेजने पर बातचीत का सीधा लिंक भी मिलता है, और आप उसे ईमेल से किसी एजेंट को सौंप सकते हैं।
क्या मैं ऐसे नंबर पर भेज सकता हूँ जो अभी ग्राहक नहीं है?
हाँ। अगर फ़ोन नंबर अभी ग्राहक नहीं है, तो आपके भेजे नाम से ग्राहक बना दिया जाता है।
टेम्पलेट मैसेज की लागत कितनी होती है?
हर संदेश का बिल MonoChat से भेजे गए किसी भी टेम्पलेट संदेश की तरह ही आता है। Meta टेम्पलेट की कीमत कैटेगरी और पाने वाले के देश के हिसाब से तय करता है; भेजने की लागत का अनुमान लगाने के लिए WhatsApp बल्क मैसेजिंग कॉस्ट कैलकुलेटर इस्तेमाल करें।