Building an Approval Workflow: When Orders Need Manager Sign-Off

Introduction

Not every transaction should proceed automatically. High-value orders, unusual discounts, pricing exceptions, and out-of-policy requests often require manager review and approval before completion. Without a structured approval process, organizations face compliance risks, inconsistent policy application, and potential financial losses.

Traditional approval workflows in Business Central often require custom development, complex workflow configurations, or manual email-based processes that are slow, error-prone, and difficult to track.

QUALIA Rule Engine provides a better approach: rule-based approval workflows that automatically route transactions requiring approval, notify the right people, track responses, and enforce approval requirements—all without custom code.

This comprehensive guide explains how to design and implement approval workflows using business rules, covering single-level approvals, multi-tier authorization, conditional routing, approval tracking, and real-world examples across sales, purchasing, and finance.

Understanding Rule-Based Approval Workflows

What is a Rule-Based Approval Workflow?

A rule-based approval workflow uses business rules to:

  1. Identify transactions requiring approval (based on amount, type, conditions)

  2. Determine appropriate approver (based on hierarchy, specialization, workload)

  3. Notify approvers (email, system message, dashboard)

  4. Track approval status (pending, approved, rejected)

  5. Enforce approval requirements (block processing until approved)

Advantages Over Traditional Approaches

Traditional workflow:

  • ❌ Complex setup requiring technical expertise

  • ❌ Rigid, predefined paths

  • ❌ Difficult to modify once deployed

  • ❌ Limited conditional logic

  • ❌ Often asynchronous (delays)

Rule-based workflow:

  • ✅ Business user configurable

  • ✅ Flexible, condition-driven routing

  • ✅ Easy to modify as policies change

  • ✅ Rich conditional logic support

  • ✅ Real-time enforcement

Core Components of Approval Workflows

1. Threshold Rules: Define when approval is needed

2. Routing Logic: Determine who should approve

3. Notification Mechanism: Alert approvers

4. Status Tracking: Monitor approval state

5. Enforcement Rules: Ensure approval before proceeding

Approval Workflow Pattern: High-Value Orders

Let's build a comprehensive approval workflow for high-value sales orders.

Business Requirements

Policy:

  • Orders $50,000 - $100,000: Sales Manager approval required

  • Orders $100,000 - $500,000: Sales VP approval required

  • Orders over $500,000: CFO approval required

  • Orders under $50,000: No approval needed (automatic)

Workflow:

  1. Sales rep creates order

  2. If over threshold, order status set to "Pending Approval"

  3. Appropriate approver notified via email

  4. Approver reviews and updates approval field

  5. Order can only be posted if approved

Implementation Strategy

We'll use three rule sets to implement this workflow:

Rule Set 1: Approval Requirement Detection (Before Insert)

  • Detects orders requiring approval

  • Sets status to "Pending Approval"

  • Sends notification emails

Rule Set 2: Approval Enforcement (Before Posting)

  • Blocks posting of unapproved orders

  • Ensures approval was obtained

Rule Set 3: Approval Tracking (After Approval)

  • Optional: Logs approvals for audit

  • Updates related fields

Rule Set 1: Detect and Route for Approval

Configuration:

Rule Set: SALES-APPROVAL-ROUTING
Trigger Table: 36 (Sales Header)
Trigger Event: After Insert
Enable: Yes

Scenarios:
  1. [36:1] is 'Order'              // Document Type = Order
  2. [36:109]

Placeholders Used in This Rule Set Configuration:

  • [36:1] - Sales Header (Table 36): Document Type (Field 1) - Type of sales document

  • [36:109] - Sales Header (Table 36): Amount Including VAT (Field 109) - Total order amount

Rule 1: Sales Manager Approval Required

Condition: [36:109] is 50000..99999.99
// Amount between $50,000 and $99,999.99

Action 1: Assign
  Field: [36:120] (Status)
  Value: '1'                        // Pending Approval status
  Description: "Set status to Pending Approval"

Action 2: Email
  To: salesmanager@company.com
  Subject: "Sales Order Approval Required: $[36:109]"
  Body: 
    "Sales order [36:3]

