Preventing Loops in Bidirectional Syncs Between Epicor and Salesforce

Hi Everyone,

We’ve recently started using Automation Studio to manage API setups in-house, focusing on integrating Epicor and Salesforce. Currently, I am working on bidirectional synchronization between the Epicor Customer table and the Salesforce account table.

While the process has been promising, we encountered an issue where updates on one side trigger updates on the other, potentially leading to an infinite loop. Thankfully, the system eventually stops after a few iterations, but this is not ideal.

I’m curious about the best practices within Automation Studio to handle this. One approach I considered involves hashing the data being transferred and halting the sync if the hash matches the previous value, indicating no meaningful change. However, I’m not certain if this is feasible in Automation Studio, or if there are better strategies.

Does anyone have experience with this, or can offer recommendations on how to effectively prevent these loops? Any insights or pointers to relevant documentation would be greatly appreciated.

Thank you in advance for your help!

I haven’t used Automation Studio yet, but have built a bi-directional interface between Kinetic and Salesforce. To prevent looping, Salesforce is assigned a userid for any REST calls it makes to Kinetic. In my data directive on the customer table, if the update that triggered the BPM is the Salesforce User, then the BPM stops and does not call the custom code that would send that update back to Salesforce.

There is a similar rule in Salesforce that if the Account is updated by the integration, then the update is not sent back to Kinetic.

That makes sense! I can setup a simple if statement to check for that UserID.

Thank you!