Book a Free Consultation
All resources
Workflow AutomationSuiteFlowTroubleshooting

Why Your NetSuite Workflow Is Firing Twice on the Same Record

July 1, 2026 · Updated August 15, 2026 · 6 min read· Part of the 100 NetSuite Tips series

Need help applying this in your account?

Quick answer

A NetSuite workflow that fires twice on the same record save has one of two causes. The first is that both Before Record Submit and After Record Submit triggers are selected in a single workflow: these are separate trigger events, so selecting both fires the workflow twice per save. Fix this by selecting only the trigger that matches when the workflow logic should run. The second cause is that a User Event script or another workflow modifies the record after the first workflow fires, triggering a second save that re-evaluates the workflow. Identify this by checking whether the workflow's entry condition prevents it from re-firing on records it has already processed. Adding an entry condition that checks a status field or a custom checkbox set by the workflow on first execution is the standard fix for the second scenario.

Using Google AI Search? Add SuitePacific as a Preferred Source so we show up in your AI answers.
Add as Preferred Source

How Do You Know a Workflow Is Firing Twice?

A workflow fires twice on the same record save. Approval emails go out in duplicate. Field updates happen twice. A workflow that should create one record creates two.

This is one of the most common workflow issues in NetSuite accounts, and the cause is almost always in the trigger configuration, not a bug in NetSuite itself.

TWO CAUSES OF DOUBLE-FIRE Cause 1: Both triggers selected User saves record Before Record Submit After Record Submit Workflow fires ① Workflow fires ② Fix: pick one trigger, remove the other Cause 2: User Event creates a second save 1. User saves record 2. Workflow fires ① 3. afterSubmit script updates record 4. Workflow fires again ② Fix: add an entry condition to the workflow
Cause 1 is visible in the trigger tab. Cause 2 requires checking what User Event scripts are deployed on the same record type.

Why Does Selecting Both Submit Triggers Cause a Workflow to Fire Twice?

When configuring a workflow's trigger, NetSuite lets you select multiple trigger events. The most common double-fire pattern is selecting both Before Record Submit and After Record Submit on the same workflow.

Both triggers fire on every save:

  • Before Record Submit fires before the record is committed to the database
  • After Record Submit fires after the record is committed

If both are selected, the workflow runs once for each trigger, two executions per save, every time that record type is saved.

The fix: Choose one trigger and remove the other. In most cases:

  • Use Before Record Submit if the workflow needs to validate or modify the record before it is saved
  • Use After Record Submit if the workflow should react to a completed save (sending notifications, creating related records, calling external systems)

One workflow should serve one purpose. If the logic genuinely needs to run at both points in the save cycle, that is usually a sign it should be split into two separate workflows, each with a single trigger.

How Does a User Event Script Cause a Workflow to Fire Twice?

This is a less obvious but equally common cause. The sequence looks like this:

  1. User saves the record
  2. Workflow fires (first execution)
  3. A User Event script on the same record type fires and updates the record
  4. That update triggers a second save
  5. Workflow fires again (second execution)

The workflow itself is configured correctly, it only fires once per save. But because another process is triggering a second save programmatically, the workflow runs again on that second save.

How to identify this: Check what User Event scripts are deployed on the same record type. Look for any afterSubmit scripts that call record.submitFields() or record.load() + save() on the same record. If one of those updates is triggering the workflow's Entry Condition, it will re-fire the workflow.

The fix options:

  • Add an Entry Condition to the workflow so it only fires when a specific field changes to a specific value, not on every save. If the User Event script does not touch that field, the workflow will not re-fire.
  • Modify the User Event script to skip its update when the save originated from a workflow context (check runtime.executionContext).
  • Restructure the workflow or script so they do not create a save loop.

What Is the Underlying Cause of Double-Firing Workflows?

Every workflow should have a clear answer to the question: "Under exactly what conditions should this run?"

A workflow without a precise Entry Condition, combined with multiple save triggers, is an open invitation to double-firing. The narrower the trigger configuration and entry condition, the more predictable the workflow's behavior.

One workflow. One trigger. One clear entry condition. Keep them separate.

Need help applying this in your account?

We work with post-go-live NetSuite accounts every day. Tell us what you're working on.