This prompt resolves the question: 'Who can approve this now?' when the designated primary approver is unavailable. It is designed for the approval routing layer of a human-in-the-loop workflow, sitting between the moment an absence is detected and the moment an approval request is dispatched. The ideal user is a platform engineer or product developer building an enterprise approval system who needs to encode organizational delegation policy into an AI workflow without hardcoding every possible delegation path in application code. The prompt requires three structured inputs: an organizational delegation policy that defines who can delegate to whom and any authority limits, an absence record that specifies who is unavailable and for how long, and a pending action that describes what needs approval, its risk level, and the original target approver.
Prompt
Approval Delegation Chain Resolution Prompt

When to Use This Prompt
Defines the job-to-be-done, required context, and boundaries for the Approval Delegation Chain Resolution Prompt.
This prompt is not a general-purpose approval router. Do not use it to determine the initial approval path for a new action—that responsibility belongs to sibling prompts like Role-Based Approval Routing or Conditional Approval Path. Do not use it to perform risk scoring on the action itself, to execute the final approval decision, or to handle multi-stakeholder consensus. The prompt assumes the primary approver has already been identified and is now unavailable. It walks the delegation chain step by step, checking for circular references, authority limit violations, and expired delegations. If the chain breaks—because no valid delegate exists, a cycle is detected, or the delegate lacks sufficient authority—the prompt should return a structured escalation signal rather than guessing or silently routing to an unauthorized individual.
Before deploying this prompt, ensure your delegation policy is available in a machine-readable format. The prompt works best when the policy is explicit about delegation scope (e.g., 'Director can delegate to any Manager in their reporting line for amounts up to $50,000') rather than relying on implicit organizational hierarchy. Test the prompt against known failure modes: circular delegations where Alice delegates to Bob who delegates back to Alice, authority limit violations where a delegate lacks the spending or access level required by the action, and missing delegation records where the policy is silent about a particular role's delegation rights. In high-risk domains such as financial approvals or healthcare signoffs, always log the full delegation chain with timestamps and require a human to confirm the resolved approver before the approval request is sent. This prompt reduces operational latency in approval workflows, but it does not replace the need for auditable delegation records and periodic policy reviews.
Use Case Fit
Where the Approval Delegation Chain Resolution Prompt works and where it introduces unacceptable risk. Use these cards to decide if this prompt fits your workflow before wiring it into production.
Good Fit: Structured Absence Policies
Use when: your organization has documented absence rules, delegation policies, and authority limits that can be provided as input context. The prompt excels at traversing explicit delegation graphs. Avoid when: delegation rules are unwritten, ad-hoc, or based on real-time manager discretion that cannot be encoded in text.
Bad Fit: Real-Time Availability Queries
Avoid when: the system must check live calendar status, OOO messages, or presence indicators to determine availability. This prompt operates on declared absence rules, not real-time state. Guardrail: pair with a pre-processing tool that queries calendar APIs and feeds structured availability data into the prompt as input context.
Required Input: Organizational Graph and Policy
What to watch: without a clear delegation policy document, role hierarchy, and authority limits, the model will hallucinate plausible but incorrect delegation chains. Guardrail: always provide a structured org chart, a written delegation policy, and explicit authority thresholds as part of the prompt context. Never rely on the model's general knowledge of your organization.
Operational Risk: Circular Delegation Loops
Risk: if Person A delegates to Person B who delegates back to Person A, the model may not detect the cycle and return an infinite or nonsensical chain. Guardrail: implement a post-processing validator that checks the resolved chain for duplicate approvers. If a cycle is detected, escalate to a human administrator with the loop path documented.
Operational Risk: Authority Limit Violations
Risk: a delegate may be assigned an approval that exceeds their documented authority limit, creating a compliance violation. Guardrail: include explicit authority thresholds in the input context and add a validation step that compares the delegated approver's limit against the action's risk tier or dollar amount before returning the result.
When to Escalate Instead of Resolve
What to watch: if the delegation chain exceeds a maximum depth, reaches an unanticipated gap, or lands on a role marked as 'unavailable with no delegate,' the prompt should stop rather than guess. Guardrail: define a maximum chain depth and a terminal escalation target. If the prompt cannot resolve within those bounds, return a structured escalation request to a designated fallback authority.
Copy-Ready Prompt Template
A single-turn prompt that resolves an approval delegation chain when a primary approver is unavailable, producing the delegated approver, the full delegation path, and any restrictions.
This prompt template is designed for a single-turn resolution call within an enterprise approval workflow. It accepts a primary approver, their unavailability reason, and a set of organizational delegation policies. The model is instructed to walk the delegation chain, apply authority limits, and detect circular delegations or authority violations. The output is a structured JSON object containing the final delegated approver, the complete delegation path, and any restrictions or warnings. Use this prompt when a workflow engine encounters an unavailable approver and must programmatically determine the next valid authority without hardcoding every possible delegation path in application code.
textYou are an approval delegation resolver for an enterprise workflow system. Your task is to determine the correct delegated approver when a primary approver is unavailable. ## INPUT - Primary Approver: [PRIMARY_APPROVER_ID] - Unavailability Reason: [UNAVAILABILITY_REASON] - Action Context: [ACTION_CONTEXT] - Delegation Policy: [DELEGATION_POLICY_JSON] - Organizational Hierarchy: [ORG_HIERARCHY_JSON] ## DELEGATION POLICY SCHEMA The delegation policy is a JSON array of rules. Each rule has: - `role` (string): The role this rule applies to. - `delegates_to` (array of strings): Ordered list of roles or specific user IDs to try. - `authority_limits` (object, optional): Constraints like `max_amount`, `allowed_action_types`, `requires_quorum`. - `absence_rules` (object): Maps absence reasons (e.g., "vacation", "sick", "conflict_of_interest") to specific delegation overrides. ## TASK 1. Identify the primary approver's role from the organizational hierarchy. 2. Find the matching delegation rule in the policy. 3. Apply any absence-specific overrides. 4. Walk the `delegates_to` list in order. For each candidate: - Verify the candidate exists in the organizational hierarchy. - Check that the candidate is not the original requester (if [REQUESTER_ID] is provided). - Check that the candidate does not create a circular delegation (i.e., they have not already appeared in the chain). - Check that the candidate's own authority limits (from the policy) allow them to approve this action. - If the candidate is unavailable, use their own delegation rule to continue the chain. 5. Stop at the first valid, available candidate. 6. If no valid candidate is found, return a failure with the reason. ## OUTPUT SCHEMA Return ONLY a valid JSON object with this exact structure: { "delegated_approver": { "user_id": "string", "role": "string", "delegation_path": ["string"], "restrictions": ["string"] }, "resolution_status": "resolved" | "failed", "failure_reason": "string | null", "warnings": ["string"] } ## CONSTRAINTS - Do not select an approver who is the original requester. - Do not create a delegation chain longer than [MAX_CHAIN_LENGTH] steps. - If an authority limit is violated, skip that candidate and try the next. - If a circular delegation is detected, abort the chain and return a failure. - If the action type is not covered by any candidate's authority, return a failure.
To adapt this prompt, replace the square-bracket placeholders with live data from your workflow engine. [PRIMARY_APPROVER_ID] is the user ID of the unavailable approver. [UNAVAILABILITY_REASON] should match the keys in your policy's absence_rules (e.g., "vacation"). [ACTION_CONTEXT] is a JSON object describing the action, including type, amount, and requester_id. [DELEGATION_POLICY_JSON] and [ORG_HIERARCHY_JSON] are the serialized policy and hierarchy data. Before deploying, validate the model's output against the expected JSON schema. If the resolution_status is failed, your application should escalate to a human administrator rather than retrying the prompt. For high-risk actions, always log the full delegation path and warnings for auditability.
Prompt Variables
Every placeholder this prompt expects, why it matters, and how to validate it before sending. Use this table to ensure your application layer provides complete, well-formed inputs before calling the model.
| Placeholder | Purpose | Example | Validation Notes |
|---|---|---|---|
[APPROVAL_REQUEST] | The action, resource, or decision requiring approval, including its scope and impact | Delete production database 'orders-db-prod-us-east-1' as part of decommissioning project ORION | Must be non-empty string. Validate length > 20 chars. Reject if contains only role names without action description. |
[ORGANIZATIONAL_POLICY] | The delegation rules, absence policies, authority limits, and chain-of-command definitions that govern who can approve and who can delegate to whom | Section 4.2: VP-level approvers may delegate to Director-level for amounts under $50K. Section 4.3: Delegation expires after 72 hours. Section 4.4: No circular delegation permitted. | Must contain explicit delegation rules. Validate presence of authority limit language. Reject if policy text is under 100 chars or contains only role names without rules. |
[PRIMARY_APPROVER] | The designated approver who would normally handle this request, including their role, authority level, and current availability status | Jane Chen, VP of Infrastructure, authority level: VP, status: OOO until 2025-03-28, no email access | Must include role title, authority level, and availability status. Validate that status field is one of: available, ooo, leave, unknown. Reject if role title is missing. |
[DELEGATION_CHAIN] | The ordered list of potential delegates with their roles, authority limits, and availability, forming the chain to traverse when the primary is unavailable |
| Must be an ordered array of at least 1 entry. Each entry requires role, authority_level, available (boolean), and limit fields. Validate no duplicate names. Reject if chain is empty when primary is unavailable. |
[ACTION_CONTEXT] | The business context, risk tier, dollar amount, data sensitivity, and any regulatory flags that affect delegation eligibility | Risk tier: HIGH, dollar amount: N/A (infrastructure change), data sensitivity: PII exposure possible, regulatory flags: SOC2, GDPR | Must include risk_tier (LOW/MEDIUM/HIGH/CRITICAL) and at least one context field. Validate risk_tier against allowed enum. Reject if context is empty when action is above LOW risk. |
[CONSTRAINTS] | Hard limits on delegation: maximum delegation depth, excluded roles, required quorum, time-bounded windows, and any actions that cannot be delegated | Max delegation depth: 2 hops. Cannot delegate to contractors. Actions marked CRITICAL risk cannot be delegated. Delegation window max 48 hours. | Must be a structured object with depth_limit (integer), excluded_roles (array), non_delegatable_actions (array). Validate depth_limit >= 1. Reject if non_delegatable_actions is empty for CRITICAL risk tier. |
[OUTPUT_SCHEMA] | The exact JSON schema the model must produce, defining the delegated approver, delegation path, restrictions, and any blocking conditions | See output-contract table for full schema. Required fields: delegated_approver, delegation_path, restrictions, blocking_conditions, resolution_status. | Must be a valid JSON Schema object. Validate that required fields include delegated_approver, delegation_path, and resolution_status. Reject if schema allows circular path references without detection flag. |
Implementation Harness Notes
How to wire the Approval Delegation Chain Resolution Prompt into a production application with pre-processing, validation, retry logic, and audit logging.
This prompt is not a standalone chatbot interaction; it is a deterministic resolution function wrapped in an LLM call. The application layer is responsible for providing the canonical source of truth for organizational policy, absence records, and authority limits. The model resolves the delegation chain from that structured input, but it must never be the system of record. Before calling the model, assemble a pre-processed context object containing the primary approver's status, the full delegation policy, any temporary overrides, and the action's risk tier. This ensures the model operates on a complete, consistent snapshot rather than relying on stale or hallucinated organizational knowledge.
Post-processing must validate the output against the input constraints. Implement a strict schema validator that checks: (1) the resolved approver exists in the provided directory, (2) the delegation path does not contain cycles, (3) no authority limit is exceeded by the action's risk tier or value, and (4) the chain depth does not exceed a configurable maximum (e.g., 5 hops). If validation fails, do not retry blindly. Log the failure with the input snapshot, the invalid output, and the specific validation error. For high-risk actions, route the failure to a human review queue with the full context rather than attempting automated recovery. For lower-risk actions, a single retry with an explicit error message injected into the prompt context is acceptable, but cap retries at one to avoid loops.
Model choice matters here. This is a structured reasoning task that benefits from models with strong instruction-following and JSON mode support. GPT-4o, Claude 3.5 Sonnet, or Gemini 1.5 Pro are appropriate defaults. Avoid smaller or older models that may hallucinate delegation paths or ignore authority limit constraints. Set temperature=0 to maximize determinism. Enable structured output mode if the model provider supports it, binding the response to a typed schema rather than relying on prompt-level format instructions alone. Log every resolution attempt—including the model, input snapshot, output, validation result, and latency—to an append-only audit table. This audit trail is essential for compliance reviews and debugging incorrect delegations.
The application should maintain a short-lived cache of resolved delegation chains keyed by a hash of the input parameters (approver ID, policy version, action context). Cache TTL should align with the volatility of your absence and policy data—typically 5 to 15 minutes. Invalidate the cache immediately when an absence record is updated, a delegation policy changes, or an override is applied. This reduces latency and cost for repeated resolution requests within the same operational window while preventing stale delegation decisions from persisting.
Finally, implement a circuit breaker. If the model returns invalid outputs for more than a configurable threshold of requests within a time window (e.g., 5 failures in 60 seconds), stop calling the model and escalate all pending resolutions to the designated fallback approver or human review queue. This prevents a cascading failure where a model degradation or upstream data issue blocks all approval workflows. The circuit breaker should auto-reset after a cool-down period, but require a human to acknowledge the incident before normal resolution resumes for high-risk action categories.
Expected Output Contract
Schema and validation rules for the delegation chain resolution output. Use this contract to validate model responses before passing the delegated approver downstream.
| Field or Element | Type or Format | Required | Validation Rule |
|---|---|---|---|
delegation_chain | array of objects | Array must contain at least 1 entry. Each entry must have role, name, and delegation_reason fields. | |
delegation_chain[].role | string | Must match a role in the provided [ROLE_DIRECTORY]. No fabricated roles allowed. | |
delegation_chain[].name | string | Must match a name in the provided [ROLE_DIRECTORY] for the given role. Null not allowed. | |
delegation_chain[].delegation_reason | string | Must be one of: 'primary_unavailable', 'authority_limit_exceeded', 'policy_escalation', 'timeout', 'conflict_of_interest'. Free-text not allowed. | |
final_approver | object | Must contain role, name, and authority_limits fields. Must match the last entry in delegation_chain. | |
final_approver.authority_limits | object | Must include max_approval_amount, approved_action_types, and effective_window. All fields required. | |
circular_delegation_detected | boolean | Set to true if any role appears more than once in the chain. If true, final_approver must be null and escalation_required must be true. | |
escalation_required | boolean | Set to true if circular delegation detected, authority limits exceeded, or chain depth exceeds [MAX_DEPTH]. Otherwise false. |
Common Failure Modes
What breaks first when resolving approval delegation chains in production and how to guard against each failure mode.
Circular Delegation Loops
What to watch: Approver A delegates to B, B delegates to C, and C delegates back to A, creating an infinite loop that exhausts retries or silently hangs the workflow. This is common when delegation rules are defined independently per role without global cycle detection. Guardrail: Implement a visited-set tracker in the resolution logic. Before accepting a delegation target, check whether that identity already appears in the current chain. If a cycle is detected, break the loop and escalate to a designated fallback approver or admin queue with the full chain trace.
Authority Limit Violations
What to watch: A delegate accepts an approval for an action that exceeds their own authority limits—such as a manager approving a budget item above their signing threshold because the original approver had higher authority. The delegation inherits the request but not the authority ceiling. Guardrail: Attach the original action's authority requirements (dollar amount, risk tier, scope) to the delegation payload. Before resolving to a delegate, validate that the delegate's authority profile satisfies every requirement. If not, escalate upward rather than accepting an under-authorized delegate.
Stale Absence Rules
What to watch: Delegation rules reference out-of-office schedules, on-call rotations, or team assignments that are outdated. The prompt resolves to someone who left the team, is no longer on call, or whose temporary delegation period has expired. Guardrail: Require a freshness timestamp on all absence and delegation data sources. The prompt should reject delegation rules older than a configurable threshold and request updated availability data. Log staleness warnings so operations teams can audit data quality separately from prompt behavior.
Ambiguous Delegation Targets
What to watch: Multiple delegation rules match simultaneously—such as a role-based rule pointing to "manager" and a named rule pointing to a specific individual—and the prompt picks one arbitrarily or returns both without disambiguation. Guardrail: Define a deterministic tie-breaking order in the prompt instructions (e.g., named delegation overrides role-based, most specific scope wins, explicit absence rule beats default fallback). Include the tie-breaking rationale in the output so reviewers can audit the resolution path.
Missing Fallback When Entire Chain Is Unavailable
What to watch: Every approver in the chain is absent or has delegated, and the final delegate is also unavailable. The prompt returns an empty result or a generic error that provides no actionable path for the blocked workflow. Guardrail: Always include an ultimate fallback rule in the prompt—such as a designated admin role, an escalation queue, or a "break-glass" approver. The output must distinguish between "delegation resolved to a person" and
Delegation Depth Exhaustion
What to watch: The chain of delegations grows too deep (A → B → C → D → E) and either exceeds a hard recursion limit or produces a resolution so far removed from the original approver that accountability is lost. Guardrail: Set a maximum delegation depth in the prompt (e.g., 3 hops). When the limit is reached, stop resolving and escalate with the full chain trace. Include the depth limit in the output so downstream systems can distinguish between a valid resolution and a depth-exhausted escalation.
Evaluation Rubric
Run these checks against a golden dataset of known delegation scenarios to validate output quality before shipping. Each criterion targets a specific failure mode common in delegation chain resolution.
| Criterion | Pass Standard | Failure Signal | Test Method |
|---|---|---|---|
Delegation Path Completeness | Output includes every hop from [PRIMARY_APPROVER] through each delegate to the final [RESOLVED_APPROVER], with role and timestamp at each step | Missing intermediate delegate; path jumps from primary to final without showing the chain | Compare output path length against expected path from golden dataset; flag if hop count differs |
Circular Delegation Detection | Prompt refuses to resolve and returns a circular delegation error when any delegate in the chain points back to a prior approver | Output returns a valid approver despite a loop in the delegation graph | Inject a golden case where [DELEGATE_B] delegates back to [DELEGATE_A]; assert error response and no resolved approver |
Authority Limit Enforcement | Delegation stops at the first approver whose [AUTHORITY_LIMIT] is sufficient for the [ACTION_AMOUNT] or [RISK_TIER]; no further delegation occurs | Output delegates past an approver with sufficient authority to a higher-level approver unnecessarily | Test with [ACTION_AMOUNT] = 5000 and [DELEGATE_C] with [AUTHORITY_LIMIT] = 10000; assert [RESOLVED_APPROVER] = [DELEGATE_C] |
Absence Rule Precedence | Delegation follows the correct [ABSENCE_RULE] for the primary approver's unavailability reason (vacation, sick, timeout, no-delegate) | Output applies default delegation when a specific absence rule should have overridden it | Test each [ABSENCE_RULE] variant; assert the first delegate matches the rule's target, not the default chain |
Restriction Propagation | All restrictions from [RESTRICTIONS] in the input appear in the output's [DELEGATION_RESTRICTIONS] field, including time bounds and scope limits | Output omits a restriction present in the input, such as a time-bound expiry or scope limitation | Parse output [DELEGATION_RESTRICTIONS] array; assert set equality with input [RESTRICTIONS] |
Timeout Escalation Handling | When [TIMEOUT_HOURS] is specified and no delegate responds within that window, output includes an escalation path to the next valid approver | Output returns only the timed-out delegate without indicating escalation or fallback | Simulate a timeout scenario; assert [ESCALATION_TRIGGERED] = true and [ESCALATION_TARGET] is populated |
No-Delegate Terminal State | When [ABSENCE_RULE] = 'no-delegate' or the chain exhausts all valid delegates, output returns [RESOLVED_APPROVER] = null and [RESOLUTION_STATUS] = 'unresolved' | Output fabricates an approver or returns a non-existent role when no valid delegate exists | Test with a chain where every delegate is unavailable; assert null resolved approver and unresolved status |
Schema Compliance | Output matches the [OUTPUT_SCHEMA] exactly: all required fields present, no extra fields, correct types for [DELEGATION_PATH], [RESOLVED_APPROVER], [RESTRICTIONS], and [RESOLUTION_STATUS] | Missing required field; field type mismatch; extra hallucinated fields not in schema | Validate output against JSON Schema; assert no validation errors |
Enabling Efficiency, Speed & Accuracy
Intelligent Analysis, Decision & Execution
We build AI systems for teams that need search across company data, workflow automation across tools, or AI features inside products and internal software.
Talk to Us
Search across company data
Give teams answers from docs, tickets, runbooks, and product data with sources and permissions.
Useful when people spend too long searching or get different answers from different systems.

