# İş akışları

> Tetikleyici, koşul ve eylemlerle tekrarlanan işleri otomatikleştirin — koşula göre dallanma, bekleme, HTTP isteği, yapay zekâ adımı, elle ve zamanlanmış çalıştırma.

**İş akışları** (kenar çubuğu → İş akışları, yönetici) bir olay olduğunda — fırsat açıldı, aşama değişti, firmadan e-posta geldi… — ya da belirli bir zamanda kayıtlar üzerinde sırayla eylem çalıştırır. Düzenleyici yukarıdan aşağı okunur: **Tetikleyici → Koşullar → Adımlar**.

## Tetikleyiciler {#triggers}

| Tetikleyici | Nesne | Ne zaman |
|---|---|---|
| Fırsat açıldığında · Fırsat aşaması değiştiğinde | Fırsat | Kayıt kaydedilince hemen |
| Fırsat belirli gündür aktivitesiz kaldığında · Aşama süresi (SLA) dolduğunda | Fırsat | Günlük kontrol |
| Firma eklendiğinde · Firmanın ziyaret vadesi geçtiğinde | Firma | Hemen · günlük |
| Fuar leadi girildiğinde · Ziyaret / görüşme girildiğinde · Destek talebi açıldığında | İlgili kayıt | Hemen |
| Sözleşme bitişi yaklaştığında | Sözleşme | Günlük |
| Firmadan e-posta geldiğinde | E-posta | Eşitlemede |
| **Elle çalıştırıldığında** — fırsat / firma | Fırsat · Firma | Kullanıcı başlatınca |
| **Zamanlanmış** — fırsatlar / firmalar | Fırsat · Firma | Her gün / hafta / ay, seçilen saatte |

**Elle** iş akışları fırsat ve firma kartındaki **İş akışı** düğmesinden ya da tablo görünümünde seçili kayıtlar için alt çubuktaki **İş akışı** menüsünden çalışır (kaydı düzenleme hakkı gerekir).

**Zamanlanmış** iş akışı dönemde bir kez çalışır: koşullara uyan kayıtların her biri için (çalıştırma başına en çok 500 kayıt). Örnek: *Her pazartesi 09:00 — açık fırsatlara yapay zekâ özeti not olarak eklensin*.

## Koşullar {#conditions}

Koşulların hepsi tutmalıdır: alan + koşul (=, ≠, içerir, ≥, ≤, boş, dolu) + değer. Fırsat ve firma [özel alanları](/concepts/custom-fields) da koşulda kullanılır. Koşul yoksa iş akışı tetiklenen her kayıt için çalışır.

## Adımlar {#actions}

