# NetSuite Workflow Trigger Types, Event Types and Context Types

> Source: https://netray.co/tools/netsuite-workflow-trigger-types-reference
> Publisher: Netray (netray.co), AI and integration engineering for ERP and manufacturing systems.
> Section: Free Tools

## Short answer

Every SuiteFlow trigger with when it fires and what it is good for, plus workflow initiation options, event types and context types.

## Category

netsuite

## Erp

NetSuite

## Audience

- NetSuite administrator
- NetSuite developer
- Business analyst

## Tool

**Kind:** worksheet

**Mode:** reference

**Columns:**

#### Trigger or option

**Key:** trigger

**Type:** text

#### Side

**Key:** side

**Type:** text

#### Group

**Key:** group

**Type:** text

#### Fires when

**Key:** fires_when

**Type:** text

#### Good for

**Key:** good_for

**Type:** text

#### Cannot do / watch out

**Key:** cannot_do

**Type:** text

**Rows:**

**Trigger:** On Entry

**Side:** Server

**Group:** Workflow based

**Fires when:** The record enters a state

**Good for:** Stamping fields, sending notifications once per state

**Cannot do:** Does not run alone; it executes together with the first server trigger for the state, such as Before Record Load.

**Trigger:** On Exit

**Side:** Server

**Group:** Workflow based

**Fires when:** The record leaves a state

**Good for:** Clean-up when moving on, such as clearing a hold flag

**Cannot do:** Not every action supports it; check the action's trigger list.

**Trigger:** Before Record Load

**Side:** Server

**Group:** Record based

**Fires when:** Before the record loads: new, edit or view

**Good for:** Form changes: buttons, display types, locking

**Cannot do:** Runs on every view as well as new and edit, so actions here fire often; not for creating records.

**Trigger:** Before Record Submit

**Side:** Server

**Group:** Record based

**Fires when:** After Save is clicked, before data is written

**Good for:** Validation and setting values saved with the record

**Cannot do:** Related records do not exist yet; the record id is not set on create.

**Trigger:** After Record Submit

**Side:** Server

**Group:** Record based

**Fires when:** After the record is saved to the database

**Good for:** Emails, creating dependent records, Go To Record

**Cannot do:** Set Field Value here forces another save of the record.

**Trigger:** Scheduled

**Side:** Server

**Group:** Time based

**Fires when:** The scheduler runs the workflow by its schedule

**Good for:** Reminders, escalations, timed transitions

**Cannot do:** Not tied to a user event; no form, so UI actions do nothing.

**Trigger:** Before User Edit

**Side:** Client

**Group:** Client

**Fires when:** Form loaded in the browser, before the user changes anything

**Good for:** Messages and form tweaks once the page is open

**Cannot do:** Does not run for CSV import, web services or scripts.

**Trigger:** Before Field Edit

**Side:** Client

**Group:** Client

**Fires when:** Before the user completes a change to a field

**Good for:** Confirm prompts and blocking an edit

**Cannot do:** Client formulas must be written in SuiteScript, not SQL.

**Trigger:** After Field Edit

**Side:** Client

**Group:** Client

**Fires when:** After the user completes a change to a field

**Good for:** Setting dependent fields as the user types

**Cannot do:** UI only; integrations skip it.

**Trigger:** After Field Sourcing

**Side:** Client

**Group:** Client

**Fires when:** After dependent field values are populated

**Good for:** Overriding values sourced from customer or item

**Cannot do:** Fires only on fields that source values.

**Trigger:** Before User Submit

**Side:** Client

**Group:** Client

**Fires when:** After Save is clicked, before Before Record Submit

**Good for:** Confirm before save, last client checks

**Cannot do:** Validation here can be bypassed by any non-UI context.

**Trigger:** Initiation: On Create

**Side:** Server

**Group:** Initiation option

**Fires when:** A record of the base type is created

**Good for:** Approval workflows for new transactions

**Cannot do:** Combine with the trigger type and event types to narrow it.

**Trigger:** Initiation: On Update

**Side:** Server

**Group:** Initiation option

**Fires when:** A record is viewed or updated

**Good for:** Re-approval after changes

**Cannot do:** Includes views when paired with Before Record Load; use event types to limit it.

**Trigger:** Initiation trigger type: All

**Side:** Server

**Group:** Initiation option

**Fires when:** Any triggering event

