DokumanlarOtomasyon ve entegrasyonGiden webhooklar

Giden webhooklar

Bir HTTPS URL kaydedin; DMtoLead yeni konusmalar, mesajlar ve otomasyon tetikleri oldukca olaylari oraya POST eder. CRM, Slack veya kendi ic araclariniza baglayin.

Giden ve gelen webhook farki
Gelen webhook'lar Instagram / WhatsApp / Telegram'in DMtoLead'e yeni mesajlari bildirme yoludur - bunlari siz ayarlamazsiniz; DMtoLead yonetir. Giden webhook'lar DMtoLead'in sizin sistemlerinize aktivite bildirme yoludur - bu sayfa onu anlatir.

Webhook kaydetme

  1. 1

    Dashboard'u acin

    Settings - Webhooks - Create webhook.

  2. 2

    Isim ve URL verin

    Isim sadece ic kullanima yoneliktir (or. "Production CRM"). URL, sizin kontrol ettiginiz public HTTPS endpoint olmalidir. Self-signed certificate reddedilir - gercek certificate kullanin (Let's Encrypt yeterlidir).

  3. 3

    (Opsiyonel) Account filtresi

    Tek workspace'te birden fazla managed account yoneten ajanslar icin: bu webhook'un hangi managed account'lar icin calisacagini secin. Bos birakirsaniz tum aktivitede calisir.

  4. 4

    Kaydedin - DMtoLead URL'i dogrular

    Kaydetmede DMtoLead URL'inize verification payload gonderir (asagida). Endpoint'iniz 10 saniye icinde 2xx donmeli ve verifyToken'i JSON icinde geri yansitmalidir. Dogrulama basarisiz olursa webhook kaydedilir ama disabled kalir - endpoint'i duzeltip re-verify toggle'ini kullanin.

  5. 5

    API key'i kopyalayin

    Kayit sonrasi bir kez gorunen API key'i otomatik uretiriz. Sizin tarafta request signature header'ini dogrulamak icin kullanin (body uzerinden HMAC-SHA256, secret olarak key). Tam key database'de hashli saklanir - tekrar gosteremeyiz.

Verification payload

Webhook olustururken ve her "re-verify" isleminde URL'inize bunu POST ederiz:

json
{
  "event": "webhook.verify",
  "verifyToken": "abc123...",
  "timestamp": "2026-05-13T19:24:00.000Z"
}

Sununla cevap verin:

json
{ "verifyToken": "abc123..." }

Status code 200, content-type application/json. Baska her sey webhook'u unverified birakir.

Event tipleri

  • webhook.verify - kurulumda bir kez gonderilir (yukarida).
  • conversation.created - herhangi bir kanalda yeni konusma.
  • message.received - musteriden inbound mesaj.
  • message.sent - outbound mesaj (AI veya manuel).
  • automation.triggered - otomasyon kurali match ettiginde calisir (keyword auto-reply, comment auto-engage).
  • conversation.closed - agent veya AI konusmayi cozuldu olarak isaretledi.

Ornek payload'lar

json
{
  "event": "conversation.created",
  "timestamp": "2026-05-13T19:24:00.000Z",
  "data": {
    "conversationId": "65f3a2...",
    "workspaceId": "wks_...",
    "automationId": "auto_...",
    "channel": "instagram",
    "customer": {
      "platformId": "17841...",
      "name": "Alice",
      "username": "alice.example"
    },
    "firstMessage": "Hi, do you have the green one in M?"
  }
}
json
{
  "event": "message.sent",
  "timestamp": "2026-05-13T19:24:02.310Z",
  "data": {
    "conversationId": "65f3a2...",
    "messageId": "msg_...",
    "direction": "outbound",
    "type": "ai",
    "text": "Yes! The green is in stock in M. Want me to set up a draft order?",
    "creditsUsed": 1
  }
}

Request'in DMtoLead'den geldigini dogrulama

Her webhook POST'u X-DMtoLead-Signature header'i icerir. Bu, raw request body'nin API key'inizi secret olarak kullanan HMAC-SHA256 hex digest'idir. Kendi tarafinizda dogrulayin:

js
import crypto from "crypto";

function verify(rawBody, signatureHeader, apiKey) {
  const expected = crypto
    .createHmac("sha256", apiKey)
    .update(rawBody)
    .digest("hex");
  return crypto.timingSafeEqual(
    Buffer.from(expected),
    Buffer.from(signatureHeader)
  );
}
Her zaman raw body kullanin
HMAC'i JSON parse edilmeden onceki raw request body uzerinden hesaplayin. Parse edilmis objeden tekrar JSON-stringify yapmak farkli byte stream uretir ve signature eslesmez.

Teslimat ve tekrar denemeler

DMtoLead basarisiz teslimatlari artan bekleme sureleriyle tekrar dener: 1s, 5s, 30s, 5min, 30min, sonra vazgecer. Hatalar Settings - Webhooks - Delivery log'da gorunur. Endpoint'iniz herhangi bir 2xx donerse kabul edilir; baska her sey yeniden deneme tetikler.

10 saniye icinde cevap vermeyi hedefleyin - yavas endpoint teslimati bozmaz ama yuksek hacimde yeniden deneme biriktirebilir. Agir is yapacaksaniz kendi tarafinizda queue'ya atin ve hizli 200 donun.

Plan limitleri

  • Free: 1 webhook
  • Starter: 3 webhook
  • Pro: 10 webhook
  • Business / Agency: sinirsiz

Her kayitli URL bir webhook sayilir. Birden fazla event ayni URL'e payload icindeki farkli event degerleriyle gider - her event icin ayri URL gerekmez.