elicit_result
Fetch the outcome of a decided request — the final step of the Approval Flow.
When to use
Section titled “When to use”After elicit_await or
elicit_status reports a decision. Calling it
earlier errors: while the request is still pending, after it has
expired undecided, and for a request the requester canceled via
elicit_cancel (no reviewer outcome exists).
Once the reviewer has decided, it succeeds for either outcome —
submitted or declined — both are fetchable, not just submissions.
| Parameter | Type | Required | Description |
|---|---|---|---|
elicitationId |
string | yes | The id returned when the request was created. |
{ "elicitationId": "…" }Behavior
Section titled “Behavior”Idempotent: every fetch is recorded as a consumed audit event, and
repeat calls return the same result — for as long as the record is retained
(90 days; see Data Retention).
A success always carries the outcome. If elicit_result returns without
error, decision, context, and formSubmission are all present — you never
need to inspect the shape before trusting it. In every state where no
reviewer outcome exists the call errors instead, and the error names the
state so you know why:
| State | Error text |
|---|---|
| Still undecided | not decided (status=pending) |
| TTL elapsed undecided | not decided (status=expired) |
Withdrawn via elicit_cancel |
not decided (status=canceled) |
To read a status without fetching an outcome, use
elicit_status — that’s the tool that returns
{ "status": … } for every state, including canceled.
Output
Section titled “Output”{ "status": "consumed", "decision": "submitted", "context": { "target": "prod" }, "formSubmission": { "approver": "Ada", "confidence": 95 }}decision— the reviewer’ssubmitted/declinedchoice.context— the read-only payload fromelicit_approval(orelicit_proposal), echoed back verbatim (nullif none was supplied). Never a value the agent re-supplies — the human approved what actually runs.formSubmission— the reviewer’s validated field values, keyed byrequestedSchemaproperty name (nullin JSON mode, i.e. when norequestedSchemawas given).
Per-tool overlays
Section titled “Per-tool overlays”elicit_selectionaddsselectedIds— the chosen optionids, present whendecisionissubmitted.elicit_proposaladds, on submit,values(only the fields the reviewer included). A declined proposal is fetchable like any other decided request — it returns{ "decision": "declined", … }rather than erroring.
Related
Section titled “Related”elicit_await/elicit_status— reach a decided state firstelicit_history— recover a lostelicitationId