
Validation rules in Salesforce help ensure data quality by preventing users from saving records that don’t meet certain criteria. They use formulas to check conditions and display error messages when the rules are not met. While they are powerful for enforcing business logic, sometimes you may need to bypass validation rules in specific situations, such as during Flow.
There are multiple ways to bypass validation rules in Flow. This post shows different methods you can use for different needs. Make sure to check out the final method. It's the one I personally recommend as the most effective.
1- Using Checkbox Field on User
One common approach is to use a checkbox field on the User record. When the checkbox is checked, that user can bypass validation rules. You can see an example of this below.

However, how is this related to Flow? If the checkbox is true, the user can always bypass validation rules. It’s not just for that specific moment. This checkbox makes the user a "super user."
To bypass validation rules for that specific transaction, you can use the same Flow to temporarily check the checkbox on the User record. However, there’s a trade-off. First, you’ll need to uncheck it afterward to avoid giving the user ongoing “super user” access. Second, since you’re updating a system object (User), the Flow might fail due to a mixed DML error. Because of these limitations, this approach is not ideal.
2- Using Permission Set
Similar to the previous approach, you can assign a permission set (with a custom permission) to the current user to bypass validation rules. However, this comes with the same issues. First, you’ll need to remove the permission set at the end of the Flow, and second, the Flow may fail due to a mixed DML error. Because of these limitations, this approach is not ideal either.

3- Using Custom Settings or Custom Metadata
Custom Settings or Custom Metadata can also be used to bypass validation rules by using a checkbox to turn them off. However, this method is typically used for a different purpose. In fact, it’s a well known approach often used as a global killswitch for validation rules. So again, how is this related to Flow, especially to a specific transaction?
Just like in the previous approaches, you can mark this checkbox during the Flow interview. However, you need to make sure to uncheck it afterward so the validation rules aren't turned off for an extended period.
There are some more critical trade-offs here. In the previous approaches, you bypassed the validation rules only for the current user. However, with this approach, you're turning off validation rules for the entire org. This could affect more records than intended and not just the specific ones you're working with. Additionally, if you're using Custom Metadata, updating the checkbox during Flow can be challenging.

4- Using Checkbox Field on the Record
Using a checkbox field on the record is one of the most common approaches to bypass validation rules in Flow. You can temporarily check the box to bypass validation rules, and just like the previous approaches, you'll need to uncheck it afterward. However, since it's not a setup object or custom metadata, this method typically avoids issues like mixed DML errors.
Although this method is very common and well known, it comes with a trade-off as well. Since the checkbox needs to be marked temporarily, you have to update the same record twice. Once to check the box and again to uncheck it. And as you know, updating the same record twice isn’t exactly a best practice. On top of that, because it requires two separate updates, this approach won’t work in a single before-save record-triggered flow.

As you can see, this validation rule prevents changes to the status of Case records. However, the record-triggered Flow below is able to update the status because it marks the checkbox during the same transaction (and then unmarks it afterward).


This is the most common approach to bypass validation rules in Flow. However, as mentioned earlier, it requires two updates on the same record. So, is there a way to do it with just one update? Yes! Check out the next approach, which happens to be my personal favorite.
5- Using Date/Time Field on the Record
It’s possible to use a date/time field to bypass validation rules in Flow. Yes, a date/time field! The reason is simple: we want a field that can skip the validation rules when it changes, and date/time is easy to update. If you use a different field type like text or number, you have to calculate or ensure a unique value. But with a date/time field, you can simply set it to the current date and time, and that’s it!
Just to make it clear: Bypass_Validation_Rules__c is a date/time field. This validation rule fires when you change the status but don’t change the date/time field. Since the Flow updates both fields at the same time, it successfully bypasses the validation rule.


As mentioned earlier, there’s no need for a second update. Here’s the entire Flow.

If a user tries to change the status manually, the validation rule fires and prevents the change.

However, when the status is updated via Flow, it also updates the date/time field, allowing it to bypass the validation rule. As a result, the status is changed successfully.
Summary
To sum up, there are different ways to bypass validation rules in Flow, and each has its own trade-offs. Some are user-based, some affect the entire org, and some require extra updates. But if you're looking for a simple, clean solution that works in a single update, the date/time field trick might be just what you need.
Thanks for the tips and explanation. Going to use option 5.
What a better way to use a bit of time whilst in a waiting room, scrolling through Salesforce Time instead of the dreadful world news.
Thanks Yumi.
Haha thank you too Jitka!
Thanks for the sharing, i usually use a boolean field on object and track modification with a ISCHANGE() and assign in a flow or apex the reverse value of the actual value in the field with NOT() operator. Using time format like you do is actually faster and simplier to implement. I take note ????