LEARN · Communications

Inkwelly में failed parent message कैसे diagnose करें

Parent आकर कहता है कि fee receipt कभी नहीं मिली। बिना सोचे फिर से भेजने के बजाय Messages log खोलें, FAILED row ढूँढें और provider का सटीक error code पढ़ें। छह error codes 95% failures cover करते हैं, और हर एक का एक-line fix है।

Inkwelly Communications Messages log filtered to Failed status showing channel, recipient, status and source columns

सार — Communications → Messages खोलें, Status: Failed से filter करें, parent के phone या email से search करें, FAILED row पर click करके detail page खोलें। ऊपर दिखने वाला provider error code बताता है कि चूक क्या है — invalid number, unapproved template, rate limit या webhook timeout। हर code का एक known fix है, अनुमान लगाने की जरूरत नहीं।

एक ही message दोबारा भेजना शायद ही काम करता है क्योंकि failure की एक वजह होती है और वह वजह अभी भी मौजूद है। जो WhatsApp template Meta ने approve नहीं किया है, वह दूसरी बार भी उसी तरह fail होगा। जो phone number valid 10-digit Indian mobile नहीं है, वह तब तक RECIPIENT_NUMBER_INVALID return करता रहेगा जब तक Students module में नहीं सुधारा जाए। Inkwelly पर Messages log एकमात्र source of truth है — हर dispatch attempt, provider का response, QUEUED/SENT/DELIVERED/FAILED के timestamps और Meta, MSG91, AWS SES या FCM का raw error code सब वहीं रहते हैं। Log में दो minute अनुमान लगाने के एक घंटे को बचा देते हैं।

स्टेप 1

1. Messages log खोलें

Communications dashboard से second-level navigation में Messages tab पर click करें या सीधे /communications/messages जाएँ। Page पिछले 90 दिनों में भेजे गए या प्रयास किए गए हर message को दिखाता है, नई entry पहले। Header total count बताता है — 800 students वाला typical CBSE school महीने में 3,000–6,000 messages देखता है। 50,000 monthly messages वाले schools के लिए भी page तीन second से कम में load होता है।

Open Communications Messages log to see every dispatch attempt across WhatsApp, SMS, Email and Push channels
Step 1 — Open Communications → Messages to see every dispatch attempt in the last 90 days
स्टेप 2

2. Status: Failed से filter करें

Table के ऊपर Status filter से Failed चुनें। अब table सिर्फ वे messages दिखाएगा जिन्हें Inkwelly ने dispatch किया लेकिन provider ने reject कर दिया या confirm नहीं किया। Total messages के 1% से कम failures दिखें तो delivery healthy है। अगर failures एक channel पर cluster कर रही हैं (SMS पर ज़्यादा, WhatsApp पर कोई नहीं) तो channel में configuration issue है — step 7 पर जाएँ। अगर failures channels में बिखरी हैं लेकिन एक parent पर cluster कर रही हैं तो parent का record टूटा है — step 3 पर जाएँ।

Pick the Failed tab in the Messages queue to narrow the table to messages the provider rejected or never confirmed
Step 2 — Pick the Failed tab in the Messages queue to narrow the table to rejected dispatches
स्टेप 3

3. Parent के phone या email से search करें

Keyboard shortcut Cmd-K (Mac) या Ctrl-K (Windows) से search box खोलें। Parent का phone number paste करें (सिर्फ digits, country code नहीं) या email का address। Table उस parent के messages तक सीमित हो जाएगा — हर channel और हर source पर। एक send attempt = एक row। channel fallback enabled हो तो एक fee receipt तीन rows पैदा कर सकती है (WhatsApp SENT, SMS FAILED, Email SENT)। Parent की complaint से मेल खाती FAILED row चुनें।

Scan the recipient column on a Failed row to find the parent who complained about a missing message
Step 3 — Scan the recipient column to find the row that matches the parent who complained
स्टेप 4

4. FAILED row पर click करके message detail खोलें

