NetSuite SuiteFlow Workflow Action Types Reference
A lookup of every SuiteFlow workflow action in NetSuite with the triggers it supports, its default trigger and what to watch for. Use it when designing approval, locking and notification workflows.
| Action | What it does | Server or client | Supported triggers (default in brackets) | Key parameters | Typical use | Gotcha |
|---|---|---|---|---|---|---|
Add Button | Adds a button to the record form | Server | On Entry, Before Record Load (default) | Label, Save record first | Approve and Reject buttons on a vendor bill approval state | A button does nothing by itself: add a transition triggered by that button. |
Confirm | Shows a confirmation dialog with OK and Cancel | Client | Before Field Edit, Before User Submit (default) | Message text | Confirm before saving an order over a credit limit | Client only: never runs for CSV import, web services or scripts. |
Create Line | Adds a line to a sublist on the record | Server | On Entry (default), Before Record Load, Before Record Submit, After Record Submit, Scheduled | Sublist, field values for the new line | Add a handling charge line to qualifying orders | Check sublist and field support for your record type before relying on it. |
Create Record | Creates a new record of another type | Server | On Entry (default), Before Record Load, Before Record Submit, After Record Submit, Scheduled | Record type, field values, store result in field | Create a task or phone call when an order goes on hold | Running it on Before Record Load creates a record every time the form loads. |
Go To Page | Sends the user to another NetSuite page | Server | On Entry, After Record Submit (default) | Target page | Return the user to a dashboard after approval | Only meaningful in the UI; no user means no redirect. |
Go To Record | Opens another record after save | Server | On Entry, After Record Submit (default) | Record type, record (field or specific), open in edit mode | Open the related item fulfillment after approving an order | UI only, like Go To Page. |
Initiate Workflow | Starts another workflow on the current record | Server | On Entry (default), Before Record Load, Before Record Submit, After Record Submit, Scheduled | Workflow, workflow field values | Hand off to a separate notification workflow | Watch for loops where workflows start each other. |
Lock Record | Prevents users from editing the record while in the state | Server | On Entry, Before Record Load (default) | Condition only | Lock a vendor bill after final approval | Lock lasts only while the record is in that state; put it in the final state. |
Remove Button | Hides a standard button on the form | Server | On Entry, Before Record Load (default) | Button to remove (for example Edit, Approve) | Remove the standard Approve button so only the workflow can approve | Hides the button only; other paths such as list edit may still change the record. |
Return User Error | Stops the action with an error message | Server and client | Server: On Entry, Before Record Load, Before Record Submit (default). Client: Before User Edit, Before Field Edit, After Field Edit, After Field Sourcing, Before User Submit | Error text | Block saving a PO without a department | On Before Record Submit it blocks every context, including CSV import and integrations. |
Send Campaign Email | Sends a campaign email to a recipient | Server | On Entry (default), After Record Submit, Scheduled | Campaign event, recipient field | Lead nurture message when a lead reaches a status | Needs Marketing Automation and a campaign event set up. |
Send Email | Sends an email | Server | On Entry (default), After Record Submit, Scheduled | Sender, recipient, subject and body or template, include record link | Notify the approver that a bill waits for approval | Use After Record Submit for change notices so mail is not sent for a failed save. |
Set Field Display Label | Changes a field label on the form | Server and client | Server: On Entry, Before Record Load (default). Client: Before User Edit, Before Field Edit, After Field Edit, After Field Sourcing | Field, new label | Rename a field per state, such as Requested Date | Form display only; the field id does not change. |
Set Field Display Type | Changes how a field shows on the form | Server and client | Server: On Entry, Before Record Load (default). Client: Before User Edit, Before Field Edit, After Field Edit, After Field Sourcing | Field, display type (for example inline, hidden, disabled) | Make amount read-only after approval | UI only; integrations can still set the field. |
Set Field Mandatory | Makes a field mandatory on the form | Server and client | Server: On Entry, Before Record Load (default). Client: Before User Edit, Before Field Edit, After Field Edit, After Field Sourcing | Field, mandatory flag | Require a reason code before rejecting | Enforced in the form; use Return User Error on Before Record Submit to enforce everywhere. |
Set Field Value | Sets a field to a static value, another field or a formula | Server and client | On Entry (default), Before Record Load, Before Record Submit, After Record Submit, Scheduled; client: Before User Edit, Before Field Edit, After Field Edit, After Field Sourcing, Before User Submit | Field, value source (static, field, formula) | Stamp approver and approval date | On After Record Submit NetSuite has to save the record again; prefer Before Record Submit. |
Show Message | Shows an alert to the user | Client | Before User Edit (default), Before Field Edit, After Field Edit, After Field Sourcing | Message text | Warn that the customer is on credit hold | Information only; does not stop the save. |
Subscribe To Record | Subscribes a user to changes on the record | Server | On Entry (default), Before Record Load, Before Record Submit, After Record Submit, Scheduled | Subscriber (field or specific user) | Keep the sales rep informed about a case | Recipients still need access to the record. |
Transform Record | Creates a record from the current one, like a standard transform | Server | On Entry, After Record Submit, Scheduled | Target record type, go to record after transform, store result in field | Bill a sales order automatically after approval | Only transforms NetSuite supports for the record type, such as sales order to invoice. |
Custom Action | Runs a workflow action script | Server | On Entry (default), Before Record Load, Before Record Submit, After Record Submit, Scheduled | Workflow action script, parameters, store result in field | Logic SuiteFlow cannot express, such as a SuiteQL lookup | Script governance applies; the script record and deployment must exist first. |
Action names follow Oracle help 'Workflow Actions Overview'; triggers follow the 'Workflow Triggers Quick Reference' table. Client triggers run only while a user works in the record form. Supported triggers can change by release, so check the action's help page for yours.
Workflow not firing the way you expect?
Send us the states, actions and triggers and we will point out the trigger or context that blocks it.
Optional. The tool and every export work without this. No spam.
How to use it
Find the action, then read the supported triggers column before you add it to a state. The default trigger, shown in brackets, is what NetSuite preselects when you create the action. Server actions run on record events (load, submit, after submit), on state entry or on a schedule; client actions run in the browser as the user edits the form. Some actions, like Set Field Value and Return User Error, work both ways, which is why the same action can behave differently in the UI and in an integration.
- Form changes: Set Field Display Type, Set Field Display Label, Set Field Mandatory, Add or Remove Button
- Validation: Return User Error, Confirm
- Data: Set Field Value, Create Record, Create Line, Transform Record
- Notifications: Send Email, Show Message, Subscribe To Record
Worked example: vendor bill approval
State Pending Approval: Remove Button (Approve) on Before Record Load, Add Button Approve and Add Button Reject on Before Record Load, Send Email to the approver On Entry. Transitions on each button go to Approved or Rejected. State Approved: Set Field Value approvalstatus to Approved on Entry, Set Field Display Type for amount to inline, Lock Record on Before Record Load. State Rejected: Set Field Mandatory on a rejection reason field, Return User Error on Before Record Submit if the reason is empty.
Gotchas
Client triggers do not run when a record is changed by CSV import, web services, RESTlets or scripts, so any validation that must hold everywhere belongs on Before Record Submit. Set Field Value on After Record Submit forces another save of the record. Lock Record only applies while the record sits in that state. Create Record on Before Record Load creates a record each time someone views the form. Button actions need a transition that uses the button, or clicking it only reloads the page.
How to check the result in the system
Customization > Workflow > Workflows, open the workflow, select a state and the action to see its trigger and conditions. Turn on Enable Logging on the workflow and test on a record in a sandbox, then read the Workflow History subtab on the record and the execution log on the workflow to see which actions ran, on which trigger and why others were skipped.
Frequently Asked Questions
How does Lock Record work in a NetSuite workflow?
Lock Record makes the record read-only for users while it remains in the state that holds the action. Its default trigger is Before Record Load and it can also run On Entry. Put it in the final approved state so the lock stays after approval.
What is the Go To Record action used for?
It sends the user to another record after save, such as the invoice created by a Transform Record action. It supports On Entry and After Record Submit (the default) and only matters in the UI, since integrations have no browser to redirect.
Which trigger should I use for Set Field Value?
On Entry is the default and suits state stamps such as approver and date. Use Before Record Submit when the value must be saved with the current save. Avoid After Record Submit when you can, because NetSuite must save the record a second time.
Can workflow actions run during CSV import?
Server-side actions can, if the workflow's context settings allow CSV Import. Client-side actions such as Confirm and Show Message cannot, because they only run while a user edits the form in the browser.
If you want approvers to ask about stuck transactions in plain English and see where in the workflow they sit, we can set up a private AI layer over NetSuite for that.
Related Tools
NetSuite Workflow Trigger Types and Event Types Reference
Every SuiteFlow trigger with when it fires and what it is good for, plus workflow initiation options, event types and context types.
NetSuiteNetSuite Script and Workflow Inventory Worksheet
An editable inventory of the scripts, workflows and scheduled jobs in your NetSuite account, with owners, schedules, daily run minutes and risk level.
NetSuiteNetSuite Saved Search Formula Functions Reference
Every common SQL function for Formula (Text), (Numeric), (Date), (Currency) and (Percent) fields, with syntax and an example using real NetSuite field ids.
More NetSuite tools
See all- NetSuite Saved Search Formula Generator
- NetSuite CSV Import Template Guide
- NetSuite Role Permission Matrix Worksheet
- NetSuite Inventory Costing Method Reference
- NetSuite Month End Close Checklist
- NetSuite License Cost Estimator
- NetSuite User Access Request Form Template
- NetSuite Custom Record Design Spec Template
- NetSuite SuiteScript Deployment Handover Template
Keep exploring
Free tools
- NetSuite Workflow Trigger Types and Event Types ReferenceEvery SuiteFlow trigger with when it fires and what it is good for, plus workflow initiation options, event types and context types.
- NetSuite Workflow Troubleshooting ChecklistA five-step diagnostic for SuiteFlow workflows that do not initiate, skip actions or behave differently in imports and integrations.
- NetSuite Vendor Bill Approval Workflow Design TemplateFill in tier limits and approvers to get a SuiteFlow design document with states, transitions, approval status values, emails and test cases.
ERP fixes and how-tos
- How to build a workflow in NetSuite with SuiteFlowStep-by-step guide to building a NetSuite SuiteFlow workflow: record type, trigger, states, transitions, actions, and why workflows silently do not fire.
- How to Set Up Approval Routing in NetSuiteHow to configure NetSuite approval routing for purchase orders, vendor bills, and expense reports using native approval limits or SuiteFlow workflows.
- NetSuite Workflow Not Triggering: Troubleshooting ChecklistWhy a NetSuite workflow does not fire: release status, event type, execution context, conditions, record scope and subsidiary. A checklist to find the cause.