| Adım | Ne yapar |
|---|---|
| Görev oluştur | Başlık, kaç gün sonra, kime, tür, öncelik |
| Bildirim gönder | Kaydın sorumlusuna, iş akışını kurana, seçilen bir kullanıcıya ya da tüm yöneticilere |
| Sorumlu ata · Etiket ekle · Alan güncelle | Kaydı değiştirir (özel alanlar dahil) |
| E-posta gönder (şablon) · E-posta dizisine ekle | Kişiye e-posta / dizi (dizi E-posta Otomasyonu modülü ister) |
| Uygulamaya gönder | Slack, Teams, Telegram, web kancası… ([Uygulamalar](/guides/apps)) |
| **Koşula göre dallan** | Koşullar tutarsa *Evet ise*, tutmazsa *Hayır ise* kolundaki adımlar |
| **Bekle** | Kalan adımları gün / saat sonra sürdürür |
| **HTTP isteği gönder** | Kendi sisteminize (ERP, Zapier'siz otomasyon) istek |
| **Yapay zekâ adımı** | Sınıflandırır, özetler ya da talimata göre yazar; sonucu özel alana ya da not olarak kayda yazar |

Metinlerde değişken kullanılır: `{firma}` `{fırsat}` `{aşama}` `{sorumlu}` `{tutar}` `{kişi}` `{lead}` `{fuar}` `{konu}` `{gün}`.

### Koşula göre dallan {#branch}

Dalın kendi koşulları vardır (iş akışının genel koşullarından bağımsız). Her kola istediğiniz kadar adım eklenir; kolların içinde yeniden dal ya da bekleme kullanılamaz. Boş kol "hiçbir şey yapma" demektir.

### Bekle {#wait}

Bekle adımına gelince iş akışı durur ve kalan adımlar sıraya alınır; süre dolunca (10 dakikalık zamanlayıcıyla) kaldığı adımdan devam eder. **Süre dolunca koşulları yeniden dene** işaretliyse, devam etmeden önce iş akışının koşulları tekrar denetlenir — artık tutmuyorsa (ör. fırsat o arada ilerlediyse) iş akışı durur. Bekle son adım olamaz. İş akışı kapatılır ya da silinirse bekleyen adımlar çalışmaz.

> Örnek kalıp **Sunum sonrası takip (bekle + dal)**: fırsat Present Solution'a geçince görev aç → 5 gün bekle → hâlâ aynı aşamadaysa sorumluya ve yöneticilere bildirim.

### HTTP isteği gönder {#http}

Yöntem (POST, PUT, PATCH, GET, DELETE), adres (yalnız `https://`, herkese açık adresler; değişken kullanılabilir), isteğe bağlı başlıklar (satır başına `Ad: değer`) ve gövde.

**Kayıt verisini JSON olarak gönder** işaretliyse gövde şöyledir (gövde alanına yazdığınız metin `message` olarak eklenir):

```json
{
  "event": "workflow",
  "workflow": "ERP'ye gönder",
  "workflow_id": 7,
  "kind": "opp",
  "id": 412,
  "url": "https://firma.solk.app/opportunities/412",
  "data": {"owner": "3", "c_status": "AC", "c_city": "İzmir", "stage": "Win", "value": 324000.0, "prob": 100, "tag": "", "...": "..."},
  "vars": {"firma": "Egemen Group A.Ş.", "fırsat": "Proje · 2026", "...": "..."},
  "sent_at": "2026-10-04T14:20:05",
  "message": "Proje · 2026 kazanıldı"
}
```

`data`, koşullarda kullanılan alan değerleridir (`owner` = kullanıcı kimliği, `c_*` = firmanın alanları, özel alanlar `cf_<anahtar>`).

İşaretli değilse gövde olduğu gibi (değişkenler doldurularak) gönderilir; geçerli JSON ise `Content-Type: application/json`, değilse düz metin. **İmza anahtarı** girilirse istek `X-Solk-Signature: sha256=<HMAC-SHA256(anahtar, gövde)>` başlığını taşır — doğrulama [web kancalarıyla](/guides/webhooks) aynıdır. 2xx dışı yanıt adımı hatalı sayar; sonuç **Çalışmalar** sekmesinde görünür. İstek 15 saniyede zaman aşımına uğrar.

### Yapay zekâ adımı {#ai}

| İşlem | Sonuç |
|---|---|
| Sınıflandır | Verdiğiniz seçeneklerden (ya da hedef seçim alanının seçeneklerinden) birini seçer |
| Özetle | Kaydın son durumunu birkaç cümleyle özetler |
| Talimata göre yaz | Talimatınızı kaydın bilgileriyle yanıtlar (*"Sonraki adımı tek cümleyle öner"*) |

Sonuç fırsatın ya da firmanın bir metin / uzun metin / seçim [özel alanına](/concepts/custom-fields) ya da **kayda not** olarak yazılır. Yapay zekâya kaydın özeti gider: aşama, tutar, sorumlu, özel alanlar, aşama geçmişi, firma bilgileri, kişilerin adı ve unvanı, son görüşmeler, notlar ve son e-posta konuları. Kişilerin e-posta adresi ve telefonu gönderilmez. Kuruluşta yapay zekâ kapalıysa adım hata verir ve hiçbir veri gönderilmez; her çalışma yapay zekâ kullanımına sayılır.

## Çalışmalar ve sınırlar {#runs}

- **Çalışmalar** sekmesi her çalıştırmayı kayıt, sonuç ve adım özetiyle gösterir (*HTTP POST erp.ornek.com → 200 · dal: hayır · etiket 'Küçük fırsat' · bekliyor → 06.10.2026*).
- Bir iş akışının ürettiği değişiklikler başka iş akışlarını tetiklemez (döngü olmaz).
- Tek istekte 200'den fazla olay (toplu içe aktarma gibi) iş akışlarını çalıştırmaz.
- Örnek veri kayıtlarında iş akışı çalışmaz.