**Good for:** Quick tests

**Cannot do:** Oracle recommends choosing a more specific trigger type.

**Trigger:** Initiation: based on a schedule

**Side:** Server

**Group:** Initiation option

**Fires when:** Recurring or one-time schedule, against records from a saved search

**Good for:** Nightly or weekly sweeps

**Cannot do:** Needs a saved search on the base record type.

**Trigger:** Event type: Create

**Side:** Server

**Group:** Event type

**Fires when:** Record is created

**Good for:** On Create workflows

**Cannot do:** Pairs with On Create initiation.

**Trigger:** Event type: Edit

**Side:** Server

**Group:** Event type

**Fires when:** Record is edited and saved

**Good for:** Re-approval on change

**Cannot do:** Pairs with On Update initiation.

**Trigger:** Event type: View

**Side:** Server

**Group:** Event type

**Fires when:** Record is opened in view mode

**Good for:** Display-only form logic

**Cannot do:** Before Record Load only.

**Trigger:** Event type: Copy

**Side:** Server

**Group:** Event type

**Fires when:** Record is copied

**Good for:** Clearing fields on copies

**Cannot do:** Check which triggers support it in Event Types Reference.

**Trigger:** Event type: Delete

**Side:** Server

**Group:** Event type

**Fires when:** Record is deleted

**Good for:** Blocking deletes with Return User Error

**Cannot do:** Check which triggers support it in Event Types Reference.

**Trigger:** Event type: Approve

**Side:** Server

**Group:** Event type

**Fires when:** User clicks the standard Approve

**Good for:** Follow-up after native approval

**Cannot do:** Only on record types with native approval; check Event Types Reference for trigger support.

**Trigger:** Event type: Reject

**Side:** Server

**Group:** Event type

**Fires when:** User clicks the standard Reject

**Good for:** Capturing rejection reasons

**Cannot do:** Limited to types with native approval.

**Trigger:** Event type: Direct List Edit

**Side:** Server

**Group:** Event type

**Fires when:** Inline edit from a list (XEDIT)

**Good for:** Catching list edits that skip the form

**Cannot do:** Only fields edited are populated; others read blank.

**Trigger:** Event type: Print

**Side:** Server

**Group:** Event type

**Fires when:** Record is printed

**Good for:** Logging outbound documents

**Cannot do:** Check which triggers support it in Event Types Reference.

**Trigger:** Context: User Interface

**Side:** Server

**Group:** Context type

**Fires when:** A user works in the browser

**Good for:** Limiting form logic to people

**Cannot do:** Excludes imports and integrations.

**Trigger:** Context: CSV Import

**Side:** Server

**Group:** Context type

**Fires when:** Records come in through the Import Assistant

**Good for:** Running or skipping logic on bulk loads

**Cannot do:** Client triggers never run here.

**Trigger:** Context: Web Services

**Side:** Server

**Group:** Context type

**Fires when:** SOAP web services calls

**Good for:** Controlling integration behaviour

**Cannot do:** REST and RESTlet calls are separate contexts.

**Trigger:** Context: Web Store

**Side:** Server

**Group:** Context type

**Fires when:** Orders and records created from the web store

**Good for:** Web order approval rules

**Cannot do:** Only for web store activity.

**Trigger:** Context: Custom Mass Update

**Side:** Server

**Group:** Context type

**Fires when:** Records changed by a mass update

**Good for:** Applying or skipping rules for mass changes

**Cannot do:** Test on a small set first.

**Notes:** 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.

## Content

**Intro:** 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.

**Sections:**

#### How to use it

**Body:** 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.

**Bullets:**

- Form: Before Record Load, Before User Edit
- Validation everywhere: Before Record Submit
- Side effects: After Record Submit
- Timers: Scheduled

#### Execution order

**Body:** 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

**Body:** 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

**Body:** 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.

**Cta:** 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.

**Faq:**

#### What is Before Record Load in NetSuite?

**Answer:** 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?

**Answer:** 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?

**Answer:** 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?

**Answer:** 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.

## Search terms

netsuite workflow triggers, netsuite workflow trigger types, before record load in netsuite, netsuite workflow run on message, netsuite workflow conditions, netsuite workflow event types, netsuite workflow context types

---
Talk to an engineer: https://netray.co/contact?intent=erp_ai | Machine catalog: https://netray.co/agent/catalog.json
