Salesforce Set Custom Permissions in Flow: Complete How-To Guide

Managing user access and ensuring secure, flexible permissions is critical in Salesforce. An effective method to refine this control is by leveraging Salesforce set custom permissions in Flow. Whether you’re building screen flows for guided wizards or automating access via record-triggered flows, custom permissions offer precise control over who can do what—without touching user profiles.

In this post, you’ll learn how to use Salesforce Flows to set and evaluate custom permissions, explore real-world use cases, and see how this setup boosts both admin agility and security compliance.

Table of Contents

What Are Custom Permissions in Salesforce?

Custom Permissions allow admins to define access to custom processes or UI components. Unlike standard permission sets, custom permissions provide more granular control—perfect for toggling visibility, bypassing validation rules, or granting access to automation paths.

They’re especially helpful in orgs that follow a “minimum profile, maximum permission set” strategy.


Why Use Custom Permissions in Flow?

Flows are central to Salesforce automation. Using custom permissions in Flow lets you:

  • Dynamically control flow paths without hardcoding User IDs
  • Gate components or actions behind permission checks
  • Avoid cluttering profiles with one-off permissions
  • Make your automation declarative and scalable

You can reference custom permissions directly in Flows using the global variable $Permission.Permission_API_Name.


How to Set Custom Permissions in a Salesforce Flow

Step 1: Create the Custom Permission

Create Custom Permission in Salesforce
Create Custom Permission in Salesforce
  1. Navigate to SetupCustom Permissions.
  2. Click New Custom Permission.
  3. Add a Label, API Name, and a clear description (used later in flows or validation rules).

Example:

  • Label: FlowAccess
  • API Name: FlowAccess
  • Description: Grants access to advanced Flow paths

Step 2: Add It to a Permission Set

Create a permission set in salesforce
Create a custom permission set
Assigning custom permission to the permission set
Add the Custom Permission to the newly created permission set5
  1. Go to Permission Sets in Setup.
  2. Create a new permission set (e.g., “Automation User”).
  3. Under Custom Permissions, add the one you created.

Step 3: Assign the Permission Set

Assigning permission set to the user
Add Permission Set to the User

Assign the permission set to any users or roles needing access. This avoids changes to profiles and keeps things modular.

Step 4: Reference in Flow with $Permission

Use a Decision element or Formula in Flow:

$Permission.FlowAccess == True

This checks if the current user has the custom permission.


Example 1: Using Custom Permissions in a Screen Flow

We are going to update our Job Application flow that we created in out earlier blog article on Try Catch in Salesforce Flow

Salesforce screen flow using a Decision element with custom permission check.
Salesforce screen flow using a Decision element with custom permission check.

As you can see, we have introduced a decision element in the flow which checks if the current user has the Custom Permission (Automation Process Access) assigned.

If yes then we proceed with the next execution steps, else we show a screen element saying “You don’t have access to perform this operation” and stop the process.


Example 2: Custom Permissions in a Record-Triggered Flow

Just like a Screen Flow, you can do similar checks on a Record-Trigger flow, that will prevent the current user from performing the execution if they don’t have access.

Though in this scenario we cannot add a screen element to show user the message, we can add an Apex class instead which will throw a custom error message for the user to see. I will write another article to handle this scenario.


Tips and Considerations

  • Avoid Hardcoding: Always use custom labels for showing messages in the Screen Element, or any UI related layouts.
  • Keep Expiration in Mind: Expired permission set assignments don’t show up in SOQL unless queried with ALL ROWS.
  • Debug Smartly: Test your flow paths with both permissioned and non-permissioned users, this will guarantee that the custom permission check mechanism is working.
  • Document Usage: Include descriptions on permissions and permission sets for future clarity.

More Resources


Conclusion

With the power of Salesforce set custom permissions in Flow, you can build smarter, safer, and more scalable automation. Whether you’re showing a component to a specific user group or streamlining permission set assignments, custom permissions are your new best friend.

If you find this blog article useful, do share it in your network by clicking the the social media icons provided.

Feel free to drop in your questions or suggestions on using Custom Permission in Flow.

One Comment