Skip to main content

Version: 2026.04 | Last Updated: April 2026| Status: Draft

Action Approval

The Action Approval dashboard enables human-in-the-loop oversight for AI agent actions, providing approval workflows, policy enforcement, and automation playbooks.

Overview​

When an agent action exceeds risk thresholds or triggers a policy, it enters the approval queue for human review.

Source: owkai-pilot-frontend/src/components/AgentAuthorizationDashboard.jsx

warning

Approval and denial decisions are irreversible once submitted. Review the action details, risk score, and policy context carefully before making a decision -- denied actions must be resubmitted by the agent.

Dashboard Tabs​

TabDescription
PendingActions awaiting approval
WorkflowsApproval workflow configuration
PoliciesGovernance policies
AutomationAutomation playbooks
ExecutionExecution history

Pending Actions Queue​

Queue Filters​

FilterOptions
SourceAll, Agent, MCP, High Risk
StatusPending, Approved, Rejected
Risk LevelLow, Medium, High, Critical

Action Card Information​

Each pending action displays:

┌─────────────────────────────────────────────────────────────┐
│ database_write Risk: 75/100 │
├─────────────────────────────────────────────────────────────┤
│ Agent: financial-advisor-001 │
│ Resource: production_db.customers │
│ Description: Update customer profile │
├─────────────────────────────────────────────────────────────┤
│ NIST: AC-3 MITRE: T1003 CVSS: 6.5 │
├─────────────────────────────────────────────────────────────┤
│ [Approve] [Deny] [Details] │
└─────────────────────────────────────────────────────────────┘

Approval Actions​

Approve Action​

  1. Review action details and risk score
  2. Click Approve
  3. Add optional comment
  4. Confirm approval

Audit Trail: Records approver, timestamp, and justification.

Deny Action​

  1. Review action details
  2. Click Deny
  3. Provide reason (required)
  4. Confirm denial

Agent Notification: Agent receives denial reason via webhook.

Emergency Override​

For time-sensitive situations:

  1. Click Emergency Override
  2. Provide detailed justification (required)
  3. Select override type:
    • Expedited Approval: Skip additional approvers
    • Risk Acknowledgment: Approve despite high risk

Security Alert: Emergency overrides trigger security team notification.

Approval Workflows​

Configure multi-level approval chains:

Workflow Structure​

{
"name": "High-Value Transaction Approval",
"description": "Multi-level approval for transactions over $10,000",
"steps": [
{ "level": 1, "role": "team_lead", "timeout_hours": 4 },
{ "level": 2, "role": "manager", "timeout_hours": 8 },
{ "level": 3, "role": "director", "timeout_hours": 24 }
],
"triggers": [
{ "field": "risk_score", "operator": ">=", "value": 70 },
{ "field": "action_type", "operator": "in", "value": ["funds_transfer"] }
],
"approvers": ["team-leads", "finance-managers"]
}

Workflow Triggers​

TriggerDescriptionExample
risk_scoreRisk threshold>= 70
action_typeSpecific actionsdatabase_delete
resourceResource patterns*.pii
agent_idSpecific agentsautonomous-*

Automation Playbooks​

Automate routine approval decisions:

Playbook Configuration​

{
"id": "auto-approve-low-risk",
"name": "Auto-Approve Low Risk Reads",
"status": "active",
"risk_level": "low",
"approval_required": false,
"trigger_conditions": {
"risk_score": { "min": 0, "max": 30 },
"action_type": ["database_read", "api_read"],
"environment": ["development", "staging"],
"business_hours": true
},
"actions": [
{ "type": "auto_approve", "delay_seconds": 0 },
{ "type": "log", "message": "Auto-approved low-risk read" }
]
}

Playbook Features​

FeatureDescription
Template LibraryPre-built playbook templates
Dry-Run TestingTest playbooks before activation
Version HistoryTrack playbook changes
Analytics DashboardMonitor playbook performance

Playbook Actions​

Action TypeDescription
auto_approveAutomatically approve
auto_denyAutomatically deny
escalateSend to next approval level
notifySend notification
logAdd audit log entry
webhookCall external webhook

Policy Enforcement​

The Enhanced Policy Tab provides governance policy management:

Policy Structure​

{
"policy_name": "Block PII Access After Hours",
"description": "Deny PII access outside business hours",
"effect": "DENY",
"conditions": {
"resource_type": "pii",
"time": { "outside": "09:00-17:00" }
},
"priority": 100
}

Policy Decision Badge​

Actions display policy evaluation results:

BadgeMeaning
ALLOWPolicy permits action
DENYPolicy blocks action
REQUIRE_APPROVALNeeds human review
CONFLICTMultiple policies conflict

Execution History​

Track all approval decisions:

FieldDescription
Action IDUnique action identifier
DecisionApproved/Denied/Auto-approved
ApproverWho made the decision
TimestampWhen decision was made
DurationTime from submission to decision
PlaybookAutomation playbook used (if any)

API Reference​

EndpointMethodDescription
/api/authorization/pendingGETGet pending actions
/api/authorization/approve/{id}POSTApprove action
/api/authorization/deny/{id}POSTDeny action
/api/authorization/workflowsGETList workflows
/api/automation/playbooksGETList playbooks

Source: ow-ai-backend/routes/authorization_routes.py

Best Practices​

  1. Set SLAs: Configure approval timeouts to prevent queue buildup
  2. Use playbooks: Automate repetitive low-risk approvals
  3. Review denials: Monitor denial patterns to improve policies
  4. Escalate promptly: Don't let critical actions wait
  5. Document decisions: Always add context to approvals/denials

Troubleshooting​

Queue not refreshing​

Solution: Check WebSocket connection; refresh page if needed.

Playbook not triggering​

Solution: Verify trigger conditions match action attributes exactly.

Approval timeout​

Solution: Check email notifications; escalate to backup approver.


Source: AgentAuthorizationDashboard.jsx, authorization_routes.py