Order of execution
This step is not available for automation
Loads the original record from the database or initializes the record for an upsert statement.
Not yet implemented in the Org Documentor.
Loads the new record field values from the request and overwrites the old values.
If the request came from a standard UI edit page, Salesforce runs system validation to check the record for:
Executes record-triggered flows that are configured to run before the record is saved.
Executes all before triggers.
Runs most system validation steps again, such as verifying that all required fields have a non-null value, and runs any custom validation rules. The only system validation that Salesforce doesn't run a second time (when the request comes from a standard UI edit page) is the enforcement of layout-specific rules.
Executes duplicate rules. If the duplicate rule identifies the record as a duplicate and uses the block action, the record is not saved and no further steps, such as after triggers and workflow rules, are taken.
This step is not available for automation
Saves the record to the database, but doesn't commit yet.
Executes all after triggers.
Not yet implemented in the Org Documentor.
Executes assignment rules.
Not yet implemented in the Org Documentor.
Executes auto-response rules.
Not yet implemented in the Org Documentor.
Executes workflow rules. If there are workflow field updates:
Not yet implemented in the Org Documentor.
Executes escalation rules.
Not yet implemented in the Org Documentor.
Executes the following Salesforce Flow automations, but not in a guaranteed order.
Executes record-triggered flows that are configured to run after the record is saved.
Not yet implemented in the Org Documentor.
Executes entitlement rules
Partially implemented - roll-up summary fields are processed, but not cross-object workflow.
If the record contains a roll-up summary field or is part of a cross-object workflow, performs calculations and updates the roll-up summary field in the parent record. Parent record goes through save procedure.
Not yet implemented in the Org Documentor.
If the parent record is updated, and a grandparent record contains a roll-up summary field or is part of a cross-object workflow, performs calculations and updates the roll-up summary field in the grandparent record. Grandparent record goes through save procedure.
Not yet implemented in the Org Documentor.
Executes Criteria Based Sharing evaluation
This step is not available for automation
Commits all DML operations to the database
This step is not available for automation
After the changes are committed to the database, executes post-commit logic such as sending email and executing enqueued asynchronous Apex jobs, including queueable jobs and future methods.