שדות וובהוק של WhatsApp, ואיזה מהם מגיע לאן
חשבון WhatsApp Business מעביר אירועים כשדות בעלי שמות. שניים נושאים תוכן של שיחות ונשלחים לנקודת הקצה שלכם. שישה נושאים מצב תפעולי, ומהם נבנה הניטור. ההבחנה ביניהם קובעת את הארכיטקטורה שלכם.
- שני שדות הודעות, שישה תפעוליים
- הניתוב מוגדר לכל חשבון
- שדות בעלי שמות, לא payload כללי
לא תחויבו במשך 7 ימים. בטלו בכל זמן.
שדות נתיב ההודעות: messages ו-smb_message_echoes.
שדות תפעוליים נשמרים לניטור.
ה-Override מוגדר לכל חשבון WhatsApp Business, והוא שמפצל ביניהם.
מה כל שדה נושא?
messages נושא את כל מה שלקוח שולח למספר: טקסט, הפניות למדיה, תשובות ותגובות. smb_message_echoes נושא את מה שהצוות שלכם שולח מאפליקציית WhatsApp Business. הוא קיים רק במספר Coexistence, וכך התוכנה רואה תשובות של אדם.
account_update נושא את מצב החיבור: PARTNER_REMOVED כשהאפליקציה מוסרת מהחשבון, ACCOUNT_OFFBOARDED, ACCOUNT_RECONNECTED ואירועי הגבלה או הפרה. phone_number_quality_update נושא שינויים בדירוג האיכות ובקצב השליחה. account_alerts נושא התראות ש-Meta מעלה נגד החשבון, ו-account_review_update נושא את תוצאת הבדיקה.
business_capability_update נושא שינויים במגבלת ההודעות וביכולות, ו-phone_number_name_update נושא אישורים ודחיות של שם התצוגה.
למה הפיצול חשוב מבחינה ארכיטקטונית?
כי הוא קובע אם תוכן השיחה מגיע אי פעם לספק.
ה-override שולח את שני שדות ההודעות ישירות מ-Meta לנקודת הקצה שלכם. ששת השדות התפעוליים ממשיכים לספק, וזה מאפשר לוח בקרה והתראות בלי שאף גורם יחזיק הודעה.
לכן גם הטענה שלא שומרים הודעות יכולה להיות מבנית ולא רק מדיניות. אם שדות ההודעות נמסרים למקום אחר, אין נתיב קוד שבו אפשר לשמור אותם. אצלנו, חשבון ללא override חוזר ל-callback ברירת המחדל, והמטפל משליך את האירועים האלה בלי לשמור אותם.
לאילו שדות המטפל שלכם צריך לצפות?
רק לשני שדות ההודעות, אם ה-override מוגדר. כדאי לכתוב את המטפל כך שיתעלם מכל דבר אחר במקום להיכשל בגללו.
Meta מוסיפה שדות עם הזמן, ומבנה ה-payload יכול לקבל מפתחות חדשים בלי התראה. מטפל שבודק את שם השדה ומתעלם ממה שאינו מזהה ימשיך לעבוד. מטפל שמניח מבנה קבוע ייכשל באירוע הלא מוכר הראשון.
כדאי גם לטפל במפורש ב-smb_message_echoes ולא להתייחס אליו כרעש. בלעדיו, התוכנה לא יודעת שאדם כבר השיב, וכך לקוח עלול לקבל שתי תשובות לאותה שאלה.
טעויות נפוצות
- הנחה שיש payload כללי. לכל אירוע יש שם שדה, והמטפל צריך לפעול לפיו.
- התעלמות מ-smb_message_echoes. בלעדיו התוכנה משיבה מעל אדם שכבר ענה.
- כשל בשדות לא מוכרים במקום לדלג עליהם. Meta מוסיפה שדות בלי לבקש אישור.
EasyCoexistence נרשמת לשדות התפעוליים לצורכי ניטור, ושולחת את שני שדות ההודעות לנקודת הקצה שלכם או משליכה אותם בלי לשמור אם לא הגדרתם נקודת קצה.
שאלות נפוצות
האם אפשר לקבל רק שדות מסוימים?
ה-override מעביר אליכם את נתיב ההודעות. הפיצול התפעולי קבוע, כי הניטור נבנה ממנו.
האם smb_message_echoes קיים במספר Cloud API רגיל?
לא. הוא קיים כי במספר Coexistence אדם שולח מהאפליקציה, ובמקביל התוכנה שולחת דרך ה-API.
מה קורה לאירועי הודעות אם לא הגדרתי יעד?
הם מגיעים ל-callback ברירת המחדל שלנו ונזרקים בלי להישמר.
שמות השדות הם של Meta או שלכם?
של Meta. לא המצאנו אף אחד מהשמות האלה, ולכן כדאי ללמוד אותם פעם אחת.
המשיכו לקרוא
מוכנים להתחיל?
מגדירים WhatsApp Coexistence בתוך דקות, לא חודשים. האפליקציה ממשיכה לעבוד בטלפון.
התחילו תקופת ניסיון בחינםלא תחויבו במשך 7 ימים. בטלו בכל זמן.נבדק ב-