Overview of salesforce’s Process Builder

Process Builder is one of the most exciting new administrator tools that salesforce has released in years. As many of you know, Process Builder was released in beta for Winter 15 and will soon be generally available in Spring 15. As we’ll detail below, Process Builder really expands what an administrator can do with standard configuration, putting more power at their finger tips and not having to rely on development resources. Overall, this is super exciting. That said, it also is something that you need to take your time with. (some cheesy Spider-man line is popping in my head about ‘with great power…”) Process Builder is certainly configuration, but we would classify it as advanced configuration. Feel free to try it out in your sandbox, but if you’re just getting used to things like workflow, take your time before tackling Process Builder.

Before diving in, I want to give a big thanks to Bryan George who is one of our Senior Consultants. He spent a ton of time working with the beta and put together most of this post based on what he learned. This is a newer feature – and a big one – so there are still some things to watch out for. We go into those items, best practices when using it and some use cases – in particular how it compares to workflow – below. Let’s have at it.

Overview – In a nutshell, Process Builder can be utilized to automate all workflow actions (with the exception of outbound messages). Traditional workflow can still be utilized in parallel, however, Process Builder gives you the ability to do things that workflow can’t. Although, somewhat of a double edged sword this puts some very powerful tools at the disposal of an experienced administrator.

Benefits – Here are a few of the bigger features of Process Builder that weren’t possible with configuration before:

  • Create New Items – Workflow was limited to just field updates, creating tasks and email alerts. With Process Builder we get even more options. These include:
    • Create Records – Not just updating a record, but you can actually create a record, and set the field values within the record. Very powerful
    • Create Chatter Posts – You can push a Chatter update into a Group or Feed
    • Create an Approval – Always a little annoying that you needed a trigger to automatically push a record into an approval process. With Process Builder you can do this automatically based on the criteria of the Process
  • Easily Consolidate Workflow – Have a bunch of workflow rules all trying to do the same thing, but for different scenarios? You can consolidate that into one Process.
  • Simple triggers like populating a lookup field based on certain criteria, can now be automated in process builder without any code required.
  • Complicated business processes, such as renewal automation, can be automated in conjuncture with Flow.
  • Launch a Flow – Right from a Process, you can launch an automated flow process.

    Calling Flow from Process Builder

    Calling Flow from Process Builder

  • Call an Apex Class – This wasn’t in the beta and this is probably the scarier of the new features. From the process you can now call an Apex class. Be extremely careful when doing this.
    Calling an Apex Class from Process Builder

    Calling an Apex Class from Process Builder

Process Builder vs. Workflow – When should you use a Workflow vs. Process Builder vs. an Apex Trigger? Well, it’s not as straight forward as it may seem. As a Salesforce consultant we have the luxury of in-house developers, exposure to tons of use cases, and our own in-house developed apps (i.e. BREeze). Because of this there are a variety of ways we can ‘skin the cat’. While you may not have this luxury, there are multiple scenarios which are common amongst all orgs and should be evaluated when using any of the automation tools:

#

Scenario

Options

Recommendation

Reason

1

Populate a lookup field on record update

Process Builder Trigger

Process Builder

Setting a lookup field value has traditional been something that requires a trigger, with Process Builder and administrator can do this without the use of code

2

Set an Account Owner based on Record Criteria

Process Builder

Trigger

Process Builder

Process builder can be used to assign ownership on records based on criteria on the object

3

Post a Chatter message based on record criteria

Process Builder

Trigger

Process Builder

Process Builder can be used to post to chatter based on record criteria.

4

Submit a Quote for Approval when Opportunity Stage = Proposal

Process Builder

Trigger

Process Builder

2 Processes would need to be built out. One to update the Quote based on the Opportunity stage and another to Submit the Quote for approval when the criteria on the quote had been met.

5

Launch a Flow via record criteria vs. a button or link

Process Builder

Trigger

Process Builder

Process Builder can be used to set record criteria and then launch a trigger ready flow based on that. Only ‘trigger-ready’ flows can be selected. See tips for more details.

6

Populate a text field with object ID

Workflow

Process Builder

Trigger

Workflow or Process Builder

If it is a cross object and can’t be done with workflow, you may need to use process builder. If it is part of a complex trigger leave the field set within the trigger due to conflicts with the order of operations

7

Assign Ownership to a Custom Object based on criteria

Process Builder

BREeze or Custom

Depends on complexity

Process builder can assign ownership based on object criteria and set an order of actions. However, processes require a user to create a new process each time a change is needed. Administratively it can become a burden to administer these rules via process builder. In addition, the more rules you have, the more unwieldy the Process Builder will become. Once you get too complex, you need to either go custom, or consider a rules engine type functionality, like BREeze which we’ve built for our clients.

8

Update fields based on complicated formula based criteria

Workflow

Process Builder

Depends on complexity

Either tool will work however workflow may be the better option right now. There is no function help in process builder so complicated formulas may be difficult to build out. Also picklist formulas do not work in process builder.

9

Clone an opportunity and change field values

Process Builder

Trigger

Trigger

Process Builder cannot do this alone right now, while it can create a new record it cannot reference any of the values from the cloned opportunity without the use of a Flow to capture the opportunity values. (It should be noted that this can probably be done with Flow and Process Builder but the quickest approach right now is to use a trigger)

NoteProcess Builder is still currently in a private Beta program so not all instances will have the tool enabled. You can check to see if you have Process Builder enabled by navigating to Create –> Workflows &Approvals –> Processes. If it’s not enabled and you would like it contact Salesforce support to have activated in your Sandbox.


