Sign inGet Started

WhatsApp रिप्लाई बटन

रिप्लाई बटन किसी WhatsApp संदेश के नीचे अधिकतम तीन टैप करने योग्य विकल्प दिखाते हैं, ताकि प्राप्तकर्ता लिखकर जवाब देने के बजाय एक टैप से जवाब दे। इनका उपयोग किसी त्वरित निर्णय के लिए करें, जैसे बुकिंग की पुष्टि करना या उसे रद्द करना। तीन से अधिक विकल्पों के लिए इनके बजाय लिस्ट मेनू का उपयोग करें।

How would you like to receive your Goldcrest order?
Delivery
Collect in store

रिप्लाई बटन भेजें

interactive.type को button पर सेट करें, साथ में एक body_text और एक से तीन buttons दें, जिनमें से हर एक quick_reply हो:

const msg = await bird.whatsapp.send({
  to: "+16505551234",
  from: "+13124495648",
  interactive: {
    type: "button",
    body_text: "Your gardening workshop is scheduled for 9am tomorrow.",
    buttons: [{ type: "quick_reply", quick_reply: { slug: "change-booking", text: "Change" } }],
  },
});
console.log(msg.id, msg.status);

हर सर्विस संदेश पर from आवश्यक है: यह ऐसा नंबर होना चाहिए जिसका स्वामित्व आपके वर्कस्पेस के पास हो, न कि Bird द्वारा प्रबंधित नंबर। पूरे स्वरूप में एक वैकल्पिक हेडर, फ़ुटर, किसी पिछले संदेश का उद्धरण और एक दूसरा बटन भी जुड़ता है:

कोड उदाहरण
{
  "to": "+16505551234",
  "from": "+13124495648",
  "in_reply_to_message_id": "wam_01kya19eknftrs2s6p82asmvnh",
  "interactive": {
    "type": "button",
    "header": {
      "type": "image",
      "url": "https://cdn.example.com/banners/workshop.png"
    },
    "body_text": "Your gardening workshop is scheduled for 9am tomorrow.",
    "footer_text": "Lucky Shrub, your gateway to succulents",
    "buttons": [
      { "type": "quick_reply", "quick_reply": { "slug": "change-booking", "text": "Change" } },
      { "type": "quick_reply", "quick_reply": { "slug": "cancel-booking", "text": "Cancel" } }
    ]
  },
  "tags": [{ "name": "category", "value": "booking" }],
  "metadata": { "order_id": "A-1" }
}

in_reply_to_message_id उसी बातचीत के किसी पिछले संदेश को उद्धृत करता है। यह पहचान कैसे होती है और इसमें क्या छूट सकता है, यह जानने के लिए हब का जवाब का मिलान करने के लिए संदेश उद्धृत करना देखें।

यह प्रकार केवल quick_reply बटन भेजता है। cta_url बटन एक अलग interactive.type का हिस्सा है और buttons के साथ नहीं आ सकता; बटन के साझा स्वरूप के लिए हब का बटन अनुभाग देखें।

हेडर और फ़ुटर

हेडर वैकल्पिक है, और यह चार में से किसी एक स्वरूप में होता है:

कोड उदाहरण
"header": { "type": "text",     "text": "New workshop dates" }
"header": { "type": "image",    "url": "https://cdn.example.com/a.png" }
"header": { "type": "video",    "url": "https://cdn.example.com/a.mp4" }
"header": { "type": "document", "url": "https://cdn.example.com/a.pdf" }

मीडिया हेडर (image, video या document) अपनी फ़ाइल अपलोड किए गए मीडिया हैंडल के बजाय एक सार्वजनिक https URL के रूप में रखता है, जिसे WhatsApp भेजते समय प्राप्त करता है। footer_text वैकल्पिक है और बटनों के नीचे एक पंक्ति जोड़ता है।

सीमाएँ

फ़ील्डसीमा
buttons1 से 3 प्रविष्टियाँ, हर एक quick_reply
quick_reply.slugआवश्यक, 1 से 256 वर्ण
quick_reply.text (लेबल)आवश्यक, 1 से 20 वर्ण, संदेश के भीतर अद्वितीय
body_textआवश्यक, 1 से 1024 वर्ण
footer_textवैकल्पिक, 1 से 60 अक्षर
header.text1 से 60 अक्षर

Bird जाँचता है कि बटन लेबल (quick_reply.text) अद्वितीय हों, लेकिन यह नहीं जाँचता कि slug मान अद्वितीय हैं, जबकि हर स्लग का काम एक बटन की पहचान करना है। एक ही स्लग वाले दो बटन भेजे और डिलीवर दोनों होते हैं, और उनके जवाब लौटने पर उन्हें अलग नहीं पहचाना जा सकता।

