I have a process to insert records into salesforce using dataloader command line. The process works fine. However, there's a before trigger on the object which does not seem to be firing for this process.

Does dataloader CLI not run triggers? Is there a way to get it to make it run triggers?

  • Dataloader does fire triggers Nov 30, 2018 at 14:42
  • 2
    Many organizations configure their automation not to run against a specific integration or bulk data load user. Yours might be one of them; you'd need to review your trigger code or consult your colleagues to find out.
    – David Reed
    Nov 30, 2018 at 14:45

1 Answer 1


Yes, fundamentally, operations using the Data Loader do fire triggers.

However, many organizations find it expedient to disable triggers on at least a subset of bulk data load or integration operations. While this can be implemented in many different ways, it's fairly common to do so by adding a check in the trigger or trigger handler code to see whether the trigger should run in the current context.

This check might look at:

  • The current user name or profile name (not best practice).
  • The value of a hierarchy custom setting, which would be configured specially for the integration or data load user.
  • The value of a Custom Permission assigned (or not assigned) to the current user.

You can do a quick check in your org to determine whether one of these common patterns is being used simply by inspecting your trigger code in Developer Console or the Setup UI, if you have some knowledge of Apex. Take a look at the first few lines of the trigger, or, if your org uses a handler pattern, at the first lines of the handler methods for the before insert event.

If you're not comfortable inspecting Apex, speak with a colleague who's familiar with the architecture. The method you'd need to use to address this issue would depend on exactly how your organization has implemented trigger gating.

Of course, this may not be the actual issue at all. It's possible, for example, that your before trigger is swallowing an exception - silently failing, while allowing the operation to succeed. It's hard to know without reviewing your org and your debug logs in detail.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .