WABOTמרכז העזרה
EN כניסה

Webhooks יוצאים וחתימה

Webhook שולח למערכת שלכם בקשת POST בכל פעם שקורה משהו — בלי לשאול את ה-API כל דקה. זמין בתוכנית Business ומעלה.

הגדרה

  1. API ← Webhooks ← מנוי חדש: כתובת HTTPS, האירועים שמעניינים אתכם, וסוד (whsec_…, נוצר אוטומטית; אפשר להחליף).
  2. לוחצים «בדיקה» — נשלח אירוע ping. השרת שלכם צריך לענות 2xx תוך 8 שניות. עבודה כבדה — אחרי שהחזרתם 200.

אירועים

אירועמתי
lead.createdליד חדש נשמר (מוואטסאפ, מהטלפון או מה-API).
message.receivedהודעת וואטסאפ נכנסת מלקוח.
appointment.booked · appointment.canceledפגישה נקבעה (קול, וואטסאפ, דף ההזמנה או API) / בוטלה.
call.endedשיחה הסתיימה ונותחה — סיכום, משך, תוצאה וקישור להקלטה.
contact.optoutלקוח ביקש הסרה — עדכנו גם את המערכת שלכם.
payment.reportedלקוח דיווח ששילם.

גוף הבקשה: JSON עם id, event, created_at ו-data. כותרות: X-WABOT-Event, X-WABOT-Delivery (מזהה ייחודי — לסינון כפילויות), X-WABOT-Timestamp ו-X-WABOT-Signature.

אימות החתימה

X-WABOT-Signature: sha256=<hex> — HMAC-SHA256 של גוף הבקשה הגולמי עם הסוד שלכם. בדקו אותה לפני שאתם מאמינים לתוכן:

<?php
$secret = 'whsec_...';                                   // from the API page
$raw    = file_get_contents('php://input');
$given  = (string)($_SERVER['HTTP_X_WABOT_SIGNATURE'] ?? '');
$calc   = 'sha256=' . hash_hmac('sha256', $raw, $secret);
if (!hash_equals($calc, $given)) { http_response_code(401); exit; }
http_response_code(200);                                 // answer first, work later
$evt = json_decode($raw, true);
// $evt['event'], $evt['data'], $evt['id']

ניסיונות חוזרים

תשובה שאינה 2xx או timeout ⇒ עד 5 ניסיונות חוזרים: אחרי דקה, 5 דקות, חצי שעה, שעתיים ו-12 שעות. אחרי 20 מסירות כושלות ברצף המנוי מושבת ואתם מקבלים התראה; מפעילים מחדש בלחיצה אחרי שתיקנתם. היומן בעמוד (וגם GET events) מציג כל מסירה עם קוד התשובה, ואפשר לשלוח מחדש מסירה שנכשלה.

המדריך עזר?