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ı
| Alan | Değer |
|---|---|
| Sağlayıcı anahtarı | WEBHOOK |
| Kategori | Yardımcılar |
| Kimlik doğrulama | Özel (adres + isteğe bağlı imza anahtarı + ek başlıklar) |
| Kapsam | Organizasyon geneli |
| Webhook | Hayır (bu entegrasyon giden isteklerdir; gelen için Webhook tetikleyicisi) |
| Yetenekler | CRM aktarımı |
| Kullanan kutular | Webhook gönder (utility.webhookOut), CRM'e yaz (Webhook hedefi) |
| Kullanan ajanlar | Doğ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
2xxile 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: 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.
B) OrqLabs'ta bağlama
- Entegrasyonlar → Custom Webhook → Bağla. Organizasyon geneli.
- Alanlar:
| Alan | Değ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"} |
- ④ Bağla → Bağlantıyı test et ile adresin
2xxdöndüğünü doğrulayın. - İş 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.

İ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 } } ]
}
}
| Alan | Açıklama |
|---|---|
id | Benzersiz olay kimliği; yeniden denemede değişmez. Tekilleştirme için saklayın |
type | Event name veya platform olayı |
payload | Webhook gönder için öğeler; CRM'e yaz için tek aday nesnesi |
Başlıklar
| Başlık | Değer |
|---|---|
Content-Type | application/json |
X-AgentFlow-Event | Zarfın türü |
X-AgentFlow-Timestamp | Unix saniye |
X-AgentFlow-Signature | sha256=<hex>: "<timestamp>.<ham gövde>" üzerinden HMAC-SHA256 |
| Ek başlıklar | Extra 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
| Konu | Davranış |
|---|---|
| Zaman aşımı | 10 saniye |
| Başarı | Herhangi bir 2xx |
| Yeniden deneme | Toplam 3 deneme; ağ hatası, zaman aşımı, 5xx ve 429'da |
4xx (429 hariç) | Yeniden denenmez |
| Yönlendirme | 3xx takip edilmez |
Üç deneme de başarısızsa Webhook gönder öğeyi error çıkışından verir.
Limitler
| Konu | Sınır |
|---|---|
| Gövde | 1 MB |
| Zaman aşımı / deneme | 10 saniye, 3 deneme |
| Zapier / Make | Kendi görev/işlem limitleri |
Bağlantıyı test etme

② 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
| Hata | Olası neden | Çözüm |
|---|---|---|
UPSTREAM – zaman aşımı | Adres bekletiyor | Hemen 202 dönüp işi kuyruğa alın |
UPSTREAM – bağlantı hatası | Adres yanlış, sunucu kapalı | Adresi doğrulayın |
INVALID – 401 / 403 | Adres kimlik doğrulaması bekliyor | Extra headers'a Authorization |
INVALID – 404 (n8n) | İş akışı etkin değil | Production 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şmiyor | Gövde yeniden serileştirilmiş | Ham gövde; "<timestamp>.<gövde>" |
| Aynı olay iki kez | Yeniden deneme | id 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.