• Home
  • About
    • Leadership
    • Partners
    • Blogroll
  • Force-Squared Blog
    • Tips and Tricks
    • Configuration
    • Development
  • Support
    • Knowledge Base
    • Submit a Case
  • Is It Dreamforce Yet?

X-Squared On Demand

Salesforce solutions delivered

  • Home
  • About
    • Leadership
    • Partners
    • Blogroll
  • Force-Squared Blog
    • Tips and Tricks
    • Configuration
    • Development
  • Support
    • Knowledge Base
    • Submit a Case
  • Is It Dreamforce Yet?
  • Tips and Tricks
  • Configuration
  • Development
You are here: Home / Salesforce CRM / Configuration / Salesforce Order of Execution

Salesforce Order of Execution

November 9, 2008 by David Schach 6 Comments

I came across this page in the Apex documentation and wanted to share it with everyone. So many people have asked about this in the past, so it seems a good idea to publicize it:

http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_triggers_order_of_execution.htm

Triggers and Order of Execution

When a record is saved with an insert, update, or upsert statement, the following events occur in order:

1. The original record is loaded from the database (or initialized for an insert statement)
2. The new record field values are loaded from the request and overwrite the old values
3. All before triggers execute
4. System validation occurs, such as verifying that all required fields have a non-null value, and running any user-defined validation rules
5. The record is saved to the database, but not yet committed
6. All after triggers execute
7. Assignment rules execute
8. Auto-response rules execute
9. Workflow rules execute
10. If there are workflow field updates, the record is updated again
11. If the record was updated with workflow field updates, before and after triggers fire one more time (and only one more time)
12. Escalation rules execute
13. All DML operations are committed to the database
14. Post-commit logic executes, such as sending email

Additional Considerations

Please note the following when working with triggers:

* When Enable Validation and Triggers from Lead Convert is selected, if the lead conversion creates an opportunity and the opportunity has Apex before triggers associated with it, the triggers run immediately after the opportunity is created, before the opportunity contact role is created. For more information, see “Customizing Lead Settings” in the Salesforce online help.
* If you are using before triggers to set Stage and Forecast Category for an opportunity record, the behavior is as follows:
o If you set Stage and Forecast Category, the opportunity record contains those exact values.
o If you set Stage but not Forecast Category, the Forecast Category value on the opportunity record defaults to the one associated with trigger Stage.
o If you reset Stage to a value specified in an API call or incoming from the user interface, the Forecast Category value should also come from the API call or user interface. If no value for Forecast Category is specified and the incoming Stage is different than the trigger Stage, the Forecast Category defaults to the one associated with trigger Stage. If the trigger Stage and incoming Stage are the same, the Forecast Category is not defaulted.

Share this:

  • Click to share on X (Opens in new window) X
  • Click to share on LinkedIn (Opens in new window) LinkedIn
  • Click to share on Facebook (Opens in new window) Facebook
  • Click to share on Pocket (Opens in new window) Pocket
  • Click to email a link to a friend (Opens in new window) Email

Related

Filed Under: Configuration, Development, Native Application Tagged With: Apex, Configuration, Force.com Builder

← Upcoming Plans Project: Lookup to Picklist →

Comments

  1. Dinh Khanh Nguyen says

    April 8, 2009 at 04:11

    Hallo,

    In the your list of order of excecution is the Auto Response Rules included.

    I think, it is not correct for “Web2Lead” Auto Response Rules. Those rules are only executed upon lead creation. But not for lead insert or update action.

    Am i right ?
    Best wishes
    Dinh Khanh Nguyen

    Reply
    • David Schach says

      April 9, 2009 at 19:50

      The order is correct.
      Creation is the same as insert. Web2Lead only creates leads and does not update them. So Web2Lead autoresponse rules only fire upon lead insert/create… and cannot fire on update because W2L cannot update leads.
      Does that make sense?

      Reply
  2. Giorgio Peresempio says

    May 31, 2017 at 06:45

    f have in process builder with more criteria that update record fields and more ‘evaluate next criteria’ immediate action the Validation rules are re calculate each time that a immediate action is execute in the same transaction of process builder? I.e. if in process builder ‘A’ have 3 immediate action one for each Cirteria with evaluate next criteria so the Validation rule are calculated 3 times for each transaction of process builder A? Or the validation rule are evaluate after the transaction of process builder is completed? In other words, the validation rule are calculated only after the commit of the process builder is done or each time a immediate action is executed into the process build?

    Reply
  3. Amina says

    July 16, 2019 at 03:29

    When are approval processes executed?

    Reply
    • David Schach says

      January 30, 2021 at 22:03

      Approval processes aren’t automatically started (except through Apex, which is fired via a Trigger or some other event) so they’re not in the order of events. This list is things that happen when a record is created, updated, etc. Approval processes update records, so they actually cause other actions to happen.

      Reply

Trackbacks

  1. Salesforce: Triggers and Order of Execution | Vu Chi Hieu says:
    July 3, 2014 at 23:44

    […] http://www.x2od.com/2008/11/09/salesforce-order-of-execution […]

    Reply

Share Your ThoughtsCancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Find Us Online

  • Twitter
  • Facebook
  • LinkedIn
  • RSS

Subscribe

RSS Feed Comments

Subscribe via Email

Enter your email address to subscribe to this blog and receive notifications of new posts by email.

Join 164 other subscribers

Copyright © 2008–2025 X-Squared On Demand · Genesis Framework by StudioPress · WordPress · Log in