# WhatsApp रिएक्शन प्राप्त करना

रिएक्शन परिवर्तनों को सब्सक्राइब करें ताकि आपको पता चले कि कोई संपर्क आपके किसी संदेश पर emoji कब जोड़ता है, बदलता है या हटाता है। रिएक्शन किसी मौजूदा संदेश से जुड़ते हैं और `whatsapp.reacted` के माध्यम से आते हैं।

## पूर्वापेक्षाएँ

अपने वर्कस्पेस के लिए एक [webhook endpoint](/docs/guides/webhooks) सेट अप करें। मौजूदा रिएक्शन या उनका इतिहास प्राप्त करने के लिए, WhatsApp read अनुमति वाली API key का उपयोग करें।

## 1. रिएक्शन परिवर्तनों को सब्सक्राइब करें

अपनी webhook subscription में `whatsapp.reacted` जोड़ें। `whatsapp.received` की subscription में रिएक्शन शामिल नहीं होते। सिग्नेचर सत्यापन, डिलीवरी रीट्राई और endpoint कॉन्फ़िगरेशन के लिए [webhooks गाइड](/docs/guides/webhooks) का पालन करें।

रिएक्शन मैसेज लिस्ट में नया संदेश नहीं बनाते और न ही कस्टमर सर्विस विंडो खोलते हैं। अगर आपको जवाब देना हो, तो फ़्री-फ़ॉर्म संदेश भेजने से पहले [सर्विस विंडो नियम](/docs/guides/whatsapp/sending-whatsapp) देखें।

## 2. संदेश और परिवर्तन की पहचान करें

इवेंट का `data.whatsapp_id` पढ़ें ताकि वह संदेश मिल सके जिस पर संपर्क ने रिएक्ट किया। यह मूल Bird मैसेज ID (`wam_…`) है, कोई अलग रिएक्शन ID नहीं।

संपर्क की पहचान के लिए `data.from` और अपने WhatsApp सेंडर की पहचान के लिए `data.to` का उपयोग करें। ये WhatsApp address ऑब्जेक्ट हैं; जब संपर्क के address में कोई फ़ोन नंबर न हो तो [business-scoped user IDs](/docs/guides/whatsapp/business-scoped-user-ids) को हैंडल करें।

एक संपर्क द्वारा thumbs-up रिएक्शन जोड़ने पर यह webhook उत्पन्न होता है:

```json
{
  "data": {
    "emoji": "👍",
    "from": { "phone_number": "+14155550100" },
    "to": { "phone_number": "+13124495569" },
    "whatsapp_id": "wam_01ky8b3xq4gd7pmzn2ka51f7te",
    "workspace_id": "ws_01ky7m235keycbnwyajabe1a6b"
  },
  "timestamp": "2026-08-28T19:01:10.000Z",
  "type": "whatsapp.reacted"
}
```

`data.emoji` को इस प्रकार समझें:

- एक non-null emoji संदर्भित संदेश पर उस संपर्क का रिएक्शन जोड़ता या बदलता है।
- एक `null` emoji उस संपर्क का रिएक्शन हटाता है। यह फ़ील्ड removal इवेंट में मौजूद होती है।

एक प्रतिस्थापन एकल इवेंट के रूप में नए emoji के साथ आता है; पुराने emoji के लिए कोई अलग removal इवेंट नहीं होता। सटीक स्ट्रिंग को संरक्षित रखें: `❤` और `❤️` पेलोड में अलग-अलग मान हैं।

## 3. मौजूदा रिएक्शन प्राप्त करें

अगर आपका एप्लिकेशन किसी संदेश से जुड़ा मौजूदा रिएक्शन दिखाता है, तो [संदेश प्राप्त करें](/docs/api/reference/get-whatsapp-message) और उसका `reactions` पढ़ें। इस सूची में प्रति सेंडर एक स्थायी रिएक्शन होता है और जब कोई रिएक्शन नहीं होता तो इसे छोड़ दिया जाता है।

`GET /v1/whatsapp/messages/wam_01ky8b3xq4gd7pmzn2ka51f7te` के लिए, रिएक्शन-संबंधित फ़ील्ड इस आकार में होते हैं (अन्य मैसेज फ़ील्ड छोड़े गए हैं):

```json
{
  "id": "wam_01ky8b3xq4gd7pmzn2ka51f7te",
  "reactions": [
    {
      "emoji": "👍",
      "from": { "phone_number": "+14155550100" }
    }
  ]
}
```

संदेश अपनी मूल सामग्री, दिशा और डिलीवरी स्थिति बनाए रखता है। `reactions[].from` उस व्यक्ति की पहचान करता है जिसने रिएक्ट किया।

