Patterns
beginnerapproval Featured

Serial Approval Chain

Route a request through a sequence of approvers where each must approve before the next receives it. The simplest and most common approval pattern.

Views61
BPMN 2.0
On this page

Visual Flow

Rendering diagram…

When to Use This Pattern

Use a serial approval chain when:

  • Approvals must happen in a specific order (e.g., manager → director → VP)
  • Each approver's decision depends on the previous approver's sign-off
  • You need a clear audit trail showing the exact sequence of approvals
  • The business process has a defined hierarchy
Tip

This is the most common approval pattern. If you're unsure which pattern to use, start here.

How It Works

The request flows through approvers one at a time, top to bottom. If any approver rejects, the chain stops and the requestor is notified.

StepActorActionOn ApproveOn Reject
1RequestorSubmits request→ Step 2
2ManagerReviews & decides→ Step 3→ Notify requestor
3DirectorReviews & decides→ Step 4→ Notify requestor + manager
4FinanceFinal approval→ Complete→ Notify requestor + all approvers

Implementation Guide

Step 1: Define the Approval Hierarchy

Map out who needs to approve and in what order. Common approaches:

  • Static list — hardcode the approvers (simplest)
  • Lookup table — store approver chains in a SharePoint list or database table (flexible)
  • Org chart — dynamically resolve the chain from Active Directory or HR system (most maintainable)
Step 2: Build the Request Form

Create a form that captures all the information approvers need to make a decision. Include:

  • Request details (what, why, how much)
  • Supporting documents as attachments
  • Urgency/priority field
  • Requestor's manager (auto-populated if possible)
Step 3: Configure Each Approval Task

For each approver in the chain:

  1. Assign task to the approver
  2. Set a due date (e.g., 3 business days)
  3. Include context — show all previous approvers' decisions and comments
  4. Offer actions: Approve, Reject, Request More Info
  5. Send reminder if no response within 2 days
Step 4: Handle the Outcomes
  • All approved → Execute the action (create PO, provision access, etc.) and notify the requestor
  • Any rejection → Stop the chain, notify the requestor with the rejection reason
  • Request more info → Pause the chain, send the request back to the requestor, then resume
Step 5: Add an Audit Trail

Log every decision with:

  • Who approved/rejected
  • When
  • Comments provided
  • IP address or device (for compliance scenarios)

Products That Support This Pattern

ProductHow to Implement
Workflow CloudUse the Assign a task action in a sequence. Set waitForCompletion = true on each.
K2Use Task steps in a sequential workflow. Configure the Task form with Approve/Reject outcomes.
Automation On-PremUse Request approval actions chained in sequence with conditional branching on outcomes.

Tips & Best Practices

Important

Always include a timeout mechanism. A single unresponsive approver can stall the entire chain indefinitely. See the Escalation with SLA Timeout pattern.

  • Minimize the chain length. Each additional approver adds latency. If you have 5+ approvers, consider Parallel Approval with Threshold instead.
  • Pre-validate before submitting. Use form rules to catch errors early so approvers don't waste time rejecting incomplete requests.
  • Show running context. Each approver should see what previous approvers decided and any comments they left.
  • Use delegation. Allow approvers to delegate to a backup when they're out of office. This prevents stalls without bypassing the approval requirement.

Common Variations

  1. Skip-level approval — If the amount is below a threshold, skip the director and go straight to finance
  2. Conditional chain — Different approver chains based on request type, department, or amount
  3. Loop-back — If the requestor provides more info, restart from the approver who asked for it (not from the beginning)

Related patterns