Customer Support

Policy Exception Approval Automation: A Controlled Path Outside the Rule

For support leaders who need unusual customer requests decided quickly without turning one compassionate exception into an undocumented policy change.

Uli PrantzBuilds and operates all-agents
Published
Key takeaways

Key takeaways

  • An exception workflow starts only after the normal policy outcome is known; otherwise the approver is being asked to rediscover the rule instead of judge the departure.
  • Build a decision packet with the request, policy clause, proposed exception, customer impact, precedent and authority limit before notifying an approver.
  • The model may summarize evidence and retrieve similar cases, but a named person must decide whether to depart from policy and record a reason.
  • Approvals need scope and expiry. An approval for one customer, amount and deadline must not become permission for a later case.
  • Measure overturned decisions, expired approvals and repeat exception reasons; recurring exceptions are evidence that the policy or product may need repair.
Policy exception approval automation should prepare and control a decision, not make it. The workflow first proves what the normal rule would do, assembles the facts and proposed departure, checks that the requested approver has authority for this exact case, then pauses. A named person approves, rejects, requests evidence or redirects the case; only an unexpired approval with matching scope can resume execution.

What this workflow decides — and what it must leave alone

An exception is a deliberate departure from a known rule for one bounded case. If the applicable policy, customer identity or requested outcome is still unclear, the case is not ready for exception review. It belongs in clarification or ordinary triage.

That boundary prevents two common failures: asking a senior person to reconstruct the whole ticket, and treating approval as a blank authorization. Atlassian's current approval model likewise places a designated decision inside a workflow status, then moves the request according to approve or decline. The useful abstraction is the durable state transition, not a button in a particular product.

The minimum process contract for a support policy exception.
FieldRequired valueWhy it exists
TriggerNormal policy outcome is known and an agent requests a departureStops ordinary handling from entering the approval queue
InputsCustomer and ticket IDs, policy/version/clause, evidence links, proposed exception, impact and deadlineLets the reviewer verify facts without searching
AuthorityApprover identity, allowed exception types, threshold and delegation statePrevents title-based or guessed authorization
OutputsApprove, reject, request evidence or redirect — each with reason and scopeMakes every terminal path explicit
FinishDecision recorded; any approved action executed once and reconciledSeparates a decision from its real-world effect

Build the decision packet before paging an approver

  1. 01Resolve the governing ruleCode
    Retrieve the exact policy version and clause effective for the case. Calculate the ordinary outcome with deterministic rules and store the inputs used.
  2. 02Validate identity and evidenceCode
    Confirm the ticket belongs to the customer record, links resolve, required fields exist and sensitive evidence uses approved storage. Missing evidence returns to the requestor.
  3. 03Draft a bounded exception packetAI judgment
    Summarize the request, customer impact and precedent only from cited records. List conflicts and unknowns. The draft may not select an approver or recommend an outcome.
  4. 04Check authority and conflictsCode
    Match exception type and magnitude to a maintained authority table. Route self-approval, expired delegation or an out-of-range request to the escalation owner.
  5. 05Make the accountable decisionHuman approval
    The approver checks the evidence and chooses an explicit outcome with a reason, expiry and exact scope. Requesting more evidence returns to preparation without destroying the packet.
  6. 06Revalidate, execute and reconcileCode
    Before acting, confirm case, amount or remedy, policy version and deadline still match the approval. Use a business idempotency key, verify the destination state and append the effect to the decision record.

The model is useful in the third step because ticket histories are messy. It is deliberately absent from the authority and execution checks. A fluent summary can reduce reading time; it cannot create permission.

Use a decision key such as exception:ticket-1842:proposal-03. A revised amount or remedy creates a new proposal version and needs a new decision. Replaying the same approved version becomes a no-op after the destination confirms the effect.

Exception paths need owners, clocks, and safe terminal states

Failure handling for the approval process itself.
ConditionSafe behaviorOwner
Policy changed while pendingInvalidate the packet, recalculate the normal outcome and request a fresh decisionPolicy owner
Approver does not respondExpire at the stated deadline; escalate or return to the agent — never auto-approveQueue manager
Evidence conflictsBlock execution and show the conflicting source fields side by sideCase owner
Approved action failsKeep decision approved but effect incomplete; reconcile before a bounded retryExecution owner
Same exception repeatsTag the policy clause and send the trend to policy review without changing live rulesPolicy owner