Placeholders Used in This Rule:

  • [36:109] - Sales Header (Table 36): Amount Including VAT (Field 109) - Total order amount

  • [36:120] - Sales Header (Table 36): Status (Field 120) - Order status (Open, Released, Pending Approval, etc.)

  • [36:3] - Sales Header (Table 36): No. (Field 3) - Sales order number

  • [18:2] - Customer (Table 18): Name (Field 2) - Customer name

  • [18:1] - Customer (Table 18): No. (Field 1) - Customer number

  • [36:99] - Sales Header (Table 36): Order Date (Field 99) - When order was created

  • [USERID] - System placeholder: Current user ID

Rule 2: Sales VP Approval Required

Condition: [36:109] is 100000..499999.99
// Amount between $100,000 and $499,999.99

Action 1: Assign
  Field: [36:120] (Status)
  Value: '1'                        // Pending Approval
  
Action 2: Email
  To: salesvp@company.com
  Subject: "High-Value Order Approval Required: $[36:109]"
  Body:
    "HIGH-VALUE sales order [36:3]

Placeholders Used in This Rule:

  • [36:109] - Sales Header (Table 36): Amount Including VAT (Field 109) - Total order amount

  • [36:120] - Sales Header (Table 36): Status (Field 120) - Order status

  • [36:3] - Sales Header (Table 36): No. (Field 3) - Sales order number

  • [18:2] - Customer (Table 18): Name (Field 2) - Customer name

  • [18:1] - Customer (Table 18): No. (Field 1) - Customer number

  • [36:99] - Sales Header (Table 36): Order Date (Field 99) - Order creation date

  • [USERID] - System placeholder: Current user ID

Rule 3: CFO Approval Required

Condition: [36:109] is >=500000
// Amount $500,000 or more

Action 1: Assign
  Field: [36:120] (Status)
  Value: '1'                        // Pending Approval
  
Action 2: Email
  To: cfo@company.com
  CC: salesvp@company.com
  Subject: "CRITICAL: Executive Approval Required for $[36:109]

Placeholders Used in This Rule:

  • [36:109] - Sales Header (Table 36): Amount Including VAT (Field 109) - Total order amount

  • [36:120] - Sales Header (Table 36): Status (Field 120) - Order status

  • [36:3] - Sales Header (Table 36): No. (Field 3) - Sales order number

  • [18:2] - Customer (Table 18): Name (Field 2) - Customer name

  • [18:1] - Customer (Table 18): No. (Field 1) - Customer number

  • [36:99] - Sales Header (Table 36): Order Date (Field 99) - Order creation date

  • [USERID] - System placeholder: Current user ID

Rule Set 2: Enforce Approval Before Posting

Configuration:

Rule Set: SALES-APPROVAL-ENFORCEMENT
Trigger Table: 36 (Sales Header)
Trigger Event: Before Posting (if supported) or Before Modify with status check
Enable: Yes

Scenarios:
  1. [36:1] is 'Order'
  2. [36:109] is >=50000            // Orders requiring approval

Condition: [36:CustomApprovalField] is <>'Approved'
// Assuming custom approval status field exists
// Adjust based on your BC customization

Action: Error
Message: "Order [36:3] for $[36:109] requires approval before posting.

Current status: Pending Approval
Required approver: [Based on amount tier]

Note: Exact implementation depends on whether BC allows custom approval fields or if you're using standard approval workflow fields.

Rule Set 3: Approval Audit Logging (Optional)

Configuration:

Rule Set: SALES-APPROVAL-AUDIT
Trigger Table: 36 (Sales Header)
Trigger Event: After Modify
Enable: Yes

Scenarios:
  1. [36:1] is 'Order'
  2. [36:CustomApprovalField] is 'Approved'    // Just approved

Condition: [Previous approval status] was 'Pending'
// Detects transition from Pending to Approved

Action: Email
  To: auditteam@company.com
  Subject: "Order Approval Recorded: [36:3]

Multi-Tier Approval Workflow

For more complex scenarios, you might need sequential approvals (multiple people must approve).

