Skip to content

Approval Chain

Route high-risk AI decisions to human approvers.

Flow

AI Action → Gate Check → Approval Required → Human Review → Execute/Reject

Creating Approval Requests

When a gate check returns require_approval:

typescript
const gateResult = await sovr.gate.check({
  action: 'send_contract',
  context: { value: 100000, recipient: 'client@corp.com' }
});

if (gateResult.decision === 'require_approval') {
  console.log(`Approval needed: ${gateResult.approvalId}`);
}

Approver Configuration

yaml
approval_chains:
  - name: contract_approval
    actions:
      - send_contract
      - sign_agreement
    levels:
      - role: legal_counsel
        timeout_hours: 4
      - role: cfo
        timeout_hours: 24
        
  - name: data_deletion
    actions:
      - delete_customer_data
    levels:
      - role: data_protection_officer
      - role: ciso
    require_all: true

Approval Methods

MethodUse Case
EmailAsync approval via link
DashboardReal-time in SOVR UI
Slack/TeamsBot integration
APICustom integration

Timeout Handling

yaml
timeout_policy:
  action: escalate  # or: deny, allow_with_flag
  escalate_to: manager
  notify:
    - security@company.com

The AI Responsibility Layer