Approvals
Approvals are Koladr's human-in-the-loop mechanism. When a policy requires approval, the action pauses and waits for a human to review and decide before it can proceed.
How Approvals Work
The approval flow is triggered automatically when an agent requests an action that matches a policy with the "require approval" effect. Here is what happens:
- Agent calls
requestAction() - Koladr evaluates policies and determines approval is required
- The action is placed in the approval queue
- The agent receives a
pending_approvalstatus - An approver reviews and approves or rejects the action
- If approved, the action executes; if rejected, it is cancelled
The Approval Lifecycle
Every approval moves through these states:
- Pending — waiting for an approver to review
- Approved — action was approved and will execute
- Rejected — action was denied and will not execute
Once an approval is resolved (approved or rejected), it cannot be changed. This ensures a clean audit trail.
Who Can Approve
Users with the Admin or Approver role can approve or reject pending actions. Operators and Viewers cannot.
Any eligible user can approve any pending action in the workspace. If you need more granular routing (e.g. only certain people approve financial actions), use naming conventions and team agreements to organize who reviews what.
✦Assign clear ownership
What Approvers See
When reviewing a pending action, approvers have access to:
- The action type and parameters (what the agent wants to do)
- The agent identity (which agent made the request)
- The run timeline (full history of events leading to this action)
- The policy that triggered the approval requirement
- Any risk context the agent provided
This context helps approvers make informed decisions quickly, without needing to investigate separately.
Approving an Action
To approve a pending action:
- Navigate to Approvals in the sidebar
- Click on the pending action to open the detail view
- Review the action details, run timeline, and context
- Click Approve
Once approved, Koladr executes the action through the appropriate connector. The agent's run is updated with the execution result.
Rejecting an Action
To reject a pending action, follow the same steps but click Reject. The agent receives a "rejected" status and should handle it gracefully — for example, by informing the customer or escalating to a human operator.
Rejections are permanent. If the same action needs to be retried, the agent must submit a new request.
While an Action is Pending
When an action is waiting for approval:
- The agent receives a
pending_approvalstatus immediately - The run stays open — the agent can continue logging events
- The agent can choose to wait (poll for resolution) or move on to other tasks
- The approval appears in the dashboard for all eligible approvers
⚠Do not let approvals pile up
Best Practices
- Keep approval rules focused. Only require approval for actions that genuinely need human judgment. Over-approving creates fatigue and slows your agents down.
- Set thresholds. Instead of requiring approval for all refunds, require it only for refunds above a certain amount.
- Review regularly. As you build confidence in your agents and policies, gradually reduce the number of actions that need manual review.
- Monitor queue depth. If the approval queue is consistently long, either add more approvers or adjust your policies to auto-allow more actions.
- Use the run timeline. Before approving, always review the full run timeline to understand the context that led to the action request.
Next
Connectors
Integrate external services for governed action execution