Multiple record-triggered flows on the same object
This rule applies only to auto-launched record-triggered flows (processType of AutoLaunchedFlow with a triggerType of RecordBeforeSave or RecordAfterSave). Process Builder workflows, screen flows, scheduled flows, and platform-event flows are not considered.
Two record-triggered flows are considered peers when they share the same <object>, an overlapping <recordTriggerType>, and the same <triggerType>.
Why is this an issue?
Having multiple record-triggered flows that fire on the same object and event can lead to:
Unpredictable execution order: Salesforce does not guarantee the order in which multiple flows execute.
Conflicting logic: Multiple flows may attempt to update the same fields with different values.
Debugging complexity: Tracing which flow caused a particular change becomes difficult.
Performance impact: Each additional flow adds overhead to record operations.
Salesforce recommends consolidating record-triggered flows when possible, especially when they target the same object, event, and trigger type.
Examples
Example of incorrect configuration β two flows share the same <object>, <recordTriggerType>, and <triggerType>:
Account_Validation_Flow.flow-meta.xml:
<Flow xmlns="http://soap.sforce.com/2006/04/metadata">
<processType>AutoLaunchedFlow</processType>
<start>
<object>Account</object>
<recordTriggerType>Create</recordTriggerType>
<triggerType>RecordBeforeSave</triggerType>
</start>
</Flow>
Account_Field_Update_Flow.flow-meta.xml:
<Flow xmlns="http://soap.sforce.com/2006/04/metadata">
<processType>AutoLaunchedFlow</processType>
<start>
<object>Account</object>
<recordTriggerType>Create</recordTriggerType>
<triggerType>RecordBeforeSave</triggerType>
</start>
</Flow>
Example of correct configuration β a single consolidated flow handles both validation and field updates:
Account_Before_Create_Flow.flow-meta.xml:
<Flow xmlns="http://soap.sforce.com/2006/04/metadata">
<processType>AutoLaunchedFlow</processType>
<start>
<object>Account</object>
<recordTriggerType>Create</recordTriggerType>
<triggerType>RecordBeforeSave</triggerType>
</start>
</Flow>
How can I fix violations?
Identify all record-triggered flows on the affected object with the same event and trigger type.
Review the logic in each flow to understand what they do.
Consolidate the flows into a single flow with ordered elements.
Use decision elements to organize the logic clearly.
Deactivate and delete the redundant flows.
When should I disable this rule?
You may want to dismiss this issue if:
The flows are managed by different teams and consolidation is not practical.
The flows have clearly separated responsibilities with no overlap.
You are using subflows to organize logic and the entry flows are intentionally separate.
Resources
