Wednesday, October 12, 2016

How to choose correct Process Automation tool || Process Builder vs. Visual Workflow vs. Workflow vs. Approval Process


With process automation, we now have multiple solutions available which we can use to implement the requirements. The solutions that we have are -
  • Lightning Process Builder
  • Visual Workflow
  • Workflow
  • Approvals
With so many options, it brings responsibilities as well to the developer to decide which tool to use. In this post, I will try to provide a comparative study on which tool is best based on some situations. But at the end, it is upto you as a developer to decide and select the best tool available. I hope this post will help you to take the decision.

Let's start with the easy one -

Approval Process ::
As the same suggests, whenever you need to take approval actions, you need to go for Approval process. This is an automated solution which will work based on the record creation or record value change. 
Below are few important points about approval process -
  • Complexity of Approval process is very simple. It can support only one if/then statement.
  • It doesn't support time-based approval process i.e. trigger the approval after 24 hours or something like that. It is a complete real-time solution.
  • Approval process can't call Apex code or delete any records.
  • But Approval process can create only Tasks (nothing else).
  • Approval Process can update the same record or it's parent.
Workflow :;
Workflow is the automation tool which should be used when you need to take action based record creation or record's value change. 
Below are few important points about Workflow -
  • Workflow rule works when the record is created or when the record's value is changed.
  • It supports time-based action i.e. workflow rule action can trigger after 24 hours since the value of the record changed to meet the criteria.
  • Complexity is again very simple i.e. single if/then statement.
  • It can create only task record.
  • It can't delete any records.
  • It can send outbound message without code. [This is very important factor to choose Workflow over Process Builder]
  • It can't invoke approval process.
  • It can update the same record or it's parent record. It can't update child record. [This is a limitation of Workflow and Process Builder can handle this limitation]
Visual Workflow ::
People sometimes refer Visual Workflow as "Flow". This automation tool will come into picture when you need to take some input from end user and based on the input you need to take the decision. Visual workflow is very powerful and as always with power, it brings complexity as well.
With Visual Workflow, developer can call apex, create/update/delete records, post to chatter, send emails, submit for approval. It supports time-based action as well. The only limitation with Visual workflow is that it can't send outbound messages without any code.

Process Builder ::
Process Builder is really a powerful automation tool. With Process Builder, developer can easily automate business process using graphical representation. It comes with two parts -
  • Criteria which will decide when the Process Builder will kick off.
  • Immediate or Scheduled actions which will happen when the Criteria will meet.
Below are few important points about Process Builder-
  • With Process Builder, you can create records, but you can't delete any records.
  • You can update any related records (be it with Parent or be it with Child).
  • You can submit for approval as well.
  • You can't send outbound messages without code.
  • You can launch a flow - auto launched flow. 
With all these understanding, I have prepared a small decision tree which will help you to decide the correct automation tool. 


Please provide your feedback. Thanks.

2 comments:

  1. Such a great post Sudipta. Explained the concepts so clearly. Thanks for sharing the knowledge here.

    Best of luck mate.
    Jonathan

    ReplyDelete
  2. Nice comparative article, haven't seen analysis like this.

    ReplyDelete