How do you decide on which automation tool to use? Salesforce provides several tools to automate repetitive business processes.
- Approvals
- Process Builder
- Workflow
- Flow Builder
Record Approvals
Example: A manager needs to approve an employee’s time off for vacation. When the employee submits the request, the manager needs to receive the request. To automate this process, you will need to create an approval process.
Record has Certain Values
Process Builder, Workflow, and Flow Builder can address when records have a certain value. These tools create processes, workflow rules, and flows. Starting with Process Builder is recommended especially for business processes that can be simplified to if/then statements. Example: Notify an account owner for case escalations.
Process Builder has the same functionality as a workflow rule and is able to accomplish a lot more. A simple process can do what multiple workflow rules can do. The only exception that a workflow can do that you can’t do with a process is send outbound messages without code. A workaround to this limitation is to call Apex code from a process.
Create a flow by using Flow Builder if the process is too complicated for the Process Builder or requires more advanced functionality. For example, you will create a flow to:
- Use complex branching logic – if certain conditions are true, evaluate further conditions
- Example: Check if a case has been escalated. If the case has been escalated, check the account’s region and route the case accordingly
- Sort through, iterate over, and operate on several records
- Example: After an opportunity is closed and won. calculate the opportunity’s discount. Then apply the discount to all the related opportunity products.
Collecting Information from your Customers or Users
Flow Builder is the tool to use if you need to build a wizard to collect information. You can create a flow that displays information to a user and requests information from a user. Next, you would take the information that they enter and perform actions in Salesforce with the information.
For example, You can create a flow that walks customer support representatives through a call script. The flow uses the information that the representative has entered, such as a caller’s name and account number, to create a case that’s assigned to the right person.
You can also add more complexity to the flow to match your business process. For example:
- Route the representative to a different screen, depending on an earlier choice. This prevents the representative from doing things like upselling a product to a customer that was previously purchased.
- Check to see if the reported problem is blocking the customer’s business and the account is high-value. If so, the flow notifies the director.
Lightning Flow
At TrailheadDX ’18, Lightning Flow was launched, which is a process automation solution. It brings several innovations together to the Lightning platform such as:
- Lightning Flow Components. You can leverage reusable Lightning components to design rich flow screens and guided, visual processes.
- Integrated Processes. Orchestrate workflows and 3rd party services with Platform Events, External Services, and Local Actions.
- Process Driven Apps. Embed Lightning Flow processes into every customer and employee app experience using Lightning App Builder and Community Builder.
Lightning Flow launched Flow Builder to provide a faster and easier tool for assembling flows. Flow Builder replaces the existing Cloud Flow Designer tool.
What’s Different about Flow Builder?
To improve the flow building experience, Flow Builder was designed with four key design principles:
- Clarity
- Efficiency
- Consistency
- Beauty
Flow Builder features:
- Familiar and intuitive shapes to make flows easier to read
- Lightning-fast performance built with latest technologies
- Standard controls based on the Lightning Design System to make the builder more efficient to use
- A simplified toolbox to make it easier to find the element you’re looking for
Transition From Cloud Flow Designer to Flow Builder
Flow Builder will be available in both Lightning Experience and Salesforce Classic. There are no steps involved to migrate from Cloud Flow Designer to Flow Builder. Active or inactive flows will run like they did before. All flows created in the Cloud Flow Designer will open in the new Flow Builder. Whenever you modify and save an existing flow in Flow Builder, Salesforce automatically saves it as a new version of the flow. This way, your original version isn’t overwritten. Flows or flow versions that have been saved in Flow Builder will not be able to open in Cloud Flow Designer.
Automation Tool Features
Below is a breakdown of all the features and actions that are supported in approvals, process builder, workflow, and flow builder automation tools. You can use this information to help you to figure out which tool is best for your business needs.
Process Builder | Flow Builder | Workflow | Approvals | |
---|---|---|---|---|
Complexity | Multiple If/Then statements | Complex | A single if/then statement | A single if/then statement |
Visual Designer | ![]() | ![]() | ||
Browser Support | All (Chrome recommended) | All (Safari not recommended) | All | All |
Starts when | 1. Record is changed 2. Invoked by another process 3. Platform event message is received | 1. User clicks button or link 2. User accesses Lightning page, Community page, Visualforce page, or custom tab 3. User accesses item in a utility bar 4. Process starts 5. Apex is called | Record is changed | 1. User clicks button or link 2. Process or flow starts that includes a Submit for Approval action 3. Apex is called |
Supports time-based actions | ![]() | ![]() | ![]() | |
Supports user interactions | ![]() | |||
Supported Actions | ||||
Call Apex code | ![]() | ![]() | ||
Create records | ![]() | ![]() | Tasks only | Tasks only |
Invoke processes | ![]() | |||
Delete records | ![]() | |||
Launch a flow | ![]() | ![]() | ![]() (Pilot) | |
Post to Chatter | ![]() | ![]() | ||
Send email | ![]() (Email alerts only) | ![]() | ![]() | ![]() |
Send outbound messages without code | ![]() | ![]() |
||
Submit for approval | ![]() | ![]() | ||
Update fields | Any related record | Any record | The record or its parent | The record or its parent |