Overview
The Approvals Page is your inbox for reviewing and approving sensitive agent actions. Agents request approval when attempting high-risk operations, and humans make the final decision.
Layout
The page has two main tabs:
- Pending Actions - Approval requests awaiting decision
- Decision History - All past approvals with outcomes
Dashboard stats
At the top, 6 metrics show approval workflow health:
| Stat | Description |
|---|
| Total Pending | Approvals awaiting decision |
| Critical/High Priority | Urgent approvals needing immediate attention |
| Average Decision Time | Mean time from request to decision |
| Info Requested | Approvals where you asked for more context |
| Total Decisions | Lifetime approval decisions |
| Approval Rate | % of requests approved vs rejected |
Pending actions tab
Approval cards
Each pending approval shows:
- Action Name (large, prominent)
- Description - What the action will do
- Priority Badge - Critical (red), High (orange), Medium (yellow), Low (green)
- Risk Level Badge - Critical, High, Medium, Low, Minimal
- Expiration Countdown - Time remaining
- Estimated Cost - USD cost if approved
- Agent ID - Which agent is requesting
- Created - How long ago requested
Visual cues:
- 🔴 Expired/expiring soon - Red countdown (< 1 min)
- 🟠 Expiring - Orange countdown (< 5 min)
- 🟢 Plenty of time - Green countdown (> 5 min)
- ⏰ Expired - Gray with “EXPIRED” badge
Sorting and filtering
Filter by status:
- Pending
- Approved
- Rejected
- Expired
- Cancelled
- Info Requested
Filter by priority:
Filter by risk level:
- Critical
- High
- Medium
- Low
- Minimal
Sort by:
- Newest first (default)
- Expiring soonest
- Highest priority
- Highest cost
Review modal
Click Review to open the detail modal with 4 sections:
Action Details
- Full description - Detailed explanation of what action will do
- Action inputs - JSON view of parameters
{
"from_account": "acct_123",
"to_account": "acct_456",
"amount_usd": 10000.0
}
- Context - Additional metadata agent provided
- Estimated cost - What this will cost if approved
- Agent ID - Which agent is requesting (link to agent page)
- Run ID - Current run (link to run details)
- Agent intent - Why agent wants to do this
- Recent history - Past actions by this agent
Risk Assessment
- Risk level - Why this is risky
- Potential impact - What could go wrong
- Blast radius - Scope of impact if misused
- Compliance notes - Regulatory considerations
Decision Actions
Three buttons:
-
Approve (green) - Allow action to proceed
- Opens approval form:
- Your email (pre-filled)
- Notes (optional)
- Confirm button
-
Reject (red) - Block action
- Opens rejection form:
- Your email (pre-filled)
- Reason (required)
- Confirm button
-
Request Info (blue) - Ask agent for more context
- Opens info request form:
- Your email (pre-filled)
- Message to agent (required)
- Send button
- Status changes to “info_requested”
- Agent receives message and can respond
- Returns to “pending” after agent responds
Quick actions
From the card (without opening modal):
- Quick Approve - One-click approval (no notes)
- Quick Reject - One-click rejection (generic reason)
Use with caution: Quick actions skip the detailed review - only use for low-risk, routine approvals.
Decision history tab
Shows all past approvals with:
- Timestamp - When decided
- Action - What was requested
- Decision - Approved/Rejected/Expired badge
- Decider - Who made the decision
- Notes - Approver’s notes or rejection reason
- Decision time - How long it took to decide
- Cost impact - Cost incurred (approved) or saved (rejected)
Filters:
- Time range (24h, 7d, 30d, all time)
- Decision type (approved, rejected, expired)
- Decider (filter by approver email)
- Agent ID
Export:
- Download decision history as CSV/JSON
- Includes all fields for compliance reporting
Real-time behavior
Live updates
When a new approval is created:
- Appears at top of list with slide-in animation
- Browser notification (if enabled): “New approval required”
- Sound alert for critical priority (optional)
When an approval is decided elsewhere:
- Card updates in real-time
- Moves from “Pending” to “Decision History”
- Stats refresh
When approaching expiration:
- Countdown changes color
- Critical priority items flash (< 1 min remaining)
Expiration handling
When an approval expires:
- Status changes to “EXPIRED”
- Card grays out
- Moves to “Decision History” tab
- Agent receives
TimeoutError
- Intervention created with type “APPROVAL_REQUIRED”, outcome “BLOCKED”
Common workflows
Daily approval triage
- Navigate to Approvals page
- Sort by “Expiring soonest”
- Review all critical/high priority first
- For each:
- Read description and context
- Check risk level
- Verify agent intent
- Approve or reject with notes
- Check “Info Requested” for agent responses
Handle critical approvals
- Filter by priority=“Critical”
- Open review modal
- Read full context and inputs
- Verify this is legitimate and necessary
- If unclear, click “Request Info”
- Once satisfied, approve with detailed notes
- Monitor in Decision History to ensure action succeeds
Review approval patterns
- Go to “Decision History” tab
- Filter by time range (e.g., last 30 days)
- Identify patterns:
- Which actions are frequently requested?
- Which agent requests most approvals?
- What’s your approval rate?
- If approval rate is low (< 70%), investigate:
- Are agents attempting inappropriate actions?
- Should policies be adjusted?
Respond to info requests
- Filter by status=“Info Requested”
- See agent’s response to your question
- Review additional context provided
- Return to approval review
- Make decision now that you have more info
Keyboard shortcuts
a - Approve (when modal open)
r - Reject (when modal open)
i - Request info (when modal open)
Esc - Close modal
/ - Focus search/filter
Best practices
Respond quickly: Approvals have timeouts - aim to decide within 50% of timeout window to avoid expiration.
Add detailed notes: Notes are logged for compliance - explain your reasoning for approvals and rejections.
Never quick-approve high-risk actions: Always use the full review modal for high/critical risk approvals.
Use info requests liberally: If anything is unclear, request more info rather than guessing.
Monitor approval rates: If you’re rejecting > 30% of requests, review agent logic or policy configuration.
Notifications
Configure approval notifications in Settings → Notifications:
- Email: Get email for critical/high priority approvals
- Slack: Approval requests posted to #approvals channel
- Webhook: POST to custom URL for integration with your tools
- Browser: Push notifications (requires permission)
Troubleshooting
”Approval disappeared”
- Check “Decision History” tab - may have been decided
- Check for expired approvals
- Verify not filtered out by current filters
- Check if approval already expired
- Verify you have permission (correct organization)
- Refresh page - may be stale data
”Agent says approval pending, but I don’t see it”
- Check organization selector - may be in wrong org
- Verify agent’s
agent_id matches your filters
- Check “Info Requested” status
- Look in “Decision History” - may have auto-expired
”Countdown not updating”
- Check WebSocket connection (should show “REALTIME”)
- Refresh page to reset connection
- Browser tab may be inactive - revisit tab
See also