Design an approval inbox with explicit ownership
In this article (4 sections)
Adding a human approval node does not make a workflow safe if requests disappear into an unowned queue. Approval is an operational product: the reviewer needs context, authority, time and a clear consequence for no response.
Build the decision artifact
Store the proposed action, evidence, risk, requester, affected tenant, owner, deadline and immutable correlation id. Separate approve, reject, request changes and reassign. On timeout, stop or escalate according to policy; never interpret silence as consent for a sensitive action. Make decisions idempotent and auditable.
The enterprise delivery lab makes this reasoning executable with synthetic data:
from enterprise_cases import approval_inbox_case
result = approval_inbox_case()
assert result["actionable"] == ["p1", "p2"]
assert result["overdue"] == ["p2"]
assert result["unowned"] == []
assert result["timeout_action"] == "escalate without executing"The fixture exposes two actionable requests and one overdue item. Nothing is unowned, and timeout escalates without executing. It excludes the already approved item from the queue, which prevents repeated decisions while preserving history.
Test the failure path
Reviewers can become rubber stamps when context is vague or volume is excessive. Track decision latency, reassignment, reversal and sampled correctness, while avoiding incentives to approve quickly. Route by real authority, not merely by who is online.
Save evidence that another reviewer can inspect:
- approval object schema
- ownership and escalation rules
- timeout and duplicate-decision tests
- sample audit record without sensitive payloads
This exercise aligns with the enterprise delivery, secure integration, operations and leadership work in the FDE for Professionals course. The course link describes the pathway; this local draft and its synthetic verifier do not claim that a client deployment, security approval or production result occurred.
Practice task
Design an inbox item for one irreversible tool call. Give a reviewer enough evidence to reject it without opening another system, and define the timeout behavior.
Continue learning
This article is part of the Enterprise AI delivery and architecture sequence. Use the neighbouring tasks when you need the prerequisite or the next application.
- Review the prerequisite or neighbouring task in Create an environment and identity separation plan.
- Continue with Implement a document-deletion propagation contract.
Reference: OWASP: Excessive Agency.
Pankit Kumar has 10 years in Data Science & AI, building and shipping production systems in regulated pharma and clinical environments. He is a freelance trainer at Boston Institute of Analytics, AnalytixLabs and Scaler, and has taught this material to thousands of working professionals.
This article is part of our FDE for Professionals programme — 16 weeks (proposed). An accelerated advanced pathway for IT professionals ready to own enterprise AI delivery.
Explore FDE for Professionals