Skip to content
OrqLabs

Custom Webhook

Herhangi bir URL'ye imzalı JSON gönderme: olay zarfı, HMAC-SHA256 doğrulama, yeniden deneme kuralları ve Zapier / Make / n8n örnekleri.

10 min Last updated:

This guide is in Turkish

Our guides are written in Turkish first; English versions are on the way. Your browser can translate this page, and the app itself is fully available in English.

On this page
  1. Kimlik kartı
  2. Ne işe yarar?
  3. Ön koşullar
  4. Adım adım kurulum
  5. A) Hedef sistemde adres alma
  6. B) OrqLabs'ta bağlama
  7. İstek biçimi
  8. Başlıklar
  9. İmza doğrulama (Node.js)
  10. Teslimat ve yeniden deneme
  11. Limitler
  12. Bağlantıyı test etme
  13. Kimlik bilgilerini yenileme
  14. Sık karşılaşılan hatalar
  15. Sık sorulan sorular
  16. Sonraki adım

Bu rehberde: OrqLabs verilerini istediğiniz bir adrese gönderirsiniz: Zapier, Make, n8n veya kendi sunucunuz. Böylece OrqLabs'ta olmayan binlerce uygulamaya bağlanırsınız.

⏱ 10 dakika

Kimlik kartı

AlanDeğer
Sağlayıcı anahtarıWEBHOOK
KategoriYardımcılar
Kimlik doğrulamaÖzel (adres + isteğe bağlı imza anahtarı + ek başlıklar)
KapsamOrganizasyon geneli
WebhookHayır (bu entegrasyon giden isteklerdir; gelen için Webhook tetikleyicisi)
YeteneklerCRM aktarımı
Kullanan kutularWebhook gönder (utility.webhookOut), CRM'e yaz (Webhook hedefi)
Kullanan ajanlarDoğrudan yok

Ne işe yarar?

  • Zapier, Make veya n8n üzerinden başka uygulamalara bağlanırsınız.
  • Kendi sisteminize aday, gönderi veya rapor verisini anında iletirsiniz.
  • HubSpot, Sheets ve Notion dışındaki bir CRM'e yazarsınız.

Her istek aynı olay zarfı yapısındadır ve isteğe bağlı olarak imzalanır. Organizasyon olaylarına iş akışı olmadan abone olmak için Giden webhook'lar.

Ön koşullar

  • Herkese açık HTTPS bir adres.
  • Adres isteği 10 saniye içinde 2xx ile yanıtlamalı.
  • İmza için sizin ürettiğiniz gizli anahtar: openssl rand -hex 32.
  • OrqLabs'ta Sahip veya Yönetici rolü.

Adım adım kurulum

A) Hedef sistemde adres alma

Zapier – webhook tetikleyicisi: ① Webhooks by Zapier → Catch Hook, ② Continue, ③ Make / n8n / backend. (Temsili görsel)
Zapier – webhook tetikleyicisi: ① Webhooks by Zapier → Catch Hook, ② Continue, ③ Make / n8n / backend. (Temsili görsel)

Zapier: Create Zap → ① Webhooks by Zapier → Catch Hook (imza doğrulayacaksanız Catch Raw Hook) → ② Continue → adresi kopyalayın.

Make: Webhooks → Custom webhook → Add → adresi kopyalayın → Redetermine data structure ile ilk isteği bekleyin.

n8n: Webhook node'u → POST → yol → kalıcı kullanım için iş akışını etkinleştirip Production URL kullanın. İmza için Raw Body açık.

Kendi sunucunuz: POST kabul eden, ham gövdeyi okuyabilen ve 2xx dönen bir adres.

Webhook adresi ve imza anahtarı: ① Webhook URL, ② Test trigger, ③ Signing secret. (Temsili görsel)
Webhook adresi ve imza anahtarı: ① Webhook URL, ② Test trigger, ③ Signing secret. (Temsili görsel)

B) OrqLabs'ta bağlama

OrqLabs bağlantı penceresi (Webhook): ① Endpoint URL, ② Signing secret, ③ Extra headers, ④ Bağla. (Temsili görsel)
OrqLabs bağlantı penceresi (Webhook): ① Endpoint URL, ② Signing secret, ③ Extra headers, ④ Bağla. (Temsili görsel)
  1. Entegrasyonlar → Custom Webhook → Bağla. Organizasyon geneli.
  2. Alanlar:
AlanDeğer
Endpoint URL ①Adım A'daki HTTPS adres
Signing secret (optional) ②Ürettiğiniz anahtar; boşsa imza başlığı gönderilmez
Extra headers (JSON) ③Örneğin {"Authorization": "Bearer abc123"}
  1. ④ Bağla → Bağlantıyı test et ile adresin 2xx döndüğünü doğrulayın.
  2. İş akışında Webhook gönder kutusunu ekleyin; Bağlı hesap olarak bu kaydı seçin. URL (overrides integration) doluysa o adres kullanılır; imza ve başlıklar yine entegrasyondan gelir. Event name (varsayılan workflow.output) zarfın türüne yazılır.
