Skip to Content

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 कॉन्फ़िगर करना

  1. अपने प्रोजेक्ट के एकीकरण पृष्ठ पर जाएँ
  2. आउटबाउंड Webhooks अनुभाग तक स्क्रॉल करें
  3. webhook जोड़ें पर क्लिक करें
  4. अपना एंडपॉइंट URL दर्ज करें (उत्पादन में 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 हेडर में मौजूद hex मान से करें (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  जैसे टूल का उपयोग करें।

डिलीवरी लॉग

डिलीवरी लॉग हर webhook के लिए पिछले 50 डिलीवरी प्रयास दिखाता है, जिनमें शामिल हैं:

  • घटना — कौन-सी घटना वितरित की गई
  • स्थितिsuccess या failed
  • प्रतिक्रिया कोड — एंडपॉइंट से HTTP स्थिति कोड
  • प्रयास — डिलीवरी प्रयासों की संख्या (पुनः प्रयास सहित)
  • समय — डिलीवरी का प्रयास कब किया गया

पुनः प्रयास व्यवहार

जब कोई webhook डिलीवरी विफल होती है (5xx प्रतिक्रिया या नेटवर्क टाइमआउट), SupDesk एक्सपोनेंशियल बैकऑफ़ के साथ 3 बार तक पुनः प्रयास करता है:

प्रयासविलंब
1तत्काल
21 सेकंड
32 सेकंड

क्लाइंट त्रुटियों (4xx) पर पुनः प्रयास नहीं किया जाता — वे एंडपॉइंट कॉन्फ़िगरेशन में स्थायी समस्या दर्शाती हैं।

योजना आवश्यकताएँ

आउटबाउंड webhooks Pro और Team योजनाओं पर उपलब्ध हैं।

Pro
Last updated on