Salesforce Automation - Making Business Flow
Salesforce Automation is evolving with each new release.
Salesforce eased us in gently with admin friendly Workflow Rules, we were then hit with the Process Builder and Visual Workflow. Oh, and if none of those are suitable there is always Apex Code!
OMG I hear you say, how do I know which one I need?
It can be really confusing as an Admin to know which automation to use. I’m going to try and demystify the decision process by going through each option and listing the pros and cons of each of them.
Let’s say for example, a Customer works on a yearly tendering process. If an Opportunity is Closed Lost, they want the ability to have a new Opportunity automatically created with a close date of 12 months in the future and an email to the Opportunity Owner 6 months before the close date letting them know the next tender is due in 6 months.
They also have a number field on the Account Object called ‘Open Opportunities’ which should be updated each time a new Opportunity is created and the Stage is not Closed.
OK, so what do we need to happen?:
- Create a new opportunity.
- Set the close date in the future.
- Update the Open Opportunities field on the Related Account record.
- Send an email to the Opportunity Owner 6 months before the Close Date.
So what automation do we use?
Let’s start with the most admin friendly, Workflow Rules.
These allow you to ‘trigger’ an immediate or time based scheduled action based on a set of criteria.
Workflows can update fields on the object being triggered, or a related object, send out emails and/or tasks and even trigger an Outbound integration message.
- Fast, easy and button click through friendly.
- No code needed.
- Easy for Admins to do.
- You can’t ‘nest’ criteria you need to create a new rule for each set of criteria, ending up with multiple Workflow rules for the same process.
- Not easy to know what the actions on the workflow are without drilling down into the specific rule, very annoying!
- Can’t create new records from a Workflow.
- Limited in what objects you can create and update.
- A record needs to be created or updated to ‘fire’ the rule.
So what can we achieve with workflows, we can't create a new record, so we can't do 1 or 2 but we can do 3 and 4.
So how about Process Builder?
Much more can be achieved with the Process Builder, it gives you more powers!
- You can call an additional Visual Flow or Apex Trigger from the Process.
- Add multiple criteria options into a Process, reducing the number of Workflow rules you need, as you can ‘nest’ them together.
- New records or related records can be created and updated.
- Easy visibility of all actions within the Process.
- You only have access to the records and fields the running user has.
- It’s not ‘bulkified’, working with large numbers of records can cause problems.
Process Builder will allow you to create all the tasks required for the Customer if we have access to the relevant fields and records!
Hmm OK, so tell me about Visual Workflow.
Allows you to create ‘scripts’ for the salesforce user, taking them through a series of screens to capture information from the Customer and then ‘act’ on that information.
- Much more functionality than the Workflows or Processes.
- No code required.
- Allows you to execute complex business processes.
- Can provide ‘screens’ for users to capture additional information within the
- More complex and harder for users to learn.
- Anyone creating flows need to understand them, a well-built flow can be amazing, but a badly built one could have consequences.
- Can’t be ‘fired’ on its own.
- Use of a high number of complex flows can slow the system down.
Again, Visual Flow will allow us to complete all the functionality needed, but it is far more complex to use and would need a Process to ‘fire’ it.
OK, so what about Apex?
You need to be a developer to write Apex Code, most administrators won’t know how to code in Apex!
- Great at handling complicated logic and lots of records.
- Needs a developer.
- Needs Test Classes for code coverage.
- Not easy to make ‘quick changes’, have to rely on an available developer.
Apex is great for large complex solutions but far too much for our simple requirement.
In our example, the Process Builder, would be the quickest and easiest tool to use, however, all the tools have their place.
When trying to decide which one to use, you need to consider the following:
- What functionality do I need?
- Am I processing a large amount of records?
- Do I need to capture additional information from my customer?
- Do I need to route the user through different screens and options?
- Have I got more than one set of criteria?
- Do I need to create new records?
- Can I see the Objects and Fields I need?
The answers to these questions will point you to the right automation solution. It may be that you need a mixture of solutions such as a Visual Flow and a Process to call that Flow.
Try to choose the ‘best’ and simplest option for your automation. That way you won’t waste time and energy on something that is too complex and difficult to manage.