בעולם של היום, הרבה מהפעילות של עסקים רבים עוברת למרחב הדיגיטלי, ואנחנו מוצאים את עצמנו עם הרבה מערכות שונות שמספקות לנו שירותים שונים. זה יכול להיות אתר אינטרנט, מערכת ה-CRM של העסק, מערכת הזמנות וניהול מלאי, עמודי סושיאל ועוד נכסים דיגיטליים למינהם.
האתגר הוא לייצר חיבור בין המערכות השונות כדי לוודא שכל ה-Data נשמר במקום אחד מרכזי ולא מפוזר בין המערכות השונות (נקרא גם Single Source of Truth) ובשביל להתמודד עם האתגר הזה, הגיעו לעולם ה-APIים, שבעברית פשוטה, מדובר על דרך מוסכמת לממשק בין מערכות מידע שונות.
Webhook הוא כלי שמאפשר לנו לשלוח קריאה חד כיוונית (כלומר: ללא ציפייה למענה מיידי או בכלל מהצד השני), על מנת להעביר מידע ממערכת מידע אחת לשניה (למשל מטופס הלידים באתר למערכת ה-CRM שלנו).
איפה נשתמש ב-Webhook?
השימוש ב-Webhook נפוץ בעיקר בשביל דיווח על אירוע שקרה באחת המערכות שלנו (לאו דווקא באתר).
נתן כמה דוגמאות:
- מערכת חשבוניות תשלח Webhook לאחר הפקת חשבונית תשלום לאוטומציה שנבנה בשביל לשלוח מייל תודה ללקוח.
- טופס לפתיחת קריאת שירות באתר, ישלח Webhook למערכת ה-CRM של שירות הלקוחות להמשך טיפול.
- מערכת ניהול משימות תשלח Webhook להקמת שרת אחסון ברגע שנפתח פרוייקט חדש (אוטומציה שאני אישית בניתי בעסק, מוזמנים לצפות)
כמו שאפשר לראות, מדובר פה על אירועים שמתניעים תהליך המשך באחת או יותר מהמערכות של הארגון או החברה בה אנחנו עובדים.
לא הכל מושלם, יש גם חסרונות לשימוש ב-Webhook?
יש חסרון אחד מאוד מובהק לשימוש ב-webhook והוא אמינות.
Webhook בעצם עובד בשיטה של ״שגר ושכח״, כלומר אין ולידציה שהקריאה אכן הגיעה ונקלטה בהצלחה.
אם המערכת שאליה פניתי לא תקינה או לא זמינה מסיבה מסויימת (למשל תקלה בשרת או חסימת תקשורת), אנחנו בבעיה, ה-Webhook ישלח, אבל אף אחד בצד השני לא יקבל אותו, ויותר גרוע, גם לא נקבל אף חיווי על כך שההודעה לא התקבלה.
שימוש בהעברת קבצים במקום ב-Webhook
בעבר, לפני הכניסה של SoapAPI ו-RestAPI למיינסטרים, היינו משתמשים בהעברת קבצים המכילים את תוכן ההודעות בין שרתים.
זה אומר שלאחר פעולה כלשהי, למשל שליחת טופס, היינו יוצרים באתר קובץ XML, מתחברים לשרת של מערכת ה-CRM שלנו, ומעבירים אליו את קובץ ה-XML עם המידע.
לאחר מכן, אחת לכמה זמן (5 דקות עד אחת ליום), מערכת ה-CRM הייתה בודקת אם יש קבצים חדשים, במידה וכן, קוראת אותם, מעדכנת את הנתונים ומוחקת או מעבירה את הקובץ לתקיה אחרת.
יש ייתרונות ויש חסרונות, הייתרון המרכזי על פני שימוש ב-Webhook הוא שברגע שנוצרת הפניה, אנחנו יוצרים ומעבירים את הקובץ ומקבלים חיווי עבר או לא עבר.
החסרונות הם:
- תקינות הקובץ – אין לנו חיווי אם מבנה הקובץ תקין
- חיווי ביצוע – אנחנו לא יודעים אם הצד השני (מערכת ה-CRM) אכן קראה את הקובץ ומתי
- שליחה חוזרת ידנית – במידע והקובץ לא תקין, אנחנו צריכים ליזום את יצירת הקובץ והעברו בשנית בצורה ידנית
- הפעולה לא מיידית – צריך להמתין שהצד השני יגיע לזמן בו הוא קורא את הקבצים (לדעתי הכי קריטי בימים אלה שבהם הלקוח מצפה לתגובה או אישור מיידי).
לדעתי, אומנם אנחנו מוודאים שהקובץ (ההודעה) אכן נרשמה, אבל כל שאר החסרונות הופכים את התהליך לפחות כדאי, פחות אמין והכי חשוב, פחות מיידי.
במידה וההודעה שלנו מאוד חשובה ואנחנו לא יכולים לוותר על אישור מסירה, שווה לשקול יישום של ה-API בעזרת מנגנון אחר שיבטיח את קבלת ההודעה.
איך משתמשים ב-Webhooks באלמנטור
אם האתר שלכם בנוי באלמנטור, או שאתם משתמשים בתוסף תפסים דומה, יש וידאו שהקלטתי ובו ניתן לראות איך ה-Webhook עובד בפועל, איך הוא מתקבל בצד השני ומה בדיוק הוא מכיל.