Example: Purchase Orders

Policy:

  • All purchase orders require department manager approval

  • Purchase orders over $25,000 also require finance manager approval

  • Purchase orders over $100,000 also require CFO approval

Implementation: Tiered Approval Fields

Approach: Use multiple approval fields for each tier


Rule Set: Purchase Order Approval Routing

Rule 1: Department Manager (All Orders)

Trigger: After Insert
Condition: [38:109]

Rule 2: Finance Manager (>$25K)

Trigger: After Modify
Scenario 1: [38:CustomDeptApproval] is true
Scenario 2: [38:109] is >25000

Action: Email to Finance Manager
Message: "PO [38:3] for $[38:109]

Rule 3: CFO (>$100K)

Trigger: After Modify
Scenario 1: [38:CustomFinanceApproval] is true
Scenario 2: [38:109] is >100000

Action: Email to CFO
Message: "PO [38:3] for $[38:109]

Enforcement Rule


Conditional Approval Routing

Sometimes approval requirements depend on context beyond just amount.

Example: Customer-Specific Routing

Policy:

  • VIP customers: Orders up to $100K need manager approval

  • Standard customers: Orders over $50K need manager approval

  • New customers: All orders need manager approval

Implementation:

Rule Set: SALES-CONDITIONAL-APPROVAL
Trigger Table: 36 (Sales Header)
Trigger Event: After Insert

Linked Tables: Customer (18)

Rule 1: New Customer Approval
Condition: [18:CustomNewCustomerFlag] is true
Action: Route to sales manager (any amount)

Rule 2: Standard Customer Approval
Scenario 1: [18:CustomerType] is 'Standard'
Scenario 2: [36:109] is >50000
Action: Route to sales manager

Rule 3: VIP Customer Approval
Scenario 1: [18:CustomerType] is 'VIP'
Scenario 2: [36:109]

Example: Department-Specific Routing

Policy: Different departments have different approval chains

Rule: Sales Department Orders
Condition: [36:DepartmentCode] is 'SALES'
Action: Email to sales.manager@company.com

Rule: Service Department Orders
Condition: [36:DepartmentCode] is 'SERVICE'
Action: Email to service.manager@company.com

Rule: Enterprise Department Orders
Condition: [36:DepartmentCode]

Approval Status Tracking

Effective approval workflows require visibility into approval status.

Status Field Options

Option 1: Use BC Standard Status Field


Option 2: Custom Approval Status Field


Option 3: Approval Workflow Table


Tracking with Business Rules

Set Status to Pending:

Action: Assign
Field: [36:120] or [36:CustomApprovalStatus]

Verify Approval Before Action:

Condition: [36:CustomApprovalStatus]

Log Approval Decision:


Real-World Approval Scenarios

Scenario 1: Discount Authorization

Policy: Discounts exceeding salesperson's authorization require manager approval

Salesperson Authorization Levels:
- Junior: Up to 10% discount
- Standard: Up to 15% discount
- Senior: Up to 20% discount
- Manager: Any discount

Rule Set: SALES-DISCOUNT-APPROVAL

Rule 1: Detect Unauthorized Discount
Condition: {[36:176] / [36:109]} is >[13:CustomDiscountAuthLimit]
// Discount % > Salesperson's authorized limit

Action 1: Set status to Pending
Action 2: Email to sales manager
  "Order [36:3] has [Discount%]% discount, exceeding 
   [SalespersonName]'s limit of [AuthLimit]

Placeholders Used in This Scenario:

  • [36:176] - Sales Header (Table 36): Invoice Discount Amount (Field 176) - Total discount amount

  • [36:109] - Sales Header (Table 36): Amount Including VAT (Field 109) - Total order amount

  • [13:CustomDiscountAuthLimit] - Salesperson (Table 13): Custom field for discount authorization limit

  • [36:3] - Sales Header (Table 36): No. (Field 3) - Sales order number

  • {[36:176] / [36:109]} - Calculated expression: Discount percentage

Scenario 2: Pricing Exception Approval

Policy: Selling below cost requires director approval

