मुख्य कंटेंट तक स्किप करें

WhatsApp Template API

WhatsApp Template API icon
डेवलपर API

अपने सिस्टम से मंज़ूर किए गए WhatsApp टेम्पलेट एक API कॉल से भेजें; इसके बाद बातचीत MonoChat में जारी रहती है।

  • WhatsApp
  • REST API
  • सिर्फ़ API

ओवरव्यू​

WhatsApp Template API आपके CRM, ERP, ई-कॉमर्स साइट या किसी भी बैकएंड को MonoChat के ज़रिए ग्राहक को मंज़ूर किया हुआ WhatsApp टेम्पलेट मैसेज भेजने देता है। एक अनुरोध में वह WhatsApp नंबर जिससे भेजना है, ग्राहक का फ़ोन नंबर, टेम्पलेट और उसके वेरिएबल बताए जाते हैं।

जब ग्राहक जवाब देता है, तो बातचीत किसी भी दूसरी बातचीत की तरह आपके MonoChat इनबॉक्स में आ जाती है। ऐप की अपनी कोई स्क्रीन नहीं है: सब कुछ तीन API एंडपॉइंट से होता है।

मुख्य विशेषताएँ​

  • एक API कॉल। टेम्पलेट को नाम और भाषा से भेजें, हेडर, बॉडी, बटन और कैरोसेल के वेरिएबल आपके डेटा से भरे हुए।
  • सीधे चैट में। हर भेजने पर बातचीत की आईडी और MonoChat में उसका सीधा लिंक मिलता है।
  • नए ग्राहकों का स्वागत। अगर फ़ोन नंबर अभी ग्राहक नहीं है, तो आपके भेजे नाम से ग्राहक बना दिया जाता है।

इंस्टॉल और सेट अप करें​

  1. अपना WhatsApp Business नंबर MonoChat से कनेक्ट करें और पक्का करें कि वह वेरिफ़ाई हो चुका है और उस पर Meta से मंज़ूर टेम्पलेट हैं।
  2. सेटिंग › MonoStore › ऐप से WhatsApp Template API इंस्टॉल करें, या इंस्टॉल लिंक app.monochat.ai/apps/K6u29LpbwCHBozZ8o खोलें। अगर आपके पास MonoChat अकाउंट नहीं है, तो लिंक आपको पहले साइन अप करने देता है और फिर आपके लिए ऐप इंस्टॉल कर देता है।
  3. प्रोफ़ाइल › API टोकन में एक API टोकन बनाएँ। टोकन सिर्फ़ एक बार दिखाया जाता है, इसलिए उसे तुरंत कॉपी कर लें।
  4. अपने मंज़ूर टेम्पलेट और उनके वेरिएबल देखने के लिए template/list.js कॉल करें।
  5. अपना पहला टेम्पलेट भेजने के लिए ग्राहक के नंबर और वेरिएबल के मानों के साथ template/send.js कॉल करें।
MonoChat सेटिंग में MonoStore की ऐप सूची, जिसमे��ं WhatsApp Template API है
MonoStore में WhatsApp Template API का विवरण और इंस्टॉल बटन
नोट
  • हर संदेश का बिल 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: वे हिस्से जिनसे टेम्पलेट बना है।
कंपोनेंटसामग्रीविवरण
HEADERIMAGE, VIDEO, DOCUMENT या टेक्स्टमीडिया के लिए format दिया जाता है; वेरिएबल variables के तहत दिखते हैं।
BODYवेरिएबल वाला टेक्स्टसंदेश की बॉडी, जिसमें {{1}}, {{2}} जैसे प्लेसहोल्डर होते हैं।
FOOTERटेक्स्टआम तौर पर इसमें वेरिएबल नहीं होते।
BUTTONSURL, क्विक रिप्लाई…बटन के टेक्स्ट और उनके वेरिएबल, अगर हों।

