Skip to content

elicit_result

Fetch the outcome of a decided request — the final step of the Approval Flow.

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": "" }

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.

{
"status": "consumed",
"decision": "submitted",
"context": { "target": "prod" },
"formSubmission": { "approver": "Ada", "confidence": 95 }
}
  • decision — the reviewer’s submitted / declined choice.
  • context — the read-only payload from elicit_approval (or elicit_proposal), echoed back verbatim (null if none was supplied). Never a value the agent re-supplies — the human approved what actually runs.
  • formSubmission — the reviewer’s validated field values, keyed by requestedSchema property name (null in JSON mode, i.e. when no requestedSchema was given).
  • elicit_selection adds selectedIds — the chosen option ids, present when decision is submitted.
  • elicit_proposal adds, 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.