When Process Builder first came out, the lack of error messages made it hard to adopt. I have noticed from looking at the Salesforce Answers Community, confusion with Process Builder errors is a very common. In this post, we will cover one of the most common mistakes for someone learning Process Builder – how to work with related records.
What do I mean by related records?
Anything that is referenced through a Lookup Field on an Object (including System fields like Created By).
When you’re working inside Process builder, you’ll see a chevron next to any related object that you can navigate to. This lets you then reference the fields of that Object in your Criteria and Actions.
This works like a charm, until you decide to have a Process Builder reference a Lookup Field that is not populated (so the value is null).
Yikes! We never want to see that error stopping an End User from saving a record! What happened? Salesforce will tell you in your Fault message (emailed), the variable “hasn’t been set or assigned.” What does that really mean though?
You were trying to reference a related record, but your Lookup Field does not have a value or record in it. This isn’t documented very well, and is an easy mistake almost everyone will make as they learn to use Process Builder. This is a new problem for Admins, because we do not run into this issue with Formula Fields and Field Updates (in a Workflow Rule). And, this is a serious problem because it actually can affect an End User’s ability to make a new record and/or edit an existing record.
So now that we know the problem, how do we fix it?
- Check for Null
- Formula Field
Checking for Null is the approach that I prefer to go with. Either one can technically work, but I choose to keep my Objects as simple as possible and avoid adding excess fields.
For our example, lets say that we wanted to run some automation for our Opportunity when the Primary Campaign is Type = Trade Show. We’d first need to make sure that our Opportunity actually has a Campaign associated to it, otherwise we’d get that failed to execute the flow error. So, how do we do it?
Campaign ID > the Related Record, ability to reference Campaign Fields.
Campaign ID the Campaign Lookup Field on the Opportunity.
That means that the Campaign ID Field houses the value of the Lookup. Which means we can check to see if there actually is a value!
Now, we are able to add the rest of our conditions that reference our related Campaign record.
Note – we must to check for Is Null BEFORE we reference the related record’s fields. Salesforce checks our criteria from Top to Bottom.
We can now reference fields on related records in Process Builder because we first validated that we had a related record.