In Salesforce, managing user access is one of the most important responsibilities of an administrator. Sometimes we need to prevent a user from logging in to the system without deleting or deactivating their account.
As a Salesforce administrator, I manage user/employee access, permissions, and organization security, including temporarily removing user access.
For example, when an employee is about to leave the company and their last day is near, we want to restrict them from logging in to Salesforce until their account is formally deactivated.
Now, whenever we want to freeze those employees, we have to remember the date, log in to Salesforce, find the user, and freeze the account ourselves.
To automate this process, we can create a schedule trigger flow to freeze the user’s account. This stops the user from logging in before the admin fully deactivates the account.
In this article, we will understand what it means to freeze a user in Salesforce and how we can automate this process using Salesforce Flow.
We will also explore real-time business scenarios, differences between freezing and deactivating users, and step-by-step implementation using a scheduled flow.
By the end of this guide, you will be able to build a complete automation solution to efficiently manage user access.
What Does “Freeze User” Mean in Salesforce?
Freezing a user in Salesforce means restricting that user from logging into the system without deleting their account or removing their data.
When a user is frozen:
- They cannot log in
- Their data remains safe
- Their records are still accessible
This feature is useful when:
- Employee leaves the company
- A security issue occurs
- A temporary restriction is needed
Freezing prevents login but keeps the user active in the system.
Freeze User vs Deactivate User in Salesforce
| Feature | Freeze User | Deactivate User |
|---|---|---|
| Login Access | Blocked | Blocked |
| User Data | Retained | Retained |
| License Usage | Used | Released |
| Reversible | Easy | Complex |
| Used When | Temporary | Permanent |
- Freeze = Temporary control
- Deactivate = Permanent action
Why We Need To ‘Freeze Users’ In Salesforce?
We need to ‘freeze users‘ in Salesforce to restrict them from logging in without losing their data or settings. It is useful when an employee leaves the company, goes on long leave, or if there is any suspicious activity on their account.
If we deactivate the user, we risk losing the data. Freezing the user helps maintain security while giving admins time to review or reassign the user’s work before fully deactivating the account.
Freeze User Account Using Salesforce Flow
Using the above scenario and the following steps, we can freeze the user’s account via a Salesforce flow.
Prerequisite:
We need a Date field on the User Standard Object. Here, you can see that I created one with a “Freeze On” label, which is displayed in the User’s info in Setup.
This is a custom field that will be displayed in the Additional Information section.

Now, we will create a flow that checks every day whether there is a user to freeze. If a user is found, the flow will automatically freeze them.
Log in to Salesforce Org. -> Click on the Setup -> Home Tab -> In the Quick Find Box, Search for Flows. You will see an option under Process Automation -> Click on Flows.
Then, click on the New Flow button to create a new flow.
Here, we will schedule the flow to the freeze user. For that, create a flow with a Scheduled TriggeredFlow.
Now, we will create the following elements in the flow, according to the diagram below.
As we click on the schedule trigger flow, we need to set a schedule time:
- Start Date: When do you want to start the flow?
- Start Time: When should it trigger in the day?
- Frequency: Here, we can select Once, Daily, and Weekly.

Then, we need to select the Object on which we will create a flow. Here, I have selected User Standard Object. Then enter the Filter Conditions:
- IsActive – Equals – True.
- Freeze On – Is Null – False.
If both conditions are true, only those records will trigger the flow.

Then, we need to check the freeze date so we can take action on the user. For that, we will add the Decision element to check the Freeze On date.
Add a Decision element by clicking on the Add Element + icon and enter Label; API Name will automatically populate.
- First Outcomes, enter Yes: Add condition Freeze On – Less than or Equal – Current Date.
- Second Outcome, enter No:

When the Freeze On date is less than or Equal to the current date, then we need to freeze the user.
To do this, add the Update Record element by clicking the ‘Add Element‘ button, then enter a Label and API Name, which will be automatically populated.
Then, to find the records to update and set their values, select “Specify conditions to identify records and set fields individually.”
This allows us to specify objects and fields individually. Here, we need to update the user login to freeze. Select User Login in the Object field.

Then, in the Filter User Login Records in the Field, select the following condition:
- UserID – equals – Record.UserID. This condition checks the UserID of the current user, and the UserID of the User Login object should match.
Now, to Set field values for the Login User Records, select the following condition:
- IsFrozen = True. This means we make a user account Freeze.

After setting the values, we need to set the Freeze On (Date field on User) field to an empty value.
To do this, add the Update Records element and enter the Label and API Name.
Then, Set field values for the User Records. Select the following condition:
- Freeze_On__c(FIeld on User Object) = Blank.

Now, when you navigate to the particular user before activation, you will see the “Freeze” option and the “Freeze On” Custom Date Field.

After setting up all labels and conditions, click the Save button to save the flow. For that, we need to enter the Flow Label; the API Name will automatically populate as we click the text box. The Description is optional; we can introduce our flow shortly.
After saving the flow, click on the Debug button. Then click on the Activate button; always remember to debug the flow before activating it. It’s good practice to use flow.
After activating the flow, you will see the user is frozen, with an option to unfreeze them. Also, the “Freeze On” date field gets blank.

This is how we can freeze a user’s account using Salesforce Flow.
Frequently Asked Questions
Q1: Can we freeze a user without Flow?
Yes, manually from the user record
Q2: Can we unfreeze the user?
Yes, by setting IsFrozen = False
Q3: Does freezing delete data?
No, data remains safe
Q4: When should we freeze instead of deactivate?
When access needs to be temporary
Conclusion
Freezing user accounts in Salesforce is a powerful way to manage access without affecting user data. Instead of manually freezing users, we can automate this process using Salesforce Flow, making the system more efficient and secure.
By using scheduled flows, UserLogin object updates, and real-time conditions, admins can build a scalable solution to handle user access. This approach is widely used in real organizations to ensure security and smooth user management.
You may like to read:
- Create and Send a PDF Via Email Using Salesforce Flow
- Freeze or Unfreeze Multiple Users via Salesforce Data Loader
- Auto-Deactivate Users with Schedule-Triggered Flow in Salesforce
I am Bijay Kumar, the founder of SalesforceFAQs.com. Having over 10 years of experience working in salesforce technologies for clients across the world (Canada, Australia, United States, United Kingdom, New Zealand, etc.). I am a certified salesforce administrator and expert with experience in developing salesforce applications and projects. My goal is to make it easy for people to learn and use salesforce technologies by providing simple and easy-to-understand solutions. Check out the complete profile on About us.