How to Show Who Entered a NetSuite Sales Order with a Custom Field and a Workflow

Add an Order Entered By transaction body field and a SuiteFlow Set Field Value action that fills it with the current user when a sales order is created.

The quick answer

Create a transaction body field called Order Entered By: Type List/Record, List/Record Employee, Store Value checked, applied to Sale, on the Main subtab with Display Type Inline Text. Then create a workflow on Transaction records with the Sales Order sub type that initiates On Create only. On its start state, add a Set Field Value action for Order Entered By with the value From Field: Current Record, User. When someone enters and saves a new sales order in the browser, the field holds their name. Because the workflow only starts on create, later edits don't make it overwrite the value.

The screenshots show sample data. The company, people, customer and orders are fictional. Use your own records and values when following the steps.

Before you start

You need the Administrator role, or a role that can create custom transaction body fields and workflows and enter sales orders. SuiteFlow has to be enabled. If you enter orders on a custom sales order form, check after step 02 that the new field is shown on that form.

In this example, Kestrel Point Supply Co. has sales orders that carry a Sales Rep, but the person who typed the order in is often someone else. NetSuite does keep that person: System Notes log who created the order, and transaction searches have a standard Created By field. Neither shows on the order form, though, and System Notes are a change log rather than a field on the transaction. A stored custom field puts the person on the order itself, where anyone opening it can see it. Imani Castellano, the administrator, adds a field for it and a workflow that fills it in. She leaves the workflow in Testing while she builds it, so it only runs for her as its owner.

01. See that the order doesn't show who entered it

Open sales order SO1043 for Fernhill Veterinary Clinic. It's in Recent Records here; you can also find it at Transactions > Sales > Enter Sales Orders > List. Sales Information shows Sales Rep Theo Marchetti. Nothing on the order says who entered it.

SO1043 has a Sales Rep and no field for the person who entered it.

02. Create the Order Entered By field

Go to Customization > Lists, Records, & Fields > Transaction Body Fields > New. Enter Order Entered By as the Label and _order_entered_by as the ID. NetSuite adds the custbody prefix when you save. Choose List/Record as the Type and Employee as the List/Record. Leave Store Value checked. Without it the value isn't saved on the order, so you couldn't search or report on it.

Type List/Record, List/Record Employee, Store Value checked.

Don't call the field just Created By. Transaction searches already have a standard Created By field, and two fields with the same label are easy to mix up in a saved search.

On the Applies To subtab, check Sale. Sale covers sales transactions in general, so the field can also show on invoices or cash sales. The workflow below only fills it on sales orders.

Sale is the only box checked on Applies To.

On the Display subtab, choose Main as the Subtab and Inline Text as the Display Type. Main puts the field with the header fields above the subtabs. Inline Text shows the value as read-only text, so nobody can type over it on the form. That only protects the form; imports, integrations and scripts can still set the field.

Subtab Main, Display Type Inline Text.

Click Save. The Transaction Body Fields list shows Order Entered By with the ID custbody_order_entered_by, Type List/Record, Tab Main and Sale Yes.

The saved field is custbody_order_entered_by.

03. Create the workflow

Go to Customization > Workflow > Workflows > New. Enter Set Order Entered By as the Name. Type Transaction in Record Type and press Tab, then select Sales Order in Sub Types. Leave Release Status at Testing so it only runs for you, the workflow owner, while you try it. Initiation stays Event Based. Execute as Admin stays unchecked; it changes what the workflow is allowed to do, not who User refers to.

Name, Record Type Transaction, the Sales Order sub type, and Release Status Testing.

Under Event Definition, check On Create and leave On View Or Update unchecked. If the workflow also ran on view or update, every edit would set the field again to whoever edited the order last. Click Save.

On Create only.

The workflow designer opens with one state, State 1, marked START. The Workflow panel shows Record Type Transaction (Sales Order), Release Status Testing and Events On Create.

One state, in Testing, starting on create.

04. Add the Set Field Value action

Double-click State 1 to open the Workflow State window. On its Actions subtab, click New Action and choose Set Field Value. The Workflow Action form opens. Change Trigger On from Entry to After Record Submit, so the action runs when the order is saved.

Trigger On is After Record Submit.

After Record Submit runs after the order is saved and then updates it. Before Record Submit also works and writes the value in the same save, which skips that second update. This example uses After Record Submit.

