WhatsApp रिप्लाई बटन
रिप्लाई बटन किसी WhatsApp संदेश के नीचे अधिकतम तीन टैप करने योग्य विकल्प दिखाते हैं, ताकि प्राप्तकर्ता लिखकर जवाब देने के बजाय एक टैप से जवाब दे। इनका उपयोग किसी त्वरित निर्णय के लिए करें, जैसे बुकिंग की पुष्टि करना या उसे रद्द करना। तीन से अधिक विकल्पों के लिए इनके बजाय लिस्ट मेनू का उपयोग करें।
रिप्लाई बटन भेजें
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);msg = client.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"}}],
},
)
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)
}
msg, err := client.Whatsapp.Send(context.Background(), bird.WhatsappSendParams{
To: "+16505551234",
From: "+13124495648",
Interactive: &bird.WhatsAppInteractiveSend{
Type: "button",
BodyText: "Your gardening workshop is scheduled for 9am tomorrow.",
Buttons: &[]bird.WhatsAppInteractiveButtonSend{
{Type: "quick_reply", QuickReply: &bird.WhatsAppInteractiveQuickReplyButtonSend{Slug: "change-booking", Text: "Change"}},
},
},
})
if err != nil {
log.Fatal(err)
}
fmt.Println(msg.Id, *msg.Status)
}$interactive = (new WhatsAppMessageSendRequestInteractive())
->setType('button')
->setBodyText('Your gardening workshop is scheduled for 9am tomorrow.')
->setButtons([
(new WhatsAppInteractiveButtonSend())
->setType('quick_reply')
->setQuickReply((new WhatsAppInteractiveButtonSendQuickReply())->setSlug('change-booking')->setText('Change')),
]);
$message = $bird->whatsapp->send(
to: '+16505551234',
from: '+13124495648',
interactive: $interactive,
);
echo $message->getId(), ' ', $message->getStatus();bird whatsapp send \
--from +13124495648 \
--interactive '{"body_text":"Your gardening workshop is scheduled for 9am tomorrow.","buttons":[{"quick_reply":{"slug":"change-booking","text":"Change"},"type":"quick_reply"}],"type":"button"}' \
--to +16505551234curl -X POST "https://{region}.platform.bird.com/v1/whatsapp/messages" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{
"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" } }
]
}
}'हर सर्विस संदेश पर 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 वैकल्पिक है और बटनों के नीचे एक पंक्ति जोड़ता है।
सीमाएँ
| फ़ील्ड | सीमा |
|---|---|
buttons | 1 से 3 प्रविष्टियाँ, हर एक quick_reply |
quick_reply.slug | आवश्यक, 1 से 256 वर्ण |
quick_reply.text (लेबल) | आवश्यक, 1 से 20 वर्ण, संदेश के भीतर अद्वितीय |
body_text | आवश्यक, 1 से 1024 वर्ण |
footer_text | वैकल्पिक, 1 से 60 अक्षर |
header.text | 1 से 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वाले दो बटन422E15056WhatsAppInteractiveDuplicateLabelके साथ विफल होते हैं, क्योंकि ऐसा न हो तो 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 संदेश भेजना देखें।
आगे के कदम
- WhatsApp इंटरैक्टिव संदेश: सभी छह इंटरैक्टिव प्रकारों में साझा बातें
- लिस्ट मेन्यू: तीन से अधिक विकल्पों के लिए
- WhatsApp संदेश भेजना: अनुरोध की संरचना,
202मॉडल और सुरक्षित रूप से फिर से प्रयास करना
संबंधित संसाधन
इस विषय के लिए दस्तावेज़, गाइड और उदाहरणों के साथ आगे बढ़ें।