I have a confession to make – I’m Salesforce certified application architect (and certified system architect as well), but in this area I fell misserable.
Process Builder or Workflow, the never ending question. According to Trailhead it is solved, Process Builder wons. It is the future with all those benefits and it is what we should use. Yes, it is missing Outbound Messages, but besides that it has all benefits – order of execution, related records up and down, automate more things.
When I run over a Quip document (for MVPs only) titled „Examples of why you used a Workflow Rule because Process Builder caused issues“ I was surprised with so many reasons why workflow is superior.
First of all – when you want to update a field without triggering validation rule (check order of execution to try to make sense of it).
Time-based workflows – the interviews are visible on flows page (not that big deal to me), but you need to remind yourself that the flow will be processed by the version of Process Builder which created it (so it might do something completely different to what you want now).
Cross-object fields are finally solved in Summer ’19 – at least it looks like you don’t have to check whether the lookup field is filled in to check the value of the target record as step 2.
Bulkifications issues are something people are still scared of, even though Salesforce claimed it is solved. And I feel I tested it a while ago and was happy with the results as well.
Complex formulas – obviously what people like is the fact, that in workflow you have one Field Update which you use in multiple workflows, while in process builder you need to define it again and again, if you use it at multiple places.
What else is good to know?
Process Builder runs in system context (e.g. has access everywhere), while Flow runs in user context (can do only what user is allowed to do) – unless you start the Flow from Process Builder, then it runs in system context.
When you want to send email alert to email field on related object, I always create something, which copied the value to field on the object which will trigger it. The reason was, that in email alert you can select only email field as a recipient and not a formula field. But Alena sent me this great (and awful) tip, how to overcome it without copying the value.
A while ago Salesforce add the check (or rather recommendation) whether you use just one Process Builder per object and this article from Alex Peattie builds on top of it with some recommendation how to split processes so they can call each other. Easy read for developers, probably way harder for admins.
With this you should also be aware of the critical update in Summer ’19, which changes the behavior of record value you access – you can access either the latest value or the value it had at the beginning of the process.
Think twice
Yeah, those might be edge cases, but transfer workflow to process builder might be challenge at some places, with consequences you didn’t think about first. Be careful!