Skip to content

Instantly share code, notes, and snippets.

@osieckiAdam
Last active March 4, 2025 19:32
Show Gist options
  • Select an option

  • Save osieckiAdam/32e3ad91973135b01283512985bb0cda to your computer and use it in GitHub Desktop.

Select an option

Save osieckiAdam/32e3ad91973135b01283512985bb0cda to your computer and use it in GitHub Desktop.
Bulkification in Flows - code for blog article
<?xml version="1.0" encoding="UTF-8"?>
<Flow xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>63.0</apiVersion>
<assignments>
<name>Some_logic_for_setting_general_values</name>
<label>Some logic for setting general values</label>
<locationX>176</locationX>
<locationY>323</locationY>
<assignmentItems>
<assignToReference>Task_Record_To_Insert.IsHighPriority</assignToReference>
<operator>Assign</operator>
<value>
<booleanValue>false</booleanValue>
</value>
</assignmentItems>
<connector>
<targetReference>Some_logic_for_setting_values_on_first_task</targetReference>
</connector>
</assignments>
<assignments>
<name>Some_logic_for_setting_values_on_first_task</name>
<label>Some logic for setting values on first task</label>
<locationX>176</locationX>
<locationY>431</locationY>
<assignmentItems>
<assignToReference>Task_Record_To_Insert.AccountId</assignToReference>
<operator>Assign</operator>
<value>
<elementReference>$Record.Id</elementReference>
</value>
</assignmentItems>
<assignmentItems>
<assignToReference>Task_Record_To_Insert.Subject</assignToReference>
<operator>Assign</operator>
<value>
<stringValue>&quot;First Task&quot;</stringValue>
</value>
</assignmentItems>
<connector>
<targetReference>Create_First_Task</targetReference>
</connector>
</assignments>
<assignments>
<name>Some_logic_for_setting_values_on_second_task</name>
<label>Some logic for setting values on second task</label>
<locationX>176</locationX>
<locationY>647</locationY>
<assignmentItems>
<assignToReference>Another_Task_Record_To_Insert.AccountId</assignToReference>
<operator>Assign</operator>
<value>
<elementReference>$Record.Id</elementReference>
</value>
</assignmentItems>
<assignmentItems>
<assignToReference>Another_Task_Record_To_Insert.Subject</assignToReference>
<operator>Assign</operator>
<value>
<stringValue>&quot;Second Task&quot;</stringValue>
</value>
</assignmentItems>
<connector>
<targetReference>Create_second_Task</targetReference>
</connector>
</assignments>
<environments>Default</environments>
<interviewLabel>Antipattern 1 {!$Flow.CurrentDateTime}</interviewLabel>
<label>Antipattern 1</label>
<processMetadataValues>
<name>BuilderType</name>
<value>
<stringValue>LightningFlowBuilder</stringValue>
</value>
</processMetadataValues>
<processMetadataValues>
<name>CanvasMode</name>
<value>
<stringValue>AUTO_LAYOUT_CANVAS</stringValue>
</value>
</processMetadataValues>
<processMetadataValues>
<name>OriginBuilderType</name>
<value>
<stringValue>LightningFlowBuilder</stringValue>
</value>
</processMetadataValues>
<processType>AutoLaunchedFlow</processType>
<recordCreates>
<name>Create_First_Task</name>
<label>Create First Task</label>
<locationX>176</locationX>
<locationY>539</locationY>
<connector>
<targetReference>Some_logic_for_setting_values_on_second_task</targetReference>
</connector>
<inputReference>Task_Record_To_Insert</inputReference>
</recordCreates>
<recordCreates>
<name>Create_second_Task</name>
<label>Create second Task</label>
<locationX>176</locationX>
<locationY>755</locationY>
<inputReference>Task_To_Insert</inputReference>
</recordCreates>
<start>
<locationX>50</locationX>
<locationY>0</locationY>
<connector>
<targetReference>Some_logic_for_setting_general_values</targetReference>
</connector>
<object>Account</object>
<recordTriggerType>Create</recordTriggerType>
<triggerType>RecordAfterSave</triggerType>
</start>
<status>Obsolete</status>
<variables>
<name>Another_Task_Record_To_Insert</name>
<dataType>SObject</dataType>
<isCollection>false</isCollection>
<isInput>false</isInput>
<isOutput>false</isOutput>
<objectType>Task</objectType>
</variables>
<variables>
<name>Task_Record_To_Insert</name>
<dataType>SObject</dataType>
<isCollection>false</isCollection>
<isInput>false</isInput>
<isOutput>false</isOutput>
<objectType>Task</objectType>
</variables>
<variables>
<name>Task_To_Insert</name>
<dataType>SObject</dataType>
<isCollection>true</isCollection>
<isInput>false</isInput>
<isOutput>false</isOutput>
<objectType>Task</objectType>
</variables>
</Flow>
<?xml version="1.0" encoding="UTF-8"?>
<Flow xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>63.0</apiVersion>
<assignments>
<name>Some_logic_for_setting_values_on_first_task</name>
<label>Some logic for setting values on both tasks</label>
<locationX>176</locationX>
<locationY>323</locationY>
<assignmentItems>
<assignToReference>Task_Record_To_Insert.AccountId</assignToReference>
<operator>Assign</operator>
<value>
<elementReference>$Record.Id</elementReference>
</value>
</assignmentItems>
<assignmentItems>
<assignToReference>Task_Record_To_Insert.Subject</assignToReference>
<operator>Assign</operator>
<value>
<stringValue>&quot;First Task&quot;</stringValue>
</value>
</assignmentItems>
<assignmentItems>
<assignToReference>Another_Task_Record_To_Insert.AccountId</assignToReference>
<operator>Assign</operator>
<value>
<elementReference>$Record.Id</elementReference>
</value>
</assignmentItems>
<assignmentItems>
<assignToReference>Another_Task_Record_To_Insert.Subject</assignToReference>
<operator>Assign</operator>
<value>
<stringValue>&quot;Second Task&quot;</stringValue>
</value>
</assignmentItems>
<assignmentItems>
<assignToReference>Tasks_To_Insert</assignToReference>
<operator>Add</operator>
<value>
<elementReference>Task_Record_To_Insert</elementReference>
</value>
</assignmentItems>
<assignmentItems>
<assignToReference>Tasks_To_Insert</assignToReference>
<operator>Add</operator>
<value>
<elementReference>Another_Task_Record_To_Insert</elementReference>
</value>
</assignmentItems>
<connector>
<targetReference>Create_Tasks</targetReference>
</connector>
</assignments>
<environments>Default</environments>
<interviewLabel>Antipattern 1 Fixed {!$Flow.CurrentDateTime}</interviewLabel>
<label>Antipattern 1 Fixed</label>
<processMetadataValues>
<name>BuilderType</name>
<value>
<stringValue>LightningFlowBuilder</stringValue>
</value>
</processMetadataValues>
<processMetadataValues>
<name>CanvasMode</name>
<value>
<stringValue>AUTO_LAYOUT_CANVAS</stringValue>
</value>
</processMetadataValues>
<processMetadataValues>
<name>OriginBuilderType</name>
<value>
<stringValue>LightningFlowBuilder</stringValue>
</value>
</processMetadataValues>
<processType>AutoLaunchedFlow</processType>
<recordCreates>
<name>Create_Tasks</name>
<label>Create Tasks</label>
<locationX>176</locationX>
<locationY>431</locationY>
<inputReference>Tasks_To_Insert</inputReference>
</recordCreates>
<start>
<locationX>50</locationX>
<locationY>0</locationY>
<connector>
<targetReference>Some_logic_for_setting_values_on_first_task</targetReference>
</connector>
<object>Account</object>
<recordTriggerType>Create</recordTriggerType>
<triggerType>RecordAfterSave</triggerType>
</start>
<status>Active</status>
<variables>
<name>Another_Task_Record_To_Insert</name>
<dataType>SObject</dataType>
<isCollection>false</isCollection>
<isInput>false</isInput>
<isOutput>false</isOutput>
<objectType>Task</objectType>
</variables>
<variables>
<name>Task_Record_To_Insert</name>
<dataType>SObject</dataType>
<isCollection>false</isCollection>
<isInput>false</isInput>
<isOutput>false</isOutput>
<objectType>Task</objectType>
</variables>
<variables>
<name>Tasks_To_Insert</name>
<dataType>SObject</dataType>
<isCollection>true</isCollection>
<isInput>false</isInput>
<isOutput>false</isOutput>
<objectType>Task</objectType>
</variables>
</Flow>
<?xml version="1.0" encoding="UTF-8"?>
<Flow xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>63.0</apiVersion>
<environments>Default</environments>
<interviewLabel>Antipattern 2 {!$Flow.CurrentDateTime}</interviewLabel>
<label>Antipattern 2</label>
<loops>
<name>Loop_through_the_contacts</name>
<label>Loop through the contacts</label>
<locationX>176</locationX>
<locationY>431</locationY>
<collectionReference>Get_all_contact_related_to_account</collectionReference>
<iterationOrder>Asc</iterationOrder>
<nextValueConnector>
<targetReference>Get_all_Tasks_related_to_Contacts</targetReference>
</nextValueConnector>
</loops>
<loops>
<name>Loop_through_the_tasks</name>
<label>Loop through the tasks</label>
<locationX>352</locationX>
<locationY>647</locationY>
<collectionReference>Get_all_Tasks_related_to_Contacts</collectionReference>
<iterationOrder>Asc</iterationOrder>
<nextValueConnector>
<targetReference>Delete_Task</targetReference>
</nextValueConnector>
<noMoreValuesConnector>
<targetReference>Loop_through_the_contacts</targetReference>
</noMoreValuesConnector>
</loops>
<processMetadataValues>
<name>BuilderType</name>
<value>
<stringValue>LightningFlowBuilder</stringValue>
</value>
</processMetadataValues>
<processMetadataValues>
<name>CanvasMode</name>
<value>
<stringValue>AUTO_LAYOUT_CANVAS</stringValue>
</value>
</processMetadataValues>
<processMetadataValues>
<name>OriginBuilderType</name>
<value>
<stringValue>LightningFlowBuilder</stringValue>
</value>
</processMetadataValues>
<processType>AutoLaunchedFlow</processType>
<recordDeletes>
<name>Delete_Task</name>
<label>Delete Task</label>
<locationX>440</locationX>
<locationY>755</locationY>
<connector>
<targetReference>Loop_through_the_tasks</targetReference>
</connector>
<inputReference>Loop_through_the_tasks</inputReference>
</recordDeletes>
<recordLookups>
<name>Get_all_contact_related_to_account</name>
<label>Get all contact related to account</label>
<locationX>176</locationX>
<locationY>323</locationY>
<assignNullValuesIfNoRecordsFound>false</assignNullValuesIfNoRecordsFound>
<connector>
<targetReference>Loop_through_the_contacts</targetReference>
</connector>
<filterLogic>and</filterLogic>
<filters>
<field>AccountId</field>
<operator>EqualTo</operator>
<value>
<elementReference>$Record.Id</elementReference>
</value>
</filters>
<getFirstRecordOnly>false</getFirstRecordOnly>
<object>Contact</object>
<storeOutputAutomatically>true</storeOutputAutomatically>
</recordLookups>
<recordLookups>
<name>Get_all_Tasks_related_to_Contacts</name>
<label>Get all Tasks related to Contacts</label>
<locationX>352</locationX>
<locationY>539</locationY>
<assignNullValuesIfNoRecordsFound>false</assignNullValuesIfNoRecordsFound>
<connector>
<targetReference>Loop_through_the_tasks</targetReference>
</connector>
<filterLogic>and</filterLogic>
<filters>
<field>WhoId</field>
<operator>EqualTo</operator>
<value>
<elementReference>Loop_through_the_contacts.Id</elementReference>
</value>
</filters>
<getFirstRecordOnly>false</getFirstRecordOnly>
<object>Task</object>
<storeOutputAutomatically>true</storeOutputAutomatically>
</recordLookups>
<start>
<locationX>50</locationX>
<locationY>0</locationY>
<connector>
<targetReference>Get_all_contact_related_to_account</targetReference>
</connector>
<doesRequireRecordChangedToMeetCriteria>true</doesRequireRecordChangedToMeetCriteria>
<filterLogic>and</filterLogic>
<filters>
<field>CleanStatus</field>
<operator>EqualTo</operator>
<value>
<stringValue>Inactive</stringValue>
</value>
</filters>
<object>Account</object>
<recordTriggerType>Update</recordTriggerType>
<triggerType>RecordAfterSave</triggerType>
</start>
<status>Obsolete</status>
</Flow>
<?xml version="1.0" encoding="UTF-8"?>
<Flow xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>63.0</apiVersion>
<assignments>
<name>Add_Contact_Id_to_the_list</name>
<label>Add Contact Id to the list</label>
<locationX>270</locationX>
<locationY>539</locationY>
<assignmentItems>
<assignToReference>ContactIds</assignToReference>
<operator>Add</operator>
<value>
<elementReference>Loop_through_the_contacts.Id</elementReference>
</value>
</assignmentItems>
<connector>
<targetReference>Loop_through_the_contacts</targetReference>
</connector>
</assignments>
<decisions>
<name>Any_records_to_delete_found</name>
<label>Any records to delete found?</label>
<locationX>182</locationX>
<locationY>839</locationY>
<defaultConnectorLabel>Default Outcome</defaultConnectorLabel>
<rules>
<name>Yes</name>
<conditionLogic>and</conditionLogic>
<conditions>
<leftValueReference>Get_all_Tasks_related_to_Contacts</leftValueReference>
<operator>IsNull</operator>
<rightValue>
<booleanValue>false</booleanValue>
</rightValue>
</conditions>
<connector>
<targetReference>Delete_all_Tasks_related_to_Contacts</targetReference>
</connector>
<label>Yes</label>
</rules>
</decisions>
<description>Solution for antipattern 2</description>
<environments>Default</environments>
<interviewLabel>Antipattern 2 - Fix {!$Flow.CurrentDateTime}</interviewLabel>
<label>Antipattern 2 - Fix</label>
<loops>
<name>Loop_through_the_contacts</name>
<label>Loop through the contacts</label>
<locationX>182</locationX>
<locationY>431</locationY>
<collectionReference>Get_all_contact_related_to_account</collectionReference>
<iterationOrder>Asc</iterationOrder>
<nextValueConnector>
<targetReference>Add_Contact_Id_to_the_list</targetReference>
</nextValueConnector>
<noMoreValuesConnector>
<targetReference>Get_all_Tasks_related_to_Contacts</targetReference>
</noMoreValuesConnector>
</loops>
<processMetadataValues>
<name>BuilderType</name>
<value>
<stringValue>LightningFlowBuilder</stringValue>
</value>
</processMetadataValues>
<processMetadataValues>
<name>CanvasMode</name>
<value>
<stringValue>AUTO_LAYOUT_CANVAS</stringValue>
</value>
</processMetadataValues>
<processMetadataValues>
<name>OriginBuilderType</name>
<value>
<stringValue>LightningFlowBuilder</stringValue>
</value>
</processMetadataValues>
<processType>AutoLaunchedFlow</processType>
<recordDeletes>
<name>Delete_all_Tasks_related_to_Contacts</name>
<label>Delete all Tasks related to Contacts</label>
<locationX>50</locationX>
<locationY>947</locationY>
<inputReference>Get_all_Tasks_related_to_Contacts</inputReference>
</recordDeletes>
<recordLookups>
<name>Get_all_contact_related_to_account</name>
<label>Get all contact related to account</label>
<locationX>182</locationX>
<locationY>323</locationY>
<assignNullValuesIfNoRecordsFound>false</assignNullValuesIfNoRecordsFound>
<connector>
<targetReference>Loop_through_the_contacts</targetReference>
</connector>
<filterLogic>and</filterLogic>
<filters>
<field>AccountId</field>
<operator>EqualTo</operator>
<value>
<elementReference>$Record.Id</elementReference>
</value>
</filters>
<getFirstRecordOnly>false</getFirstRecordOnly>
<object>Contact</object>
<storeOutputAutomatically>true</storeOutputAutomatically>
</recordLookups>
<recordLookups>
<name>Get_all_Tasks_related_to_Contacts</name>
<label>Get all Tasks related to Contacts</label>
<locationX>182</locationX>
<locationY>731</locationY>
<assignNullValuesIfNoRecordsFound>false</assignNullValuesIfNoRecordsFound>
<connector>
<targetReference>Any_records_to_delete_found</targetReference>
</connector>
<filterLogic>and</filterLogic>
<filters>
<field>WhoId</field>
<operator>In</operator>
<value>
<elementReference>ContactIds</elementReference>
</value>
</filters>
<getFirstRecordOnly>false</getFirstRecordOnly>
<object>Task</object>
<queriedFields>Id</queriedFields>
<storeOutputAutomatically>true</storeOutputAutomatically>
</recordLookups>
<start>
<locationX>56</locationX>
<locationY>0</locationY>
<connector>
<targetReference>Get_all_contact_related_to_account</targetReference>
</connector>
<doesRequireRecordChangedToMeetCriteria>true</doesRequireRecordChangedToMeetCriteria>
<filterLogic>and</filterLogic>
<filters>
<field>CleanStatus</field>
<operator>EqualTo</operator>
<value>
<stringValue>Inactive</stringValue>
</value>
</filters>
<object>Account</object>
<recordTriggerType>Update</recordTriggerType>
<triggerType>RecordAfterSave</triggerType>
</start>
<status>Active</status>
<variables>
<name>ContactIds</name>
<dataType>String</dataType>
<isCollection>true</isCollection>
<isInput>false</isInput>
<isOutput>false</isOutput>
</variables>
</Flow>
<?xml version="1.0" encoding="UTF-8"?>
<Flow xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>63.0</apiVersion>
<decisions>
<name>Any_records_to_delete_found</name>
<label>Any records to delete found?</label>
<locationX>182</locationX>
<locationY>647</locationY>
<defaultConnectorLabel>Default Outcome</defaultConnectorLabel>
<rules>
<name>Yes</name>
<conditionLogic>and</conditionLogic>
<conditions>
<leftValueReference>Get_all_Tasks_related_to_Contacts</leftValueReference>
<operator>IsNull</operator>
<rightValue>
<booleanValue>false</booleanValue>
</rightValue>
</conditions>
<connector>
<targetReference>Delete_all_Tasks_related_to_Contacts</targetReference>
</connector>
<label>Yes</label>
</rules>
</decisions>
<environments>Default</environments>
<interviewLabel>Antipattern 2 - Fix - No Loop {!$Flow.CurrentDateTime}</interviewLabel>
<label>Antipattern 2 - Fix - No Loop</label>
<processMetadataValues>
<name>BuilderType</name>
<value>
<stringValue>LightningFlowBuilder</stringValue>
</value>
</processMetadataValues>
<processMetadataValues>
<name>CanvasMode</name>
<value>
<stringValue>AUTO_LAYOUT_CANVAS</stringValue>
</value>
</processMetadataValues>
<processMetadataValues>
<name>OriginBuilderType</name>
<value>
<stringValue>LightningFlowBuilder</stringValue>
</value>
</processMetadataValues>
<processType>AutoLaunchedFlow</processType>
<recordDeletes>
<name>Delete_all_Tasks_related_to_Contacts</name>
<label>Delete all Tasks related to Contacts</label>
<locationX>50</locationX>
<locationY>755</locationY>
<inputReference>Get_all_Tasks_related_to_Contacts</inputReference>
</recordDeletes>
<recordLookups>
<name>Get_all_contact_related_to_account</name>
<label>Get all Contact related to Account</label>
<locationX>182</locationX>
<locationY>323</locationY>
<assignNullValuesIfNoRecordsFound>false</assignNullValuesIfNoRecordsFound>
<connector>
<targetReference>Get_All_Contact_Ids</targetReference>
</connector>
<filterLogic>and</filterLogic>
<filters>
<field>AccountId</field>
<operator>EqualTo</operator>
<value>
<elementReference>$Record.Id</elementReference>
</value>
</filters>
<getFirstRecordOnly>false</getFirstRecordOnly>
<object>Contact</object>
<storeOutputAutomatically>true</storeOutputAutomatically>
</recordLookups>
<recordLookups>
<name>Get_all_Tasks_related_to_Contacts</name>
<label>Get all Tasks related to Contacts</label>
<locationX>182</locationX>
<locationY>539</locationY>
<assignNullValuesIfNoRecordsFound>false</assignNullValuesIfNoRecordsFound>
<connector>
<targetReference>Any_records_to_delete_found</targetReference>
</connector>
<filterLogic>and</filterLogic>
<filters>
<field>WhoId</field>
<operator>In</operator>
<value>
<elementReference>Get_All_Contact_Ids</elementReference>
</value>
</filters>
<getFirstRecordOnly>false</getFirstRecordOnly>
<object>Task</object>
<queriedFields>Id</queriedFields>
<storeOutputAutomatically>true</storeOutputAutomatically>
</recordLookups>
<start>
<locationX>56</locationX>
<locationY>0</locationY>
<connector>
<targetReference>Get_all_contact_related_to_account</targetReference>
</connector>
<doesRequireRecordChangedToMeetCriteria>true</doesRequireRecordChangedToMeetCriteria>
<filterLogic>and</filterLogic>
<filters>
<field>CleanStatus</field>
<operator>EqualTo</operator>
<value>
<stringValue>Inactive</stringValue>
</value>
</filters>
<object>Account</object>
<recordTriggerType>Update</recordTriggerType>
<triggerType>RecordAfterSave</triggerType>
</start>
<status>Active</status>
<transforms>
<name>Get_All_Contact_Ids</name>
<label>Get All Contact Ids</label>
<locationX>182</locationX>
<locationY>431</locationY>
<connector>
<targetReference>Get_all_Tasks_related_to_Contacts</targetReference>
</connector>
<dataType>String</dataType>
<isCollection>true</isCollection>
<scale>0</scale>
<transformValues>
<transformValueActions>
<transformType>Map</transformType>
<value>
<elementReference>Get_all_contact_related_to_account[$EachItem].Id</elementReference>
</value>
</transformValueActions>
</transformValues>
</transforms>
</Flow>
<?xml version="1.0" encoding="UTF-8"?>
<Flow xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>63.0</apiVersion>
<assignments>
<name>Assign_Updated_Account_to_a_collection_A</name>
<label>Assign Updated Account to a collection</label>
<locationX>50</locationX>
<locationY>539</locationY>
<assignmentItems>
<assignToReference>ParentAccount.Id</assignToReference>
<operator>Assign</operator>
<value>
<elementReference>$Record.AccountId</elementReference>
</value>
</assignmentItems>
<assignmentItems>
<assignToReference>ParentAccount.Type</assignToReference>
<operator>Assign</operator>
<value>
<stringValue>Prospect</stringValue>
</value>
</assignmentItems>
<assignmentItems>
<assignToReference>ParentAccount.Description</assignToReference>
<operator>Assign</operator>
<value>
<elementReference>Description</elementReference>
</value>
</assignmentItems>
<assignmentItems>
<assignToReference>AccountsToUpdate</assignToReference>
<operator>Add</operator>
<value>
<elementReference>ParentAccount</elementReference>
</value>
</assignmentItems>
<connector>
<targetReference>Update_Parent_Accounts</targetReference>
</connector>
</assignments>
<assignments>
<name>Assign_Updated_Account_to_a_collection_B</name>
<label>Assign Updated Account to a collection</label>
<locationX>314</locationX>
<locationY>539</locationY>
<assignmentItems>
<assignToReference>ParentAccount.Id</assignToReference>
<operator>Assign</operator>
<value>
<elementReference>$Record.Account.Id</elementReference>
</value>
</assignmentItems>
<assignmentItems>
<assignToReference>ParentAccount.Type</assignToReference>
<operator>Assign</operator>
<value>
<stringValue>Customer - Direct</stringValue>
</value>
</assignmentItems>
<assignmentItems>
<assignToReference>ParentAccount.Description</assignToReference>
<operator>Assign</operator>
<value>
<elementReference>Description</elementReference>
</value>
</assignmentItems>
<assignmentItems>
<assignToReference>AccountsToUpdate</assignToReference>
<operator>Add</operator>
<value>
<elementReference>ParentAccount</elementReference>
</value>
</assignmentItems>
<connector>
<targetReference>Update_Parent_Accounts</targetReference>
</connector>
</assignments>
<assignments>
<name>Assign_Updated_Account_to_a_collection_C</name>
<label>Assign Updated Account to a collection</label>
<locationX>578</locationX>
<locationY>539</locationY>
<assignmentItems>
<assignToReference>ParentAccount.Id</assignToReference>
<operator>Assign</operator>
<value>
<elementReference>$Record.AccountId</elementReference>
</value>
</assignmentItems>
<assignmentItems>
<assignToReference>ParentAccount.Type</assignToReference>
<operator>Assign</operator>
<value>
<stringValue>Customer - Channel</stringValue>
</value>
</assignmentItems>
<assignmentItems>
<assignToReference>ParentAccount.Description</assignToReference>
<operator>Assign</operator>
<value>
<elementReference>Description</elementReference>
</value>
</assignmentItems>
<assignmentItems>
<assignToReference>AccountsToUpdate</assignToReference>
<operator>Add</operator>
<value>
<elementReference>ParentAccount</elementReference>
</value>
</assignmentItems>
<connector>
<targetReference>Update_Parent_Accounts</targetReference>
</connector>
</assignments>
<assignments>
<name>Assign_Updated_Account_to_a_collection_D</name>
<label>Assign Updated Account to a collection</label>
<locationX>842</locationX>
<locationY>539</locationY>
<assignmentItems>
<assignToReference>ParentAccount.Id</assignToReference>
<operator>Assign</operator>
<value>
<elementReference>$Record.AccountId</elementReference>
</value>
</assignmentItems>
<assignmentItems>
<assignToReference>ParentAccount.Type</assignToReference>
<operator>Assign</operator>
<value>
<stringValue>Channel Partner / Reseller</stringValue>
</value>
</assignmentItems>
<assignmentItems>
<assignToReference>ParentAccount.Description</assignToReference>
<operator>Assign</operator>
<value>
<elementReference>Description</elementReference>
</value>
</assignmentItems>
<assignmentItems>
<assignToReference>AccountsToUpdate</assignToReference>
<operator>Add</operator>
<value>
<elementReference>ParentAccount</elementReference>
</value>
</assignmentItems>
<connector>
<targetReference>Update_Parent_Accounts</targetReference>
</connector>
</assignments>
<assignments>
<name>Super_Important_Logic_For_A</name>
<label>Super Important Logic For A</label>
<locationX>50</locationX>
<locationY>431</locationY>
<assignmentItems>
<assignToReference>Description</assignToReference>
<operator>Assign</operator>
<value>
<stringValue>&quot;A&quot;</stringValue>
</value>
</assignmentItems>
<connector>
<targetReference>Assign_Updated_Account_to_a_collection_A</targetReference>
</connector>
</assignments>
<assignments>
<name>Super_Important_Logic_For_B</name>
<label>Super Important Logic For B</label>
<locationX>314</locationX>
<locationY>431</locationY>
<assignmentItems>
<assignToReference>Description</assignToReference>
<operator>Assign</operator>
<value>
<stringValue>&quot;b&quot;</stringValue>
</value>
</assignmentItems>
<connector>
<targetReference>Assign_Updated_Account_to_a_collection_B</targetReference>
</connector>
</assignments>
<assignments>
<name>Super_Important_Logic_For_C</name>
<label>Super Important Logic For C</label>
<locationX>578</locationX>
<locationY>431</locationY>
<assignmentItems>
<assignToReference>Description</assignToReference>
<operator>Assign</operator>
<value>
<stringValue>&quot;C&quot;</stringValue>
</value>
</assignmentItems>
<connector>
<targetReference>Assign_Updated_Account_to_a_collection_C</targetReference>
</connector>
</assignments>
<assignments>
<name>Super_Important_Logic_For_D</name>
<label>Super Important Logic For D</label>
<locationX>842</locationX>
<locationY>431</locationY>
<assignmentItems>
<assignToReference>Description</assignToReference>
<operator>Assign</operator>
<value>
<stringValue>&quot;A&quot;</stringValue>
</value>
</assignmentItems>
<connector>
<targetReference>Assign_Updated_Account_to_a_collection_D</targetReference>
</connector>
</assignments>
<decisions>
<name>What_is_the_Record_Type</name>
<label>What is the Record Type</label>
<locationX>446</locationX>
<locationY>323</locationY>
<defaultConnector>
<targetReference>Super_Important_Logic_For_D</targetReference>
</defaultConnector>
<defaultConnectorLabel>Record Type D</defaultConnectorLabel>
<rules>
<name>Record_Type_A</name>
<conditionLogic>and</conditionLogic>
<conditions>
<leftValueReference>$Record.Type</leftValueReference>
<operator>EqualTo</operator>
<rightValue>
<stringValue>Existing Customer - Upgrade</stringValue>
</rightValue>
</conditions>
<connector>
<targetReference>Super_Important_Logic_For_A</targetReference>
</connector>
<label>Record Type A</label>
</rules>
<rules>
<name>Record_Type_B</name>
<conditionLogic>and</conditionLogic>
<conditions>
<leftValueReference>$Record.Type</leftValueReference>
<operator>EqualTo</operator>
<rightValue>
<stringValue>Existing Customer - Replacement</stringValue>
</rightValue>
</conditions>
<connector>
<targetReference>Super_Important_Logic_For_B</targetReference>
</connector>
<label>Record Type B</label>
</rules>
<rules>
<name>Record_Type_C</name>
<conditionLogic>and</conditionLogic>
<conditions>
<leftValueReference>$Record.Type</leftValueReference>
<operator>EqualTo</operator>
<rightValue>
<stringValue>Existing Customer - Downgrade</stringValue>
</rightValue>
</conditions>
<connector>
<targetReference>Super_Important_Logic_For_C</targetReference>
</connector>
<label>Record Type C</label>
</rules>
</decisions>
<environments>Default</environments>
<interviewLabel>Antipattern 3 {!$Flow.CurrentDateTime}</interviewLabel>
<label>Antipattern 3</label>
<processMetadataValues>
<name>BuilderType</name>
<value>
<stringValue>LightningFlowBuilder</stringValue>
</value>
</processMetadataValues>
<processMetadataValues>
<name>CanvasMode</name>
<value>
<stringValue>AUTO_LAYOUT_CANVAS</stringValue>
</value>
</processMetadataValues>
<processMetadataValues>
<name>OriginBuilderType</name>
<value>
<stringValue>LightningFlowBuilder</stringValue>
</value>
</processMetadataValues>
<processType>AutoLaunchedFlow</processType>
<recordUpdates>
<name>Update_Parent_Accounts</name>
<label>Update Parent Accounts</label>
<locationX>446</locationX>
<locationY>731</locationY>
<inputReference>AccountsToUpdate</inputReference>
</recordUpdates>
<start>
<locationX>320</locationX>
<locationY>0</locationY>
<connector>
<targetReference>What_is_the_Record_Type</targetReference>
</connector>
<object>Opportunity</object>
<recordTriggerType>Create</recordTriggerType>
<triggerType>RecordAfterSave</triggerType>
</start>
<status>Active</status>
<variables>
<name>AccountsToUpdate</name>
<dataType>SObject</dataType>
<isCollection>true</isCollection>
<isInput>false</isInput>
<isOutput>false</isOutput>
<objectType>Account</objectType>
</variables>
<variables>
<name>Description</name>
<dataType>String</dataType>
<isCollection>false</isCollection>
<isInput>false</isInput>
<isOutput>false</isOutput>
</variables>
<variables>
<name>ParentAccount</name>
<dataType>SObject</dataType>
<isCollection>false</isCollection>
<isInput>false</isInput>
<isOutput>false</isOutput>
<objectType>Account</objectType>
</variables>
</Flow>
<?xml version="1.0" encoding="UTF-8"?>
<Flow xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>63.0</apiVersion>
<decisions>
<name>What_is_the_Record_Type</name>
<label>What is the Record Type</label>
<locationX>446</locationX>
<locationY>323</locationY>
<defaultConnector>
<targetReference>Subflow_For_Record_Type_D</targetReference>
</defaultConnector>
<defaultConnectorLabel>Record Type D</defaultConnectorLabel>
<rules>
<name>Record_Type_A</name>
<conditionLogic>and</conditionLogic>
<conditions>
<leftValueReference>$Record.Type</leftValueReference>
<operator>EqualTo</operator>
<rightValue>
<stringValue>Existing Customer - Upgrade</stringValue>
</rightValue>
</conditions>
<connector>
<targetReference>Subflow_For_Record_Type_A</targetReference>
</connector>
<label>Record Type A</label>
</rules>
<rules>
<name>Record_Type_B</name>
<conditionLogic>and</conditionLogic>
<conditions>
<leftValueReference>$Record.Type</leftValueReference>
<operator>EqualTo</operator>
<rightValue>
<stringValue>Existing Customer - Replacement</stringValue>
</rightValue>
</conditions>
<connector>
<targetReference>Subflow_For_Record_Type_B</targetReference>
</connector>
<label>Record Type B</label>
</rules>
<rules>
<name>Record_Type_C</name>
<conditionLogic>and</conditionLogic>
<conditions>
<leftValueReference>$Record.Type</leftValueReference>
<operator>EqualTo</operator>
<rightValue>
<stringValue>Existing Customer - Downgrade</stringValue>
</rightValue>
</conditions>
<connector>
<targetReference>Subflow_For_Record_Type_C</targetReference>
</connector>
<label>Record Type C</label>
</rules>
</decisions>
<environments>Default</environments>
<interviewLabel>Antipattern 4 {!$Flow.CurrentDateTime}</interviewLabel>
<label>Antipattern 4</label>
<processMetadataValues>
<name>BuilderType</name>
<value>
<stringValue>LightningFlowBuilder</stringValue>
</value>
</processMetadataValues>
<processMetadataValues>
<name>CanvasMode</name>
<value>
<stringValue>AUTO_LAYOUT_CANVAS</stringValue>
</value>
</processMetadataValues>
<processMetadataValues>
<name>OriginBuilderType</name>
<value>
<stringValue>LightningFlowBuilder</stringValue>
</value>
</processMetadataValues>
<processType>AutoLaunchedFlow</processType>
<start>
<locationX>320</locationX>
<locationY>0</locationY>
<connector>
<targetReference>What_is_the_Record_Type</targetReference>
</connector>
<object>Opportunity</object>
<recordTriggerType>Create</recordTriggerType>
<triggerType>RecordAfterSave</triggerType>
</start>
<status>Active</status>
<subflows>
<name>Subflow_For_Record_Type_A</name>
<label>Subflow For Record Type A</label>
<locationX>50</locationX>
<locationY>431</locationY>
<flowName>Antipattern_4_Subflow_A</flowName>
<inputAssignments>
<name>OpportunityRecord</name>
<value>
<elementReference>$Record</elementReference>
</value>
</inputAssignments>
</subflows>
<subflows>
<name>Subflow_For_Record_Type_B</name>
<label>Subflow For Record Type B</label>
<locationX>314</locationX>
<locationY>431</locationY>
<flowName>Antipattern_4_Subflow_B</flowName>
<inputAssignments>
<name>OpportunityRecord</name>
<value>
<elementReference>$Record</elementReference>
</value>
</inputAssignments>
</subflows>
<subflows>
<name>Subflow_For_Record_Type_C</name>
<label>Subflow For Record Type C</label>
<locationX>578</locationX>
<locationY>431</locationY>
<flowName>Antipattern_4_Subflow_C</flowName>
<inputAssignments>
<name>OpportunityRecord</name>
<value>
<elementReference>$Record</elementReference>
</value>
</inputAssignments>
</subflows>
<subflows>
<name>Subflow_For_Record_Type_D</name>
<label>Subflow For Record Type D</label>
<locationX>842</locationX>
<locationY>431</locationY>
<flowName>Antipattern_4_Subflow_D</flowName>
<inputAssignments>
<name>OpportunityRecord</name>
<value>
<elementReference>$Record</elementReference>
</value>
</inputAssignments>
</subflows>
<variables>
<name>AccountsToUpdate</name>
<dataType>SObject</dataType>
<isCollection>true</isCollection>
<isInput>false</isInput>
<isOutput>false</isOutput>
<objectType>Account</objectType>
</variables>
<variables>
<name>Description</name>
<dataType>String</dataType>
<isCollection>false</isCollection>
<isInput>false</isInput>
<isOutput>false</isOutput>
</variables>
<variables>
<name>ParentAccount</name>
<dataType>SObject</dataType>
<isCollection>false</isCollection>
<isInput>false</isInput>
<isOutput>false</isOutput>
<objectType>Account</objectType>
</variables>
</Flow>
<?xml version="1.0" encoding="UTF-8"?>
<Flow xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>63.0</apiVersion>
<decisions>
<name>What_is_the_Record_Type</name>
<label>What is the Record Type</label>
<locationX>446</locationX>
<locationY>323</locationY>
<defaultConnector>
<targetReference>Antipattern_4_Subflow_D_Fixed_Flow_1</targetReference>
</defaultConnector>
<defaultConnectorLabel>Record Type D</defaultConnectorLabel>
<rules>
<name>Record_Type_A</name>
<conditionLogic>and</conditionLogic>
<conditions>
<leftValueReference>$Record.Type</leftValueReference>
<operator>EqualTo</operator>
<rightValue>
<stringValue>Existing Customer - Upgrade</stringValue>
</rightValue>
</conditions>
<connector>
<targetReference>Subflow_For_Record_Type_A_Fixed</targetReference>
</connector>
<label>Record Type A</label>
</rules>
<rules>
<name>Record_Type_B</name>
<conditionLogic>and</conditionLogic>
<conditions>
<leftValueReference>$Record.Type</leftValueReference>
<operator>EqualTo</operator>
<rightValue>
<stringValue>Existing Customer - Replacement</stringValue>
</rightValue>
</conditions>
<connector>
<targetReference>Subflow_For_Record_Type_B_Fixed</targetReference>
</connector>
<label>Record Type B</label>
</rules>
<rules>
<name>Record_Type_C</name>
<conditionLogic>and</conditionLogic>
<conditions>
<leftValueReference>$Record.Type</leftValueReference>
<operator>EqualTo</operator>
<rightValue>
<stringValue>Existing Customer - Downgrade</stringValue>
</rightValue>
</conditions>
<connector>
<targetReference>Subflow_For_Record_Type_C_Fixed</targetReference>
</connector>
<label>Record Type C</label>
</rules>
</decisions>
<environments>Default</environments>
<interviewLabel>Antipattern 4 Fix {!$Flow.CurrentDateTime}</interviewLabel>
<label>Antipattern 4 Fix</label>
<processMetadataValues>
<name>BuilderType</name>
<value>
<stringValue>LightningFlowBuilder</stringValue>
</value>
</processMetadataValues>
<processMetadataValues>
<name>CanvasMode</name>
<value>
<stringValue>AUTO_LAYOUT_CANVAS</stringValue>
</value>
</processMetadataValues>
<processMetadataValues>
<name>OriginBuilderType</name>
<value>
<stringValue>LightningFlowBuilder</stringValue>
</value>
</processMetadataValues>
<processType>AutoLaunchedFlow</processType>
<recordUpdates>
<name>Update_Records_1</name>
<label>Update Records 1</label>
<locationX>446</locationX>
<locationY>623</locationY>
<inputReference>ParentAccount</inputReference>
</recordUpdates>
<start>
<locationX>320</locationX>
<locationY>0</locationY>
<connector>
<targetReference>What_is_the_Record_Type</targetReference>
</connector>
<object>Opportunity</object>
<recordTriggerType>Create</recordTriggerType>
<triggerType>RecordAfterSave</triggerType>
</start>
<status>Active</status>
<subflows>
<name>Antipattern_4_Subflow_D_Fixed_Flow_1</name>
<label>Subflow For Record Type C Fixed</label>
<locationX>842</locationX>
<locationY>431</locationY>
<connector>
<targetReference>Update_Records_1</targetReference>
</connector>
<flowName>Antipattern_4_Subflow_D_Fix</flowName>
<inputAssignments>
<name>OpportunityRecord</name>
<value>
<elementReference>$Record</elementReference>
</value>
</inputAssignments>
<outputAssignments>
<assignToReference>ParentAccount</assignToReference>
<name>ParentAccount</name>
</outputAssignments>
</subflows>
<subflows>
<name>Subflow_For_Record_Type_A_Fixed</name>
<label>Subflow For Record Type A Fixed</label>
<locationX>50</locationX>
<locationY>431</locationY>
<connector>
<targetReference>Update_Records_1</targetReference>
</connector>
<flowName>Antipattern_4_Subflow_A_Fix</flowName>
<inputAssignments>
<name>OpportunityRecord</name>
<value>
<elementReference>$Record</elementReference>
</value>
</inputAssignments>
<outputAssignments>
<assignToReference>ParentAccount</assignToReference>
<name>ParentAccount</name>
</outputAssignments>
</subflows>
<subflows>
<name>Subflow_For_Record_Type_B_Fixed</name>
<label>Subflow For Record Type B Fixed</label>
<locationX>314</locationX>
<locationY>431</locationY>
<connector>
<targetReference>Update_Records_1</targetReference>
</connector>
<flowName>Antipattern_4_Subflow_B_Fix</flowName>
<inputAssignments>
<name>OpportunityRecord</name>
<value>
<elementReference>$Record</elementReference>
</value>
</inputAssignments>
<outputAssignments>
<assignToReference>ParentAccount</assignToReference>
<name>ParentAccount</name>
</outputAssignments>
</subflows>
<subflows>
<name>Subflow_For_Record_Type_C_Fixed</name>
<label>Subflow For Record Type C Fixed</label>
<locationX>578</locationX>
<locationY>431</locationY>
<connector>
<targetReference>Update_Records_1</targetReference>
</connector>
<flowName>Antipattern_4_Subflow_C_Fix</flowName>
<inputAssignments>
<name>OpportunityRecord</name>
<value>
<elementReference>$Record</elementReference>
</value>
</inputAssignments>
<outputAssignments>
<assignToReference>ParentAccount</assignToReference>
<name>ParentAccount</name>
</outputAssignments>
</subflows>
<variables>
<name>AccountsToUpdate</name>
<dataType>SObject</dataType>
<isCollection>true</isCollection>
<isInput>false</isInput>
<isOutput>false</isOutput>
<objectType>Account</objectType>
</variables>
<variables>
<name>Description</name>
<dataType>String</dataType>
<isCollection>false</isCollection>
<isInput>false</isInput>
<isOutput>false</isOutput>
</variables>
<variables>
<name>OpportunitiesToUpdate</name>
<dataType>SObject</dataType>
<isCollection>true</isCollection>
<isInput>false</isInput>
<isOutput>false</isOutput>
<objectType>Opportunity</objectType>
</variables>
<variables>
<name>ParentAccount</name>
<dataType>SObject</dataType>
<isCollection>false</isCollection>
<isInput>false</isInput>
<isOutput>false</isOutput>
<objectType>Account</objectType>
</variables>
</Flow>
<?xml version="1.0" encoding="UTF-8"?>
<Flow xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>63.0</apiVersion>
<assignments>
<name>Super_Important_Logic_For_A</name>
<label>Super Important Logic For A</label>
<locationX>176</locationX>
<locationY>134</locationY>
<assignmentItems>
<assignToReference>Description</assignToReference>
<operator>Assign</operator>
<value>
<stringValue>&quot;A&quot;</stringValue>
</value>
</assignmentItems>
<assignmentItems>
<assignToReference>ParentAccount.Id</assignToReference>
<operator>Assign</operator>
<value>
<elementReference>OpportunityRecord.Account.Id</elementReference>
</value>
</assignmentItems>
<assignmentItems>
<assignToReference>ParentAccount.Type</assignToReference>
<operator>Assign</operator>
<value>
<stringValue>Prospect</stringValue>
</value>
</assignmentItems>
<connector>
<targetReference>Update_Parent_Account</targetReference>
</connector>
</assignments>
<environments>Default</environments>
<interviewLabel>Antipattern 4 - Subflow A {!$Flow.CurrentDateTime}</interviewLabel>
<label>Antipattern 4 - Subflow A</label>
<processMetadataValues>
<name>BuilderType</name>
<value>
<stringValue>LightningFlowBuilder</stringValue>
</value>
</processMetadataValues>
<processMetadataValues>
<name>CanvasMode</name>
<value>
<stringValue>AUTO_LAYOUT_CANVAS</stringValue>
</value>
</processMetadataValues>
<processMetadataValues>
<name>OriginBuilderType</name>
<value>
<stringValue>LightningFlowBuilder</stringValue>
</value>
</processMetadataValues>
<processType>AutoLaunchedFlow</processType>
<recordUpdates>
<name>Update_Parent_Account</name>
<label>Update Parent Account</label>
<locationX>176</locationX>
<locationY>242</locationY>
<inputReference>ParentAccount</inputReference>
</recordUpdates>
<start>
<locationX>50</locationX>
<locationY>0</locationY>
<connector>
<targetReference>Super_Important_Logic_For_A</targetReference>
</connector>
</start>
<status>Draft</status>
<variables>
<name>Description</name>
<dataType>String</dataType>
<isCollection>false</isCollection>
<isInput>false</isInput>
<isOutput>false</isOutput>
</variables>
<variables>
<description>Input variable for Opportunity being processed by this subflow</description>
<name>OpportunityRecord</name>
<dataType>SObject</dataType>
<isCollection>false</isCollection>
<isInput>true</isInput>
<isOutput>false</isOutput>
<objectType>Opportunity</objectType>
</variables>
<variables>
<name>ParentAccount</name>
<dataType>SObject</dataType>
<isCollection>false</isCollection>
<isInput>false</isInput>
<isOutput>false</isOutput>
<objectType>Account</objectType>
</variables>
</Flow>
<?xml version="1.0" encoding="UTF-8"?>
<Flow xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>63.0</apiVersion>
<assignments>
<name>Super_Important_Logic_For_A</name>
<label>Super Important Logic For A</label>
<locationX>176</locationX>
<locationY>134</locationY>
<assignmentItems>
<assignToReference>Description</assignToReference>
<operator>Assign</operator>
<value>
<stringValue>&quot;A&quot;</stringValue>
</value>
</assignmentItems>
<assignmentItems>
<assignToReference>ParentAccount.Id</assignToReference>
<operator>Assign</operator>
<value>
<elementReference>OpportunityRecord.Account.Id</elementReference>
</value>
</assignmentItems>
<assignmentItems>
<assignToReference>ParentAccount.Type</assignToReference>
<operator>Assign</operator>
<value>
<stringValue>Prospect</stringValue>
</value>
</assignmentItems>
<assignmentItems>
<assignToReference>ParentAccount.Description</assignToReference>
<operator>Assign</operator>
<value>
<elementReference>Description</elementReference>
</value>
</assignmentItems>
</assignments>
<environments>Default</environments>
<interviewLabel>Antipattern 4 - Subflow A Fix {!$Flow.CurrentDateTime}</interviewLabel>
<label>Antipattern 4 - Subflow A Fixed</label>
<processMetadataValues>
<name>BuilderType</name>
<value>
<stringValue>LightningFlowBuilder</stringValue>
</value>
</processMetadataValues>
<processMetadataValues>
<name>CanvasMode</name>
<value>
<stringValue>AUTO_LAYOUT_CANVAS</stringValue>
</value>
</processMetadataValues>
<processMetadataValues>
<name>OriginBuilderType</name>
<value>
<stringValue>LightningFlowBuilder</stringValue>
</value>
</processMetadataValues>
<processType>AutoLaunchedFlow</processType>
<start>
<locationX>50</locationX>
<locationY>0</locationY>
<connector>
<targetReference>Super_Important_Logic_For_A</targetReference>
</connector>
</start>
<status>Active</status>
<variables>
<name>Description</name>
<dataType>String</dataType>
<isCollection>false</isCollection>
<isInput>false</isInput>
<isOutput>false</isOutput>
</variables>
<variables>
<description>Input variable for Opportunity being processed by this subflow</description>
<name>OpportunityRecord</name>
<dataType>SObject</dataType>
<isCollection>false</isCollection>
<isInput>true</isInput>
<isOutput>false</isOutput>
<objectType>Opportunity</objectType>
</variables>
<variables>
<name>ParentAccount</name>
<dataType>SObject</dataType>
<isCollection>false</isCollection>
<isInput>false</isInput>
<isOutput>true</isOutput>
<objectType>Account</objectType>
</variables>
</Flow>
<?xml version="1.0" encoding="UTF-8"?>
<Flow xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>63.0</apiVersion>
<assignments>
<name>Super_Important_Logic_For_B</name>
<label>Super Important Logic For B</label>
<locationX>176</locationX>
<locationY>134</locationY>
<assignmentItems>
<assignToReference>Description</assignToReference>
<operator>Assign</operator>
<value>
<stringValue>&quot;B&quot;</stringValue>
</value>
</assignmentItems>
<assignmentItems>
<assignToReference>ParentAccount.Id</assignToReference>
<operator>Assign</operator>
<value>
<elementReference>OpportunityRecord.Account.Id</elementReference>
</value>
</assignmentItems>
<assignmentItems>
<assignToReference>ParentAccount.Type</assignToReference>
<operator>Assign</operator>
<value>
<stringValue>Prospect</stringValue>
</value>
</assignmentItems>
<connector>
<targetReference>Update_Parent_Account</targetReference>
</connector>
</assignments>
<environments>Default</environments>
<interviewLabel>Antipattern 4 - Subflow B {!$Flow.CurrentDateTime}</interviewLabel>
<label>Antipattern 4 - Subflow B</label>
<processMetadataValues>
<name>BuilderType</name>
<value>
<stringValue>LightningFlowBuilder</stringValue>
</value>
</processMetadataValues>
<processMetadataValues>
<name>CanvasMode</name>
<value>
<stringValue>AUTO_LAYOUT_CANVAS</stringValue>
</value>
</processMetadataValues>
<processMetadataValues>
<name>OriginBuilderType</name>
<value>
<stringValue>LightningFlowBuilder</stringValue>
</value>
</processMetadataValues>
<processType>AutoLaunchedFlow</processType>
<recordUpdates>
<name>Update_Parent_Account</name>
<label>Update Parent Account</label>
<locationX>176</locationX>
<locationY>242</locationY>
<inputReference>ParentAccount</inputReference>
</recordUpdates>
<start>
<locationX>50</locationX>
<locationY>0</locationY>
<connector>
<targetReference>Super_Important_Logic_For_B</targetReference>
</connector>
</start>
<status>Active</status>
<variables>
<name>Description</name>
<dataType>String</dataType>
<isCollection>false</isCollection>
<isInput>false</isInput>
<isOutput>false</isOutput>
</variables>
<variables>
<description>Input variable for Opportunity being processed by this subflow</description>
<name>OpportunityRecord</name>
<dataType>SObject</dataType>
<isCollection>false</isCollection>
<isInput>true</isInput>
<isOutput>false</isOutput>
<objectType>Opportunity</objectType>
</variables>
<variables>
<name>ParentAccount</name>
<dataType>SObject</dataType>
<isCollection>false</isCollection>
<isInput>false</isInput>
<isOutput>false</isOutput>
<objectType>Account</objectType>
</variables>
</Flow>
<?xml version="1.0" encoding="UTF-8"?>
<Flow xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>63.0</apiVersion>
<assignments>
<name>Super_Important_Logic_For_B</name>
<label>Super Important Logic For B</label>
<locationX>176</locationX>
<locationY>134</locationY>
<assignmentItems>
<assignToReference>Description</assignToReference>
<operator>Assign</operator>
<value>
<stringValue>&quot;B&quot;</stringValue>
</value>
</assignmentItems>
<assignmentItems>
<assignToReference>ParentAccount.Id</assignToReference>
<operator>Assign</operator>
<value>
<elementReference>OpportunityRecord.Account.Id</elementReference>
</value>
</assignmentItems>
<assignmentItems>
<assignToReference>ParentAccount.Type</assignToReference>
<operator>Assign</operator>
<value>
<stringValue>Customer - Direct</stringValue>
</value>
</assignmentItems>
<assignmentItems>
<assignToReference>ParentAccount.Description</assignToReference>
<operator>Assign</operator>
<value>
<elementReference>Description</elementReference>
</value>
</assignmentItems>
</assignments>
<environments>Default</environments>
<interviewLabel>Antipattern 4 - Subflow B Fix {!$Flow.CurrentDateTime}</interviewLabel>
<label>Antipattern 4 - Subflow B Fixed</label>
<processMetadataValues>
<name>BuilderType</name>
<value>
<stringValue>LightningFlowBuilder</stringValue>
</value>
</processMetadataValues>
<processMetadataValues>
<name>CanvasMode</name>
<value>
<stringValue>AUTO_LAYOUT_CANVAS</stringValue>
</value>
</processMetadataValues>
<processMetadataValues>
<name>OriginBuilderType</name>
<value>
<stringValue>LightningFlowBuilder</stringValue>
</value>
</processMetadataValues>
<processType>AutoLaunchedFlow</processType>
<start>
<locationX>50</locationX>
<locationY>0</locationY>
<connector>
<targetReference>Super_Important_Logic_For_B</targetReference>
</connector>
</start>
<status>Active</status>
<variables>
<name>Description</name>
<dataType>String</dataType>
<isCollection>false</isCollection>
<isInput>false</isInput>
<isOutput>false</isOutput>
</variables>
<variables>
<description>Input variable for Opportunity being processed by this subflow</description>
<name>OpportunityRecord</name>
<dataType>SObject</dataType>
<isCollection>false</isCollection>
<isInput>true</isInput>
<isOutput>false</isOutput>
<objectType>Opportunity</objectType>
</variables>
<variables>
<name>ParentAccount</name>
<dataType>SObject</dataType>
<isCollection>false</isCollection>
<isInput>false</isInput>
<isOutput>true</isOutput>
<objectType>Account</objectType>
</variables>
</Flow>
<?xml version="1.0" encoding="UTF-8"?>
<Flow xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>63.0</apiVersion>
<assignments>
<name>Super_Important_Logic_For_C</name>
<label>Super Important Logic For C</label>
<locationX>176</locationX>
<locationY>134</locationY>
<assignmentItems>
<assignToReference>Description</assignToReference>
<operator>Assign</operator>
<value>
<stringValue>&quot;C&quot;</stringValue>
</value>
</assignmentItems>
<assignmentItems>
<assignToReference>ParentAccount.Id</assignToReference>
<operator>Assign</operator>
<value>
<elementReference>OpportunityRecord.Account.Id</elementReference>
</value>
</assignmentItems>
<assignmentItems>
<assignToReference>ParentAccount.Type</assignToReference>
<operator>Assign</operator>
<value>
<stringValue>Prospect</stringValue>
</value>
</assignmentItems>
<connector>
<targetReference>Update_Parent_Account</targetReference>
</connector>
</assignments>
<environments>Default</environments>
<interviewLabel>Antipattern 4 - Subflow c {!$Flow.CurrentDateTime}</interviewLabel>
<label>Antipattern 4 - Subflow C</label>
<processMetadataValues>
<name>BuilderType</name>
<value>
<stringValue>LightningFlowBuilder</stringValue>
</value>
</processMetadataValues>
<processMetadataValues>
<name>CanvasMode</name>
<value>
<stringValue>AUTO_LAYOUT_CANVAS</stringValue>
</value>
</processMetadataValues>
<processMetadataValues>
<name>OriginBuilderType</name>
<value>
<stringValue>LightningFlowBuilder</stringValue>
</value>
</processMetadataValues>
<processType>AutoLaunchedFlow</processType>
<recordUpdates>
<name>Update_Parent_Account</name>
<label>Update Parent Account</label>
<locationX>176</locationX>
<locationY>242</locationY>
<inputReference>ParentAccount</inputReference>
</recordUpdates>
<start>
<locationX>50</locationX>
<locationY>0</locationY>
<connector>
<targetReference>Super_Important_Logic_For_C</targetReference>
</connector>
</start>
<status>Active</status>
<variables>
<name>Description</name>
<dataType>String</dataType>
<isCollection>false</isCollection>
<isInput>false</isInput>
<isOutput>false</isOutput>
</variables>
<variables>
<description>Input variable for Opportunity being processed by this subflow</description>
<name>OpportunityRecord</name>
<dataType>SObject</dataType>
<isCollection>false</isCollection>
<isInput>true</isInput>
<isOutput>false</isOutput>
<objectType>Opportunity</objectType>
</variables>
<variables>
<name>ParentAccount</name>
<dataType>SObject</dataType>
<isCollection>false</isCollection>
<isInput>false</isInput>
<isOutput>false</isOutput>
<objectType>Account</objectType>
</variables>
</Flow>
<?xml version="1.0" encoding="UTF-8"?>
<Flow xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>63.0</apiVersion>
<assignments>
<name>Super_Important_Logic_For_C</name>
<label>Super Important Logic For C</label>
<locationX>176</locationX>
<locationY>134</locationY>
<assignmentItems>
<assignToReference>Description</assignToReference>
<operator>Assign</operator>
<value>
<stringValue>&quot;C&quot;</stringValue>
</value>
</assignmentItems>
<assignmentItems>
<assignToReference>ParentAccount.Id</assignToReference>
<operator>Assign</operator>
<value>
<elementReference>OpportunityRecord.Account.Id</elementReference>
</value>
</assignmentItems>
<assignmentItems>
<assignToReference>ParentAccount.Type</assignToReference>
<operator>Assign</operator>
<value>
<stringValue>Customer - Channel</stringValue>
</value>
</assignmentItems>
<assignmentItems>
<assignToReference>ParentAccount.Description</assignToReference>
<operator>Assign</operator>
<value>
<elementReference>Description</elementReference>
</value>
</assignmentItems>
</assignments>
<environments>Default</environments>
<interviewLabel>Antipattern 4 - Subflow C Fix {!$Flow.CurrentDateTime}</interviewLabel>
<label>Antipattern 4 - Subflow C Fixed</label>
<processMetadataValues>
<name>BuilderType</name>
<value>
<stringValue>LightningFlowBuilder</stringValue>
</value>
</processMetadataValues>
<processMetadataValues>
<name>CanvasMode</name>
<value>
<stringValue>AUTO_LAYOUT_CANVAS</stringValue>
</value>
</processMetadataValues>
<processMetadataValues>
<name>OriginBuilderType</name>
<value>
<stringValue>LightningFlowBuilder</stringValue>
</value>
</processMetadataValues>
<processType>AutoLaunchedFlow</processType>
<start>
<locationX>50</locationX>
<locationY>0</locationY>
<connector>
<targetReference>Super_Important_Logic_For_C</targetReference>
</connector>
</start>
<status>Active</status>
<variables>
<name>Description</name>
<dataType>String</dataType>
<isCollection>false</isCollection>
<isInput>false</isInput>
<isOutput>false</isOutput>
</variables>
<variables>
<description>Input variable for Opportunity being processed by this subflow</description>
<name>OpportunityRecord</name>
<dataType>SObject</dataType>
<isCollection>false</isCollection>
<isInput>true</isInput>
<isOutput>false</isOutput>
<objectType>Opportunity</objectType>
</variables>
<variables>
<name>ParentAccount</name>
<dataType>SObject</dataType>
<isCollection>false</isCollection>
<isInput>false</isInput>
<isOutput>true</isOutput>
<objectType>Account</objectType>
</variables>
</Flow>
<?xml version="1.0" encoding="UTF-8"?>
<Flow xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>63.0</apiVersion>
<assignments>
<name>Super_Important_Logic_For_D</name>
<label>Super Important Logic For D</label>
<locationX>176</locationX>
<locationY>134</locationY>
<assignmentItems>
<assignToReference>Description</assignToReference>
<operator>Assign</operator>
<value>
<stringValue>&quot;D&quot;</stringValue>
</value>
</assignmentItems>
<assignmentItems>
<assignToReference>ParentAccount.Id</assignToReference>
<operator>Assign</operator>
<value>
<elementReference>OpportunityRecord.Account.Id</elementReference>
</value>
</assignmentItems>
<assignmentItems>
<assignToReference>ParentAccount.Type</assignToReference>
<operator>Assign</operator>
<value>
<stringValue>Prospect</stringValue>
</value>
</assignmentItems>
<connector>
<targetReference>Update_Parent_Account</targetReference>
</connector>
</assignments>
<environments>Default</environments>
<interviewLabel>Antipattern 4 - Subflow D {!$Flow.CurrentDateTime}</interviewLabel>
<label>Antipattern 4 - Subflow D</label>
<processMetadataValues>
<name>BuilderType</name>
<value>
<stringValue>LightningFlowBuilder</stringValue>
</value>
</processMetadataValues>
<processMetadataValues>
<name>CanvasMode</name>
<value>
<stringValue>AUTO_LAYOUT_CANVAS</stringValue>
</value>
</processMetadataValues>
<processMetadataValues>
<name>OriginBuilderType</name>
<value>
<stringValue>LightningFlowBuilder</stringValue>
</value>
</processMetadataValues>
<processType>AutoLaunchedFlow</processType>
<recordUpdates>
<name>Update_Parent_Account</name>
<label>Update Parent Account</label>
<locationX>176</locationX>
<locationY>242</locationY>
<inputReference>ParentAccount</inputReference>
</recordUpdates>
<start>
<locationX>50</locationX>
<locationY>0</locationY>
<connector>
<targetReference>Super_Important_Logic_For_D</targetReference>
</connector>
</start>
<status>Active</status>
<variables>
<name>Description</name>
<dataType>String</dataType>
<isCollection>false</isCollection>
<isInput>false</isInput>
<isOutput>false</isOutput>
</variables>
<variables>
<description>Input variable for Opportunity being processed by this subflow</description>
<name>OpportunityRecord</name>
<dataType>SObject</dataType>
<isCollection>false</isCollection>
<isInput>true</isInput>
<isOutput>false</isOutput>
<objectType>Opportunity</objectType>
</variables>
<variables>
<name>ParentAccount</name>
<dataType>SObject</dataType>
<isCollection>false</isCollection>
<isInput>false</isInput>
<isOutput>false</isOutput>
<objectType>Account</objectType>
</variables>
</Flow>
<?xml version="1.0" encoding="UTF-8"?>
<Flow xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>63.0</apiVersion>
<assignments>
<name>Super_Important_Logic_For_D</name>
<label>Super Important Logic For D</label>
<locationX>176</locationX>
<locationY>134</locationY>
<assignmentItems>
<assignToReference>Description</assignToReference>
<operator>Assign</operator>
<value>
<stringValue>&quot;D&quot;</stringValue>
</value>
</assignmentItems>
<assignmentItems>
<assignToReference>ParentAccount.Id</assignToReference>
<operator>Assign</operator>
<value>
<elementReference>OpportunityRecord.Account.Id</elementReference>
</value>
</assignmentItems>
<assignmentItems>
<assignToReference>ParentAccount.Type</assignToReference>
<operator>Assign</operator>
<value>
<stringValue>Channel Partner / Reseller</stringValue>
</value>
</assignmentItems>
<assignmentItems>
<assignToReference>ParentAccount.Description</assignToReference>
<operator>Assign</operator>
<value>
<elementReference>Description</elementReference>
</value>
</assignmentItems>
</assignments>
<environments>Default</environments>
<interviewLabel>Antipattern 4 - Subflow D Fix {!$Flow.CurrentDateTime}</interviewLabel>
<label>Antipattern 4 - Subflow D Fixed</label>
<processMetadataValues>
<name>BuilderType</name>
<value>
<stringValue>LightningFlowBuilder</stringValue>
</value>
</processMetadataValues>
<processMetadataValues>
<name>CanvasMode</name>
<value>
<stringValue>AUTO_LAYOUT_CANVAS</stringValue>
</value>
</processMetadataValues>
<processMetadataValues>
<name>OriginBuilderType</name>
<value>
<stringValue>LightningFlowBuilder</stringValue>
</value>
</processMetadataValues>
<processType>AutoLaunchedFlow</processType>
<start>
<locationX>50</locationX>
<locationY>0</locationY>
<connector>
<targetReference>Super_Important_Logic_For_D</targetReference>
</connector>
</start>
<status>Active</status>
<variables>
<name>Description</name>
<dataType>String</dataType>
<isCollection>false</isCollection>
<isInput>false</isInput>
<isOutput>false</isOutput>
</variables>
<variables>
<description>Input variable for Opportunity being processed by this subflow</description>
<name>OpportunityRecord</name>
<dataType>SObject</dataType>
<isCollection>false</isCollection>
<isInput>true</isInput>
<isOutput>false</isOutput>
<objectType>Opportunity</objectType>
</variables>
<variables>
<name>ParentAccount</name>
<dataType>SObject</dataType>
<isCollection>false</isCollection>
<isInput>false</isInput>
<isOutput>true</isOutput>
<objectType>Account</objectType>
</variables>
</Flow>
<?xml version="1.0" encoding="UTF-8"?>
<Flow xmlns="http://soap.sforce.com/2006/04/metadata">
<apiVersion>63.0</apiVersion>
<environments>Default</environments>
<interviewLabel>Antipattern 5 {!$Flow.CurrentDateTime}</interviewLabel>
<label>Antipattern 5</label>
<processMetadataValues>
<name>BuilderType</name>
<value>
<stringValue>LightningFlowBuilder</stringValue>
</value>
</processMetadataValues>
<processMetadataValues>
<name>CanvasMode</name>
<value>
<stringValue>AUTO_LAYOUT_CANVAS</stringValue>
</value>
</processMetadataValues>
<processMetadataValues>
<name>OriginBuilderType</name>
<value>
<stringValue>LightningFlowBuilder</stringValue>
</value>
</processMetadataValues>
<processType>AutoLaunchedFlow</processType>
<recordLookups>
<name>Get_Lead_Queue</name>
<label>Get Lead Queue</label>
<locationX>176</locationX>
<locationY>287</locationY>
<assignNullValuesIfNoRecordsFound>false</assignNullValuesIfNoRecordsFound>
<connector>
<targetReference>Update_Lead_Owner</targetReference>
</connector>
<filterLogic>and</filterLogic>
<filters>
<field>Type</field>
<operator>EqualTo</operator>
<value>
<stringValue>Queue</stringValue>
</value>
</filters>
<filters>
<field>DeveloperName</field>
<operator>EqualTo</operator>
<value>
<stringValue>Lead_Queue</stringValue>
</value>
</filters>
<getFirstRecordOnly>true</getFirstRecordOnly>
<object>Group</object>
<storeOutputAutomatically>true</storeOutputAutomatically>
</recordLookups>
<recordUpdates>
<name>Update_Lead_Owner</name>
<label>Update Lead Owner</label>
<locationX>176</locationX>
<locationY>395</locationY>
<inputAssignments>
<field>OwnerId</field>
<value>
<elementReference>Get_Lead_Queue.Id</elementReference>
</value>
</inputAssignments>
<inputReference>$Record</inputReference>
</recordUpdates>
<start>
<locationX>50</locationX>
<locationY>0</locationY>
<connector>
<targetReference>Get_Lead_Queue</targetReference>
</connector>
<object>Lead</object>
<recordTriggerType>Create</recordTriggerType>
<triggerType>RecordBeforeSave</triggerType>
</start>
<status>Draft</status>
</Flow>
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
<svg aria-roledescription="flowchart-v2" role="graphics-document document" viewBox="0 0 1029.453125 278" height="100%" class="flowchart" xmlns="http://www.w3.org/2000/svg" width="80%" id="container"><style>#container{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#container .error-icon{fill:#552222;}#container .error-text{fill:#552222;stroke:#552222;}#container .edge-thickness-normal{stroke-width:1px;}#container .edge-thickness-thick{stroke-width:3.5px;}#container .edge-pattern-solid{stroke-dasharray:0;}#container .edge-thickness-invisible{stroke-width:0;fill:none;}#container .edge-pattern-dashed{stroke-dasharray:3;}#container .edge-pattern-dotted{stroke-dasharray:2;}#container .marker{fill:#333333;stroke:#333333;}#container .marker.cross{stroke:#333333;}#container svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#container p{margin:0;}#container .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#container .cluster-label text{fill:#333;}#container .cluster-label span{color:#333;}#container .cluster-label span p{background-color:transparent;}#container .label text,#container span{fill:#333;color:#333;}#container .node rect,#container .node circle,#container .node ellipse,#container .node polygon,#container .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#container .rough-node .label text,#container .node .label text,#container .image-shape .label,#container .icon-shape .label{text-anchor:middle;}#container .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#container .rough-node .label,#container .node .label,#container .image-shape .label,#container .icon-shape .label{text-align:center;}#container .node.clickable{cursor:pointer;}#container .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#container .arrowheadPath{fill:#333333;}#container .edgePath .path{stroke:#333333;stroke-width:2.0px;}#container .flowchart-link{stroke:#333333;fill:none;}#container .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#container .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#container .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#container .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#container .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#container .cluster text{fill:#333;}#container .cluster span{color:#333;}#container div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#container .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#container rect.text{fill:none;stroke-width:0;}#container .icon-shape,#container .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#container .icon-shape p,#container .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#container .icon-shape rect,#container .image-shape rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#container :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}</style><g><marker orient="auto" markerHeight="8" markerWidth="8" markerUnits="userSpaceOnUse" refY="5" refX="5" viewBox="0 0 10 10" class="marker flowchart-v2" id="container_flowchart-v2-pointEnd"><path style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 0 0 L 10 5 L 0 10 z"></path></marker><marker orient="auto" markerHeight="8" markerWidth="8" markerUnits="userSpaceOnUse" refY="5" refX="4.5" viewBox="0 0 10 10" class="marker flowchart-v2" id="container_flowchart-v2-pointStart"><path style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 0 5 L 10 10 L 10 0 z"></path></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5" refX="11" viewBox="0 0 10 10" class="marker flowchart-v2" id="container_flowchart-v2-circleEnd"><circle style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" r="5" cy="5" cx="5"></circle></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5" refX="-1" viewBox="0 0 10 10" class="marker flowchart-v2" id="container_flowchart-v2-circleStart"><circle style="stroke-width: 1; stroke-dasharray: 1, 0;" class="arrowMarkerPath" r="5" cy="5" cx="5"></circle></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5.2" refX="12" viewBox="0 0 11 11" class="marker cross flowchart-v2" id="container_flowchart-v2-crossEnd"><path style="stroke-width: 2; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 1,1 l 9,9 M 10,1 l -9,9"></path></marker><marker orient="auto" markerHeight="11" markerWidth="11" markerUnits="userSpaceOnUse" refY="5.2" refX="-1" viewBox="0 0 11 11" class="marker cross flowchart-v2" id="container_flowchart-v2-crossStart"><path style="stroke-width: 2; stroke-dasharray: 1, 0;" class="arrowMarkerPath" d="M 1,1 l 9,9 M 10,1 l -9,9"></path></marker><g class="root"><g class="clusters"></g><g class="edgePaths"><path marker-end="url(#container_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_A1_B1_0" d="M178.02,62L178.02,66.167C178.02,70.333,178.02,78.667,178.02,86.333C178.02,94,178.02,101,178.02,104.5L178.02,108"></path><path marker-end="url(#container_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_B1_C1_1" d="M132.005,166L124.904,170.167C117.803,174.333,103.601,182.667,96.499,190.333C89.398,198,89.398,205,89.398,208.5L89.398,212"></path><path marker-end="url(#container_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_B1_C2_2" d="M224.034,166L231.135,170.167C238.236,174.333,252.439,182.667,259.54,190.333C266.641,198,266.641,205,266.641,208.5L266.641,212"></path><path marker-end="url(#container_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_A2_B2_3" d="M532.504,62L532.504,66.167C532.504,70.333,532.504,78.667,532.504,86.333C532.504,94,532.504,101,532.504,104.5L532.504,108"></path><path marker-end="url(#container_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_B2_C3_4" d="M486.489,166L479.388,170.167C472.287,174.333,458.085,182.667,450.984,190.333C443.883,198,443.883,205,443.883,208.5L443.883,212"></path><path marker-end="url(#container_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_B2_C4_5" d="M578.519,166L585.62,170.167C592.721,174.333,606.923,182.667,614.024,190.333C621.125,198,621.125,205,621.125,208.5L621.125,212"></path><path marker-end="url(#container_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_A3_B3_6" d="M886.988,62L886.988,66.167C886.988,70.333,886.988,78.667,886.988,86.333C886.988,94,886.988,101,886.988,104.5L886.988,108"></path><path marker-end="url(#container_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_B3_C5_7" d="M840.973,166L833.872,170.167C826.771,174.333,812.569,182.667,805.468,190.333C798.367,198,798.367,205,798.367,208.5L798.367,212"></path><path marker-end="url(#container_flowchart-v2-pointEnd)" style="" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" id="L_B3_C6_8" d="M933.003,166L940.104,170.167C947.205,174.333,961.407,182.667,968.508,190.333C975.609,198,975.609,205,975.609,208.5L975.609,212"></path></g><g class="edgeLabels"><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g><g class="edgeLabel"><g transform="translate(0, 0)" class="label"><foreignObject height="0" width="0"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" class="labelBkg" xmlns="http://www.w3.org/1999/xhtml"><span class="edgeLabel"></span></div></foreignObject></g></g></g><g class="nodes"><g transform="translate(178.01953125, 35)" id="flowchart-A1-0" class="node default"><rect height="54" width="128.8125" y="-27" x="-64.40625" style="" class="basic label-container"></rect><g transform="translate(-34.40625, -12)" style="" class="label"><rect></rect><foreignObject height="24" width="68.8125"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>Account 1</p></span></div></foreignObject></g></g><g transform="translate(178.01953125, 139)" id="flowchart-B1-1" class="node default"><rect height="54" width="115.15625" y="-27" x="-57.578125" style="" class="basic label-container"></rect><g transform="translate(-27.578125, -12)" style="" class="label"><rect></rect><foreignObject height="24" width="55.15625"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>Contact</p></span></div></foreignObject></g></g><g transform="translate(89.3984375, 243)" id="flowchart-C1-3" class="node default"><rect height="54" width="162.796875" y="-27" x="-81.3984375" style="fill:#ffcccc !important;stroke:red !important;stroke-width:3px !important" class="basic label-container"></rect><g transform="translate(-51.3984375, -12)" style="color:#8B0000 !important" class="label"><rect></rect><foreignObject height="24" width="102.796875"><div xmlns="http://www.w3.org/1999/xhtml" style="color: rgb(139, 0, 0) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel" style="color:#8B0000 !important"><p>Task - Deleted</p></span></div></foreignObject></g></g><g transform="translate(266.640625, 243)" id="flowchart-C2-5" class="node default"><rect height="54" width="91.6875" y="-27" x="-45.84375" style="" class="basic label-container"></rect><g transform="translate(-15.84375, -12)" style="" class="label"><rect></rect><foreignObject height="24" width="31.6875"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>Task</p></span></div></foreignObject></g></g><g transform="translate(532.50390625, 35)" id="flowchart-A2-6" class="node default"><rect height="54" width="129.796875" y="-27" x="-64.8984375" style="" class="basic label-container"></rect><g transform="translate(-34.8984375, -12)" style="" class="label"><rect></rect><foreignObject height="24" width="69.796875"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>Account 2</p></span></div></foreignObject></g></g><g transform="translate(532.50390625, 139)" id="flowchart-B2-7" class="node default"><rect height="54" width="115.15625" y="-27" x="-57.578125" style="" class="basic label-container"></rect><g transform="translate(-27.578125, -12)" style="" class="label"><rect></rect><foreignObject height="24" width="55.15625"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>Contact</p></span></div></foreignObject></g></g><g transform="translate(443.8828125, 243)" id="flowchart-C3-9" class="node default"><rect height="54" width="162.796875" y="-27" x="-81.3984375" style="fill:#ffcccc !important;stroke:red !important;stroke-width:3px !important" class="basic label-container"></rect><g transform="translate(-51.3984375, -12)" style="color:#8B0000 !important" class="label"><rect></rect><foreignObject height="24" width="102.796875"><div xmlns="http://www.w3.org/1999/xhtml" style="color: rgb(139, 0, 0) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel" style="color:#8B0000 !important"><p>Task - Deleted</p></span></div></foreignObject></g></g><g transform="translate(621.125, 243)" id="flowchart-C4-11" class="node default"><rect height="54" width="91.6875" y="-27" x="-45.84375" style="" class="basic label-container"></rect><g transform="translate(-15.84375, -12)" style="" class="label"><rect></rect><foreignObject height="24" width="31.6875"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>Task</p></span></div></foreignObject></g></g><g transform="translate(886.98828125, 35)" id="flowchart-A3-12" class="node default"><rect height="54" width="129.859375" y="-27" x="-64.9296875" style="" class="basic label-container"></rect><g transform="translate(-34.9296875, -12)" style="" class="label"><rect></rect><foreignObject height="24" width="69.859375"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>Account 3</p></span></div></foreignObject></g></g><g transform="translate(886.98828125, 139)" id="flowchart-B3-13" class="node default"><rect height="54" width="115.15625" y="-27" x="-57.578125" style="" class="basic label-container"></rect><g transform="translate(-27.578125, -12)" style="" class="label"><rect></rect><foreignObject height="24" width="55.15625"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>Contact</p></span></div></foreignObject></g></g><g transform="translate(798.3671875, 243)" id="flowchart-C5-15" class="node default"><rect height="54" width="162.796875" y="-27" x="-81.3984375" style="fill:#ffcccc !important;stroke:red !important;stroke-width:3px !important" class="basic label-container"></rect><g transform="translate(-51.3984375, -12)" style="color:#8B0000 !important" class="label"><rect></rect><foreignObject height="24" width="102.796875"><div xmlns="http://www.w3.org/1999/xhtml" style="color: rgb(139, 0, 0) !important; display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;"><span class="nodeLabel" style="color:#8B0000 !important"><p>Task - Deleted</p></span></div></foreignObject></g></g><g transform="translate(975.609375, 243)" id="flowchart-C6-17" class="node default"><rect height="54" width="91.6875" y="-27" x="-45.84375" style="" class="basic label-container"></rect><g transform="translate(-15.84375, -12)" style="" class="label"><rect></rect><foreignObject height="24" width="31.6875"><div style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 200px; text-align: center;" xmlns="http://www.w3.org/1999/xhtml"><span class="nodeLabel"><p>Task</p></span></div></foreignObject></g></g></g></g></g></svg>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment