Skip to content

Workflow Automation

Workflow Automation enables you to create automated processes that trigger actions based on specific events or conditions, streamlining operations and reducing manual tasks.

Overview

Workflow Automation enables you to:

  • Automate repetitive tasks
  • Send notifications
  • Update records automatically
  • Create approval workflows
  • Schedule recurring actions
  • Integrate with external systems

Accessing Workflows

Navigate to Settings → Workflow Automation from the main menu.

Workflow Overview

All Workflows

Workflow Automation

Active Workflows:
┌────────────────────────────────────────────────────────────────┐
│ Workflow Name              │ Trigger      │ Runs (30d)│ Status │
├────────────────────────────────────────────────────────────────┤
│ New Customer Welcome       │ Record Create│ 234       │ Active │
│ Invoice Overdue Reminder   │ Scheduled    │ 89        │ Active │
│ Large Order Notification   │ Field Change │ 45        │ Active │
│ PO Approval Workflow       │ Record Create│ 156       │ Active │
│ Lead Assignment            │ Record Create│ 345       │ Active │
│ Low Stock Alert            │ Field Change │ 67        │ Active │
│ Quote Follow-up            │ Scheduled    │ 123       │ Active │
│ Customer Review Request    │ Record Update│ 189       │ Paused │
└────────────────────────────────────────────────────────────────┘

Workflow Statistics:
├─ Total Executions (30 days): 1,248
├─ Success Rate: 98.5%
├─ Average Duration: 1.2 seconds
└─ Failed Runs: 19

[+ Create Workflow]

Creating Workflows

Workflow Builder

Create Workflow

Basic Information:
├─ Workflow Name: [Large Order Notification]
├─ Description: [Notify sales team when order exceeds $5,000]
├─ Entity: [Sales Orders ▼]
└─ Status: [Active ▼]

Trigger:
├─ Type: [When record is created or updated ▼]
│  ├─ When record is created
│  ├─ When record is updated
│  ├─ When record is created or updated
│  ├─ When field changes
│  ├─ On a schedule
│  └─ Manual trigger
└─ Run: ● Every time ○ Only once per record

Conditions:
├─ [Order Total] [is greater than] [$5,000]
├─ AND [Status] [equals] [Confirmed]
└─ [+ Add Condition]

Actions:
├─ 1. Send Email
│  ├─ To: Sales Manager
│  ├─ Subject: Large Order Alert: {order_number}
│  └─ Body: [Template: Large Order Alert]
├─ 2. Create Task
│  ├─ Assigned To: Account Manager
│  ├─ Subject: Review large order {order_number}
│  └─ Due: 1 day from now
├─ 3. Update Field
│  ├─ Field: Priority
│  └─ Value: High
└─ [+ Add Action]

[Save Workflow]

Trigger Types

Record-Based Triggers

Record Triggers

When Record is Created:
├─ Fires immediately after record creation
├─ All fields are available
└─ Example: Send welcome email to new customer

When Record is Updated:
├─ Fires after any field change
├─ Can compare old vs new values
└─ Example: Notify when status changes

When Field Changes:
├─ Fires only when specific field changes
├─ Specify which fields to watch
└─ Example: Alert when credit limit changes

Configuration:
├─ Entity: [Sales Orders ▼]
├─ Trigger: [When field changes ▼]
├─ Watch Fields:
│  ├─ [x] Status
│  ├─ [x] Total Amount
│  ├─ [ ] Ship Date
│  └─ [ ] Notes
└─ Run When: ● Any watched field changes
            ○ All watched fields change

Scheduled Triggers

Scheduled Triggers

Schedule Type: [Recurring ▼]

Frequency:
├─ ● Hourly  - Every [1] hours
├─ ○ Daily   - At [9:00 AM] every day
├─ ○ Weekly  - On [Monday] at [9:00 AM]
├─ ○ Monthly - On day [1] at [9:00 AM]
└─ ○ Custom  - Cron expression: [0 9 * * *]

Time Zone: [Eastern Time ▼]

Record Selection:
├─ Process: [Invoices ▼]
├─ Filter: [Due Date] [is before] [Today]
│  AND [Status] [equals] [Unpaid]
│  AND [Days Overdue] [is greater than] [7]
└─ Limit: Process up to [100] records per run