जवाब पढ़ना

बटन दबाने पर एक अलग इनबाउंड संदेश आता है, जिसमें interactive_reply होता है:

कोड उदाहरण
{
  "id": "wam_01kyb2m4xq7whs0d8n3prv6tez",
  "direction": "inbound",
  "from": { "phone_number": "+16505551234" },
  "to": { "phone_number": "+13124495648" },
  "status": "received",
  "in_reply_to_message_id": "wam_01kya19eknftrs2s6p82asmvnh",
  "interactive_reply": {
    "type": "button",
    "button": {
      "slug": "cancel-booking",
      "text": "Cancel"
    }
  },
  "created_at": "2026-08-25T09:04:11Z"
}

भेजते समय आपने जो slug सेट किया था, वह हूबहू वापस आता है, इसलिए आप लुकअप टेबल के बिना सीधे उसी के आधार पर आगे की कार्रवाई तय कर सकते हैं। यह जवाब आपको संदेश सूची या GET /v1/whatsapp/messages/{id} के ज़रिए दिखता है; इस प्रक्रिया की पूरी जानकारी के लिए हब का जवाब पढ़ना देखें।

सीमाएँ और विशेष स्थितियाँ

  • ग्राहक सेवा विंडो खुली होनी चाहिए। रिप्लाई बटन एक सेवा संदेश हैं, जो केवल खुली विंडो के भीतर डिलीवर हो सकते हैं; हब का ग्राहक सेवा विंडो देखें। विंडो की जाँच विफल होने पर भी अनुरोध आगे बढ़ जाता है, इसलिए 202 इस बात का प्रमाण नहीं है कि संदेश भेजे जाते समय विंडो सच में खुली थी।
  • from आपके वर्कस्पेस के स्वामित्व वाला नंबर होना चाहिए। इसे छोड़ देने पर, या ऐसा नंबर देने पर जो कनेक्ट किया हुआ प्रेषक नहीं है, भेजने का अनुरोध बनने से पहले ही अस्वीकार हो जाता है।
  • लेबल अद्वितीय होने चाहिए, वरना भेजना अस्वीकार हो जाता है। एक ही quick_reply.text वाले दो बटन 422 E15056 WhatsAppInteractiveDuplicateLabel के साथ विफल होते हैं, क्योंकि ऐसा न हो तो Meta भेजना स्वीकार और चार्ज हो जाने के बाद डुप्लिकेट को अस्वीकार कर देगा।
  • प्राप्तकर्ता को लेबल दिखता है; स्लग कभी नहीं दिखता। slug में उपयोगकर्ता के लिए लिखा गया टेक्स्ट डालने का कोई असर नहीं होता और कोई त्रुटि भी नहीं आती, क्योंकि चैट में केवल text दिखाया जाता है।
  • अगर WhatsApp मीडिया हेडर का URL प्राप्त नहीं कर पाता, तो भेजना स्वीकार होने के बाद विफल होता है। Bird हेडर के url को उस तरह सत्यापित नहीं करता जिस तरह वह मीडिया संदेश के URL को करता है। इसलिए http:// URL या त्रुटि लौटाने वाला URL अनुरोध में पास हो जाता है और बाद में एसिंक्रोनस रूप से विफल होता है, और संदेश के last_error पर media_rejected दिखता है।
  • Meta के अपने फ़ील्ड नाम भेजने पर अनुरोध विफल होता है। यह प्रकार अज्ञात प्रॉपर्टी को सीधे अस्वीकार करता है। इसलिए Meta के Cloud API संदर्भ से कॉपी किए गए JSON, जैसे body ऑब्जेक्ट या action.buttons रैपर, को पहले Bird के फ़्लैट फ़ील्ड में बदलना होगा।

जो उद्धरण किसी संदेश से नहीं जुड़ता, वह कुछ भी बनाए जाने या शुल्क लगने से पहले अनुरोध को विफल कर देता है। अगर id इस वर्कस्पेस के किसी संदेश की ओर इशारा नहीं करती, तो 404 E15071 मिलता है। अगर वह ऐसे संदेश की ओर इशारा करती है जिसे उद्धृत नहीं किया जा सकता, तो 422 E15072 मिलता है। किसी भी WhatsApp भेजने में आने वाली त्रुटियों, जैसे बंद विंडो, अनुपस्थित या अमान्य प्रेषक, या अमान्य प्राप्तकर्ता, के लिए हब का त्रुटियाँ अनुभाग और WhatsApp संदेश भेजना देखें।

आगे के कदम

इस विषय के लिए दस्तावेज़, गाइड और उदाहरणों के साथ आगे बढ़ें।