User Interface
– As mentioned in the Spring 15 write up, the UI is quite different from traditional workflow and does require some getting used to. It has changed slightly since the beta release, allowing users to manage versions of a process rather than creating new process records each time a clone is needed. Salesforce also got rid of all the different statuses in the beta version and simplified it with ‘Active’ or ‘Inactive’.

Process List with Versioning

Process List with Versioning

One of the frustrating limitations in beta was that not all the UI features (i.e. scroll bars) were available in browsers other than Chrome and, while it appears to still be the best option, users can now utilize Firefox and IE. While the UI changes in Spring 15 are welcomed and needed there are still some notable UI items that can be a bit frustrating. Here are some of the items to be aware of (if anyone has figured out ways around these, please let us know):

  • Editing – Users cannot edit a process once it has been activated. Therefore much like with flow a new process needs to be created by cloning the initial process and making modifications to that cloned record
  • Autosave – While a nice feature it won’t allow a user to cancel out of a process when they have made unwanted changes (Autosave + Undo = Perfection)
  • Troubleshooting – UI does not allow an Admin to tell who created a Process, when it was created, or the ID for that Process. Also all trouble shooting must be done in the debug log
  • Validation – Processes DO NOT trigger Validation rules and can therefore invalidate data
  • Deletion – Inactive Processes cannot be deleted for at least 12 hours after inactivation and do not appear in the Recycle Bin
  • Error Messages – You cannot specify error messages when creating a process that doesn’t trigger like you can with flow or validation rules
  • Formula Help – When utilizing a formula in criteria there is no function help preview next to the Syntax
  • Order – You can’t change the order of criteria nodes or actions, after you add them the only way to reorder is to delete them and start over
  • Syntax – Picklist fields are evaluated as text fields in process builder so they won’t support any picklist formulas like ISCHANGED or ISNEW. Note – with Spring 15 the formula ISCHANGED is now a function vs. a formula and will work with picklists

Tips and Tricks – We envision that a number of the Process Builder ‘quirks’ will be updated soon but until then some helpful tips for an administrator can be found below. While they are not totally inclusive they cover a number of the scenarios we came across during testing.

  • Deleting a Process with Scheduled Actions – You cannot delete a Process with unexecuted groups of scheduled actions. So if you have a process which fires actions based on future dates like 3 days after opportunity close, you will need to delete the scheduled actions before the process can be deleted. To do so go to Workflow/Flows/Waiting Interviews – the scheduled actions will have a Flow name that corresponds to your Process name
  • Approval Processes – Only the record that started the process will be submitted. You can’t submit any related records for approval. Therefore you may need to create 2 processes, one that updates the object and another that submits it for approval based on the criteria.
  • Setting field values – You cannot populate a field with a formula in process builder. You can only manually enter a literal or select another variable (i.e. field). To populate a text field with a formula create a separate formula field and then reference that in your process.
  • Not Retroactive – Much like workflow, processes that are created after records are saved don’t evaluate those records retroactively. Note – with Spring 15 you can evaluate a record multiple times in a single transaction in case other workflows or flows changed the record criteria of the record.
  • Validation – Updates to records via Processes don’t trigger validation rules. This is a big one to watch out for as you might be creating records that violate your own validation rules and then nailing the first user that tries to edit the record.
  • Launching a Flow – A user can only call flows that are “trigger ready”. “A trigger-ready flow is a flow that can be launched from a flow trigger workflow action. Because trigger-ready flows must be able to run in bulk and without user interaction, they can’t contain Step, Screen, or Apex Plug-in elements in any flow version.
    Flow Triggers now = Process Builder. Note – with Spring 15 this is now called Auto-launched Flows
  • Troubleshooting – Only the administrator who created the process will received an emailed error message detailing the error in the process
  • Lead Convert – Processes only evaluate converted leads if validation and triggers for lead convert are enabled in the lead settings

Best Practices – While testing the tool in Beta release we quickly realized that some of the UI and troubleshooting limitations meant we needed to be extra careful with our processes, particularly when they interacted with other processes, workflows, or triggers. While each instance is slightly different, some cautions and best practices that we’re helpful for us as we tested different scenarios:

  • Check – to see if there are any workflows on the object doing the same thing as the process. Also verify no active Apex triggers
  • Avoid – interweaving Apex, Workflow, and Processes together for the same process. As Workflows and Triggers don’t always place nice together so holds true for Processes. Even if you do get them to work, it’s just a bad practice to spread logic over multiple methods. Keep it all together in one place so you can see what’s happening down the entire flow
  • Document – Use the description field to populate information such as when it was created by who and what the process does. In addition, if processes work in conjuncture with each other, reference the other(s) process names in the description field
  • Test – And then test some more. Especially when you’re first starting to use this please practice in a sandbox first and really test out what you’re trying to do. There’s a lot of ability to impact users and data here if you do something wrong

Well, that’s our write-up for Process Builder. It’s a lot to take in, but an extremely powerful feature for salesforce. Take your time and really get familiar with it before pushing anything to Production, but once you have this under your belt you have a ton more functionality at your disposal. This is definitely a feature that salesforce will continue to improve each release so we’ll do our best to keep this up to date as they do. Let us know if you find anything yourselves!

1 thought on “Overview of salesforce’s Process Builder

Leave a Reply

Your email address will not be published.

Find out how Gears CRM can take your Salesforce to the next level:
Contact Us