Row पर click करने पर detail page खुलता है — एक full panel जिसमें recipient address, template name, source (FEE_RECEIPT, PAYMENT_LINK, INVOICE_PAYMENT, STUDENT_FINE इत्यादि), channel, trigger event (fee.receipt.shared, attendance.absent.marked) और सबसे महत्वपूर्ण ऊपर red banner में raw provider error दिखता है। Banner कुछ ऐसा होता है — 'STATUS_FAILED — RECIPIENT_NUMBER_INVALID (Meta error 131026)'। यह एक line आपका जवाब है।

Open the Failed message detail page to read recipient, template, channel and the red provider error banner at the top
Step 4 — Click the Failed row to open the detail page with recipient, template, source, channel and event
स्टेप 5

5. Error code को known fix से match करें

छह error codes 95% failures cover करते हैं। RECIPIENT_NUMBER_INVALID का मतलब phone column में non-mobile number है — Students module में सुधारें। TEMPLATE_NOT_APPROVED यानी WhatsApp template submission के बाद edit किया गया — Meta Business Manager से re-submit करें। RATE_LIMIT_EXCEEDED यानी एक साथ बहुत ज़्यादा messages — एक घंटा रुकें, campaign batch size कम करें। BLOCKED_BY_USER यानी parent ने WhatsApp number को spam report किया — SMS करें या call करें। WEBHOOK_TIMEOUT यानी provider ने acknowledge किया पर delivery confirm नहीं की — Settings → Channels में webhook re-verify करें। बिना sub-code के STATUS_FAILED यानी channel account की credentials expire हो गईं।

Read the WhatsApp provider error code in the red banner on the message detail page to match it to a known fix
Step 5 — Match the red banner provider error code to the known six-code fix table
स्टेप 6

6. Fix उसके source पर लगाएँ, message पर नहीं

Underlying cause fix किए बिना detail page से message retry मत करें। RECIPIENT_NUMBER_INVALID के लिए Students module खोलें → student ढूँढें → parent phone column सही करें → save करें। TEMPLATE_NOT_APPROVED के लिए Settings → Communications → Templates खोलें → template ढूँढें → 'Submit for Meta review' पर click करें → 24–48 घंटे इंतज़ार करें। Meta के approve करने पर उस template से पहले failed messages Inkwelly auto-retry कर देता है — manually resend की जरूरत नहीं।

Read the SMS provider error code on a different Failed message to confirm the same diagnosis pattern works on every channel
Step 6 — Fix at the source: open a different Failed message to confirm the same provider error pattern
स्टेप 7

7. जब सारी failures एक channel पर हों, channel account check करें

Settings → Communications → Channels जाएँ। हर tile पर channel, provider (Meta Cloud API, MSG91, Fast2SMS, AWS SES, FCM), last successful webhook timestamp और credential expiry दिखता है। 'Last webhook: Never' या 'Last webhook: >24h ago' दिखाए channel चुपचाप टूटा है। Tile पर click करें, access token या app secret दोबारा enter करें, 'Verify webhook' पर click करें। Successful re-verification के पाँच minute के अंदर Communications dashboard की Alerts strip clear हो जाती है।

Inkwelly Communications Channels page showing the connected WhatsApp number row alongside Email and Push
Step 7 — Open Channels to verify the last webhook timestamp when failures cluster on one channel

आगे क्या — तीसरे या चौथे diagnosis के बाद आप देखेंगे कि वही दो-तीन error codes बार-बार आ रहे हैं। Communications dashboard का Delivery health card खोलें — इसका 'Top failure reasons' section पिछले सात दिनों में हर error code को frequency के हिसाब से रैंक करता है। Top reason इस हफ्ते का fix-project है। अगर RECIPIENT_NUMBER_INVALID प्रमुख है तो Students module का one-time audit चलाएँ। अगर TEMPLATE_NOT_APPROVED प्रमुख है तो WhatsApp templates audit करें और edit हुए templates को re-submit करें। एक term यह करने वाले schools failure rate 15% से 3% से नीचे ला देते हैं।

Failed messages पर अनुमान लगाना बंद करें

25 minute का free demo book करें — हम आपके अपने message log पर live walkthrough करेंगे, वास्तविक failure codes और हर एक का fix दिखाएँगे।

