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:

comparison of automation

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:

  • Sending Outbound Messages
  • Having scheduled actions and want to check which records trigger them
  • Wishing to organize the automation using list view

In general, Process Builder can achieve everything that Workflow can do, except from sending Outbound Messages. An Outbound Message is used to communicate with external services. If you need this functionality, then you have to use Workflow.

For everything else, I prefer using Process Builder as it is easier to manage, however if you have a scheduled action, the backlog will show different information.

Here I created one Workflow and one Process, to create a task 1 day after the account rating is changed to hot.

comparison of automation - workflow

Once both get triggered, you will find the Workflow backlog at “Time-Based Workflow“:

Time-Based Workflow is where you can find all the scheduled actions created by Workflow

And the Process backlog at “Paused Flow Interviews“:

Paused Flow Interviews is where you can find the scheduled actions created by Process Builder or Flow

You can see that the details for Time-Based Workflow is a lot easier to read than in Paused Flow Interviews. If you have the need to manage all the scheduled actions, I recommend using Workflow.

Lastly, Process Builder does not support list view. 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!

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.

Official Salesforce Help Article On Automation

Notify of
Inline Feedbacks
View all comments