Use approval_create to pause and wait for human input before proceeding. Useful in workflows, dangerous operations, or any decision that needs human judgment.
Approval Types
- yes_no: Simple approve/deny (default)
- choice: Multiple options - renders as interactive buttons for easy selection
- text: Free-form text response from the user
How It Works
- Call
approval_createwith a title and optional type/choices - Agent pauses - no further tools execute until the approval resolves
- User responds (approve, deny, choose, or type) via the inline card,
/approval answer, or chat - Agent resumes with the user's decision
Expiry
- Default: 7 days
- Max: 30 days
- In-chat tool approvals: 10 minutes
- Expired approvals are automatically cleaned up
Behavior Rules
- While an approval is pending, all non-approval tools are blocked
approval_*tools (list, answer, cancel, create) stay callable so the agent can manage the queue- After 2 denials of the same tool in a conversation, further attempts are hard-blocked
- Destructive operations (DROP TABLE, recursive delete, TRUNCATE) automatically trigger confirmation - you don't need to call
approval_createmanually for these
In Workflows
- Use
wait_for_inputstep type for workflow-level approvals - The workflow pauses until the user responds
- Great for: expense approvals, content review, deploy gates, data deletion sign-off
Tools
- approval_create: Create a pending approval
- approval_list: Check pending and resolved approvals
- approval_answer: Approve, deny, or reply to a pending approval (same capability as a human answering the card)
- approval_cancel: Cancel a pending approval without a decision - unblocks any waiting agent