ऊपर के उदाहरण वाले टेम्पलेट को हेडर के लिए एक इमेज और बॉडी के लिए दो टेक्स्ट (ग्राहक का नाम और प्रोडक्ट का नाम) चाहिए। फ़ुटर तय है ("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 की सूची होती है, जो टेम्पलेट के प्लेसहोल्डर के क्रम में दी जाती है:

typeparameters
HEADERहेडर का टेक्स्ट वेरिएबल, या हेडर की इमेज, वीडियो या दस्तावेज़ का सार्वजनिक URL।
BODYबॉडी के {{1}}, {{2}}, … क्रम से।
BUTTONSहर उस बटन के लिए एक मान जिसमें वेरिएबल है (जैसे URL बटन का डायनेमिक हिस्सा या कूपन कोड), बटन के क्रम में।
CAROUSELparameters की जगह एक 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 है, और आप उसे किसी ग्राहक को भेजना चाहते हैं।

  1. टेम्पलेट की सूची लें। अपने WhatsApp नंबर के साथ template/list.js कॉल करें और new_product_announcement ढूँढें। उसके कंपोनेंट में हेडर में एक IMAGE वेरिएबल और बॉडी में दो TEXT वेरिएबल दिखते हैं।
  2. इमेज अपलोड करें। { "fileName": "urun.jpg" } के साथ upload/get-token.js कॉल करें, लौटाए गए क्रेडेंशियल से फ़ाइल अपलोड करें और baseUrl व path से उसका URL बनाएँ।
  3. टेम्पलेट भेजें। फ़ाइल के URL को HEADER पैरामीटर के रूप में और ["Ayşe", "XYZ Telefon"] को BODY पैरामीटर के रूप में देकर template/send.js कॉल करें ({{1}} → Ayşe, {{2}} → XYZ Telefon)। अगर टेम्पलेट में बटन वेरिएबल होते, तो आप उसी तरह एक BUTTONS आइटम जोड़ते।
  4. चैट खोलें। जवाब का url बातचीत खोलता है; जब ग्राहक जवाब देता है, तो वह आपके MonoChat इनबॉक्स में जारी रहती है।

एरर​

असफल कॉल एक एरर स्टेटस और एक संदेश के साथ जवाब देती है जो बताता है कि क्या गड़बड़ हुई। इन संदेशों को अपने सिस्टम में लॉग करें और ज़रूरत पड़ने पर अपने उपयोगकर्ताओं को सार्थक संदेश दिखाएँ।

संदेशकारण
phoneNumber field is requiredtemplate/list.js को phoneNumber के बिना कॉल किया गया।
phoneNumber, templateMessageName, customerPhoneNumber fields are requiredtemplate/send.js का कोई ज़रूरी फ़ील्ड गायब है।
Channel not foundphoneNumber आपके वर्कस्पेस का WhatsApp नंबर नहीं है।
Channel is not verifiedWhatsApp नंबर जुड़ा हुआ है लेकिन वेरिफ़ाई नहीं हुआ है।
Template message not foundउस नंबर पर उस नाम और भाषा का कोई मंज़ूर टेम्पलेट नहीं है। वर्तनी और languageCode जाँचें।
Template message is not approvedटेम्पलेट मौजूद है लेकिन Meta से मंज़ूर नहीं है।
Variable missing: …variables टेम्पलेट से मेल नहीं खाते, जैसे टेम्पलेट को दो बॉडी मान चाहिए और आपने एक भेजा।
Agent user not foundagentEmailAddress में दिए ईमेल वाला कोई एजेंट नहीं है।
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 सपोर्ट से संपर्क करें।

स्क्रीनशॉट​

अक्सर पूछे जाने वाले प्रश्न​

क्या WhatsApp Template API में यूज़र इंटरफ़ेस है?​

नहीं। यह सिर्फ़ API वाला ऐप है, जिसमें तीन एंडपॉइंट हैं: टेम्पलेट की सूची, टेम्पलेट भेजना और मीडिया हेडर के लिए अपलोड क्रेडेंशियल लेना।

इसे इस्तेमाल करने से पहले मुझे क्या चाहिए?​

MonoChat से जुड़ा और वेरिफ़ाई हो चुका WhatsApp Business नंबर, Meta से मंज़ूर टेम्पलेट, और प्रोफ़ाइल › API टोकन से बना API टोकन।

जब ग्राहक जवाब देता है तो क्या होता है?​

बातचीत किसी भी दूसरी बातचीत की तरह आपके MonoChat इनबॉक्स में आ जाती है। हर भेजने पर बातचीत का सीधा लिंक भी मिलता है, और आप उसे ईमेल से किसी एजेंट को सौंप सकते हैं।

क्या मैं ऐसे नंबर पर भेज सकता हूँ जो अभी ग्राहक नहीं है?​

हाँ। अगर फ़ोन नंबर अभी ग्राहक नहीं है, तो आपके भेजे नाम से ग्राहक बना दिया जाता है।

टेम्पलेट मैसेज की लागत कितनी होती है?​

हर संदेश का बिल MonoChat से भेजे गए किसी भी टेम्पलेट संदेश की तरह ही आता है। Meta टेम्पलेट की कीमत कैटेगरी और पाने वाले के देश के हिसाब से तय करता है; भेजने की लागत का अनुमान लगाने के लिए WhatsApp बल्क मैसेजिंग कॉस्ट कैलकुलेटर इस्तेमाल करें।