Bu rehberde: İş akışını neyin başlattığını seçersiniz: bir düğme, bir saat, bir web isteği, gelen bir mesaj, bir platform olayı veya bir form. Altı tetikleyicinin tüm alanlarını ve örneklerini bulursunuz.
⏱ 10 dakika
Kısaca
Tetikleyici (trigger), iş akışının "başla" düğmesidir. Her iş akışında tam olarak bir tane bulunur ve paletteki Tetikleyiciler kategorisindedir. Tetikleyici yalnızca iş akışı Etkin iken kendiliğinden çalışır; Taslak durumunda yalnızca Test ile denenir.
Teknik ayrıntılar
Her iş akışı tam olarak bir tetikleyici (trigger) node'u ile başlar. Tetikleyicinin girdi handle'ı yoktur (inputs: 0); çalıştığında ilk item'ları üretir ve akış oradan topolojik sırayla ilerler. İş akışı Etkinleştir (activate) edildiğinde tetikleyici kaydedilir: cron zamanlayıcıya, webhook yoluna veya olay aboneliğine.
| Node | Tip | Girdi | Çıktı handle'ları | Entegrasyon | Model |
|---|---|---|---|---|---|
| Manual trigger | trigger.manual | 0 | main | – | – |
| Schedule | trigger.schedule | 0 | main | – | – |
| Webhook | trigger.webhook | 0 | main | – | – |
| Message received | trigger.messageReceived | 0 | main | Messaging hesabı (proje üzerinden) | – |
| Platform event | trigger.event | 0 | main | – | – |
| Form submission | trigger.form | 0 | main | – | – |
Manual trigger (trigger.manual)
Panelden Çalıştır düğmesiyle veya API'den (POST /orgs/:orgId/workflows/:id/run { input }) başlatılır. Test ve isteğe bağlı işler için idealdir.
| Anahtar | Etiket | Tür | Zorunlu | Varsayılan | Notlar |
|---|---|---|---|---|---|
sampleInput | Sample input (JSON) | json | Hayır | – | Editörde test ederken ilk item'ın json içeriği olur. API'den gelen input bunu geçersiz kılar. |
Çıktı: tek item; json = input (veya sampleInput). {{ $json.topic }} gibi erişirsiniz.
Örnek: sampleInput: { "topic": "Yeni ürün lansmanı", "platforms": ["X", "LINKEDIN"] } → agent.contentCreator (topic: {{ $json.topic }}).
Schedule (trigger.schedule)
Cron ifadesine göre çalışır. Zamanlayıcı kuyruğu (scheduler) her dakika etkin iş akışlarını kontrol eder.
| Anahtar | Etiket | Tür | Zorunlu | Varsayılan | Notlar |
|---|---|---|---|---|---|
cron | Cron expression | cron | Evet | 0 9 * * 1-5 | 5 alanlı standart cron: dakika saat ay-günü ay hafta-günü |
timezone | Timezone | string | Hayır | Europe/Istanbul | IANA adı. Boşsa iş akışı settings.timezone, o da boşsa UTC. |
Çıktı: tek item { "scheduledFor": "<ISO>", "firedAt": "<ISO>", "cron": "..." }.
Sık kullanılan ifadeler:
| Amaç | Cron |
|---|---|
| Hafta içi 08:00 | 0 8 * * 1-5 |
| Her saat başı | 0 * * * * |
| Her 15 dakika | */15 * * * * |
| Pazartesi 07:00 | 0 7 * * 1 |
| Ayın 1'i 08:00 | 0 8 1 * * |
| Günde iki kez (09:00 ve 18:00) | 0 9,18 * * * |
Aynı iş akışının önceki çalıştırması hâlâ sürüyorsa settings.concurrency (varsayılan 1) yeni çalıştırmayı kuyrukta bekletir. Ayrıntı: Tetikleyiciler ve zamanlamalar.
Webhook (trigger.webhook)
Benzersiz bir URL'ye gelen HTTP isteğiyle başlar: https://api.orqlabs.com/api/v1/hooks/<webhookPath>. URL'yi denetçi panelinden veya GET /orgs/:orgId/workflows/:id/webhook-url ile alın.
| Anahtar | Etiket | Tür | Zorunlu | Varsayılan | Notlar |
|---|---|---|---|---|---|
method | Method | select | Hayır | POST | POST, GET, PUT |
path | Path suffix | string | Hayır | otomatik | Boşsa rastgele, tahmin edilemez bir yol üretilir. Özel yol yazarsanız organizasyon içinde benzersiz olmalıdır. |
secret | Shared secret header (X-Webhook-Secret) | string | Hayır | – | Doluysa istek X-Webhook-Secret başlığında aynı değeri taşımalıdır; aksi halde 401. |
respond | Respond | select | Hayır | immediately | immediately: 202 + { runId } döner. lastNode: şimdilik immediately gibi davranır; 202 + { runId } döner. Sonucu GET /orgs/:orgId/runs/:runId ile okuyun. |
Çıktı item'ı: { "body": {...}, "query": {...}, "headers": {...}, "method": "POST" }. Gövde alanlarına {{ $json.body.email }} ile erişirsiniz.
Örnek – site formundan lead:
trigger.webhook (POST, secret: "f0rm-s3cret", respond: immediately)
→ leads.create (mapping: name: {{ $json.body.name }}, email: {{ $json.body.email }})
→ agent.leadQualifier
Gönderim:
curl -X POST "https://api.orqlabs.com/api/v1/hooks/abc123" \
-H "Content-Type: application/json" -H "X-Webhook-Secret: f0rm-s3cret" \
-d '{"name":"Ayşe Kaya","email":"ayse@ornek.com"}'
Message received (trigger.messageReceived)
Bağlı bir mesajlaşma kanalına (WhatsApp, Telegram, Slack, Discord, Messenger, Email, SMS) mesaj geldiğinde çalışır. Kanal entegrasyonu iş akışının projesine bağlı olmalıdır; webhook kurulumu için ilgili entegrasyon rehberine bakın.
| Anahtar | Etiket | Tür | Zorunlu | Varsayılan | Notlar |
|---|---|---|---|---|---|
channels | Channels | multiselect | Hayır | ["WHATSAPP", "TELEGRAM"] | WHATSAPP, TELEGRAM, SLACK, DISCORD, MESSENGER, EMAIL, TWILIO_SMS |
onlyNewConversations | Only first message of a conversation | boolean | Hayır | false | Karşılama akışları için |
keywordFilter | Keyword filter (optional) | string | Hayır | – | Tek bir kelime veya ifade (büyük/küçük harf fark etmez); mesaj bu ifadeyi içermiyorsa tetiklenmez. Birden fazla kelime için Eğer kutusu kullanın. |
Çıktı item'ı:
{
"channel": "WHATSAPP",
"integrationId": "int_...",
"conversationId": "conv_...",
"contactId": "905xxxxxxxxx",
"contactName": "Ayşe",
"text": "Fiyat listesi alabilir miyim?",
"mediaUrl": null,
"isNewConversation": false,
"receivedAt": "2026-09-25T10:12:00Z",
"leadId": "lead_..."
}
Konuşma HUMAN durumundaysa (insan devralmışsa) tetikleyici çalışmaz; bot duraklatılmıştır. Örnek: WhatsApp ve Telegram yapay zekâ sohbet botu şablonu – trigger.messageReceived → agent.chatbot → logic.if (handoff) → messaging.handoff / messaging.send.
Platform event (trigger.event)
OrqLabs'un iç olaylarında çalışır. Olay yükü item'ın json'u olur.
| Anahtar | Etiket | Tür | Zorunlu | Varsayılan | Notlar |
|---|---|---|---|---|---|
event | Event | select | Evet | – | lead.created, lead.qualified, lead.replied, post.published, post.failed, conversation.handoff, analytics.synced, analytics.threshold, agent.report.created, approval.resolved, budget.warning |
filter | Payload filter (expression) | expression | Hayır | – | Doğru (truthy) dönmezse çalıştırma başlamaz: {{ $json.score >= 70 }} |
Bu node'da seçilebilen olaylar PLATFORM_EVENTS listesinin bir alt kümesidir; tam liste ve yükler için Giden webhook'lar.
Örnek 1 – sıcak lead bildirimi: trigger.event (lead.qualified, filter: {{ $json.score >= 85 }}) → utility.notify (title: "Sıcak lead: {{ $json.name }}", channels: [inapp, slack]).
Örnek 2 – yayın hatasında tekrar: trigger.event (post.failed) → logic.wait (30 dakika) → social.publish (dryRun: false).
Form submission (trigger.form)
OrqLabs'un barındırdığı bir lead formu üretir: https://api.orqlabs.com/api/v1/public/forms/<slug> (GET form tanımını, POST gönderimi alır). Sitenize iframe veya link olarak ekleyin; denetçi paneli embed kodunu gösterir.
| Anahtar | Etiket | Tür | Zorunlu | Varsayılan | Notlar |
|---|---|---|---|---|---|
title | Form title | string | Hayır | Contact us | Form başlığı |
fields | Fields | list | Hayır | ["name", "email", "phone", "message"] | Alan anahtarları; email veya phone en az biri lead dedupe için önerilir |
successMessage | Success message | string | Hayır | Thanks! We will get back to you. | Gönderim sonrası mesaj |
Çıktı item'ı: { "name": "...", "email": "...", "phone": "...", "message": "...", "submittedAt": "...", "ip": "...", "utm": {...} }.
Örnek: trigger.form → leads.create → messaging.sendEmail (to: {{ $json.email }}, subject: "Talebinizi aldık") → agent.leadQualifier.
İpuçları ve sınırlar
- Bir iş akışında yalnızca bir tetikleyici bulunur. Aynı akışı hem zamanlanmış hem webhook ile başlatmak için iki iş akışı yapın ve ortak kısmı
utility.runWorkflowile çağırın. - Tetikleyici yalnızca iş akışı ACTIVE iken çalışır;
DRAFTvePAUSEDdurumunda yalnızca manuel test çalıştırması yapılabilir. - Test modunda (
testMode: true) tetikleyicisampleInputkullanır ve dış etkili node'lar (social.publish,messaging.send) dry-run olur. - Webhook ve form uç noktaları organizasyon başına dakikada 600 istekle sınırlıdır; aşımda 429 döner.
- Plan limiti
runsPerMonthdolduğunda tetikleyiciler çalıştırmayı kuyruğa almaz;budget.warningbildirimiyle haberdar olursunuz.
Sık sorulan sorular
Bir iş akışına iki tetikleyici ekleyebilir miyim? Hayır. İki ayrı iş akışı yapın ve ortak kısmı İş akışı çalıştır kutusuyla çağırın.
Zamanlama tam saatinde mi çalışır? Zamanlayıcı her dakika kontrol eder; birkaç saniyelik gecikme normaldir.
Test ederken gerçek mesaj beklemem gerekir mi? Hayır. Test düğmesi tetikleyiciyi örnek veriyle hemen ateşler.