Avoid a generic “manual review” queue. Every exception state needs a named role, a service clock and a next state. Otherwise automation merely hides the wait behind a new label.

Worked example: a time-limited service exception

Simulated case — no customer dataSimulated example data
Ticket CS-1842 asks for a seven-day extension to a standard migration-support window after a documented outage. The policy engine retrieves version 4.2, clause 6, and calculates “window expired.” The packet links the outage record, contract tier, prior communications and a proposed seven-day extension with no payment or access change. The authority table routes it to the regional support manager. She approves that remedy for this account until August 10 and records “provider outage overlapped final migration week.” Execution adds the dated entitlement once, verifies it, and posts a customer-safe note for the agent to send. A second run sees the same effect key and does nothing.

The sample demonstrates the three differentiators that matter: the normal result remains visible, the approval is narrower than the policy, and execution proves the effect. It does not imply that all-agents or any named support product currently connects to a contract or entitlement system.

Measure decision health, not approval speed alone

  • Packet return rate: share sent back for missing or conflicting evidence, by request source.
  • Decision time: median and tail time from complete packet to decision, excluding evidence waits.
  • Expiry and reassignment: approvals that elapsed or changed owner before a decision.
  • Execution reconciliation: approved effects confirmed, failed, ambiguous or compensated.
  • Repeat reason rate: exceptions grouped by policy clause and reason, reviewed for a policy or product fix.

Retain the proposal version, source references, policy version, authority snapshot, decision, reason, timestamps and resulting effects. NIST's AI risk framework emphasizes governance and measurement in the actual context of use; a global “approval accuracy” score cannot show whether this control worked.

Use the editable artifacts below to adapt the contract. For the durable runtime pattern behind approve, reject, expire and resume, continue to AI approval workflow patterns.

SOP

Policy exception approval SOP

An editable operating procedure for intake, evidence completeness, authority, expiry, execution and retrospective review.

Preview the file
# Policy exception approval SOP

Version: 1.0

Owner: Support policy owner

Review cadence: Quarterly and after a material policy change

Purpose: Decide one bounded departure from a known support policy without changing the policy or granting reusable authority.

## Scope

Use only when the customer, applicable policy version, normal outcome, proposed exception and requested deadline are known. Do not use for routine policy application, emergency/security incidents, or decisions that require finance, legal, employment, safety or regulatory review outside this procedure.

## Trigger and inputs

Trigger: a support agent records that the normal policy outcome is insufficient and requests one exception.

Required inputs:

- ticket and customer identifiers;
- policy name, version, effective date and clause;
- deterministic normal outcome and its inputs;
- requested exception, scope, reason, impact and expiry;
- source-linked evidence and conflicting facts;
- authority category and threshold;
- execution destination and business idempotency key.

## Procedure

1. Confirm identity, entitlement and the governing policy version.
2. Calculate and retain the ordinary policy outcome.
3. Validate evidence links, required fields and sensitive-data handling.
4. Prepare a decision packet. Summaries must cite source records and preserve unknowns.
5. Match the exception type and magnitude to the explicit authority table.
6. Reject self-approval, expired delegation, conflicts of interest and out-of-range authority.
7. Notify the named approver and start the decision clock.
8. Record approve, reject, request-evidence or redirect with reason, scope and expiry.
9. Before execution, revalidate case, proposal version, policy version, authority and expiry.
10. Execute once using the business key; reconcile the destination state.
11. Append the verified effect to the decision record and notify the case owner.

## Exceptions and escalation

- Missing or conflicting evidence: return to the requestor with a field-level list.
- Policy changed while pending: invalidate and rebuild the packet.
- No response by expiry: fail closed; escalate or return to the queue owner.
- Ambiguous execution: stop retries and reconcile the destination.
- Repeated reason: tag for policy review; do not alter the live policy automatically.

## Output and success condition