Automate internal workflows
Use AI to route work, draft outputs, trigger actions, and keep approvals and logs in place.
Useful when repetitive work moves across multiple tools and teams.

Add AI to products and internal tools
Build assistants, guided actions, or decision support into the software your team or customers already use.
Useful when AI needs to be part of the product, not a separate tool.
Adapt This Prompt
How to adapt
Use the base prompt with a simplified delegation policy and a single-level chain. Replace [DELEGATION_POLICY] with a short text block listing who delegates to whom. Remove authority limit checks and circular delegation detection. Accept plain-text output instead of strict JSON.
Watch for
- Infinite loops if the model follows a circular delegation without detection logic
- Missing authority limit enforcement, which can route high-risk actions to under-authorized delegates
- Format drift when the model returns prose instead of structured delegation paths

About the author
Prasad Kumkar
CEO & MD, Inference Systems
Prasad Kumkar is the CEO & MD of Inference Systems and writes about AI systems architecture, LLM infrastructure, model serving, evaluation, and production deployment. Over 5+ years, he has worked across computer vision models, L5 autonomous vehicle systems, and LLM research, with a focus on taking complex AI ideas into real-world engineering systems.
His work and writing cover AI systems, large language models, AI agents, multimodal systems, autonomous systems, inference optimization, RAG, evaluation, and production AI engineering.
Partnered with leading AI, data, and software stack.
How We Work
Custom AI workflows for your Business
One-fit-all AI don't work for modern businesses. At Inferensys, we aim to understand your business & custom requirements; which we use to define most efficient agentic workflows, the data, and the tools for your business.
01
Review the use case
We understand the task, the users, and where AI can actually help.
Read more02
Pick the right approach
We define what needs search, automation, or product integration.
Read more03
Build the first useful version
We implement the part that proves the value first.
Read more04
Improve from there
We add the checks and visibility needed to keep it useful.
Read moreThe first call is a practical review of your use case and the right next step.
Talk to Us