Example: Invoice Overdue Reminder
├─ Schedule: Daily at 9:00 AM
├─ Records: Invoices past due by 7+ days
└─ Action: Send reminder email to customer

Conditions

Condition Builder

Workflow Conditions

Match: ● All conditions (AND) ○ Any condition (OR)

Conditions:
┌────────────────────────────────────────────────────────────────┐
│ Field            │ Operator         │ Value                    │
├────────────────────────────────────────────────────────────────┤
│ Order Total      │ is greater than  │ $5,000                   │
│ Status           │ equals           │ Confirmed                │
│ Customer Type    │ is one of        │ VIP, Enterprise          │
│ Ship Country     │ is not empty     │                          │
└────────────────────────────────────────────────────────────────┘

[+ Add Condition] [+ Add Condition Group]

Available Operators:
├─ equals / does not equal
├─ contains / does not contain
├─ starts with / ends with
├─ is greater than / less than
├─ is between
├─ is empty / is not empty
├─ is one of / is not one of
├─ has changed / has not changed
└─ changed from X to Y

Advanced Conditions

Advanced Condition: Formula

Use formula to create complex conditions:

Formula:
[{order_total} > 5000 AND {customer.credit_score} >= 700]

Available in Formulas:
├─ Current record fields: {field_name}
├─ Related record fields: {customer.field_name}
├─ System variables: {current_user}, {today}, {now}
├─ Math operators: +, -, *, /, %
├─ Comparison: ==, !=, >, <, >=, <=
├─ Logical: AND, OR, NOT
└─ Functions: IF(), CONTAINS(), DAYS_BETWEEN()

Examples:
├─ {total} > {customer.credit_limit} * 0.8
├─ DAYS_BETWEEN({created_date}, {today}) > 30
└─ CONTAINS({tags}, "VIP") AND {country} == "US"

Actions

Available Actions

Workflow Actions

Notification Actions:
├─ Send Email - Send email to recipients
├─ Send SMS - Send text message
├─ In-App Notification - Create notification
├─ Slack Message - Post to Slack channel
└─ Teams Message - Post to Teams channel

Record Actions:
├─ Update Field - Change field value
├─ Create Record - Create new record
├─ Create Task - Create task/follow-up
├─ Create Note - Add note to record
└─ Delete Record - Remove record (with approval)

Integration Actions:
├─ HTTP Request - Call external API
├─ Webhook - Send webhook notification
└─ Run Script - Execute custom code

Flow Control:
├─ Wait - Pause for specified time
├─ Condition Branch - If/Then logic
├─ Loop - Repeat for related records
└─ Stop Workflow - End execution

Send Email Action

Action: Send Email

Recipients:
├─ To: [Record owner, Customer email, [email protected]]
├─ CC: [ ]
├─ BCC: [ ]
└─ Reply-To: [[email protected]]

Email Content:
├─ Subject: [Large Order Alert: {order_number} - ${order_total}]
├─ Template: [Large Order Alert ▼]
│  OR
├─ Custom Body:
│  ┌──────────────────────────────────────────────────────────┐
│  │ A large order has been placed:                          │
│  │                                                         │
│  │ Order: {order_number}                                   │
│  │ Customer: {customer_name}                               │
│  │ Total: {order_total}                                    │
│  │                                                         │
│  │ View Order: {order_url}                                 │
│  └──────────────────────────────────────────────────────────┘
└─ Attachments: [ ] Attach related documents

Send Options:
├─ Send immediately: ●
├─ Delay send: ○ Wait [__] hours/days
└─ [x] Log email in activity history

Update Field Action

Action: Update Field

Record: Current record (Sales Order)

Field Updates:
┌────────────────────────────────────────────────────────────────┐
│ Field           │ New Value                                    │
├────────────────────────────────────────────────────────────────┤
│ Priority        │ [High ▼]                                     │
│ Assigned To     │ [Senior Sales Rep ▼]                         │
│ Review Required │ [Yes ▼]                                      │
│ Review Notes    │ [Auto-flagged: Order exceeds $5,000]         │
│ Updated By      │ [Workflow: Large Order Notification]         │
└────────────────────────────────────────────────────────────────┘

[+ Add Field Update]

Options:
├─ [x] Create audit trail entry
└─ [x] Trigger other workflows

Approval Workflows

Approval Configuration

