Skip to main content

Workflows

Automate business processes by defining states, transitions, and actions that execute based on conditions.


What Are Workflows?

WORKFLOW AUTOMATION
═══════════════════════════════════════════════════════════════════════════════

┌─────────────────────────────────────────────────────────────────────────────┐
│ WORKFLOW CONCEPT │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ A workflow is a visual process definition that: │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ TRIGGERS │ → │ STATES │ → │ ACTIONS │ │
│ │ │ │ │ │ │ │
│ │ When record │ │ Where record │ │ What happens │ │
│ │ is created │ │ currently is │ │ at each step │ │
│ │ or updated │ │ in process │ │ │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
│ ↓ │
│ TRANSITIONS │
│ (How to move between states) │
│ │
└─────────────────────────────────────────────────────────────────────────────┘

When to Use Workflows

Use CaseExampleWhy Workflow?
Approval processesInvoice/PO routingMulti-step, role-based approval
Status managementOrder lifecycleVisual state tracking
NotificationsAlert on changesAutomatic email triggers
Field updatesAuto-populate valuesConsistent data rules
Record validationEnforce requirementsBusiness rule compliance
Audit trailsTrack changesAutomatic logging

Workflow vs Script

WHEN TO USE EACH
═══════════════════════════════════════════════════════════════════════════════

CHOOSE WORKFLOW:
┌─────────────────────────────────────────────────────────────────────────────┐
│ ✓ Visual process flow needed │
│ ✓ Approval routing with multiple levels │
│ ✓ Status-based progression │
│ ✓ Non-developers need to modify │
│ ✓ Simple field updates and emails │
│ ✓ Button-triggered actions │
└─────────────────────────────────────────────────────────────────────────────┘

CHOOSE SCRIPT:
┌─────────────────────────────────────────────────────────────────────────────┐
│ ✓ Complex calculations needed │
│ ✓ External API calls required │
│ ✓ Line-level processing │
│ ✓ Dynamic record creation │
│ ✓ File operations │
│ ✓ Performance-critical operations │
└─────────────────────────────────────────────────────────────────────────────┘

COMBINE BOTH:
┌─────────────────────────────────────────────────────────────────────────────┐
│ ✓ Workflow manages states and routing │
│ ✓ Workflow Action Script for complex logic │
│ ✓ Best of both worlds │
└─────────────────────────────────────────────────────────────────────────────┘

Workflow Components

Core Elements

WORKFLOW STRUCTURE
═══════════════════════════════════════════════════════════════════════════════

┌─────────────────────────────────────────────────────────────────────────────┐
│ WORKFLOW DEFINITION │
├─────────────────────────────────────────────────────────────────────────────┤
│ │
│ 1. INITIATION │
│ ──────────────────────────────────────────────────── │
│ • Record type (Sales Order, Invoice, etc.) │
│ • Trigger events (Create, Update, Scheduled) │
│ • Initiation conditions (When to start workflow) │
│ │
│ 2. STATES │
│ ──────────────────────────────────────────────────── │
│ • Define stages in the process │
│ • Each state has entry/exit actions │
│ • Records stay in state until transition occurs │
│ │
│ 3. TRANSITIONS │
│ ──────────────────────────────────────────────────── │
│ • Define how records move between states │
│ • Triggered by buttons, conditions, or schedules │
│ • Can have conditions and actions │
│ │
│ 4. ACTIONS │
│ ──────────────────────────────────────────────────── │
│ • Set field values │
│ • Send emails │
│ • Create/update records │
│ • Lock/unlock records │
│ • Run custom scripts │
│ │
└─────────────────────────────────────────────────────────────────────────────┘

Workflow Diagram Example

INVOICE APPROVAL WORKFLOW
═══════════════════════════════════════════════════════════════════════════════

┌──────────────────────────────────────────────────────────────────┐
│ WORKFLOW: Invoice Approval │
│ Record Type: Vendor Bill │
│ Trigger: On Create (Amount > $1,000) │
└──────────────────────────────────────────────────────────────────┘


┌─────────────────────────────────────────┐
│ STATE: PENDING │
│ │
│ Entry Actions: │
│ • Set status = "Pending Approval" │
│ • Lock record │
│ • Email approver │
└────────────────┬────────────────────────┘

