Approvals - Zevari Docs
How Zevari's approval gate works over the API: stage a write, a human approves, then re-call to execute. No unattended sends.
Why approvals
LinkedIn writes (messages, connection requests, comments, posts), email sends, and campaign launches are approval-gated. An agent cannot send unattended.
Lifecycle
A confirmation moves pending -> approved -> consumed, or pending -> rejected, or pending -> expired. There is no executed status; consumed is the single-use terminal state.
Stage
Call confirmations.requestAction with the action_type that matches the write. It returns a confirmation_id and a status.
Resolve and execute (poll by retry)
Re-call the same gated write passing the confirmation_id. Until approved it returns status_pending; once approved, the call executes. There is no approval-callback webhook. An inline autopilot.approved:true path also exists.
Timeouts
A staged confirmation is reviewable for 10 minutes; once approved, you have a 30-minute window to execute.
Executing without approval
Calling a gated write without an approved confirmation returns HTTP 400.