Business Process Fundamentals
A business process is a collection of linked tasks or activities that, once completed, accomplish some organizational goal. Understanding business processes is the foundation for effective workflow automation.
Common Business Process Examples
- Sales Order Approval: Automatically approve orders less than $1,000, but require sales manager approval for orders greater than $1,000
- Auto-routing Records: Route records to specific users for approval based on business rules
- Discount Application: Auto-apply line-item discounts when specific quantity purchased or order amount exceeds threshold
- Task Automation: Auto-create task records for sales reps when customer order amounts exceed specified amounts
Business Process Components
Most workflows in SuiteFlow, regardless of complexity, are comprised of these basic components:
Standard Workflow Flow:
Initiation State
→
Action State
→
Decision State
→
End State
🔹 Initiation/Entry States
Found in ALL business processes. Represents where workflow execution begins. Can be triggered by user action (button click) or automatically (scheduled workflow).
🔹 Action States
Represents a task or operation performed at a specific point. Examples: set approval status to "Pending Approval," send email notification to approver, calculate totals, update field values.
🔹 Decision States
Ask a question to validate data. The answer determines which actions execute and which path the workflow follows. Example: "Is amount < $100? If yes, auto-approve. Otherwise, continue to manual approval."
🔹 Subprocess States
Trigger child workflows (subworkflows) that perform their own tasks. Results return to parent process which takes appropriate action. Common in approval workflows with escalation logic.
🔹 End States
Where workflow processing completes. All workflows have at least one end state, but can have multiple (common in approval workflows with "Approved" and "Rejected" end states).
Approval Workflow Example
Let's analyze a basic approval workflow for sales orders:
- State 1 - Pending Approval: Workflow entry state that initiates the approval process
- Decision Point: Is sales order < $5,000?
- If Yes: Automatically route to State 3 (Approved)
- If No: Route to State 2 (Finance Approval)
- State 2 - Finance Approval: Record is locked, Approve/Reject buttons added
- If Approved: Route to State 3, update status to "Approved," lock record
- If Rejected: Route to State 4, update status to "Rejected," end workflow
- State 3 - Approved: Approval status updated, record locked (except to finance manager)
- State 4 - Rejected: Approval status updated, workflow completes
💡 Design Note
Additional processing could be configured to return rejected orders back to State 1 for resubmission. This creates a loop that allows correction and reapproval!
What is SuiteFlow?
SuiteFlow is NetSuite's point-and-click visual workflow development tool used to automate business processes. It transforms complex business logic into visual workflows that execute automatically based on user actions and system events.
Key Characteristics
- Visual Representation: Workflows are visual diagrams showing tasks, participants, and operations at various states
- Sequential or Parallel: Steps can run one after another (sequential) or simultaneously (parallel processing paths)
- Trigger-Based: Actions and transitions execute based on specific events (triggers) as users interact with records
- Conditional Logic: Actions and transitions contain conditions that must be satisfied before execution
What Can SuiteFlow Do?
- Build approval processing workflows with sequential and parallel approvers
- Send email notifications, including time-based reminder emails
- Alter workflow state based on changes to related records
- Configure service-level agreements (SLAs)
- Implement drip marketing campaigns
- Define complex business rules and calculations
Workflow-to-Record Relationship
Critical Concept: Workflows have a one-to-one relationship with NetSuite record types. A workflow can only be configured to execute on a single base record type.
📋 Record Type Support
Workflows are supported by most of NetSuite's standard record types AND custom record types. To verify if a specific record type supports workflows, create a new workflow definition and check if the desired record type appears in the dropdown list.
⚠️ Subtypes Exception
While a workflow can't run on multiple BASE record types, it CAN execute on specific record subtypes. Example: A workflow on "Transaction" can run on Sales Order, Purchase Order, and Vendor Payment subtypes simultaneously.
💡 Multiple Workflows on One Record
Multiple workflows CAN run on a single base record type simultaneously! There's no limit to the number of workflows per record type. This supports the modular design approach we'll discuss shortly.
The Four Building Blocks of SuiteFlow
Every workflow in SuiteFlow is constructed from four primary building blocks:
1. States
States answer: "Where is the record currently in the business process?"
- Represent specific points in the workflow where the record "lives"
- Contain actions that execute when the record is in that state
- Can be entry states, processing states, decision states, or end states
- All workflows must have at least one state (automatically created)
2. Actions
Actions answer: "What tasks should be performed in the current state?"
- Perform specific tasks: set field values, send emails, create records, show messages
- Execute based on triggers (when to run)
- Can contain conditions (under what circumstances to run)
- Examples: Send Email, Set Field Value, Return User Error, Create Record
3. Transitions
Transitions answer: "Which state should the business process move to next?"
- Define the path between states
- Contain conditions that determine if transition should occur
- Execute based on triggers
- Multiple transitions can exist from a single state (branching logic)
4. Triggers
Triggers answer: "When should a workflow be initiated, an action executed, or a transition performed?"
- Represent specific events during record processing
- Two types: Client Triggers (browser) and Server Triggers (NetSuite server)
- Control exactly when workflow processing occurs
- Examples: Before Record Load, Before User Submit, After Record Submit, Before Field Edit
🎓 Remember This!
Triggers OCCUR, but workflows, actions, and transitions EXECUTE. This distinction is important for understanding workflow execution timing!
Using the Workflow Manager
The Workflow Manager is your visual workspace for creating and managing workflows. Let's tour the interface:
Accessing the Workflow Manager
Navigate to: Customization > Workflow > Workflows > New Workflow
Workflow Manager Components
- Workspace (Center): Visual canvas where you drag and drop states, draw transitions, and see the overall workflow structure
- Context Panel (Right): Shows properties and actions for selected workflow components. Changes dynamically based on what you've selected
- Toolbar (Top): Contains buttons for common actions like adding states, saving, and switching views
Workflow Definition Fields
- Name: Descriptive workflow name (e.g., "Furniture Request Entry")
- ID: Unique internal identifier (recommended! Makes workflows easier to reference in scripts)
- Record Type: The NetSuite record this workflow will execute on
- Sub Type: Optional - specific record subtypes if applicable
- Release Status: Testing or Released (controls whether workflow is active)
- Enable Logging: Critical for troubleshooting! Always enable during development
⚠️ Workflow ID Best Practice
While Workflow ID is technically optional, treat it as required in your development practice. IDs make workflows much easier to reference in SuiteScript and when troubleshooting execution logs!
Context Panel Tabs
The Context Panel displays different tabs depending on what's selected:
- Workflow tab: When no state selected - shows overall workflow properties
- State tab: When state selected - shows state properties, actions, and transitions
- Trigger tabs: Show actions grouped by when they execute (Before Load, Before Submit, etc.)
💡 Dynamic Saving
The Workflow Manager saves your work automatically as you make changes! There's no explicit "Save" button. Everything is dynamically persisted to the database.
Modular Workflow Design
One of the most important concepts in SuiteFlow development is modular design. Instead of creating one massive workflow that does everything, break processing into multiple smaller, focused workflows.
Benefits of Modular Design
- Easier Maintenance: Smaller workflows are easier to understand, test, and modify
- Separation of Concerns: Client-side actions separated from server-side actions
- Easier Troubleshooting: Isolating issues is simpler when workflows have focused purposes
- Reusability: Workflows can be leveraged as templates for similar processes
- Better Performance: Targeted workflows execute only when needed
Modular Design Example
For a Furniture Request process, you might create separate workflows for:
- Entry Workflow: Handles data entry validations and field interactions (client triggers)
- Load Workflow: Sets field defaults and display characteristics when loading forms (server triggers)
- Save Workflow: Creates related records, sends notifications after save (server triggers)
- Approval Workflow: Manages approval routing and state transitions
✅ Best Practice
As you work through course exercises, you'll gain hands-on experience building modular workflows. This approach scales much better than monolithic "do-everything" workflows!
Workflow Templates
NetSuite provides pre-built workflow templates to help you get started quickly with common approval processes.
Available Templates
- Journal Entry Basic Approval
- Purchase Order Basic Approval
- Sales Order Basic Approval
- Lead Nurturing
Using Templates
- Navigate to: Customization > Workflow > Workflows > New Workflow
- Select "From Template" instead of "Create New"
- Choose the appropriate template from the selection page
- NetSuite generates a workflow with pre-configured states, actions, conditions, and transitions
- Customize the template to meet your specific business requirements
📚 More Information
For detailed information about workflow templates, refer to the Workflow Template reference in the NetSuite Help Center (Help > SuiteCloud Platform > SuiteFlow Workflows).
SuiteFlow Permissions
Enabling SuiteFlow
Before using SuiteFlow, the feature must be enabled in your account:
- Navigate to: Setup > Company > Enable Features
- Select the SuiteCloud subtab
- Locate the SuiteFlow section
- Check the SuiteFlow checkbox
- Click Save
Workflow Permission
Users need the Workflow permission to create, view, and edit workflows:
- Navigate to: Setup > Users/Roles > Manage Roles
- Edit the desired role (best practice: customize standard roles to create custom roles)
- Go to Permissions subtab > Setup sublist
- Add Workflow permission (only level available is "Full")
- Save the role
⚠️ Additional Permissions Required
In addition to the Workflow permission, users must have sufficient permissions to access the record types associated with the workflows they manage. SuiteFlow enforces role permissions!
💡 Permission Impact
If a user doesn't have access to record data and fields due to their role permissions, this can affect how they interact with forms that have workflows running on them. Ensure appropriate record-level permissions to prevent processing errors!
Walkthrough: Creating Your First Workflow
Let's walk through creating a simple workflow that displays a message when users create a new record. This demonstrates the basic workflow creation process.
Step 1: Create New Workflow
- Navigate to: Customization > Workflow > Workflows > New Workflow
- Enter workflow details:
- Name: "My First Workflow"
- ID: "wf_my_first" (recommended practice!)
- Record Type: Select your target record (e.g., "Performance Review")
- Description: "Display welcome message on new records"
- Release Status: Testing
- Enable Logging: ✓ Checked
- Initiate On: Create (only initiate when creating new records)
Step 2: Configure the Default State
- NetSuite automatically creates a default "State 1" when you save the workflow definition
- Double-click State 1 (or use State tab > Edit icon)
- Rename it to something meaningful: "Data Entry"
- Add a description (optional but recommended): "Display welcome message"
- Click Save
Step 3: Add a Show Message Action
- Make sure State 1 is selected in the workspace
- In the Context Panel, click New Action
- Scroll down and select Show Message
- In the Parameters section, enter your message: "Please complete your annual performance review."
- Leave the Trigger at default (Before User Edit)
- Don't add any conditions (we want this to show every time)
- Click Save
✅ Notice
The action now appears in the Context Panel under the "Before User Edit" trigger section. This tells you exactly when the action will execute!
Step 4: Test Your Workflow
- Navigate to create a new record of your chosen type (e.g., Lists > Custom > Performance Review > New)
- Open in a new tab to keep Workflow Manager available
- Watch as the form loads - your message should appear immediately!
- Click OK to acknowledge and continue
💡 Refreshing Client-Side Actions
Press Ctrl+F5 (Windows) or Cmd+R (Mac) to refresh the browser and re-trigger client-side actions. This is invaluable during development! Changes to client-side actions are reflected immediately upon page reload.
Step 5: Modify and Test Again
- Return to the Workflow Manager
- Edit your Show Message action
- Change "annual" to "quarterly"
- Click Save
- Return to your new record tab and press Ctrl+F5
- The updated message appears immediately!
⚠️ Client vs. Server Action Testing
This "refresh to re-trigger" behavior only works for client-side actions (those using client triggers). Server-side actions require a full save/reload cycle. We'll explore this difference in upcoming modules!
Congratulations! You've just created and tested your first SuiteFlow workflow. While simple, this workflow demonstrates the core concepts you'll use to build much more sophisticated automation.