आपको प्राप्त हुए अंतिम webhook को मौजूदा स्थिति न मानें। WhatsApp रिएक्शन समय सेकंड तक रिपोर्ट करता है, इसलिए परिवर्तन एक ही टाइमस्टैम्प साझा कर सकते हैं, और webhook रीट्राई आगमन क्रम बदल सकती हैं। संदेश के मौजूदा रिएक्शन रीफ़्रेश करने के लिए webhooks का उपयोग करें।

## 4. रिएक्शन इतिहास देखें

संदर्भित संदेश पर हुए परिवर्तनों को देखने के लिए [रिएक्शन इवेंट सूचीबद्ध करें](/docs/api/reference/list-whatsapp-message-reaction-events)। आने वाले संपर्क परिवर्तनों की स्थिति `received` होती है; removal में `emoji: null` होता है। सूची में [आपके वर्कस्पेस द्वारा भेजे गए रिएक्शन](/docs/guides/whatsapp/reactions) के परिणाम भी शामिल हैं।

reaction-events API एक पेजिनेटेड प्रतिक्रिया लौटाता है। यह उदाहरण एक अस्वीकृत बिज़नेस रिएक्शन और एक पहले प्राप्त संपर्क रिएक्शन दिखाता है:

```json
{
  "data": [
    {
      "id": "war_01krdgeqcxet5s7t44vh8rt9mh",
      "emoji": "🎉",
      "status": "rejected",
      "from": {
        "phone_number": "+13124495569"
      },
      "error": {
        "code": "internal_error",
        "description": "the receiving number is no longer connected",
        "occurred_at": "2026-08-28T19:04:22Z"
      },
      "occurred_at": "2026-08-28T19:04:22Z"
    },
    {
      "id": "war_01krdgeqcxet5s7t44vh8rt9mg",
      "emoji": "👍",
      "status": "received",
      "from": {
        "phone_number": "+14155550100",
        "bsuid": "US.13491208655302741918"
      },
      "occurred_at": "2026-08-28T19:01:10Z"
    }
  ],
  "next_cursor": null,
  "prev_cursor": null,
  "refresh_cursor": "eyJ2IjoxLCJzIjoiMjAyNi0wOC0yOFQxOTowNDoyMloiLCJpIjoiMDE5ZTFiMDctNWQ5ZC03NjhiLTkzZTgtODRkYzUxOGQyNjkxIn0"
}
```

रिएक्शन इतिहास संदेश के डिलीवरी इवेंट से अलग है। message-events endpoint में `whatsapp.reacted` परिवर्तन शामिल नहीं हैं। रिटेंशन और पेजिनेशन के लिए [रिएक्शन लॉग रेफ़रेंस](/docs/api/reference/list-whatsapp-message-reaction-events) का पालन करें।

## समस्या निवारण

- **कोई रिएक्शन webhook नहीं**: जाँचें कि subscription में `whatsapp.reacted` शामिल है। किसी पुराने संदेश पर रिएक्शन, जिसका provider reference अब resolve नहीं हो सकता, कोई मिलान किया गया रिएक्शन, लॉग एंट्री या webhook उत्पन्न नहीं करता।
- **मैसेज लिस्ट में रिएक्शन दिखाई नहीं दे रहा**: मूल संदेश देखें। रिएक्शन उससे जुड़ा होता है और इसकी कोई अलग मैसेज पंक्ति नहीं होती।
- **रिएक्शन स्थिति अप्रत्याशित रूप से बदल रही है**: webhook इवेंट को आगमन समय या टाइमस्टैम्प के अनुसार क्रमित करने के बजाय मूल संदेश का `reactions` रीफ़्रेश करें।

## अगले कदम

- [रिएक्शन भेजें या हटाएँ](/docs/guides/whatsapp/reactions)
- [WhatsApp इवेंट पेलोड पढ़ें](/docs/guides/whatsapp/events)
- [WhatsApp संदेश प्राप्त करें](/docs/guides/whatsapp/receiving-whatsapp)

## Related resources

- [Connecting WhatsApp to Bird: from buying a number to a live channel](/learn/whatsapp/connecting-whatsapp-to-bird) (video)
- [What is the 24-hour customer service window on WhatsApp?](/explained/whatsapp/what-is-the-24-hour-customer-service-window) (answer)
- [WhatsApp message builder](/tools/whatsapp-message-builder) (tool)
- [WhatsApp](/products/whatsapp) (product)

[Get an implementation brief](/learn/workspace?topic=whatsapp)
