Intro: Comparison of Salesforce Automation Tools
I believe this question will pop up at least once if you are learning about Salesforce automation – what is the difference between Workflow, Process Builder, Flow, and APEX? Today we are doing a comparison!
There are many discussions among developers that focus on how the system runs at the backend (XML, DML… too hard), so here I want to explain from an administrator’s perspective.
First we need to know that Salesforce is built on APEX. By writing APEX classes/triggers, you are communicating directly with the system.
On the other hand, Workflow, Process Builder, and Flow are the user interfaces that will generate specific APEX codes, so you don’t have to write them yourself.
Take an easy example, assuming everyday your boyfriend asks “what should I do now?”, you will have to say “Go do the laundry” or “Go take the dog for a walk”.
Eventually you got tired, so you bought a tablet where you can set these orders as numbers. Next time when he asks you again, you simply press “1”, and the tablet says “Go make food”. Everyone’s life is easier!
Here the orders are APEX, and the tablet is our automation tool.
Now you can also imagine there are different types of tablets, some are easier to use with less functionality. This is exactly the case for our automation tools.
Easily put, these tools vary on two main characteristics – simplicity and flexibility – which are inversely proportional. The easier to set up, the more restricted the tool is. You can check the rank of all tools on these two features:
Which tool to use will then depend on your skillset and the complexity of what you want to achieve.
For example, if you are really bad at logics or setup, Workflow might be the right tool for you as it is easy to use. However there are many things you cannot do using this tool.
Or if you are an APEX developer but you just want to set up an email alert, you will also go with Workflow as writing an APEX class is overkill.
So what tool should we choose on which scenario?
Choose Workflow When:
Update: 2021.09.04:
Right now it’s possible to see all the scheduled actions from Workflow, Process Builder, and Flow in the Time-Based Workflow section.
In Winter’22 release, you can now send outbound messages with Flow. This will mean that there won’t be obvious benefits to use workflows. It all depends on how you wish to structure the automation in your org.
If you are only want to make easy actions like email alerts or related parent record updates, workflow could be a good option.
Besides, If you wish to manage your automation with custom lists, you will have to use Workflow, Flow, and APEX.
Choose Process Builder When:
- There are multiple actions on a same theme
- Criteria and actions are simple
While one Workflow can only have one set of criteria, one Process can have many sets using the nodes. That means you can aggregate several Workflows into one Process if they are for the same object. This will help administrators to manage the automation more efficiently.
Some might argue that if the desired actions are really simple, Workflow might still be the best option. In my opinion this depends entirely on how you wish to structure your automation. Make sure you have a clear system so you know how many workflows you have on each object.
Choose Flow When:
- The actions are too complex to achieve by Workflow or Process Builder
- Wanting to create interactive workflows (Screen flow)
- Wishing to organize the automation using list view
Flow is definitely my favorite as you can create a lot of creative solutions without coding. For example, you can create guided screen flow to help your users take care of their daily routines faster, or do something that would have needed another expensive package (Shhh other app providers might not like the sound of it). When I was a solo-admin, I have achieved so much with flow and my internal users just love it!
Besides, Flow is the tool that the Salesforce team focuses on the most right now. It is the future of Salesforce declarative tool, so make sure you start equipping yourself with Flow knowledge.
Check out this use case section to dive into what flow can do!
Choose APEX When:
- The actions cannot be achieved by either of above
- Wanting to have the most efficient solution in execution time
- Wishing to organize the automation using list view
As this blog is meant for administrators, we will not go into details about APEX. However you can imagine as this is directly communicating with the backend, it will be the most efficient method especially for huge numbers of records or actions. It is difficult to deploy a new script and to manage all the existing ones, so a developer is often required.