# Beslissingen & goedkeuringen

Vraag om een oordeel — goedkeuren, afwijzen of wijzigen — en laat je workflow erop vertakken zonder labels te hoeven lezen.

## Beslissingen & goedkeuringen

Veel aanvragen bestaan voor precies één ding: een ja, een nee, of een 'zo niet'. De beslissingsvraag legt dat oordeel vast in een vorm waarop je automatisering direct kan vertakken, zonder te hoeven raden welk veld het antwoord bevatte.

<h2 id="why">Waarom een speciale vraag</h2>

<p>
  Elke keuze heeft al een <a href="/nl/requests/field-keys#option-keys">optiesleutel</a>, dus een workflow kan op elke radiovraag vertakken.
  Wat een workflow niet kan, is weten — over elk formulier met een goedkeuring heen — welke sleutel "ja" betekent: de radiovraag van de ene
  auteur zegt <code>sign_off</code>, die van een ander <code>approved</code>.
</p>

<p>
  De <strong>beslissingsvraag</strong> legt de namen vast. Het is een keuzevraag met de veldsleutel <code>decision</code>, waarvan de drie
  opties de optiesleutels <code>approve</code>, <code>decline</code> en <code>changes</code> dragen. De labels blijf jij herschrijven en
  vertalen; de sleutels eronder verschuiven nooit. Zodra de ontvanger er één kiest, eindigt de aanvraag met een <strong>uitkomst</strong>.
  Elke radiovraag met de sleutel <code>decision</code> waarvan de opties die drie sleutels dragen, telt mee — het preset zet ze alleen voor
  je klaar.
</p>

<h2 id="insert">Voeg er één toe aan je formulier</h2>

/</strong> in de editor en kies <strong>Beslissing</strong> — "Goedkeuren, afwijzen of wijzigingen vragen".',
    },
    {
      title: 'Herschrijf de labels',
      description:
        'Je krijgt een vraag met de titel "Ga je akkoord?" en de keuzes Goedkeuren, Afwijzen en Wijzigingen aanvragen. Herschrijf ze naar jouw eigen bewoordingen — "Accorderen", "Afkeuren", "Terug voor aanpassing". Vertaal ze zoals elke andere inhoud.',
    },
    {
      title: 'Vraag naar een reden, als je die nodig hebt',
      description:
        'Een oordeel alleen verklaart zichzelf zelden. Voeg er een lange-tekstvraag na toe, en toon die alleen bij afwijzen en wijzigen met <a href="/nl/building-forms/conditional-logic">voorwaardelijke logica</a>.',
    },
    {
      title: 'Publiceren',
      description:
        'Aanvragen die vanaf deze gepubliceerde versie worden aangemaakt, eindigen met een uitkomst. Zoals elke veldsleutel bestaat decision pas zodra het formulier is gepubliceerd.',
    },
  ]}
/>

> ⚠️ **Alleen het preset levert een uitkomst op**
> <p>
>     De uitkomst wordt gelezen uit de vraag met veldsleutel <code>decision</code>, en alleen wanneer de sleutel van de gekozen optie één van
>     de drie is. Een radiovraag die je zelf bouwt met de opties gelabeld Goedkeuren, Afwijzen en Wijzigingen leidt precies die sleutels af,
>     dus die werkt zonder het preset; een radiovraag met andere labels werkt zodra je de drie sleutels typt in de{' '}
>     <a href="/nl/requests/field-keys#option-keys">Sleuteltabel</a>.
>   </p>
>   <ul>
>     <li>
>       Verwijder je één van de drie opties, of herschrijf je haar sleutel, dan waarschuwt publiceren: "De beslissingsvraag mist een optie
>       voor goedkeuren, afwijzen of wijzigingen aanvragen, dus aanvragen kunnen zonder resultaat worden voltooid." Alle drie moeten aanwezig
>       zijn — een beslissing die alleen kan goedkeuren, kan niet afwijzen.
>     </li>
>     <li>
>       Een beslissingsvraag binnen een <a href="/nl/building-forms/repeating-groups">herhaalgroep</a> is een gewone vraag en telt niet mee
>       voor de uitkomst.
>     </li>
>   </ul>

<h2 id="values">De drie waarden</h2>

<p>
  Deze drie waarden zijn een publiek contract, net als een veldsleutel: een automatisering, een agent en een spreadsheetformule lezen ze
  allemaal. <strong>Voeg je een vierde optie toe, dan is die kiezen een gewoon antwoord, geen oordeel</strong> — die aanvraag wordt voltooid
  zonder uitkomst, in plaats van met een waarde die je ontvanger nog nooit heeft gezien.
</p>

<h2 id="where">Waar de uitkomst verschijnt</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>
  Vertak op <code>data.request.outcome</code>. <strong>status</strong> zegt of de aanvraag is afgerond; <strong>outcome</strong> zegt wat de
  ontvanger besliste. Een verlopen of geannuleerde aanvraag heeft een status en geen uitkomst, en dat geldt ook voor een voltooide aanvraag
  op een formulier zonder beslissingsvraag.
</p>

<h2 id="agents">Vanuit een agent</h2>

<p>
  De MCP-tool is <code>editor_insertDecisionQuestion</code>, die een titel en de drie labels in de taal van het formulier aanneemt. Een
  agent die geen callback-endpoint kan hosten, poll't in plaats daarvan <code>request_get</code> en leest <code>outcome</code> zodra de
  status <code>pending</code> verlaat. <a href="/nl/developers/mcp-server#requests">Aanvragen op de MCP-server →</a>
</p>

<div class="not-prose grid gap-3 sm:grid-cols-2">
  - [Callbacks & ondertekening](/nl/requests/callbacks) — De volledige payload en hoe je hem verifieert.
  - [De pagina Aanvragen](/nl/requests/managing-requests) — Filter op uitkomst en volg één aanvraag.
  - [Voorwaardelijke logica](/nl/building-forms/conditional-logic) — Vraag alleen om een reden wanneer dat nodig is.
  - [Vraagtypen](/nl/building-forms/field-types) — Elke andere vraag die je kunt stellen.
</div>
