Order of Execution-TRIGGER
- Loads the original record from the database or initializes the record for an upsert statement.
- 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:
- Compliance with layout-specific rules
- Required values at the layout level and field-definition level
- Valid field formats
- Maximum field length
Salesforce doesn’t perform system validation in this step when the request comes from other sources, such as an Apex application or a SOAP API call.
- 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 user-defined 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.
- Saves the record to the database, but doesn’t commit yet.
- Executes all after triggers.
- Executes assignment rules.
- Executes auto-response rules.
- Executes workflow rules.
- If there are workflow field updates, updates the record again.
- If the record was updated with workflow field updates, fires before update triggers and after update triggers one more time (and only one more time), in addition to standard validations. Custom validation rules are not run again.
- If there are workflow flow triggers, executes the flows.
- Flow trigger workflow actions and trigger-ready flows are currently available through a pilot program. For information on enabling this feature in your organization, contact salesforce.com.
- Executes escalation rules.
- 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.
- If the parent record is updated, and a grand-parent 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. Grand-parent record goes through save procedure.
- Executes Criteria Based Sharing evaluation.
- Commits all DML operations to the database.
- Executes post-commit logic, such as sending email.
The following actions don’t trigger workflow rules:
- Mass replacing picklist values
- Mass updating address fields
- Mass updating divisions
- Changing the territory assignments of accounts and opportunities
- Converting leads to person accounts
- Deactivating Self-Service Portal, Customer Portal, or Partner Portal users
- Converting state and country data using the Converttool in Setup | Data Management | State and Country Picklists
- Making changes to state and country picklists using AddressSettings in the Metadata API
Workflow Rule Limitations
- You can’t create email alerts for workflow rules on activities.
- You can’t package workflow rules with time triggers.
- You can’t create outbound messages for workflow rules on junction objects.
Order of Execution-WORKFLOW RULES
Workflow is triggered Correct order is Field Updates > Task/Actions > Emails Alerts > Outbound message
Order of Execution-RULES
- Validation Rules
- Assignment rules
- Auto-response rules
- Workflow rules (with immediate actions)
- Escalation rules
Flow Trigger Limits
A flow trigger is a workflow action that launches a flow.
- Flow triggers are available only for workflow rules. You can’t use them as actions elsewhere, for example, in approval processes.
- Flow triggers are available on most—but not all—objects that are supported by workflow rules.
- Flow triggers aren’t available as time-dependent workflow actions. You can add flow triggers to workflow rules only as immediate workflow actions.
- Only active, trigger-ready flows can be launched by flow triggers. However, if a flow trigger is in test mode, administrators run the latest flow version while other users run the active flow version.
- A flow trigger can set the values of up to 25 variables and sObject variables in the flow, with the following limitations.
- Flow triggers can’t use multi-select picklist fields to set flow variables or sObject variables.
- When a flow trigger uses a currency field to set a flow variable, only the amount is passed into the flow. Any currency ISO code or locale information is ignored. If your organization uses multiple currencies, the flow trigger uses the amount in the currency of the record that contains the specified currency field.
- Flow triggers can’t pass values into sObject collection variables in flows.
- Flow triggers aren’t available in change sets.
Flow triggers aren’t packageable