Skip to main content
The Approvals page (/approvals) is a centralized queue for all pending human decisions. When a governance policy triggers an approval gate during workflow execution, the workflow pauses and an approval card appears here.

Pending Queue

All approvals awaiting resolution, sorted by urgency. Each card shows:
FieldDescription
WorkflowWhich workflow the approval belongs to
StepThe specific step that triggered the gate
Policy reasonWhy the approval was triggered (budget threshold, HITL gate, policy rule)
Requesting agentThe agent that was executing when the gate fired
Time since creationHow long the approval has been waiting
When nothing is pending, the page shows an empty state. When items are pending, a pulsing badge in the global header shows the count.

Urgency Indicators

Approvals age. The longer they sit, the more urgent they become. Escalation tier badges provide visual triage priority:
Tier 1 — Standard

New approval, under 1 hour. No escalation badge.

Tier 2 — Elevated

1h+ unresolved. Amber badge, Slack reminder fires.

Tier 3 — Critical

24h+ unresolved. Red pulsing badge, urgent escalation.

Resolution

Resolve an approval by clicking Approve or Reject:
  • Approve — optionally add scope constraints. The workflow step resumes immediately.
  • Reject — requires a reason (stored in the audit trail). The step fails, and what happens next depends on the step’s failure policy in the .lobsterX definition.
Resolution is instant — the moment you click, the workflow reacts.

In-Run Resolution

Approvals can also be resolved directly from the run detail page, in context with the full execution timeline visible. The run sidebar shows pending approval gates with Approve/Reject buttons alongside the step list and audit timeline.

Multi-Surface

The same approval appears in Burgundy, Slack (if syndicated), and the Platform API. Resolving on any surface resolves everywhere.
SurfaceMechanism
BurgundyThis page or the run detail sidebar
SlackInteractive approval message with Approve/Reject buttons
Platform APIProgrammatic resolution via the approvals endpoint
First response wins. Convex mutations are transactional — the first mutation to flip status from “pending” sets the outcome. Other surfaces update reactively to reflect the decision. How it works: See Approval Lifecycle for the full governance flow. →