In the Parameters section, choose Order Entered By in Field. Under Value, select From Field, keep Record (Join Field) at Current Record and choose User in Field. User is the person the workflow is running for. For an order entered in the browser, that's whoever saved it.

Value From Field: Current Record, User.

Click Save on the action. State 1's Actions list now has one row: Set Field Value, Order Entered By=User, Trigger On After Record Submit. Click Save on the state.

One Set Field Value action on State 1.

With State 1 selected, the State panel lists Set Field Value under Record Save, After Record Submit. Hovering the action shows its parameters.

The State panel groups the action under Record Save, After Record Submit.

05. Enter a sales order and save it

Go to Transactions > Sales > Enter Sales Orders and choose Fernhill Veterinary Clinic as the Customer. Sales Rep fills in as Theo Marchetti. Order Entered By shows in Sales Information, still blank.

Before Save, Order Entered By is empty.

On the Items subtab, add 6 Exam Table Paper Roll at 18.50. The order totals 111.00.

6 Exam Table Paper Roll at 18.50.

Click Save. SO1044 opens. Order Entered By reads Imani Castellano, the user who saved it, and Sales Rep is still Theo Marchetti.

Order Entered By filled in on save.

06. Check Workflow History and edit the order

On SO1044, open the System Information subtab and click Workflow History. Here Set Order Entered By is listed once, with State 1 and the times it entered and exited the state. How much history you see depends on the workflow's Keep Instance And History setting, which was left at Only When Testing.

The workflow ran once, when the order was created.

Click Edit and type Deliver to the rear entrance in Memo.

A later edit: a new Memo on SO1044.

Click Save. Order Entered By still reads Imani Castellano. The memo changed, the field didn't.

After the edit, Order Entered By hasn't changed.

Open System Information > Workflow History again. It still lists one Set Order Entered By row. With On View Or Update unchecked, the edit didn't start the workflow, so this workflow didn't touch the field.

Still one run after the edit.

Check the result (example values)

  1. Before Save, Order Entered By on the new order was blank.
  2. After Save, SO1044 showed Order Entered By Imani Castellano and Sales Rep Theo Marchetti.
  3. After the memo edit, Order Entered By still reads Imani Castellano, and Workflow History still lists the single Set Order Entered By run.

The workflow is in Testing, so right now it only fills the field on orders its owner enters. Other users see the field, but it stays blank on their orders until you set Release Status to Released. It also doesn't fill orders that already exist. For orders created by CSV import, web services or scripts, User is whoever ran that process, so test each channel you rely on.

Once orders carry the value, Order Entered By can be used in transaction saved searches as a result column and a filter, and in report types that offer custom transaction body fields, subject to field and role access.

The same Workflow Action form can also stop a save instead of filling a field. See how to block a purchase order save with a workflow error.

Common questions

What's the difference between Sales Rep and Order Entered By?

Sales Rep is the employee who owns the sale or the customer relationship, and it often fills in from the customer. Order Entered By is the person who saved the order. They're often different people, which is why the example order shows Theo Marchetti as Sales Rep and Imani Castellano as the person who entered it.

Why not use the standard Created By field or System Notes?

They may already be enough. Transaction searches have a Created By field, and System Notes log who created the order. Neither shows on the sales order form, though, and a stored custom field puts the person on the order where anyone opening it can see it, and gives you one field to use the same way in searches and reports.

Should Set Field Value run on After Record Submit or Before Record Submit?

Both work for this. After Record Submit, used here, runs once the order is saved and then updates it with the user. Before Record Submit writes the value as part of the same save, which avoids that second update of the record. Pick one and test it with the way your team enters orders.

Why does my field change every time someone edits the order?

The workflow probably also initiates On View Or Update. Then every edit starts it again and sets the field to whoever saved last. Check only On Create, so the workflow runs once when the order is created and later edits leave the value alone.

How do I fill Order Entered By on existing sales orders?

The workflow doesn't backfill. It only runs when an order is created. For older orders, take the creator from System Notes or the standard Created By search field and load it with a one-time CSV update or mass update. Running the workflow against old orders would record the person running the update, not the person who entered them.

How do I report on who entered sales orders?

Create a Transaction saved search with Type Sales Order and Main Line true, then add Order Entered By as a result column. You can also filter or summarize by it, for example to count orders each person entered this month. Orders created by CSV imports, web services or scripts may show the integration or process user, so check those before you trust the counts.