अक्सर पूछे गए सवाल

6 सवाल
Failed messages log में कितने दिनों तक retain होते हैं?

90 दिन। पुराने messages archive हो जाते हैं लेकिन FAILED count Delivery health card के aggregate में दिखता रहता है। 90 दिन से पुराना record चाहिए तो log को मासिक CSV में export करें — Settings → Communications → Digests में built-in monthly export है।

Log में FAILED और QUEUED में अंतर क्या है?

QUEUED यानी Inkwelly ने message accept किया है लेकिन provider को अभी dispatch नहीं किया — आम तौर पर quiet hours, rate limit या scheduled send window के कारण। FAILED यानी dispatch पूरी हुई और provider ने reject कर दिया। School hours में एक घंटे से ज़्यादा QUEUED रहना असामान्य है — dashboard पर queue depth check करें।

Cause fix किए बिना FAILED message retry करने से कुछ होगा?

नहीं। Retry पर वही error वापस आएगा क्योंकि underlying condition नहीं बदली — invalid number अभी भी invalid है, unapproved template अभी भी unapproved है। Inkwelly transient failures (network blips, rate limits) को automatically retry कर देता है, इसलिए log में जो failure दिख रहा है वह permanent है जिसकी जड़ ठीक करनी होगी।

क्या एक ही fee receipt पर parent को WhatsApp पर FAILED और SMS पर SENT मिल सकता है?

हाँ। अगर Settings → Communications में channel fallback enabled है तो WhatsApp FAILED पर उसी template के लिए SMS attempt automatically trigger हो जाता है। Messages log दोनों rows को एक ही trigger event से जोड़कर दिखाता है, इसलिए पूरी delivery story एक जगह दिखती है।

Inkwelly mein WhatsApp message FAILED dikha to kya karu?

Sabse pehle FAILED row pe click karke detail page kholo, red banner mein provider error code padho. RECIPIENT_NUMBER_INVALID hai to Students module mein number theek karo. TEMPLATE_NOT_APPROVED hai to Meta Business Manager se template phir submit karo. WEBHOOK_TIMEOUT hai to Settings → Channels mein webhook re-verify karo. Bina cause fix kiye dobara mat bhejo.

Parent ke fee receipt ka SMS nahi pohcha to log mein kahan dikhega?

Communications → Messages log kholo, Status filter mein Failed select karo, parent ka phone number Cmd-K se search karo. Source column mein FEE_RECEIPT dikhega, channel column mein SMS aur status FAILED. Us row pe click karke detail mein error code padho — wahi bataega ki failure ka exact reason kya hai.

आपको ये भी पसंद आ सकता है

3 लेख

स्रोत व संदर्भ

  1. Meta WhatsApp Cloud API error codes · देखा गया 18 May 2026

    Inkwelly Messages detail page पर surface होने वाले WhatsApp provider error codes (RECIPIENT_NUMBER_INVALID, TEMPLATE_NOT_APPROVED, RATE_LIMIT_EXCEEDED, BLOCKED_BY_USER) का authoritative reference।

  2. TRAI Telecom Commercial Communications Customer Preference Regulations, 2018 · देखा गया 18 May 2026

    SMS DLT template approval और consent नियमों को govern करता है; MSG91 या Fast2SMS पर 'template mismatch' या 'header not registered' failures इन्हीं regulations से जुड़ी होती हैं।

Inkwelly आपके स्कूल पर — खुद देखें

30 मिनट का डेमो। आपके मौजूदा ERP को आपके साथ खोलकर, कॉल पर ही आपका डेटा Inkwelly में लोड करते हैं। कॉल ख़त्म होते-होते एक तय तारीख़ का गो-लाइव प्लान आपके हाथ में।

लेखकJharendra A VermaFounder, Inkwelly

Building Inkwelly — a modern school management platform for Indian schools across CBSE, ICSE, and state boards. Writes about school operations, board compliance, and admissions workflows.

यह पृष्ठ AI सहायता से अंग्रेज़ी से अनुवादित है, और super-admin द्वारा समीक्षा की गई।This page was translated from English with AI assistance and reviewed by super-admin.