Process Builder - Avoiding Clashes

If possible, its best to ensure that your process builder processes do not run when DE is making its updates. DE can update relatively large volumes of records in a single update so that can cause a lot of unnecessary work for your process which might create issues. 

To avoid your processes firing when DE updates a record to assign it, you just need a criteria with a simple formula. The below information can be modified to work with other objects as well.

This exclusion is only needed in situations where your process builder would otherwise be executed. If your process builder flow already excludes the kind of updates that Distribution Engine is making, you will not need to add this additional criteria.

Here's an example flow with an "Is DE" criteria. 

Is DE formula

Here's the formula for a Lead based process. It will work the same way for Case, Contact, Account, Opportunity.

IsChanged([Lead].OwnerId) &&
[Lead].n2de__Is_distributed__c == true && 
IsChanged([Lead].n2de__Last_distributed__c)

Immediate Action

Salesforce does not allow for the Immediate Action to be blank so you will need to create an action the simply references the "Is Distributed?" field that comes with Distribution Engine and then stops.

 

Overview

You will add this to the beginning of any of your process builder flows and then continue on with the remaining criteria and actions you'd like to have happen if the update is not done by Distribution Engine.

How did we do?

Opportunity Assignment - Updating Related Accounts & Contacts

Contact