┌────────────────┴────────────────┐
│ │
[Approve Button] [Reject Button]
│ │
▼ ▼
┌─────────────────────────┐ ┌─────────────────────────┐
│ STATE: APPROVED │ │ STATE: REJECTED │
│ │ │ │
│ Entry Actions: │ │ Entry Actions: │
│ • Set status │ │ • Set status │
│ • Set approved date │ │ • Unlock record │
│ • Set approved by │ │ • Email submitter │
│ • Unlock record │ │ │
│ • Email submitter │ │ Transitions: │
│ │ │ • [Resubmit] → PENDING │
│ (Final State) │ └─────────────────────────┘
└─────────────────────────┘

Creating a Workflow

Customization → Workflow → Workflows → New

Basic Setup

WORKFLOW SETUP STEPS
═══════════════════════════════════════════════════════════════════════════════

Step 1: Define Workflow
┌─────────────────────────────────────────────────────────────────────────────┐
│ Name: Invoice Approval │
│ ID: custworkflow_invoice_approval (auto-generated) │
│ Description: Routes vendor bills for approval based on amount │
│ │
│ Owner: Finance Team │
│ Record Type: Vendor Bill │
│ Sub Types: (leave blank for all) │
└─────────────────────────────────────────────────────────────────────────────┘

Step 2: Set Triggers
┌─────────────────────────────────────────────────────────────────────────────┐
│ Initiate On: │
│ ☑ Create Start when record is created │
│ ☐ Update Start when record is updated │
│ ☐ View/Update Start when record is viewed or updated │
│ ☐ Scheduled Start on schedule │
│ │
│ Initiation Condition: │
│ Formula: {total} > 1000 │
│ (Only start workflow if amount exceeds $1,000) │
└─────────────────────────────────────────────────────────────────────────────┘

Step 3: Add States
┌─────────────────────────────────────────────────────────────────────────────┐
│ States in this workflow: │
│ │
│ ┌───────────────┐ │
│ │ Pending │ ← Initial state (first in list) │
│ │ Approval │ │
│ └───────────────┘ │
│ ┌───────────────┐ │
│ │ Approved │ ← Final state │
│ └───────────────┘ │
│ ┌───────────────┐ │
│ │ Rejected │ ← Can transition back to Pending │
│ └───────────────┘ │
└─────────────────────────────────────────────────────────────────────────────┘

Step 4: Add Transitions
┌─────────────────────────────────────────────────────────────────────────────┐
│ Transitions from "Pending Approval": │
│ │
│ Transition Name │ Trigger │ To State │ Condition │
│ ───────────────────┼─────────────┼────────────┼───────────────────────── │
│ Approve │ Button │ Approved │ (none) │
│ Reject │ Button │ Rejected │ (none) │
│ │
│ Transitions from "Rejected": │
│ Resubmit │ Button │ Pending │ (none) │
└─────────────────────────────────────────────────────────────────────────────┘

Step 5: Add Actions to States
┌─────────────────────────────────────────────────────────────────────────────┐
│ "Pending Approval" Entry Actions: │
│ • Set Field: Status = "Pending Approval" │
│ • Lock Record │
│ • Send Email to Approver │
│ │
│ "Approved" Entry Actions: │
│ • Set Field: Status = "Approved" │
│ • Set Field: Approved Date = Today │
│ • Set Field: Approved By = Current User │
│ • Unlock Record │
│ • Send Email to Submitter │
└─────────────────────────────────────────────────────────────────────────────┘

Step 6: Test and Release
┌─────────────────────────────────────────────────────────────────────────────┐
│ Release Status: │
│ ○ Testing Only applies to test records │
│ ● Released Active in production │
│ ○ Suspended Temporarily disabled │
│ ○ Not Running Workflow is off │
└─────────────────────────────────────────────────────────────────────────────┘

Workflow Topics

TopicDescription
States & Transitions →Define workflow stages and movement
Actions →What happens at each stage
Conditions & Formulas →Control workflow logic
Scheduled Workflows →Time-based automation
Best Practices →Design and troubleshooting

Quick Reference

Supported Record Types

Common record types for workflows:

  • Transactions: Sales Order, Invoice, Purchase Order, Vendor Bill
  • Entities: Customer, Vendor, Employee, Contact
  • CRM: Opportunity, Case, Task, Event
  • Custom Records: Any custom record type

Release Status

StatusDescription
TestingOnly runs on records marked as test
ReleasedActive for all matching records
SuspendedTemporarily paused
Not RunningCompletely disabled

Next Steps

GoalGo To
Design workflow statesStates & Transitions →
Add workflow actionsActions →
Use Workflow Action ScriptsWorkflow Action Script →