Sign inGet started

असमर्थित WhatsApp संदेश प्रकार

WhatsApp ऐसी सामग्री ले जाता है जिसे Bird का API मॉडल नहीं करता, कैटलॉग ऑर्डर से लेकर बातचीत के बारे में सिस्टम नोटिस तक। ऐसे संदेश को छोड़ने या खाली डिलीवर करने के बजाय, Bird इसे एक unsupported arm के साथ रिकॉर्ड करता है जो WhatsApp content type का नाम बताता है। यह संदेश WhatsApp लॉग में दिखता है और किसी भी अन्य संदेश की तरह आपके webhook तक पहुँचता है।

एक असमर्थित संदेश में क्या होता है

unsupported.type जो आया उसके लिए WhatsApp की अपनी type string ले जाता है, और संदेश पर यही एकमात्र सामग्री होती है। इसके चारों ओर का envelope अपरिवर्तित रहता है:
कोड उदाहरण
{
  "id": "wam_01kyh0w4ujnz2x8p1s5dci0vlg",
  "direction": "inbound",
  "from": { "phone_number": "+14155550100" },
  "to": { "phone_number": "+13124495569" },
  "status": "received",
  "unsupported": { "type": "order" },
  "created_at": "2026-08-25T09:31:20Z"
}
typeसंपर्क ने क्या भेजा
interactiveइंटरैक्टिव सामग्री जिसके reply shape को API टैप के रूप में नहीं पढ़ सका
buttonएक बटन टैप जिसे API reply के रूप में नहीं पढ़ सका
orderप्रोडक्ट कैटलॉग से की गई कार्ट या ऑर्डर
systemबातचीत के बारे में एक सिस्टम नोटिस, जैसे संपर्क द्वारा अपना फ़ोन नंबर बदलना
unsupportedWhatsApp का अपना unsupported type, ऐसे संदेश के लिए जिसे इसके अपने क्लाइंट रेंडर नहीं कर सकते
उस तालिका में unsupported कोई placeholder नहीं है। WhatsApp उस नाम से अपना एक content type रिपोर्ट करता है जब उसका कोई क्लाइंट कुछ ऐसा भेजता है जो बाकी क्लाइंट प्रदर्शित नहीं कर सकते, और वह इसी value के रूप में आता है।
यह सूची खुली है। WhatsApp समय के साथ content type जोड़ता रहता है, इसलिए जो type आप नहीं पहचानते उसे त्रुटि मानने के बजाय भविष्य का type मानें: उसे लॉग करें और आगे बढ़ें, read को विफल न करें।

Webhook पेलोड

असमर्थित संदेश के लिए भी whatsapp.received फ़ायर होता है, उसी arm के साथ:
कोड उदाहरण
{
  "type": "whatsapp.received",
  "timestamp": "2026-08-25T09:31:20.774Z",
  "data": {
    "whatsapp_id": "wam_01kyh0w4ujnz2x8p1s5dci0vlg",
    "workspace_id": "ws_01ky7m235keycbnwyajabe1a6b",
    "direction": "inbound",
    "from": { "phone_number": "+14155550100" },
    "to": { "phone_number": "+13124495569" },
    "unsupported": { "type": "order" },
    "tags": null,
    "metadata": null
  }
}
जो endpoint मिलने वाले content field पर switch करता है उसमें एक default branch होनी चाहिए, और यह arm उसी में आता है। Webhook को किसी भी स्थिति में 2xx से acknowledge करें: फिर से प्रयास करने से कुछ नहीं बदलता, क्योंकि प्रयासों के बीच सामग्री मॉडल नहीं हो जाएगी।

एक असमर्थित संदेश फिर भी क्या करता है

यह संदेश हर उस तरह से एक इनबाउंड संदेश के रूप में गिना जाता है जो इसकी सामग्री पर निर्भर नहीं करता:
  • यह कस्टमर सर्विस विंडो को रीसेट करता है 24 घंटे नए सिरे से, तो आपके कैटलॉग से दिया गया ऑर्डर फ़्री-फ़ॉर्म जवाबों को फिर से खोल देता है।
  • यह संदेश सूची और WhatsApp लॉग में दिखता है, खाली पंक्ति के बजाय इसका type दिखाया जाता है।
  • इस पर कभी शुल्क नहीं लगता। किसी भी इनबाउंड संदेश की कीमत नहीं ली जाती।
आप जो नहीं कर सकते वह है सामग्री पढ़ना। ऑर्डर में कार्ट नहीं होती, और सिस्टम नोटिस यह नहीं बताता कि क्या बदला। जहाँ यह विवरण ज़रूरी है, संपर्क से शब्दों में पूछें, या reply button या list menu का उपयोग करें ताकि जवाब एक मॉडल किए गए arm पर आए जिस पर आप कार्रवाई कर सकें।

ध्यान देने योग्य बातें

  • Arm को त्रुटि न मानें। संदेश सफलतापूर्वक प्राप्त हुआ; केवल इसकी सामग्री अनमॉडल है। इस पर अलर्ट करने का मतलब है हर बार अलर्ट करना जब कोई संपर्क ऑर्डर देता है।
  • system type का मतलब हो सकता है कि संपर्क ने नंबर बदला। Meta फ़ोन नंबर बदलने को उन इवेंट्स में से एक के रूप में दस्तावेज़ित करता है जो सिस्टम संदेश उत्पन्न करते हैं, और यह उसी समय संपर्क की business-scoped user ID को दोबारा जनरेट कर देता है। Arm केवल type का नाम बताता है और कुछ नहीं, इसलिए इसे यह पुनः स्थापित करने के संकेत के रूप में लें कि आप किससे बात कर रहे हैं।
  • इमोजी रिएक्शन असमर्थित संदेश नहीं है। यह इनबाउंड संदेश ही नहीं है, इसलिए यह किसी webhook तक नहीं पहुँचता और किसी संदेश सूची में नहीं दिखता: हर बदलाव उस संदेश के अपने reaction log में रिकॉर्ड होता है जिस पर रिएक्ट किया गया, जो WhatsApp events में कवर किया गया है।
  • Type को हूबहू सहेजें। भविष्य का type एक ऐसे नाम में बदलता है जिसके लिए आपके पास अभी कोड नहीं है, और raw value रखना ही वह चीज़ है जो आपको उन संदेशों को बाद में ढूँढने देती है।

अगले कदम