Approval Workflow: Purchase Order Approval

Trigger: PO Created with Total > $1,000

Approval Chain:
┌────────────────────────────────────────────────────────────────┐
│ Level │ Condition          │ Approver           │ Timeout     │
├────────────────────────────────────────────────────────────────┤
│ 1     │ Total > $1,000     │ Department Manager │ 48 hours    │
│ 2     │ Total > $5,000     │ Finance Manager    │ 48 hours    │
│ 3     │ Total > $25,000    │ CFO                │ 72 hours    │
└────────────────────────────────────────────────────────────────┘

Approval Settings:
├─ Parallel Approval: [ ] Allow (all must approve)
├─ Sequential Only: ● (one at a time)
├─ Delegate: [x] Allow approver delegation
└─ Skip if Approver is Requestor: [x]

Actions on Approval:
├─ Update Status: Approved
├─ Send Email: Notify requestor
├─ Create Task: Submit to vendor
└─ Update Field: Approved By, Approved Date

Actions on Rejection:
├─ Update Status: Rejected
├─ Send Email: Notify requestor with reason
└─ Create Task: Review and revise

Workflow History

Execution Log

Workflow Execution History

Workflow: Large Order Notification
Time Range: Last 30 Days

Execution Summary:
├─ Total Runs: 45
├─ Successful: 44 (97.8%)
├─ Failed: 1 (2.2%)
└─ Average Duration: 0.8 seconds

Recent Executions:
┌────────────────────────────────────────────────────────────────┐
│ Date       │ Record        │ Duration│ Status │ Actions       │
├────────────────────────────────────────────────────────────────┤
│ Jan 22 3:45│ SO-2026-0892 │ 0.9s    │ ✓ Done │ Email, Task   │
│ Jan 22 2:30│ SO-2026-0891 │ 0.7s    │ ✓ Done │ Email, Task   │
│ Jan 22 11:15│SO-2026-0889 │ 1.2s    │ ✓ Done │ Email, Task   │
│ Jan 21 4:20│ SO-2026-0885 │ -       │ ✗ Fail │ Email failed  │
│ Jan 21 2:15│ SO-2026-0883 │ 0.8s    │ ✓ Done │ Email, Task   │
└────────────────────────────────────────────────────────────────┘

[View Details] [Export Log]

Debug Mode

Debug Workflow Run

Workflow: Large Order Notification
Record: SO-2026-0892

Step-by-Step Execution:
┌────────────────────────────────────────────────────────────────┐
│ Step │ Action                  │ Result  │ Duration            │
├────────────────────────────────────────────────────────────────┤
│ 1    │ Evaluate Trigger        │ ✓ Pass  │ 0.01s               │
│ 2    │ Check: Total > $5,000   │ ✓ Pass  │ 0.01s               │
│      │ Value: $8,456.78        │         │                     │
│ 3    │ Check: Status=Confirmed │ ✓ Pass  │ 0.01s               │
│      │ Value: "Confirmed"      │         │                     │
│ 4    │ Send Email              │ ✓ Sent  │ 0.65s               │
│      │ To: sales-manager@...   │         │                     │
│ 5    │ Create Task             │ ✓ Done  │ 0.12s               │
│      │ Task ID: TSK-2026-456   │         │                     │
│ 6    │ Update Priority         │ ✓ Done  │ 0.08s               │
│      │ Changed: Normal → High  │         │                     │
└────────────────────────────────────────────────────────────────┘

Total Duration: 0.88 seconds
Result: Success

Best Practices

Design

  • Keep workflows simple
  • Use descriptive names
  • Document workflow purpose
  • Test before activating

Performance

  • Avoid loops where possible
  • Use filters to limit records
  • Set appropriate timeouts
  • Monitor execution times

Maintenance

  • Review workflows regularly
  • Clean up unused workflows
  • Update for business changes
  • Keep audit trail

Troubleshooting

Common Issues

Workflow not triggering

  • Check trigger conditions
  • Verify workflow is active
  • Review record changes
  • Check execution logs

Actions not completing

  • Review action configuration
  • Check permissions
  • Verify external connections
  • Review error messages

Performance issues

  • Check record volume
  • Review condition complexity
  • Optimize filters
  • Consider scheduling

Related Documentation

Learn about Notifications for configuring alert delivery.

Angage ERP Documentation