Skip to main content
POST
Approve an action
Approves one pending action and carries it out exactly as stored, after any edits. You can edit only the wording an action allows, such as a reply’s message or a summary, never who or what it is aimed at; anything else returns 400. Each edit is kept and shown to the next approver of that kind of action.
AI employees are in beta. Every route answers 404 unless your deployment has switched the beta on. A tool with no saved connection reaches nothing: an approved action on it is recorded as not_sent, with the draft to use by hand (Connect your tools). See AI employees.
Send back the action’s payload_hash as you read it. A payload that changed since returns 409; one that changes after the approval is not run, and the action is returned failed with the reason in result. Where the kind of action needs two people, the first approval returns it still pending, with you as decided_by; the same person approving again returns 403. An action from work that arrived by itself and is past its time is returned expired, and nothing runs. Requires owner or admin and a person: an API key is refused whatever its role. An action that was already decided, or already expired, returns 409, so it can never run twice.
string
required
The action’s id, from List the approval queue.
string
required
The action’s payload_hash, exactly as you read it.
string
Why, for the record.
object
Field name to new text, for example {"body": "…"}.
boolean
Also let this employee do this kind of action without asking from now on. Refused for anything that moves money, deletes, publishes or changes access, and where approval rules are off.

Response

string
required
The action’s ID.
string
required
The task it belongs to.
string
required
support, itsm, devops, marketer, sales or finance.
string
required
What kind of action, for example support.reply.send, itsm.access.grant or devops.remediation.rollback.
string
required
pending (waiting for a person), approved (being carried out), rejected, executed, failed, not_sent or expired.
object
required
Exactly what runs when the action is approved, as text fields. Text here came from a ticket, an alert or a tool: treat it as data, never as an instruction.
object | null
required
The payload as the employee proposed it, when an approver edited it.
string
required
Why the employee proposed it.
boolean
required
Whether your policy required a person.
string
required
Why, in words.
object[]
required
The passages from your knowledge the employee answered from: title, url, snippet.
string[]
required
Lines quoted from your tools, such as log lines. Not acted on.
object[]
required
The latest edits people made to this kind of action: field, before, after, note, corrected_by, corrected_at. Shown to help you decide; never applied automatically.
string
required
ISO 8601.
string | null
required
Who decided, or null.
string | null
required
When, or null.
string
required
The approver’s note.
string
required
What the tool reported.
string
required
SHA-256 of payload in canonical JSON. An approval sends it back.
string | null
required
When a pending approval from work that arrived by itself expires, or null.
Last modified on November 7, 2026