Skip to Content

Webhooks

Webhooks יוצאים מאפשרים לכם לקבל התראות HTTP POST בזמן אמת כשמתרחשים אירועים בפרויקט שלכם. Pro

סקירה

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

אירועתיאור
post.createdנשלח פוסט משוב חדש
post.updatedפוסט משוב נערך
post.deletedפוסט משוב נמחק
comment.createdנוספה תגובה חדשה לפוסט
comment.updatedתגובה נערכה
comment.deletedתגובה נמחקה
post.status_changedהסטטוס של פוסט השתנה (ממתין לטיפול, פתוח, מתוכנן, בביצוע, הושלם)
message.createdנשלחה הודעה פרטית חדשה
message.updatedהודעה פרטית נערכה
message.deletedהודעה פרטית נמחקה
beta_feedback.createdבודק בטא שלח משוב על תוכנית בטא
beta_feedback.deletedפריט משוב בטא נמחק
waitlist_signup.createdמבקר הצטרף לרשימת ההמתנה
waitlist_signup.invitedרשומה ברשימת ההמתנה הוזמנה מהרשימה
waitlist_signup.joinedרשומה שהוזמנה אישרה והצטרפה
csat_survey.completedסקר שביעות רצון הושלם עם דירוג

ה-webhooks מוגבלים לפרויקטים בודדים. לכל פרויקט יש קבוצה משלו של נקודות קצה עם תצורות וסודות חתימה עצמאיים.

הגדרת webhook

  1. עברו לעמוד אינטגרציות של הפרויקט
  2. גללו אל מקטע Webhooks יוצאים
  3. לחצו על הוספת webhook
  4. הזינו את כתובת נקודת הקצה שלכם (חייבת להיות HTTPS בסביבת ייצור)
  5. בחרו לאילו אירועים להירשם
  6. לחצו על שמירה

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

אימות חתימות webhook

כל מסירת webhook כוללת כותרת X-SupDesk-Signature שמכילה חתימת HMAC-SHA256 של גוף הבקשה. כדי לאמת webhook:

  1. חשבו HMAC-SHA256(your_signing_secret, raw_request_body)
  2. השוו את התוצאה לערך ההקסדצימלי בכותרת X-SupDesk-Signature (אחרי הקידומת sha256=)
  3. השתמשו בהשוואה בזמן קבוע כדי למנוע התקפות תזמון

Node.js

import { createHmac, timingSafeEqual } from "crypto"; function verifyWebhook(secret, body, signature) { const expected = createHmac("sha256", secret) .update(body) .digest("hex"); const sig = signature.replace("sha256=", ""); return timingSafeEqual(Buffer.from(expected), Buffer.from(sig)); }

Python

import hmac import hashlib def verify_webhook(secret: str, body: bytes, signature: str) -> bool: expected = hmac.new( secret.encode(), body, hashlib.sha256 ).hexdigest() sig = signature.removeprefix("sha256=") return hmac.compare_digest(expected, sig)

Ruby

require "openssl" def verify_webhook(secret, body, signature) expected = OpenSSL::HMAC.hexdigest("SHA256", secret, body) sig = signature.sub("sha256=", "") Rack::Utils.secure_compare(expected, sig) end

בדיקת webhook

לחצו על כפתור בדיקה לצד webhook כדי לשלוח מטען לדוגמה לנקודת הקצה שלו. במטען הבדיקה יש "event": "test" ושדה data.message. השתמשו בכלי כמו webhook.site  כדי לבחון את הבקשה שנמסרה.

יומן מסירות

יומן המסירות מציג את 50 ניסיונות המסירה האחרונים לכל webhook, כולל:

  • אירוע — איזה אירוע נמסר
  • סטטוסsuccess או failed
  • קוד תגובה — קוד סטטוס HTTP מנקודת הקצה
  • ניסיונות — מספר ניסיונות המסירה (כולל חזרות)
  • זמן — מתי בוצע ניסיון המסירה

התנהגות בחזרה על ניסיונות

כשמסירת webhook נכשלת (תגובת 5xx או פסק זמן ברשת), SupDesk חוזרת עד 3 פעמים עם השהיה מעריכית:

ניסיוןהשהיה
1מיידי
2שנייה אחת
32 שניות

שגיאות לקוח (4xx) אינן מנוסות שוב — הן מעידות על בעיה קבועה בתצורת נקודת הקצה.

דרישות תוכנית

Webhooks יוצאים זמינים בתוכניות Pro ו-Team.

Pro
Last updated on