حوالہ
Webhooks
HMAC سے دستخط شدہ پے لوڈز کے ساتھ گفتگو اور پیغام کے ایونٹس کو سبسکرائب کریں۔
Webhooks آپ کو AskAIs Customer Service کے ایونٹس کو اپنے سسٹمز میں منعکس کرنے دیتے ہیں — CRMs، اینالیٹکس، Slack، اور ہر وہ چیز جو HTTP میں بات کرتی ہے۔
webhook بنانا
سیٹنگز ← Webhooks ← نیا webhook پر جائیں۔ ایونٹس منتخب کریں، اپنا URL پیسٹ کریں، محفوظ کریں۔ آپ کو ایک سیکریٹ ملے گا جو پے لوڈز پر دستخط کرنے کے لیے استعمال ہوتا ہے۔
ایونٹ کی اقسام
conversation.createdconversation.updated— حیثیت، ترجیح، تفویضconversation.resolvedmessage.created— کوئی بھی پیغام، کوئی بھی بھیجنے والاcontact.createdcontact.updated
پے لوڈ کی شکل
POST https://your-app.com/webhooks/singlink
Content-Type: application/json
X-SingLink-Event: message.created
X-SingLink-Signature: sha256=ab12cd34...
X-SingLink-Timestamp: 1747300800
{
"id": "evt_01HX...",
"type": "message.created",
"tenantId": "tnt_01HX...",
"data": { /* event-specific payload */ }
}دستخطوں کی تصدیق
webhook سیکریٹ کے ساتھ timestamp + "." + rawBody پر HMAC-SHA256 کمپیوٹ کریں۔ اسے X-SingLink-Signature ہیڈر سے موازنہ کریں (ٹائمنگ محفوظ طریقے سے)۔
import { createHmac, timingSafeEqual } from "node:crypto";
function verify(req, secret) {
const ts = req.headers["x-singlink-timestamp"];
const sig = req.headers["x-singlink-signature"];
const expected = "sha256=" + createHmac("sha256", secret)
.update(ts + "." + req.rawBody)
.digest("hex");
return timingSafeEqual(Buffer.from(sig), Buffer.from(expected));
}دوبارہ کوششیں
ہم غیر 2xx جوابات کو ایکسپوننشل بیک آف کے ساتھ دوبارہ آزماتے ہیں: 1s، 10s، 1m، 10m، 1h۔ 5 کوششوں کے بعد ایونٹ کو ناکام کے طور پر نشان زد کیا جاتا ہے؛ آپ ناکامیاں ایڈمن میں دیکھ سکتے ہیں۔
ٹیسٹ ping
ہر webhook میں ایک ٹیسٹ بھیجیں بٹن ہوتا ہے جو ایک ڈمی webhook.ping ایونٹ پوسٹ کرتا ہے۔ لائیو جانے سے پہلے یہ تصدیق کرنے کے لیے مفید ہے کہ آپ کا اینڈ پوائنٹ دستخط قبول کرتا ہے۔