If Multiple syncs happen in one single automation which means for eg syncing contacts, accounts, leads, etc within the same automation, its always recommended to split the automation into 3 separate automation which will be of the same pattern as described below
Sync contacts from source to destination CRM in 1st automation
Sync accounts from source to destination CRM in 2nd automation
Sync leads from source to destination CRM in 3rd automation etc...
If merge lists block is used to merge two given lists (arrays) into one new list where any/both of the lists have more data, replace the merge list block and perform data sync for individual lists in separate automation as described in the above step
If compare lists block is used to delete records from destination that are missing from the source,
automation may fail with anout of memoryerror for very large lists. So in order to make the deletion process work we can change the behaviour of the automation. Instead of deleting records based on the comparison, we will implement automation in any other possible ways described below
Keep in mind the below points while using variables in an automation
Do not create a copy of the variable which is having larger dataset if it is not required.
Do not use variables to store the last output of a block. The last output of a block is always kept in memory and can be used in the input field of other blocks
Do not store output from list endpoints to a variable. In order to get all data loop through the data using the same list endpoint or use the Loop block and then use it as an input in subsequent blocks