NetSuite Workflow Trigger Types, Event Types and Context Types
This reference lists the eleven SuiteFlow triggers in NetSuite, split into server and client, with when each fires and what it suits. It adds the initiation options, event types and context types that decide whether a workflow starts at all.
| Trigger or option | Side | Group | Fires when | Good for | Cannot do / watch out |
|---|---|---|---|---|---|
On Entry | Server | Workflow based | The record enters a state | Stamping fields, sending notifications once per state | Does not run alone; it executes together with the first server trigger for the state, such as Before Record Load. |
On Exit | Server | Workflow based | The record leaves a state | Clean-up when moving on, such as clearing a hold flag | Not every action supports it; check the action's trigger list. |
Before Record Load | Server | Record based | Before the record loads: new, edit or view | Form changes: buttons, display types, locking | Runs on every view as well as new and edit, so actions here fire often; not for creating records. |
Before Record Submit | Server | Record based | After Save is clicked, before data is written | Validation and setting values saved with the record | Related records do not exist yet; the record id is not set on create. |
After Record Submit | Server | Record based | After the record is saved to the database | Emails, creating dependent records, Go To Record | Set Field Value here forces another save of the record. |
Scheduled | Server | Time based | The scheduler runs the workflow by its schedule | Reminders, escalations, timed transitions | Not tied to a user event; no form, so UI actions do nothing. |
Before User Edit | Client | Client | Form loaded in the browser, before the user changes anything | Messages and form tweaks once the page is open | Does not run for CSV import, web services or scripts. |
Before Field Edit | Client | Client | Before the user completes a change to a field | Confirm prompts and blocking an edit | Client formulas must be written in SuiteScript, not SQL. |
After Field Edit | Client | Client | After the user completes a change to a field | Setting dependent fields as the user types | UI only; integrations skip it. |
After Field Sourcing | Client | Client | After dependent field values are populated | Overriding values sourced from customer or item | Fires only on fields that source values. |
Before User Submit | Client | Client | After Save is clicked, before Before Record Submit | Confirm before save, last client checks | Validation here can be bypassed by any non-UI context. |
Initiation: On Create | Server | Initiation option | A record of the base type is created | Approval workflows for new transactions | Combine with the trigger type and event types to narrow it. |
Initiation: On Update | Server | Initiation option | A record is viewed or updated | Re-approval after changes | Includes views when paired with Before Record Load; use event types to limit it. |
Initiation trigger type: All | Server | Initiation option | Any triggering event | Quick tests | Oracle recommends choosing a more specific trigger type. |
Initiation: based on a schedule | Server | Initiation option | Recurring or one-time schedule, against records from a saved search | Nightly or weekly sweeps | Needs a saved search on the base record type. |
Event type: Create | Server | Event type | Record is created | On Create workflows | Pairs with On Create initiation. |
Event type: Edit | Server | Event type | Record is edited and saved | Re-approval on change | Pairs with On Update initiation. |
Event type: View | Server | Event type | Record is opened in view mode | Display-only form logic | Before Record Load only. |
Event type: Copy | Server | Event type | Record is copied | Clearing fields on copies | Check which triggers support it in Event Types Reference. |
Event type: Delete | Server | Event type | Record is deleted | Blocking deletes with Return User Error | Check which triggers support it in Event Types Reference. |
Event type: Approve | Server | Event type | User clicks the standard Approve | Follow-up after native approval | Only on record types with native approval; check Event Types Reference for trigger support. |
Event type: Reject | Server | Event type | User clicks the standard Reject | Capturing rejection reasons | Limited to types with native approval. |
Event type: Direct List Edit | Server | Event type | Inline edit from a list (XEDIT) | Catching list edits that skip the form | Only fields edited are populated; others read blank. |
Event type: Print | Server | Event type | Record is printed | Logging outbound documents | Check which triggers support it in Event Types Reference. |
Context: User Interface | Server | Context type | A user works in the browser | Limiting form logic to people | Excludes imports and integrations. |
Context: CSV Import | Server | Context type | Records come in through the Import Assistant | Running or skipping logic on bulk loads | Client triggers never run here. |
Context: Web Services | Server | Context type | SOAP web services calls | Controlling integration behaviour | REST and RESTlet calls are separate contexts. |
Context: Web Store | Server | Context type | Orders and records created from the web store | Web order approval rules | Only for web store activity. |
Context: Custom Mass Update | Server | Context type | Records changed by a mass update | Applying or skipping rules for mass changes | Test on a small set first. |
Trigger names and descriptions follow Oracle help 'Workflow Triggers' and the server and client trigger references; event types follow 'Event Types Reference'. Initiation options are On Create and On Update (On Update covers viewing as well as updating). Actions on server triggers use SQL formulas; actions on client triggers use SuiteScript formulas.
Workflow skipping some records?
Send us the initiation settings and the record source and we will find the missing event type or context.
Optional. The tool and every export work without this. No spam.
How to use it
Start with the job. Changing the form means Before Record Load or a client trigger. Validating data that must hold for every source means Before Record Submit. Doing something after the data is safe, such as an email or a related record, means After Record Submit. Time-based work means Scheduled. Then check the initiation rows: a workflow only runs its triggers if it initiated on the right event, with the right event type and context.
- Form: Before Record Load, Before User Edit
- Validation everywhere: Before Record Submit
- Side effects: After Record Submit
- Timers: Scheduled
Execution order
Viewing a record runs Before Record Load. Editing runs Before Record Load, then on save Before User Submit in the browser, then Before Record Submit and After Record Submit on the server. Moving from state A to state B runs On Exit for A, then On Entry for B. On Entry never runs alone; it runs with the first server trigger for that state. There is no fixed order across all triggers: the workflow definition and the record events decide.
Worked example: approval that also covers imports
A PO approval workflow initiates On Create and On Update, trigger type Before Record Submit, event types Create and Edit, contexts User Interface and CSV Import. Validation that a department is set uses Return User Error on Before Record Submit, so it blocks both the form and imports. A Confirm on Before User Submit adds a prompt in the browser only. If the CSV context were left out, imported POs would skip approval entirely, which is the most common audit finding with these workflows.
How to check the result in the system
Open Customization > Workflow > Workflows, edit the workflow and review the Initiation settings: Event Based or Scheduled, On Create, On Update, Trigger Type, Event Types and Contexts. Enable logging, run the event in a sandbox, then check the Workflow History subtab and the workflow execution log to see which triggers fired and which conditions failed.
Frequently Asked Questions
What is Before Record Load in NetSuite?
A server trigger that runs before a record loads, whether the user clicks New, Edit or simply views it. It is used for form changes such as adding or removing buttons, changing display types and locking. Because views trigger it too, avoid creating records on it.
What are the client triggers in a NetSuite workflow?
Before User Edit, Before Field Edit, After Field Edit, After Field Sourcing and Before User Submit. They run in the browser while a user edits the form, so they do not run for CSV import, web services or scripts, and their formulas use SuiteScript.
What is the difference between On Create and On Update?
On Create starts the workflow when a record of the base type is created. On Update starts it when an existing record is viewed or updated. Combine either with a trigger type, event types and contexts to control exactly when a new workflow instance begins.
How do I show a message to the user from a workflow?
Use the Show Message action on a client trigger, by default Before User Edit, or Return User Error when you need to stop the save. Show Message is information only and never runs for imports or integrations, since there is no browser.
If you want to see, in plain English, which workflows touch a record and why one did not fire, we can set up a private AI layer over your NetSuite configuration and history.
Related Tools
NetSuite SuiteFlow Workflow Action Types Reference
Every workflow action in SuiteFlow with where it runs, which triggers support it, its main settings and the gotcha to know before you use it.
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 SuiteFlow Workflow Action Types ReferenceEvery workflow action in SuiteFlow with where it runs, which triggers support it, its main settings and the gotcha to know before you use it.
- NetSuite Manufacturing and Item Record Types ReferenceFind the record id for assembly items, BOMs, revisions, routings and the manufacturing transactions, with a note on what each is for.
- NetSuite Workflow Troubleshooting ChecklistA five-step diagnostic for SuiteFlow workflows that do not initiate, skip actions or behave differently in imports and integrations.
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.
- 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.
- 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.