StoreChart
מילון מונחים

Webhook

Webhook הוא מנגנון לשליחת נתונים אוטומטית ממערכת אחת לאחרת כאשר מתרחש אירוע. במקום לבדוק כל הזמן האם משהו השתנה (polling), ה-webhook שולח את המידע מיד — בזמן אמת.

Webhook הוא מנגנון "HTTP callback" לשליחת נתונים אוטומטית ממערכת אחת לאחרת ברגע שמתרחש אירוע מסוים — למשל הזמנה חדשה, שינוי סטטוס משלוח, או עדכון מלאי. הגישה המסורתית לחלופין היא polling: לשאול את המערכת השנייה שוב ושוב "האם משהו השתנה?" — תהליך מבזבז משאבים ותמיד יש בו עיכוב בין השינוי בפועל להתעדכנות. Webhook הופך את הכיוון: המערכת שבה קרה האירוע שולחת בעצמה בקשת HTTP לכתובת (URL) שהוגדרה מראש, ברגע האמת, כך שהמידע מגיע כמעט מיידית וללא עומס מיותר על השרתים. StoreChart משתמשת ב-webhooks בשני הכיוונים: לקבלת אירועים מחנויות מחוברות (הזמנה חדשה ב-WooCommerce או Shopify) ולשליחת אירועים למערכות חיצוניות (למשל התראה אוטומטית בוואטסאפ או עדכון במערכת חשבונאות) — הבסיס לרוב האוטומציות בפלטפורמה.

אמינות היא האתגר המעשי עם webhooks: בניגוד לבדיקה תקופתית, שבה בדיקה שהוחמצה פשוט נתפסת במחזור הבא, מסירת webhook שנכשלת (השרת הקולט היה למטה לרגע, או שפג הזמן הקצוב) צריכה מנגנון ניסיון חוזר משלה, אחרת האירוע הולך לאיבוד לחלוטין. לכן מערכות webhook בייצור מצמידות מסירה עם ניסיונות חוזרים אוטומטיים (ניסיון מסירה שוב עם פער גדל) ו-payload חתום (כך שהצד הקולט יכול לוודא שהבקשה הגיעה באמת מהמערכת השולחת ולא זויפה על ידי צד שלישי שגילה את כתובת נקודת הקצה).

וובהוקים הם מה שמאפשר ל-StoreChart להישאר מסונכרן עם WooCommerce, מעבדי תשלום ומערכות מחוברות אחרות בלי לשאול כל הזמן 'משהו חדש?' — ברגע שהזמנה מוצבת או תשלום מתאזן בקצה השני, המערכת ההיא דוחפת את האירוע מיידית במקום שהפלטפורמה תצטרך לסקור כל כמה דקות ולפספס כל מה שקרה בינתיים. התמורה היא שמסירת וובהוק יכולה מדי פעם להיכשל או להגיע מסודר, ולכן אינטגרציות אמינות משלבות וובהוקים עם מעבר התאמה גיבוי במקום לסמוך על המסירה בעיוורון.

כשמנפים בעיית סנכרון בין שתי מערכות מחוברות, לבדוק האם הוובהוק הצפוי בפועל הופעל (ואיזה מטען הוא נשא) הוא כמעט תמיד צעד האבחון הראשון, מכיוון שמסירת וובהוק חסרה או פגומה היא הגורם השורש הנפוץ ביותר לשתי מערכות שנסחפות בשקט מסנכרון.

שאלות נפוצות

מה החיסרון העיקרי של webhooks לעומת בדיקה תקופתית?

הצד הקולט חייב להיות זמין תמיד כדי לקבל את הבקשה הנכנסת, ובניית יישום נכון (אימות חתימה, טיפול אידמפוטנטי בניסיונות חוזרים) דורשת יותר הנדסה מראש מסקריפט בדיקה תקופתית מתוזמן פשוט.

מה קורה אם מסירת webhook נכשלת?

מערכת בנויה היטב מנסה שוב אוטומטית את המסירה מספר מוגבל של פעמים עם פער גדל בין הניסיונות, ורושמת את הכישלון לבדיקה אם כל הניסיונות נכשלים, במקום להשליך את האירוע בשקט.

האם webhook יכול לשמש לתקשורת דו-כיוונית?

לא ישירות — webhook הוא דחיפה חד-כיוונית מהמערכת השולחת לכתובת הקולטת. תקשורת דו-כיוונית בדרך כלל מצמידה webhook (לדחיפה בזמן אמת) עם קריאת API רגילה (עבור המערכת הקולטת לבקש מידע נוסף בחזרה).

רוצים לראות את זה בפעולה?

נסו את StoreChart בחינם