Migrating Validation Rules from Apex to Flow

In an attempt to demonstrate Flow's Custom Error element, let's walk through a hypothetical example of how this can be used in place of some legacy Apex code. Our goal is to create validation logic that prevents Users from storing more than 10 Contacts per Account.

We'll compare the following solutions in solving this requirement:

  1. Apex
  2. Flow


Firstly, let's see how this could be done using Apex's addError() method:




And finally, we can make use of Flow's Custom Error element to fulfill the same set of requirements:

Contact After Create/
Record-Triggered Flow

Here are the Flow Elements in play:

  • Start Criteria
  • Get Contacts (Get Records)
  • Assign Count (Assignment)
  • Does Count Exceed 10? (Decision)
  • Error Message (Custom Error)

Ensure that the AccountId value is not null:

Start Criteria

Query the Account's related Contacts:

Get Contacts (Get Records)

Assign the count of Contacts to a variable:

Assign Count (Assignment)

Check to see if the count exceeds 10:

Does Count Exceed 10? (Decision)

If the count exceeds 10: generate an Error Message for the User:

Error Message (Custom Error)

In an effort to reduce programmatic overhead, Salesforce Administrators can utilize Flow's Custom Error element in place of validations that used to require Apex Code.