Chapter 06: Designing and Configuring Workflow Tasks
Chapter Objectives:
Understand workflow task design principles and best practices
Master the Task table structure and field-by-field configuration
Learn to choose appropriate Activity Types for different scenarios
Configure dynamic assignment using placeholders and teams
Implement due date and critical date formulas effectively
Build complete task configurations for real-world scenarios
Who Should Read This Chapter: Workflow Administrators, Business Analysts, Configuration Specialists
Prerequisites:
Understanding of Rule Engine basics (Chapter 3.9)
Familiarity with workflow triggers (Chapter 5)
Knowledge of placeholders (Chapter 3.4)
⏱️ Estimated Reading Time: 45-60 minutes
6.1. Task Design Principles and Best Practices
Effective workflow design begins with well-designed tasks. Tasks are the fundamental building blocks of any workflow - they represent the individual steps that guide users through a business process from start to completion.
🎯 What Makes a Good Task?
A well-designed task has these characteristics:
1. Single Responsibility
✅ Each task represents one action or decision
✅ Task description clearly states what needs to be done
✅ Users can complete the task without switching context
❌ Avoid: "Review order, contact customer, and update payment terms"
✅ Instead: Three separate tasks (Review, Contact, Update)
2. Clear Ownership
✅ Task is assigned to a specific person or team
✅ Assignee has the authority to complete the task
✅ Assignee has access to required data and tools
❌ Avoid: Generic assignment like "Someone needs to..."
✅ Instead: "[36:29]" (Salesperson assigned to the order)
3. Measurable Completion
✅ Clear criteria for when the task is done
✅ System can automatically verify completion (when possible)
✅ Manual tasks have obvious completion action
❌ Avoid: Ambiguous completion like "Review as needed"
✅ Instead: "Approved" status or "Verify [18:39]>[36:179]"
4. Appropriate Timing
✅ Realistic due date based on workload and complexity
✅ Critical date set for escalation when needed
✅ Task sequence reflects business process reality
❌ Avoid: Everything due "tomorrow" or arbitrary dates
✅ Instead: "[36:20]+7D" (Order Date + 7 days)
📐 Task Granularity Guidelines
Too Granular (Task Proliferation):
Too Coarse (Hidden Complexity):
Just Right (Balanced Granularity):
Granularity Rule of Thumb:
5-15 tasks for most workflows
Each task represents 5-30 minutes of work
Task sequence reflects actual process flow
Conditional branches add tasks only when needed
🏷️ Task Naming Conventions
Task Code Best Practices:
The "Code" field uniquely identifies each task within a workflow. Choose codes that are:
Descriptive but concise
Sortable by sequence (use prefixes or numbers)
Consistent across similar workflows
Memorable for power users
Common Naming Patterns:
Pattern 1: Sequential Numbering
Pattern 2: Functional Prefixes
Pattern 3: Hybrid Approach
Avoid These Patterns:
❌ Generic codes: TASK1, TASK2, TASK3
❌ Too long: REVIEW_CUSTOMER_CREDIT_AND_ORDER_DETAILS
❌ Inconsistent: Task-1, TASK02, tsk_3, T004
❌ Special characters: TASK#1, TASK@REVIEW, TASK(NEW)
📝 Task Description Best Practices
The "Description" field is what users see in their task list. Write descriptions that:
Start with a verb (action-oriented)
Explain what to do, not just what to look at
Include key context using placeholders
Stay under 100 characters (field limit)
Description Pattern Examples:
Basic Description (Static):
Context-Rich Description (Placeholders):
Decision-Oriented Description:
Status-Based Description:
Placeholder Guidelines for Descriptions:
✅ Use 1-3 placeholders maximum (readability)
✅ Choose high-value fields (names, amounts, statuses)
✅ Test placeholder resolution with sample data
✅ Have fallback description in mind if placeholder fails
❌ Avoid: Too many placeholders (cluttered)
❌ Avoid: Technical field names in description text
🔄 Task Sequencing Strategies
Tasks execute in a specific order determined by their initial Status and Precedence rules:
Sequential Execution (Default Pattern):
Parallel Execution Pattern:
Hybrid Pattern (Common in Practice):
Conditional Branching (Advanced):
⚠️ CRITICAL: Precedence rules and conditional branching are covered in detail in Chapter 7. The examples above show the concepts; implementation details follow in the next chapter.
⚡ Avoiding Task Proliferation
Problem: Too many tasks create workflow maintenance nightmares and user frustration.
Symptoms:
Workflows with 20+ tasks for simple processes
Tasks that take 30 seconds to complete
Tasks that just say "Check X" with no clear action
Users complaining about "checkbox fatigue"
Solutions:
1. Combine Related Checks into Single Task
2. Use Conditional Activity Type for Automatic Validation
3. Group Sequential Admin Tasks
4. Remove Redundant Review Steps
Balance Question: "If we removed this task, would the business process break?"
Yes → Keep the task (it's essential)
No → Consider removing or combining
Maybe → Convert to conditional task (executes only when needed)
💡 Task Design Checklist
Before creating a new task, ask these questions:
Purpose and Scope:
Can I describe this task in one sentence?
Does this task represent a single action or decision?
Is this task necessary for the business process?
Could this be combined with another task?
Assignment and Ownership:
Who should perform this task?
Does that person/team have the authority to complete it?
Can I assign it dynamically using placeholders?
What happens if the assigned person is unavailable?
Completion Criteria:
When is this task "done"?
Can completion be verified automatically?
What actions should happen when this completes?
What happens if this task is never completed?
Timing and Sequence:
When should this task become available?
What's a realistic due date?
Does this task depend on other tasks?
Can this task run in parallel with others?
User Experience:
Is the task description clear and actionable?
Will users have the information they need?
Are there too many similar tasks in this workflow?
Would this frustrate or help the user?
Technical Configuration:
What Activity Type is appropriate?
Are placeholders resolving correctly?
Have I tested the date formulas?
Does this work with the source table structure?
Use this checklist during task design to catch issues early.
6.2. Understanding the Workflow Task Table
Before diving into field-by-field configuration, let's understand how tasks fit into the overall workflow architecture and what happens behind the scenes when you create a task.
🗄️ Task Table Structure Overview
Table Information:
Table ID: 72777601
Table Caption: "QUA Workflow Task"
Primary Key:
Workflow No.+CodeParent Table: QUA Workflow Setup (72777600)
Created By: Workflow administrators and configuration specialists
Relationship to Other Tables:
Each task creates its own Rule Engine validation set automatically. This is a critical architectural pattern that enables:
Task-specific conditions (status rules)
Task-specific actions (assign fields, send emails)
Integration with the Rule Engine evaluation cycle
⚙️ Auto-Created Objects When You Create a Task
When you insert a new Workflow Task record, the system automatically creates several related objects behind the scenes. Understanding this automation helps you troubleshoot and work efficiently.
Step-by-Step: What Happens on Task Insert
User Action:
System Response (Automatic):
1. Validation Set Creation
2. Base Validation Record Creation
3. Default Status Rules Creation
Why Two Default Status Rules?
Line 9999: "When should this task become Released (available)?"
Default behavior: Immediate release (no formula, auto-releases)
Customizable: Add formulas to create wait conditions
Example use: Wait for previous task completion, wait for data
Line 10000: "When should this task be Completed?"
Default behavior: Manual completion (user clicks "Process")
Customizable: Add formulas to create auto-complete conditions
Example use: Data validation passed, threshold met, date reached
🔗 Related Topic: Chapter 7 covers Status Rules in complete detail, including how to customize Lines 9999 and 10000 for conditional release and auto-completion.
🔗 Task-to-Rule Engine Integration
Critical Understanding: Each task is backed by a Rule Engine validation set. This means:
Tasks CAN do everything Rule Engine can do:
✅ Evaluate conditions (scenarios, formulas)
✅ Execute actions (assign fields, send emails, create records)
✅ Reference placeholders (same record, linked records)
✅ Use complex formulas (comparisons, calculations)
Tasks inherit Rule Engine limitations:
❌ System values (TODAY, USERID) not supported in scenarios
❌ Aggregate functions (SUM, COUNT, AVG) not in placeholders
❌ Old values not available (record must exist)
❌ Direct formula syntax not in workflow fields (must use Rule Engine configuration)
Navigation Pattern:
From any Workflow Task, you can access the Rule Engine configuration:
Open the Workflow Setup card
Select the task line in the Tasks subpage
Click "Actions" → "Show Validation Set"
This opens the Rule Engine configuration for this task
Here you can add conditions, actions, formulas
This navigation is essential for advanced task configuration.
📋 Task Primary Key and Uniqueness
Primary Key: Workflow No. + Code
Uniqueness Rules:
✅ Same Code can exist in different workflows
Workflow "WF-A" can have task "REVIEW"
Workflow "WF-B" can have task "REVIEW"
❌ Same Code cannot exist twice in same workflow
Error: "REVIEW already exists in workflow WF-A"
✅ Solution: Use different codes or sequential numbering
REVIEW-1, REVIEW-2
REV-MGR, REV-FIN
Best Practice: Establish naming conventions at the organization level to avoid conflicts and improve consistency across workflows.
🗑️ Task Deletion Behavior
What Gets Deleted (Cascade)
When you delete a Workflow Task:
✅ The task record itself (Table 72777601)
✅ ALL Status Rules for that task (Table 72777603)
✅ ALL Precedence Rules referencing that task (Table 72777604)
✅ The Validation Set (Table 72777800)
✅ ALL Validations in that set (Table 72777801)
✅ ALL Validation Formulas for those validations (Table 72777802)
What Does NOT Get Deleted:
❌ Workflow Entries (historical instances)
❌ Workflow Entry Details (completed tasks)
❌ Other tasks in the same workflow
❌ The parent Workflow Setup
When You Delete a Task from an active workflow:
⚠️ WARNING: Deleting tasks from workflows that have active instances (Workflow Entries with Status=Open or Released) creates orphaned data:
Existing workflow instances still reference the deleted task
Entry Detail records remain but have no task definition
Users may see incomplete task lists
Reporting and tracking may show gaps
Safe Deletion Pattern:
Recommendation: Instead of deleting tasks from active workflows, consider:
Disable the workflow while editing
Create a new version of the workflow (V2)
Use Status Rule formulas to conditionally skip tasks
6.3. Creating Tasks (Step-by-Step Procedure)
Now that you understand task architecture, let's walk through the actual task creation process.
📝 Opening the Task Configuration Interface
Method 1: From Workflow Setup Card
Method 2: From Search
Page Layout:
➕ Adding a New Task
Procedure:
Step 1: Initiate New Task Creation
Step 2: Enter Required Fields
Step 3: Configure Essential Fields
Step 4: Save the Task
⚠️ Common Creation Errors and Solutions
Error 1: "Code already exists"
Error 2: "Workflow No. must have a value"
Error 3: "Activity Type causes field visibility issues"
Error 4: "Placeholder doesn't resolve"
🎯 Quick Start: Minimal Task Configuration
For rapid testing or simple workflows, you can create tasks with minimal configuration:
Minimal Manual Task (simplest possible):
Minimal Conditional Task (auto-complete):
You can always return to add more configuration (assignment placeholders, due dates, actions) after initial creation.
6.4. Task Field Reference (Complete Field-by-Field Guide)
This section provides comprehensive documentation for every field in the Workflow Task table. Each field is documented with its caption, data type, purpose, usage patterns, and configuration examples.
📋 Field Reference Organization
Fields are presented in logical grouping order:
Identification Fields: Workflow No., Code, Description
Status and Type Fields: Status, Activity Type
Assignment Fields: Assigned to, Assigned to Team
Date Fields: Due Date, Critical Date
Activity-Specific Fields: Template Code, Contact No.
System Fields: Rule, Rule Line No., No. of Actions
🔑 Identification Fields
"Workflow No." Field
Field Properties:
Caption: "Workflow No."
Data Type: Code[20]
Required: Yes (always)
Editable: No (auto-populated from parent)
Table Relation: QUA Workflow Setup (72777600)
Purpose: Links this task to its parent workflow. Every task must belong to exactly one workflow.
Behavior:
Auto-populated when creating task from Workflow Setup card
Cannot be changed after task creation
Used as first part of primary key (Workflow No. + Code)
Usage Pattern:
Troubleshooting:
❌ Error: "Workflow No. must have a value"
Cause: Creating task directly in table (not via Workflow Setup)
Solution: Always create tasks from Workflow Setup card page
"Code" Field
Field Properties:
Caption: "Code"
Data Type: Code[20]
Required: Yes
Editable: Yes (during creation, limited after)
Validation: Must be unique within the workflow
Case Sensitive: No (BC normalizes to uppercase)
Purpose: Unique identifier for this task within the workflow. Used for task references, status rules, precedence rules, and validation set naming.
Naming Patterns: (see Section 6.1 for detailed patterns)
Sequential: TASK-010, TASK-020, TASK-030
Functional: REV-ORDER, APP-MGR, FIN-VERIFY
Hybrid: 10-REV, 20-APP-MGR, 30-FIN
Character Restrictions:
✅ Allowed: Letters (A-Z), numbers (0-9), hyphen (-), underscore (_)
❌ Not allowed: Spaces, special characters (@, #, $, %, etc.)
✅ Recommended: Consistent format across organization
Usage Examples:
Important Notes:
⚠️ Changing Code after task is in use affects:
Validation Set Code (gets renamed)
Status Rule references (auto-updated)
Precedence Rule references (may need manual update)
Active Workflow Entries (historical data keeps old code)
Best Practice: Decide on Code before creating active workflow instances. Changing codes in production workflows creates confusion in historical data.
"Description" Field
Field Properties:
Caption: "Description"
Data Type: Text[100]
Required: No (but strongly recommended)
Editable: Yes (can change anytime)
Placeholder Support: YES ✅
Copies To: Validation Set description, Validation description, Entry Detail description
Purpose: User-facing name for this task. This is what users see in their task list, so clarity is essential.
Description Best Practices: (see Section 6.1 for detailed guidance)
Writing Effective Descriptions:
Start with action verb: "Review", "Approve", "Verify", "Contact", "Update"
Include key context: What record? What field? What threshold?
Use placeholders: Show dynamic data to users
Keep concise: 100 character limit, aim for 40-60 for readability
Test readability: Does it make sense without opening the record?
Placeholder Usage in Descriptions:
Static Description (no context):
Context-Rich Description (with placeholders):
Decision-Support Description (comparison):
Common Placeholder Patterns:
Description Character Limit Strategy:
Troubleshooting:
Issue: Placeholder shows "[36:179]" literally instead of value
Explanation: Placeholders resolve at runtime (when workflow instance created)
Solution: This is normal during configuration; test with actual workflow instance
Issue: Description truncated in UI
Cause: Exceeds 100 character limit or column width too narrow
Solution: Shorten description or widen column
⚙️ Status and Type Fields
"Status" Field
Field Properties:
Caption: "Status"
Data Type: Enum (QUA Workflow Task Status - 72777601)
Options: 0=Open, 1=Released, 2=Completed
Required: Yes
Default: Open
Editable: Yes
Purpose: Defines the initial status for task instances when workflow is created. This is the starting point for each task in every workflow instance.
Status Values Explained:
Open (0): Task is not yet ready for user action
Released (1): Task is ready for user action immediately
Completed (2): Task starts as already done
Typical Workflow Pattern:
Parallel Task Pattern:
Status vs. Status Rules:
This "Status" field: Initial state when task instance is created
Status Rules (Chapter 7): Conditions that change status dynamically
Line 9999: When to change Open → Released
Line 10000: When to change Released → Completed
Custom rules: Any other status transitions
Special Behavior: Setting Status = Released:
When you set the default Status to "Released" on a task definition:
⚠️ CRITICAL: If you change a task from Released → Open after creation, you MUST add release conditions (Status Rules) or the task will never become Released in workflow instances.
Decision Guide:
"Activity Type" Field
Field Properties:
Caption: "Activity Type"
Data Type: Enum (QUA Workflow Activity Type - 72777600)
Options: 0=Conditional, 1=Interaction, 2=Manual, 3=Job Queue, 4=Approval Workflow
Required: Yes
Default: Conditional
Editable: Yes
Affects: Field visibility, completion behavior, user interaction model
Purpose: Defines HOW users interact with this task and HOW the task completes. This is one of the most important configuration decisions.
Activity Type Overview Table:
Type | Completion Method | User Action | Best For |
|---|---|---|---|
Conditional | Automatic when condition met | Review and confirm | Data validation, threshold checks |
Interaction | CRM activity logged | Create interaction (call/email) | Customer contact, follow-ups |
Manual | Click "Process" button | Simple acknowledgment | Reviews, approvals, simple tasks |
Job Queue | Scheduled (future) | None (system-driven) | Batch processing (not yet implemented) |
Approval | Approval granted | Formal approval workflow | Document approvals, BC integration |
Activity Type: Conditional (0)
When to Use:
Task completion depends on data meeting specific criteria
System can automatically verify conditions
User confirms after condition is met
Examples: Credit limit check, data validation, threshold verification
How It Works:
Task starts (Status = Released)
System continuously evaluates completion condition
When condition TRUE → Task can complete
User clicks "Process" to confirm
Task Status → Completed
Configuration Requirements:
✅ Must add completion condition to Status Rule Line 10000
✅ Condition formula evaluates to TRUE/FALSE
✅ Task remains Released until condition met
Example Configuration:
User Experience:
Advantages:
✅ Eliminates manual verification errors
✅ Provides objective completion criteria
✅ Gives users real-time status visibility
✅ Can chain multiple conditional tasks
Limitations:
❌ Requires data to be present in system
❌ Cannot handle subjective decisions
❌ Condition must be expressible as formula
Activity Type: Interaction (1)
When to Use:
Task requires customer/contact interaction
Need to log interaction in CRM (Interaction Log Entries)
Examples: Follow-up call, send email, schedule meeting, customer contact
How It Works:
Task starts (Status = Released)
User clicks task to open
System opens Interaction Creation wizard
User creates interaction (call, email, meeting, etc.)
Interaction logged to BC Interaction Log Entries
Segment Line created linking interaction to workflow
Task Status → Completed automatically
Configuration Requirements:
✅ Must specify Template Code (Interaction Template)
✅ Should specify Contact No. (or use placeholder)
✅ Interaction Template must exist in BC
✅ Contact must be valid Contact record
Required Fields for Interaction Activity:
"Template Code" Field:
Caption: "Template Code"
Type: Code[10]
Required: Yes (for Interaction activity)
Visible: Only when Activity Type = Interaction
Table Relation: Interaction Template
Purpose: Defines interaction type (call, email, meeting)
"Contact No." Field:
Caption: "Contact No."
Type: Text[250]
Required: Recommended
Visible: Only when Activity Type = Interaction
Placeholder Support: YES ✅
Purpose: Contact person for the interaction
Example Configuration:
Placeholder Patterns for Contact No.:
User Experience:
CRM Integration:
Advantages:
✅ Automatic CRM logging (no manual entry)
✅ Interaction history tracked
✅ Integrates with BC Contact Management
✅ Provides interaction reporting
Limitations:
❌ Requires BC Interaction Templates configured
❌ Requires valid Contact records
❌ Template Code must exist in system
❌ More complex setup than Manual activity
Activity Type: Manual (2)
When to Use:
Simple tasks requiring human judgment
Tasks without specific completion criteria
Tasks where "done" means "user says it's done"
Examples: General review, manager approval, simple confirmation
How It Works:
Task starts (Status = Released)
User opens task (views record, performs work)
User clicks "Process" button
Task Status → Completed
No automatic verification
Configuration Requirements:
✅ No special configuration needed
✅ Simplest activity type to set up
✅ Just set Activity Type = Manual
Example Configuration:
User Experience:
Advantages:
✅ Simplest to configure
✅ No prerequisites
✅ Flexible (user decides when done)
✅ Works for any task type
Limitations:
❌ No automatic verification
❌ Relies on user judgment
❌ No objective completion criteria
❌ Can be "clicked through" without work
Best Practices for Manual Tasks:
Activity Type: Job Queue (3)
Status: Future feature (not yet implemented in current version)
Planned Use:
Scheduled batch processing
System-driven tasks (no user action)
Background operations
Examples: Nightly report generation, data sync, scheduled updates
Current Recommendation: Use other activity types until Job Queue is fully implemented.
Activity Type: Approval Workflow (4)
When to Use:
Integration with Business Central standard approval workflows
Tasks that prevent record modification until approved
Formal approval processes requiring BC approval entries
Examples: Document approval, purchase order approval, invoice approval
How It Works:
Task starts (Status = Released)
System locks source record (prevents modification)
User performs approval in BC approval system
BC approval granted → OnDatabaseModify event fires
Event triggers Status Rule evaluation
Task Status → Completed
Source record unlocked
Configuration Requirements:
✅ Task Status must be Released (not Open)
✅ Source record must support BC approval workflows
✅ BC approval workflow must be configured separately
✅ Status Rule triggered by OnDatabaseModify event
Example Configuration:
Record Locking Behavior:
Integration with BC Approval System:
Advantages:
✅ Integrates with standard BC approval workflows
✅ Prevents record modification during approval
✅ Uses familiar BC approval UI
✅ Audit trail in BC Approval Entries
Limitations:
❌ Requires BC approval workflow setup
❌ More complex configuration
❌ Must use Status = Released (cannot start as Open)
❌ Limited to records supporting BC approvals
🎯 Activity Type Decision Tree
Use this flowchart to choose the right Activity Type:
Quick Reference Table:
Need | Activity Type | Example |
|---|---|---|
Auto-verify condition | Conditional | Credit limit check, threshold verification |
Log customer call/email | Interaction | Follow-up call, send email |
Simple user confirmation | Manual | Review and approve, acknowledge receipt |
BC approval integration | Approval Workflow | Purchase order approval, invoice approval |
Scheduled batch job | Job Queue | Nightly report (future feature) |
👥 Assignment Fields
"Assigned to" Field
Field Properties:
Caption: "Assigned to"
Data Type: Text[250]
Required: No (but strongly recommended for most task types)
Editable: Yes
Placeholder Support: YES ✅
Validation: Resolves to User ID, Email, or Team Member at runtime
Purpose: Specifies WHO should perform this task. This is one of the most powerful fields because it supports dynamic assignment using placeholders.
Assignment Patterns:
Pattern 1: Fixed User Assignment
Pattern 2: Dynamic Field-Based Assignment (Common)
Pattern 3: Email-Based Lookup
Pattern 4: Cross-Table Assignment (Linked Tables)
Pattern 5: Team Assignment (see "Assigned to Team" field)
Common Placeholder Examples for Assignment:
Assignment Resolution at Runtime:
Step 1: Placeholder Resolution
Step 2: User Lookup
Step 3: Task Assignment
Assignment Troubleshooting:
Problem: Task shows "[36:29]" literally in Assigned to
Problem: Task unassigned (Assigned to is blank)
Problem: Wrong user assigned
Best Practices:
✅ Always test assignment with sample data
✅ Verify users exist in BC before going live
✅ Have fallback strategy (team assignment)
✅ Document what field is used for assignment
❌ Don't assume field always has value
❌ Don't use email assignment without validation
"Assigned to Team" Field
Field Properties:
Caption: "Assigned to Team"
Data Type: Code[20]
Required: No
Editable: Yes
Placeholder Support: No (static team code only)
Table Relation: QUA Team (72777609)
Purpose: Assigns task to a team rather than (or in addition to) an individual user. Enables workload distribution, team visibility, and self-assignment workflows.
Team Assignment Patterns:
Pattern 1: Team-Only Assignment
Pattern 2: User + Team Assignment (Recommended)
Pattern 3: Team with Manager Oversight
Team Self-Assignment Workflow:
User Experience (Team Member):
Benefits of Team Assignment:
✅ Workload distribution (first available takes it)
✅ Coverage during absences (team can cover)
✅ Skill-based routing (specialized teams)
✅ Manager visibility (team performance tracking)
✅ Flexibility (team members self-select work)
Team Configuration (QUA Team table):
Assignment Resolution with Teams:
Scenario: Individual + Team Assignment
Scenario: Team-Only Assignment
When to Use Teams vs. Individual Assignment:
Situation | Assignment Strategy |
|---|---|
Task always done by same person | Assigned to: Fixed user |
Task depends on record data | Assigned to: Placeholder |
Workload distribution needed | Assigned to Team: Only |
Primary owner with backup | Assigned to: Placeholder + Team |
Specialized skills required | Assigned to Team: Specialist team |
Coverage during vacations | Assigned to Team: Department team |
Self-selection preferred | Assigned to Team: Only |
Manager oversight needed | Assigned to Team: With manager |
Troubleshooting Team Assignment:
Problem: Team members don't see team tasks
Problem: Too many people seeing tasks
Problem: Tasks not being claimed
📅 Date Fields
"Due Date" Field
Field Properties:
Caption: "Due Date"
Data Type: Text[250]
Required: No (but strongly recommended)
Editable: Yes
Formula Support: YES ✅
Placeholder Support: YES ✅
Validation: Must evaluate to valid date at runtime
Purpose: Specifies when the task should be completed. Critical for time-sensitive workflows, SLA tracking, and user prioritization.
Due Date is TEXT field: Unlike typical date fields, this is stored as text (formula) that evaluates to a date at runtime. This enables dynamic date calculations based on record data.
Date Formula Patterns:
Pattern 1: Fixed Offset from Today
Pattern 2: Offset from Record Date Field
Pattern 3: Use Record Date Directly
Pattern 4: Complex Calculation
Pattern 5: Business Days (Work Days)
Date Formula Syntax Reference:
Time Unit Codes:
Operator Examples:
Combined Formulas:
System Date Placeholders:
Common Due Date Patterns:
Due Date Calculation Examples:
Example 1: Simple Offset
Example 2: Record Date + Offset
Example 3: Business Days
Example 4: Month-End Processing
Due Date and User Priorities:
Tasks are typically sorted by due date in user task lists:
Overdue Tasks:
Troubleshooting Due Date Formulas:
Problem: Due date shows formula text "[36:20]+7D" literally
Problem: Due date is blank
Problem: Due date in past
Best Practices:
✅ Always set due dates (helps prioritization)
✅ Use realistic timeframes (test with real workload)
✅ Consider business days for user tasks
✅ Account for weekends/holidays if critical
✅ Test formula evaluation with sample data
❌ Don't set due dates too aggressive (causes burnout)
❌ Don't use complex formulas without testing
❌ Don't forget time zones if global team
"Critical Date" Field
Field Properties:
Caption: "Critical Date"
Data Type: Text[250]
Required: No
Editable: Yes
Formula Support: YES ✅
Placeholder Support: YES ✅
Validation: Must evaluate to valid date at runtime
Purpose: Specifies an escalation threshold date. When Critical Date is reached (before Due Date), task is flagged for management attention. Used for SLA monitoring and proactive escalation.
Critical Date vs. Due Date:
Critical Date Formula Patterns (same syntax as Due Date):
Pattern 1: Fixed Days Before Due Date
Pattern 2: Percentage of Time Period
Pattern 3: Based on Record Field
Pattern 4: Business Days Before Due
Critical Date Behavior:
When Critical Date Reached:
User Interface Display:
Cue Tile Integration:
Common Critical Date Patterns:
When to Use Critical Date:
✅ Use Critical Date when:
Task has serious consequences if late
Management wants early warning
SLA monitoring required
Proactive escalation needed
Multiple stakeholders need visibility
Time-sensitive customer commitments
❌ Skip Critical Date when:
Task has no time sensitivity
Due date is sufficient
No escalation process defined
Task duration is very short (< 1 day)
Flexibility in completion timing
Critical Date and Escalation Workflows:
Troubleshooting Critical Date:
Problem: Critical Date never triggers
Problem: All tasks showing as critical
Problem: Critical date ignored by users
Best Practices:
✅ Critical Date should be BEFORE Due Date
✅ Allow reasonable escalation window (20-33% of timeline)
✅ Use consistently across similar task types
✅ Train users on critical date meaning
✅ Implement escalation process
❌ Don't mark everything critical (dilutes importance)
❌ Don't set critical date too close to due date (no time to escalate)
❌ Don't use without escalation follow-up process
Activity-Specific Fields
These fields are only visible and relevant for specific Activity Types.
"Template Code" Field
Field Properties:
Caption: "Template Code"
Data Type: Code[10]
Required: Yes (when Activity Type = Interaction)
Editable: Yes
Visible: Only when Activity Type = Interaction
Table Relation: Interaction Template (5064)
Placeholder Support: No (must be static template code)
Purpose: Specifies which CRM Interaction Template to use when creating customer/contact interactions.
0 Code Advanced Workflow
>
Chapter 01 : Introduction and Overview
>
Chapter 02: Getting Started
>
Chapter 03: Core Concepts and Terminology
>
Chapter 04: Tutorial - Your First Workflow
>
Chapter 05: Configuring Workflow Triggers (Initiated By Rules)
>
Chapter 06: Designing and Configuring Workflow Tasks
>
Chapter 07: Configuring Status Rules and Task Logic
>
Chapter 08: Managing Teams and Users
>
Chapter 09: Processing Workflow Tasks
>
Chapter 10: Monitoring and Reporting
>
Chapter 11: Advanced Placeholder Techniques
>
Chapter 12: Complex Workflow Patterns
>
Chapter 13: Integration with Business Central
>
Chapter 14: Troubleshooting and Maintenance
>
Chapter 15: Field and Table Reference
>
Chapter 16: Formula Reference
>
Chapter 17: Glossary and Index
>
Chapter 18: 20 Real-World Workflow Examples
Related Posts
Chapter 18: 20 Real-World Workflow Examples
Chapter Purpose: This chapter provides 20 complete, production-ready workflow implementations spanning multiple Business Central modules. Each example includes business context, measurable benefits, complete configuration steps, testing procedures, and troubleshooting guidance.
Chapter 17: Glossary and Index
Activity Type: Classification of how a workflow task is processed. Options: Manual, Conditional, Interaction, Job Queue, Approval Workflow. Assigned to: User ID who should process the task. Supports placeholders for dynamic assignment. Assigned to Team: Team code for team-assigned tasks. Users see tasks for their teams in "My Teams" view.
Chapter 16: Formula Reference
Chapter Objectives: Master date formula syntax Understand comparison operators Learn validation formula patterns Apply formulas to real scenarios