Rule Set: SALES-COST-EXCEPTION

Linked Tables: Sales Line (37), Item (27)

Condition: [37:22] is <[27:21]
// Unit Price < Unit Cost

Action: Email to sales director
  "Order [36:3] line [37:LineNo] selling item [27:3] 
   at $[37:22], which is below cost of $[27:21].
   
   Loss per unit: $([27:21] - [37:22])
   Quantity: [37:15]
   Total loss: $(([27:21] - [37:22]) * [37:15]

Placeholders Used in This Scenario:

  • [37:22] - Sales Line (Table 37): Unit Price (Field 22) - Selling price per unit

  • [27:21] - Item (Table 27): Unit Cost (Field 21) - Cost per unit

  • [36:3] - Sales Header (Table 36): No. (Field 3) - Sales order number

  • [37:LineNo] - Sales Line (Table 37): Line No. - Line number in the order

  • [27:3] - Item (Table 27): Description (Field 3) - Item description

  • [37:15] - Sales Line (Table 37): Quantity (Field 15) - Quantity ordered

  • {[27:21] - [37:22]} - Calculated expression: Loss per unit

  • {([27:21] - [37:22]) * [37:15]} - Calculated expression: Total loss amount

Scenario 3: Budget Approval for Projects

Policy: Project expenses exceeding budget need project manager approval

Rule Set: PROJECT-BUDGET-APPROVAL

Linked Tables: Job (167), Job Planning Line (1003)

Condition: [1003:TotalCost] > [167:Budget]
// Project cost exceeds approved budget

Action: Email to project manager
  "Project [167:3] expenditure has exceeded budget.
   
   Budget: $[167:Budget]
   Actual Cost: $[1003:TotalCost]
   Variance: $([1003:TotalCost] - [167:Budget])
   Variance %: [([1003:TotalCost] - [167:Budget]) / [167:Budget]

Scenario 4: Payment Terms Exception

Policy: Payment terms differing from customer default need credit manager approval

Rule Set: CREDIT-TERMS-EXCEPTION

Condition: [36:64] is <>[18:27]
// Order payment terms differ from customer default

Action: Email to credit manager
  "Order [36:3] for customer [18:2] has non-standard payment terms.
   
   Customer Default: [18:27]
   Order Terms: [36:64]
   Order Amount: $[36:109]

Placeholders Used in This Scenario:

  • [36:64] - Sales Header (Table 36): Payment Terms Code (Field 64) - Payment terms for this order

  • [18:27] - Customer (Table 18): Payment Terms Code (Field 27) - Customer's default payment terms

  • [36:3] - Sales Header (Table 36): No. (Field 3) - Sales order number

  • [18:2] - Customer (Table 18): Name (Field 2) - Customer name

  • [36:109] - Sales Header (Table 36): Amount Including VAT (Field 109) - Total order amount

Building Approval Dashboards

Make approval requests visible to approvers.

Approach 1: Email Notifications

Advantages:

  • ✅ Immediate notification

  • ✅ Works outside BC

  • ✅ Can include direct links

Implementation: Use email actions in rules (as shown above)

Approach 2: Approval Cue (Role Center)

Create filtered view of pending approvals:


Implementation: Standard BC page customization

Approach 3: Dedicated Approval Page

Custom page listing all pending approvals:


Approval Workflow Best Practices

1. Clear Threshold Definition

Poor: "Large orders need approval" Better: "Orders over $50,000 need approval" Best:


2. Timely Notifications

Immediate notification when approval needed:

  • Email sent as soon as order created

  • Subject line clearly indicates action needed

  • Body includes all relevant information

  • Direct link to order (if possible)

3. Escalation Procedures

Define what happens if approval delayed:


Implementation:

  • Requires scheduled job or Power Automate integration

  • Tracks approval request age

  • Sends reminders/escalations

4. Audit Trail

Log all approval decisions:

  • Who approved/rejected

  • When approved/rejected

  • Original request details

  • Approval reasoning (comments)

5. User-Friendly Messages

Approval request emails should include:

  • What needs approval

  • Why it needs approval

  • All relevant data

  • How to approve

  • How to reject

  • Who to contact with questions

6. Mobile-Friendly Approval

Enable approval from mobile devices:

  • Simple approval forms

  • Email-based approval (reply with APPROVE/REJECT)

  • Power Apps integration for mobile approval

7. Delegation Support

Handle approver absence:

  • Delegate approval authority temporarily

  • Route to backup approver automatically

  • Configure out-of-office routing

8. Performance Monitoring

Track approval metrics:

  • Average time to approval

  • Approval rate (approved vs rejected)

  • Backlog of pending approvals

  • Escalation frequency

Integrating with Power Automate

For advanced approval scenarios, integrate QUALIA Rule Engine with Power Automate.

Workflow: Complex Approval Routing


Benefits of Integration

  • ✅ Rich approval UI (Outlook, Teams)

  • ✅ Mobile approval support

  • ✅ Complex routing logic

  • ✅ Multi-approver support

  • ✅ Escalation timers

  • ✅ Approval comments/reasoning

Troubleshooting Approval Workflows

Problem: Approvals Not Routing

Symptoms: Orders require approval but email not sent

Diagnosis:

  1. Check rule set enabled

  2. Check email action configured correctly

  3. Verify recipient email address

  4. Check scenarios (might be filtering out orders)

  5. Review Validation Log

Problem: Orders Posting Without Approval

Symptoms: Unapproved orders being posted

Diagnosis:

  1. Verify enforcement rule set exists and is enabled

  2. Check enforcement rule's trigger event (Before Posting)

  3. Verify approval status field check in condition

  4. Review Validation Log during posting attempt

Problem: Multiple Approval Emails

Symptoms: Approver receives multiple emails for same order

Diagnosis:

  1. Check if multiple rule sets have same approval routing

  2. Verify scenarios prevent re-evaluation on order updates

  3. Check if order is being modified multiple times

Problem: Wrong Approver Notified

Symptoms: Junior manager gets executive approval requests

Diagnosis:

  1. Review condition formulas for amount thresholds

  2. Check email addresses in actions

  3. Verify amount field reference is correct

  4. Review Validation Log to see which rule fired

Conclusion

Approval workflows are critical for maintaining control, ensuring compliance, and managing risk in business processes. QUALIA Rule Engine makes implementing sophisticated approval workflows straightforward:

Key capabilities:

  • ✅ Threshold-based approval routing

  • ✅ Multi-tier approval hierarchies

  • ✅ Conditional routing logic

  • ✅ Real-time notifications

  • ✅ Status tracking

  • ✅ Approval enforcement

  • ✅ Audit logging

Implementation approach:

  1. Define clear approval policies with specific thresholds

  2. Create routing rules to notify appropriate approvers

  3. Implement status tracking to monitor approval state

  4. Build enforcement rules to block action until approved

  5. Set up audit logging for compliance

  6. Create approval dashboards for visibility

  7. Test thoroughly with all approval tiers

Best practices:

  • Start with simple approval hierarchies, add complexity as needed

  • Provide clear, complete information in approval requests

  • Build escalation procedures for delayed approvals

  • Maintain comprehensive audit trails

  • Make approval processes mobile-friendly

  • Monitor approval metrics for bottlenecks

  • Integrate with Power Automate for advanced scenarios

By implementing approval workflows with business rules, you maintain necessary controls while keeping processes efficient, transparent, and user-friendly—delivering governance without bureaucracy.

Related Reading:

  • Rule Groups and User Permissions: Controlling Who Gets Which Rules

  • Email Actions: Automated Notifications and Workflows

  • Integration with Power Automate: Advanced Workflow Automation

  • Audit and Compliance: Tracking Rule Execution and Decisions

Business Central

>

Triggering Power Automate Flows from Business Rules

>

Advanced Table Linking and Cross-Record Validation

>

Aggregate Calculations Across Related Records: Summing, Counting, and Analyzing Data

>

Automated Email Notifications from Business Rules

>

Automatically Setting Field Values with Assign Actions

>

Building an Approval Workflow: When Orders Need Manager Sign-Off

>

Building Commission Calculation Rules for Sales Teams: Automating Sales Incentives

>

Building Multi-Condition Validation Rules: Understanding Independent Condition Evaluation

>

Construction and Project-Based Industry Solutions

>

Creating Your First Business Rule: A Step-by-Step Beginner's Guide

>

Custom Validation Messages for Business Rules

>

Distribution and Logistics Industry Solutions

>

Energy and Utilities Industry Solutions

>

Financial Services Industry Solutions

>

Food and Beverage Industry Solutions

>

Government and Public Sector Procurement Solutions

>

Healthcare and Medical Supply Industry Solutions

>

How to Implement Credit Limit Validation in 10 Minutes

>

How to Link Multiple Tables for Complex Multi-Table Validation

>

How to Prevent Infinite Loops in Your Business Rules

>

How to Prevent Negative Inventory with Business Rules

>

How to Validate Customer Data Before Order Creation

>

Implementing Discount Authorization Rules: Control Pricing with Confidence

>

Implementing Required Field Validation: Ensuring Data Completeness

>

Interactive Confirmation Dialogs in Business Rules

>

Manufacturing Industry Solutions

>

Non-Profit and Grant Management Solutions

>

Performance Optimization for Business Rules

>

Pharmaceuticals and Life Sciences Solutions

>

Preventing Data Entry Errors: Validation Best Practices

>

Professional Services Industry Solutions

>

Real Estate and Property Management Solutions

>

Retail and Point-of-Sale Industry Solutions

>

Rule Groups and User Permissions: Controlling Who Gets Which Rules

>

Rule Set Organization and Maintenance

>

Rule Versioning and Change Management

>

Testing and Debugging QUALIA Business Rules

>

Transportation and Logistics Industry Solutions

>

Understanding the Rule Execution Pipeline: From Trigger to Action

>

Understanding Validation Scenarios and Timing

>

Using Old Value Placeholders for Change Detection and Validation

Related Posts

Understanding the Rule Execution Pipeline: From Trigger to Action

QUALIA Rule Engine operates as a sophisticated event-driven system that intercepts data changes in Business Central and evaluates configured business rules in real-time. Understanding the execution pipeline—how a database operation flows through trigger detection, scenario evaluation, condition processing, and action execution—is essential for advanced rule design, performance optimization, and troubleshooting.

Energy and Utilities Industry Solutions

Energy and utilities companies face complex regulatory requirements including FERC compliance, NERC reliability standards, environmental regulations, rate case filings, renewable energy credit tracking, interconnection agreements, demand response programs, and outage management protocols. Asset-intensive operations with critical infrastructure, regulatory cost recovery mechanisms, time-of-use pricing structures, and customer meter-to-cash processes demand automated validation beyond standard ERP capabilities.

Real Estate and Property Management Solutions

Real estate and property management companies require specialized business rules for lease administration, tenant billing, common area maintenance (CAM) reconciliation, security deposit tracking, maintenance workflow management, vacancy management, rent escalation calculations, and portfolio performance analysis. Multi-entity property ownership structures, percentage rent calculations, operating expense recoveries, lease abstraction accuracy, and compliance with lease accounting standards (ASC 842 / IFRS 16) demand automated validation beyond standard ERP capabilities.

Get Your FREE Dynamics 365 Demo

Transform your business operations with Microsoft Dynamics 365 Business Central

Experience the transformative power of Microsoft Dynamics 365 Business Central for yourself! Request a free demo today and see how our solutions can streamline your operations and drive growth for your business.

Our team will guide you through a personalized demonstration tailored to your specific needs. This draft provides a structured approach to presenting Qualia Tech's offerings related to Microsoft Dynamics 365 Business Central while ensuring that potential customers understand the value proposition clearly.

Areas Of Interest

Please read and confirm the following:

*Note: Fields marked with * are mandatory for processing your request.

*Note: Fields marked with * are mandatory for processing your request.

© 2024 Qualia. All rights reserved

© 2024 Qualia. All rights reserved

© 2024 Qualia. All rights reserved

© 2024 Qualia. All rights reserved