Approval Workflows are available on Pro, Business, and Enterprise plans. Upgrade your plan to unlock this feature.
Overview
Approval Workflows allow you to require human approval before your AI agents can execute sensitive actions. This adds a critical safety layer for high-risk operations like:- Financial transactions (refunds, transfers, purchases)
- Data deletion or modification
- External API calls with irreversible consequences
- Administrative actions
How It Works
The complete flow:- Agent requests permission via
guard.check() - AgentWarden blocks the action and creates a pending approval
- Human reviews the request in the dashboard
- Human approves or rejects the action
- Webhook notifies your server (if configured)
- Your server executes the approved action
- Action is logged via
guard.log()
Setup
1. Configure Permission to Require Approval
In your AgentWarden dashboard:- Go to Agents → Select your agent
- Add or edit a permission
- ✅ Check “Requires Approval”
- Save the permission

2. Implement Webhook Handler
Your agent must have a webhook endpoint to receive approval notifications:3. Configure Webhook URL
- Go to Settings → Webhooks
- Enter your webhook URL
- Subscribe to
approval.approvedandapproval.rejectedevents - Save configuration
4. Implement Agent Logic
Your AI agent should check permissions before executing actions:Review and Approve
In the Dashboard
- Go to Approvals in your dashboard
- Review pending actions with full context
- Click Approve or Reject

What Reviewers See
- Action name: What the agent wants to do
- Context: All relevant data (amount, IDs, parameters)
- Agent ID: Which agent made the request
- Timestamp: When the request was made
Webhook Payloads
When approval events occur, AgentWarden sends webhooks with the following payloads:log.pending_approval - When approval is created
log.pending_approval - When approval is created
approval.approved - When human approves
approval.approved - When human approves
approval.rejected - When human rejects
approval.rejected - When human rejects
Best Practices
1. Provide Rich Context
Include all information a reviewer needs to make an informed decision:2. Use Granular Actions
Define specific actions rather than broad ones: ✅ Good:stripe.refund.fullstripe.refund.partialdatabase.users.deletedatabase.orders.cancel
stripe.anydatabase.write
3. Set Amount Limits
Combine approvals with amount limits for financial actions:4. Implement Timeouts
Don’t let agents wait forever for approvals:5. Log Everything
Log all approval events for audit trail:Example Use Cases
Financial Transactions
Data Deletion
External API Calls
Troubleshooting
Approvals Not Creating
- Verify permission has “Requires Approval” checked
- Check agent is using correct
agent_idandactionname - Ensure organization has Pro+ plan
- Check API logs for errors
Webhook Not Firing
- Verify webhook URL is publicly accessible
- Check webhook events include
approval.approved - Test webhook using “Test Webhook” button
- Check server logs for incoming requests
Action Not Executing After Approval
- Verify webhook handler is executing the action
- Check for errors in webhook handler logs
- Ensure
guard.log()is being called - Verify action context has all required data