The decision record contains the proposal and policy versions, evidence manifest, authority snapshot, approver, outcome, reason, timestamps, expiry and verified effect. Success means one valid decision led to zero or one matching effect.

## Measures

Packet return rate, complete-packet decision time, expiry rate, redirect rate, effect-reconciliation status, overturn rate and repeated reasons by policy clause.

## Revision log

- 2026-08-03: Initial public template.
Workflow blueprint

Policy exception approval workflow blueprint

A state-and-data contract with idempotency, decision branches, authorization checks and acceptance tests.

Preview the file
# Policy exception approval workflow blueprint

Version: 1.0
Canonical job: `/solutions/customer-support/policy-exception-approval`

## States

`requested -> preparing -> awaiting_approval -> approved|rejected|needs_evidence|redirected|expired -> executing -> reconciled|execution_exception`

Terminal states: `rejected`, `redirected`, `expired`, `reconciled`. `needs_evidence` returns to `preparing` with a new proposal version.

## Data contract

```yaml
case_id: string
proposal_version: integer
customer_id: string
policy: {id: string, version: string, clause: string, normal_outcome: string}
request: {exception_type: string, scope: object, reason: string, expires_at: datetime}
evidence: [{source_id: string, url: string, observed_at: datetime, hash: string}]
authority: {approver_id: string, rule_id: string, limit: object, checked_at: datetime}
decision: {outcome: enum, reason: string, decided_by: string, decided_at: datetime} | null
effect: {idempotency_key: string, destination_ref: string, status: enum} | null
```

## Steps and actors

1. **Trigger:** receive exception request; key `exception:{case_id}:v{proposal_version}`.
2. **Code:** resolve policy and calculate normal outcome.
3. **Code:** validate evidence, identity and schema.
4. **AI (bounded):** produce source-cited summary; no recommendation or authority selection.
5. **Code:** evaluate authority rules and conflicts.
6. **Human:** approve, reject, request evidence or redirect with reason and expiry.
7. **Code:** revalidate decision scope and current preconditions.
8. **Code:** execute with idempotency key and reconcile destination.
9. **Human:** own any ambiguous, harmful or consequential execution exception.

## Retry, permissions, and rollback

- Retry read-only retrieval within a capped exponential-backoff budget.
- Never retry an ambiguous side effect before destination reconciliation.
- The summarizer has read-only access to the evidence manifest.
- The approval service can write decisions but cannot execute effects.
- The executor receives only the approved, unexpired scope.
- Where rollback is not complete, define a named compensating action and human owner.

## Acceptance tests

1. Missing policy clause cannot enter `awaiting_approval`.
2. Out-of-range authority routes to `redirected`.
3. Expired approval cannot execute.
4. A changed proposal requires a new decision.
5. Two delivery attempts create one destination effect.
6. Timeout after success reconciles rather than repeats.
7. Model summary contains no fact without an evidence reference.
8. Every terminal state has an owner, timestamp and reason.

Limitations and when not to use this

  • This is an operating design, not authorization to grant refunds, credits, contract changes, regulated accommodations or access changes. Use qualified policy owners and any required legal, finance or security review.
  • Do not infer approval authority from job titles, historic approvals or a model. Maintain an explicit authority source and fail closed when it is missing.
  • A recurring exception may indicate a bad policy or product defect. Automating repeated approvals without reviewing the rule can institutionalize the problem.

Sources

  1. What are approvals?Atlassian Support Accessed 3 August 2026
  2. Artificial Intelligence Risk Management Framework 1.0NIST Accessed 3 August 2026
  3. AI approval workflow patternsall-agents Accessed 3 August 2026

Specify the approval gate

Describe one real exception and export the trigger, reviewer, evidence, outcomes and timeout behavior.

Specify the approval gate
About the author

Uli Prantz

Builds and operates all-agents

Uli Prantz builds all-agents, the process-automation platform this site documents. He writes about the operational side of automating recurring business work: where deterministic code beats model judgment, where it does not, and where a human still has to approve.

Bring one process. We will scope it in 30 minutes.

You leave the call knowing whether it is a fit, what can become code and what still needs a person.

Book a discovery call