# Kararlar ve onaylar

Bir hüküm iste — onay, red veya değişiklik — ve iş akışının etiketleri okumadan buna göre dallanmasını sağla.

## Kararlar ve onaylar

Birçok istek tek bir şey almak için vardır: bir evet, bir hayır ya da bir 'öyle değil'. Karar sorusu bu hükmü, otomasyonunuzun doğrudan dallanabileceği bir biçimde yakalar — yanıtın hangi alanda olduğunu tahmin etmeden.

<h2 id="why">Neden özel bir soru</h2>

<p>
  Her seçimin zaten bir <a href="/tr/requests/field-keys#option-keys">seçenek anahtarı</a> vardır, bu yüzden bir iş akışı herhangi bir radyo
  üzerinde dallanabilir. Bir iş akışının yapamadığı şey, bir onayı olan her form genelinde hangi anahtarın "evet" anlamına geldiğini
  bilmektir: bir yazarın radyosu <code>sign_off</code> der, bir başkasınınki <code>approved</code>.
</p>

<p>
  <strong>Karar sorusu</strong> adları sabitler. Alan anahtarı <code>decision</code> olan tek seçimlik bir sorudur; üç seçeneği{' '}
  <code>approve</code>, <code>decline</code> ve <code>changes</code> seçenek anahtarlarını taşır. Etiketleri yeniden ifade etmeniz ve
  çevirmeniz için sizindir; altlarındaki anahtarlar asla taşınmaz. Alıcı bir tanesini seçtiğinde istek bir <strong>sonuçla</strong> biter.
  Anahtarı <code>decision</code> olan ve seçenekleri bu üç anahtarı taşıyan herhangi bir radyo geçerlidir — hazır ayar bunları sizin için
  ayarlar, hepsi bu.
</p>

<h2 id="insert">Formunuza bir tane ekleyin</h2>

/</strong> tuşuna basın ve <strong>Karar</strong>’ı seçin — "Onayla, reddet veya değişiklik iste".',
    },
    {
      title: 'Etiketleri yeniden ifade edin',
      description:
        '"Onaylıyor musunuz?" başlıklı, Onayla, Reddet ve Değişiklik iste seçeneklerine sahip bir soru alırsınız. Herhangi birini kendi ifadenize göre yeniden yazın — "İmzala", "Geri çevir", "Düzeltme için geri gönder". Bunları diğer içerikler gibi çevirin.',
    },
    {
      title: 'Gerekiyorsa nedenini sorun',
      description:
        'Tek başına bir hüküm nadiren kendini açıklar. Ondan sonra uzun metin sorusu ekleyin ve <a href="/tr/building-forms/conditional-logic">koşullu mantık</a> ile yalnızca red ve değişiklik için gösterin.',
    },
    {
      title: 'Yayımlayın',
      description:
        'Bu yayımlanmış sürümden oluşturulan istekler bir sonuçla biter. Her alan anahtarı gibi, decision da yalnızca form yayımlandıktan sonra var olur.',
    },
  ]}
/>

> ⚠️ **Yalnızca hazır ayar bir sonuç üretir**
> <p>
>     Sonuç, alan anahtarı <code>decision</code> olan sorudan okunur ve yalnızca seçilen seçeneğin anahtarı üçünden biri olduğunda. Onayla,
>     Reddet ve Değişiklik iste olarak etiketlenmiş seçenekleriyle elle kurduğunuz bir radyo tam olarak bu anahtarları türetir, bu yüzden
>     hazır ayar olmadan da çalışır; başka etiketleri olan bir radyo ise üç anahtarı{' '}
>     <a href="/tr/requests/field-keys#option-keys">Anahtarlar tablosuna</a> yazdığınızda çalışır.
>   </p>
>   <ul>
>     <li>
>       Üç seçenekten birini silin ya da anahtarını yeniden yazın, yayımlama sizi uyarır: "Karar sorusunda onayla, reddet veya değişiklik iste
>       seçeneklerinden biri eksik, bu yüzden istekler sonuç olmadan tamamlanabilir." Üçü de orada olmalı — yalnızca onaylayabilen bir karar
>       reddedemez.
>     </li>
>     <li>
>       Bir <a href="/tr/building-forms/repeating-groups">tekrarlayan grup</a> içindeki bir karar sorusu sıradan bir sorudur ve sonuç için yok
>       sayılır.
>     </li>
>   </ul>

<h2 id="values">Üç değer</h2>

<p>
  Bu üç değer, bir alan anahtarı gibi genel bir sözleşmedir: bir otomasyon, bir ajan ve bir e-tablo formülü hepsi bunları okur.{' '}
  <strong>Dördüncü bir seçenek eklemek ve onu seçmek sıradan bir yanıttır, bir hüküm değil</strong> — o istek, alıcınızın hiç duymadığı bir
  değerle değil, sonuçsuz tamamlanır.
</p>

<h2 id="where">Sonuç nerede görünür</h2>

```
{
  "id": "evt_...",
  "type": "request.completed",
  "test": false,
  "data": {
    "request": {
      "id": "kd7...",
      "externalId": "run-42",
      "status": "completed",
      "outcome": "changes",
      "context": { "case_id": "CASE-9" }
    },
    "answers": {
      "decision": "changes",
      "reason": "Please split the line items per site."
    }
  }
}
```

<p>
  <code>data.request.outcome</code>'a göre dallanın. <strong>status</strong> isteğin bitip bitmediğini söyler; <strong>outcome</strong>{' '}
  alıcının ne karar verdiğini söyler. Süresi dolmuş veya iptal edilmiş bir isteğin bir durumu vardır ve bir sonucu yoktur — karar sorusu
  olmayan bir formdaki tamamlanmış bir istek de öyle.
</p>

<h2 id="agents">Bir ajandan</h2>

<p>
  MCP aracı <code>editor_insertDecisionQuestion</code>'dır; bir başlık ve formun dilinde üç etiket alır. Bir geri çağırma uç noktası
  barındıramayan bir ajan bunun yerine <code>request_get</code>'i yoklar ve durum <code>pending</code>'den ayrıldığında <code>outcome</code>
  'u okur. <a href="/tr/developers/mcp-server#requests">MCP sunucusundaki İstekler →</a>
</p>

<div class="not-prose grid gap-3 sm:grid-cols-2">
  - [Geri çağırmalar ve imzalama](/tr/requests/callbacks) — Tam yük ve nasıl doğrulanacağı.
  - [İstekler sayfası](/tr/requests/managing-requests) — Sonuca göre filtreleyin ve bir isteği takip edin.
  - [Koşullu mantık](/tr/building-forms/conditional-logic) — Yalnızca gerektiğinde bir neden isteyin.
  - [Soru tipleri](/tr/building-forms/field-types) — Sorabileceğiniz diğer her soru.
</div>
