וובהוק (Webhook) של account_update וכל סיבות הניתוק
account_update הוא האופן שבו Meta מדווחת שחיבור שינה מצב. השדה event מציין מה קרה, ובמקרה של הסרה, disconnection_info.reason מציין מדוע. הסיבה קובעת אם המספר יחזור או אבד סופית.
האירוע ש-Meta שולחת כשהאפליקציה מוסרת מחשבון WhatsApp Business.
סיבות ניתוק מפורשות שהסרה יכולה לכלול.
חלון חוסר הפעילות של המכשיר הראשי, שמגיע כ-PRIMARY_INACTIVITY.
אילו אירועים account_update כולל?
PARTNER_REMOVED, כשהאפליקציה מוסרת מחשבון WhatsApp Business. זה אות הניתוק הקובע, ועליו כדאי לבנות, במקום להסיק על ניתוק משדה שערכו השתנה ל-false.
ACCOUNT_OFFBOARDED, כשהמספר מוסר לחלוטין. ACCOUNT_RECONNECTED, כשחיבור שהוסר בעבר חוזר. ויש גם אירועי אכיפה: ACCOUNT_RESTRICTION ו-ACCOUNT_VIOLATION, לצד אירועים ששמם כולל DISABLED או BAN.
גם תוצאות האימות והאישור מגיעות לכאן, עם שמות אירועים הכוללים VERIFIED או APPROVED. המטפל צריך לבדוק את שם האירוע ולהתייחס לכל שם לא מוכר כמידע בלבד, במקום להיכשל, כי Meta מוסיפה אירועים בלי התראה.
מהן סיבות הניתוק?
שש, והמשמעות של כל אחת שונה מאוד.
PRIMARY_INACTIVITY הוא הכלל של בערך ארבעה עשר יום: אפליקציית WhatsApp Business לא נפתחה במכשיר הראשי. אפשר לשחזר, וזו בפער הסיבה הנפוצה ביותר.
COMPANION_INACTIVITY הוא אותו רעיון במכשיר נלווה, בחלון ארוך יותר של כשלושים יום.
BUSINESS_DOWNGRADE פירושו שהמספר חזר לאפליקציית WhatsApp לצרכנים, ולכן Coexistence מסתיים, כי Coexistence דורש את אפליקציית Business.
CHANGE_NUMBER פירושו שמספר הטלפון עצמו השתנה. USER_RE_REGISTERED פירושו שהמספר נרשם מחדש במכשיר חדש. ACCOUNT_DISCONNECTED פירושו שהלקוח ניתק אותו בכוונה, או שהאכיפה עשתה זאת.
הסיבה מגיעה גם לצד disconnection_info.initiated_by, שמציין אם אדם או המערכת ביצעו את הניתוק.
למה הסיבה חשובה יותר מהאירוע?
כי PARTNER_REMOVED לבדו לא אומר לכם מה לעשות.
מספר שהוסר בגלל PRIMARY_INACTIVITY יחזור: העסק פותח את האפליקציה, מתחבר מחדש והכול ממשיך. אם מתייחסים לכך כלקוח שעזב, נשלחת הודעת ביטול למי שעדיין לקוח.
מספר שהוסר בגלל BUSINESS_DOWNGRADE או ACCOUNT_DISCONNECTED הוא מצב אחר. אם מתייחסים אליו כזמני, החיבור עלול להישאר ללא פתרון.
כשהסרה מגיעה בלי סיבה, initiated_by הוא אות העזר: הסרה שביצע אדם נראית מכוונת, בעוד שהסרת מערכת ללא הסבר אינה כזו. כדאי לקודד את ההבחנה הזו, במקום לברר אותה מאוחר יותר מול התמיכה.
טעויות נפוצות
- להתייחס לכל PARTNER_REMOVED באותו אופן. הסיבה מבדילה בין שבועיים של שקט לבין לקוח שעזב.
- להסיק על ניתוק משדה שערכו השתנה ל-false במקום מהאירוע הזה. כך נוצרות התראות שווא.
- להיכשל בגלל שם אירוע לא מוכר. Meta מוסיפה אירועים, והמטפל צריך לדלג על מה שאינו מכיר.
EasyCoexistence מטפל בכל אחת מהסיבות האלה לפי שמה, מתעד אותה בציר הזמן של החיבור ומבדיל בין הסרה הניתנת לשחזור בגלל חוסר פעילות לבין מספר שאבד בפועל.
שאלות נפוצות
האם PARTNER_REMOVED סופי?
בדרך כלל לא. רוב המקרים מגיעים עם PRIMARY_INACTIVITY, כלומר האפליקציה לא נפתחה, וחיבור מחדש משחזר הכול.
האם חיבור מחדש משחזר את יעד הוובהוק?
לא, וזו המלכודת. היעד הוא override במינוי האפליקציה, והוא מוסר יחד איתה. צריך להחיל אותו מחדש.
מהו COMPANION_INACTIVITY?
אותו רעיון של חוסר פעילות במכשיר נלווה, ולא במכשיר הראשי, בחלון ארוך יותר של כשלושים יום.
האם אפשר לקבל את האירוע הזה בלי סיבה?
כן. במקרה כזה, disconnection_info.initiated_by הוא האות היחיד שמראה אם הניתוק היה מכוון.
המשיכו לקרוא
מוכנים להתחיל?
מגדירים WhatsApp Coexistence בתוך דקות, לא חודשים. האפליקציה ממשיכה לעבוד בטלפון.
התחילו תקופת ניסיון בחינםנבדק ב-