Webhooks
आउटबाउंड webhooks आपको आपके प्रोजेक्ट में घटनाएँ होने पर रीयल-टाइम HTTP POST सूचनाएँ प्राप्त करने देते हैं। Pro
अवलोकन
जब भी आपके प्रोजेक्ट में कोई विशिष्ट घटना होती है, webhooks आपके कॉन्फ़िगर किए गए किसी भी HTTPS एंडपॉइंट पर एक JSON पेलोड पहुँचाते हैं। हर 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 | एक CSAT संतुष्टि सर्वेक्षण रेटिंग के साथ पूरा हुआ |
Webhooks अलग-अलग प्रोजेक्ट तक सीमित होते हैं। हर प्रोजेक्ट के पास स्वतंत्र कॉन्फ़िगरेशन और साइनिंग सीक्रेट के साथ अपने webhook एंडपॉइंट का सेट होता है।
webhook कॉन्फ़िगर करना
- अपने प्रोजेक्ट के एकीकरण पृष्ठ पर जाएँ
- आउटबाउंड Webhooks अनुभाग तक स्क्रॉल करें
- webhook जोड़ें पर क्लिक करें
- अपना एंडपॉइंट URL दर्ज करें (उत्पादन में HTTPS होना चाहिए)
- चुनें कि किन घटनाओं की सदस्यता लेनी है
- सहेजें पर क्लिक करें
सहेजने के बाद, एक साइनिंग सीक्रेट एक बार दिखाया जाता है। इसे तुरंत कॉपी करें — इसे बाद में पुनर्प्राप्त नहीं किया जा सकता। आप इसे webhook के क्रिया मेनू से कभी भी पुनः उत्पन्न कर सकते हैं।
webhook हस्ताक्षर सत्यापित करना
हर webhook डिलीवरी में एक X-SupDesk-Signature हेडर होता है जिसमें अनुरोध बॉडी का
HMAC-SHA256 हस्ताक्षर होता है। webhook सत्यापित करने के लिए:
HMAC-SHA256(your_signing_secret, raw_request_body)की गणना करें- परिणाम की तुलना
X-SupDesk-Signatureहेडर में मौजूद hex मान से करें (sha256=उपसर्ग के बाद) - टाइमिंग हमलों को रोकने के लिए स्थिर-समय तुलना का उपयोग करें
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)
endwebhook का परीक्षण
किसी webhook के एंडपॉइंट पर नमूना पेलोड भेजने के लिए उसके बगल में परीक्षण बटन पर
क्लिक करें। परीक्षण पेलोड में "event": "test" और एक data.message फ़ील्ड होती है।
वितरित अनुरोध का निरीक्षण करने के लिए webhook.site जैसे टूल का
उपयोग करें।
डिलीवरी लॉग
डिलीवरी लॉग हर webhook के लिए पिछले 50 डिलीवरी प्रयास दिखाता है, जिनमें शामिल हैं:
- घटना — कौन-सी घटना वितरित की गई
- स्थिति —
successयाfailed - प्रतिक्रिया कोड — एंडपॉइंट से HTTP स्थिति कोड
- प्रयास — डिलीवरी प्रयासों की संख्या (पुनः प्रयास सहित)
- समय — डिलीवरी का प्रयास कब किया गया
पुनः प्रयास व्यवहार
जब कोई webhook डिलीवरी विफल होती है (5xx प्रतिक्रिया या नेटवर्क टाइमआउट), SupDesk एक्सपोनेंशियल बैकऑफ़ के साथ 3 बार तक पुनः प्रयास करता है:
| प्रयास | विलंब |
|---|---|
| 1 | तत्काल |
| 2 | 1 सेकंड |
| 3 | 2 सेकंड |
क्लाइंट त्रुटियों (4xx) पर पुनः प्रयास नहीं किया जाता — वे एंडपॉइंट कॉन्फ़िगरेशन में स्थायी समस्या दर्शाती हैं।
योजना आवश्यकताएँ
आउटबाउंड webhooks Pro और Team योजनाओं पर उपलब्ध हैं।
Pro