Bağlantı penceresi (form): ① alanlar, ③ Bağla, ④ yan panelde kurulum rehberi.
Bağlantı penceresi (form): ① alanlar, ③ Bağla, ④ yan panelde kurulum rehberi.

İstek biçimi

{
  "id": "evt_01JAB8Z2K9X4M7N3P6Q1R5S8T2",
  "type": "workflow.output",
  "organizationId": "org_7f3c…",
  "projectId": "prj_2a9d…",
  "at": "2026-09-25T09:30:00.000Z",
  "payload": {
    "runId": "run_…",
    "workflowId": "wf_…",
    "nodeName": "Send webhook",
    "items": [ { "json": { "name": "Ayşe Yılmaz", "email": "ayse@example.com", "score": 82 } } ]
  }
}
AlanAçıklama
idBenzersiz olay kimliği; yeniden denemede değişmez. Tekilleştirme için saklayın
typeEvent name veya platform olayı
payloadWebhook gönder için öğeler; CRM'e yaz için tek aday nesnesi

Başlıklar

BaşlıkDeğer
Content-Typeapplication/json
X-AgentFlow-EventZarfın türü
X-AgentFlow-TimestampUnix saniye
X-AgentFlow-Signaturesha256=<hex>: "<timestamp>.<ham gövde>" üzerinden HMAC-SHA256
Ek başlıklarExtra headers içindekiler

İmza doğrulama (Node.js)

import express from "express";
import { createHmac, timingSafeEqual } from "node:crypto";

const app = express();
const SECRET = process.env.ORQLABS_WEBHOOK_SECRET;

app.post("/orqlabs/webhook", express.raw({ type: "application/json" }), (req, res) => {
  const signature = req.header("x-agentflow-signature") ?? "";
  const timestamp = Number(req.header("x-agentflow-timestamp") ?? 0);
  if (Math.abs(Date.now() / 1000 - timestamp) > 300) return res.status(401).end();
  const expected = "sha256=" + createHmac("sha256", SECRET).update(`${timestamp}.`).update(req.body).digest("hex");
  const a = Buffer.from(signature), b = Buffer.from(expected);
  if (a.length !== b.length || !timingSafeEqual(a, b)) return res.status(401).end();
  const event = JSON.parse(req.body.toString("utf8"));
  res.status(202).json({ received: event.id });
});

Dikkat: İmza ham gövde üzerinden hesaplanır. express.json() kullanmayın.

Teslimat ve yeniden deneme

KonuDavranış
Zaman aşımı10 saniye
BaşarıHerhangi bir 2xx
Yeniden denemeToplam 3 deneme; ağ hatası, zaman aşımı, 5xx ve 429'da
4xx (429 hariç)Yeniden denenmez
Yönlendirme3xx takip edilmez

Üç deneme de başarısızsa Webhook gönder öğeyi error çıkışından verir.

Limitler

KonuSınır
Gövde1 MB
Zaman aşımı / deneme10 saniye, 3 deneme
Zapier / MakeKendi görev/işlem limitleri

Bağlantıyı test etme

Entegrasyon ayrıntı paneli: ① durum, ② Bağlantıyı test et, ⑤ Bağlantıyı kes.
Entegrasyon ayrıntı paneli: ① durum, ② Bağlantıyı test et, ⑤ Bağlantıyı kes.

② Bağlantıyı test et adresinize payload.test: true içeren küçük bir istek gönderir; dönen durum kodu ve süre görünür. Zapier/Make'te bu istek veri yapısını tanımlamak için kullanılır.

Kimlik bilgilerini yenileme

  • İmza anahtarı: önce adresinizi iki anahtarı da kabul edecek şekilde güncelleyin, sonra OrqLabs'ta Kimlik bilgileri → Güncelle, en son eskiyi kaldırın.
  • Adres değişikliği: entegrasyon kartı → Kimlik bilgileri → Güncelle → Endpoint URL.

Sık karşılaşılan hatalar

HataOlası nedenÇözüm
UPSTREAM – zaman aşımıAdres bekletiyorHemen 202 dönüp işi kuyruğa alın
UPSTREAM – bağlantı hatasıAdres yanlış, sunucu kapalıAdresi doğrulayın
INVALID – 401 / 403Adres kimlik doğrulaması bekliyorExtra headers'a Authorization
INVALID – 404 (n8n)İş akışı etkin değilProduction URL
INVALID – 410 (Zapier)Zap kapatılmışZap'i açın
"Extra headers must be valid JSON"Biçim hatalı{"Başlık": "değer"}
İmza eşleşmiyorGövde yeniden serileştirilmişHam gövde; "<timestamp>.<gövde>"
Aynı olay iki kezYeniden denemeid ile tekilleştirin

Sık sorulan sorular

Kod yazmadan kullanabilir miyim? Evet. Zapier veya Make adresini girmeniz yeterlidir; imza isteğe bağlıdır.

Gelen webhook ile farkı ne? Bu entegrasyon OrqLabs'tan dışarı gönderir. Dışarıdan OrqLabs'ı başlatmak için Webhook tetikleyicisi.

Sonraki adım

Get started with OrqLabs

Build your first workflow today

Start on the free plan: connect your accounts, pick a template and stay in control with approval steps. No credit card required.