ARDN Cloud Solutions
HomepageSearch Results

How to Find and Remove Inactive Salesforce Users

HomepageBlogSalesforce Cost Optimization

How to Find and Remove Inactive Salesforce Users

4 min read
How to find and remove inactive Salesforce users — ARDN Cloud Solutions

Every Salesforce org accumulates dormant licenses: people who changed roles, contractors whose project ended, employees who left without an offboarding ticket ever reaching IT. None of them log in anymore, and all of them are still billed at full price until someone notices. This is the cleanup process, start to finish.

Step 1: Pull last-login data

Setup → Users gives you a Last Login column, and the Login History and Identity Verification History reports go deeper if you need date ranges. Export the full user list with last-login timestamps rather than eyeballing the UI — you want a spreadsheet you can sort and filter.

Step 2: Set a dormancy threshold and flag accounts

60–90 days with zero logins is a reasonable default for most orgs — long enough to not catch someone back from parental leave, short enough to catch role changes and departures promptly. Flag anything past that threshold, and cross-reference against your HR system if you have one; a name that’s already termed in HR but still active in Salesforce is the highest-priority fix.

Step 3: Don’t just delete — freeze first

Deactivating a user in Salesforce can break record ownership, approval chains, and automation tied to that user ID. Freeze the user first (Setup → Users → Freeze), which blocks login immediately without releasing the license or disturbing ownership. Confirm nothing breaks for a business cycle, then deactivate and reassign records as needed.

Step 4: Reclaim or downgrade the license

Once a seat is confirmed dormant, either remove the license entirely (if headcount actually shrank) or hold it in a pool for the next hire rather than buying a fresh one at renewal. Either way, get the freed seat off the active bill — this is the step that’s easy to skip and expensive to forget.

Step 5: Stop it from recurring

A one-time cleanup fixes today’s bill; it doesn’t stop the same drift happening again in six months. Two things prevent recurrence: tying Salesforce deactivation to your HR/identity offboarding workflow so it’s automatic, and running a scheduled scan instead of an annual fire drill. License Guard runs this scan continuously and flags dormant and duplicate seats as they appear, so cleanup stops being a quarterly project.

Approach Frequency Effort
Manual export + review Ad hoc / annual Hours, repeated each time
Scheduled report + calendar reminder Quarterly Lower, still manual
Continuous automated scan (License Guard) Ongoing Set up once, runs itself

What this doesn’t fix

Inactive-user cleanup recovers seats you’re already paying for and shouldn’t be — it’s a maintenance task, not a structural fix. If a large share of your licensed users are active but only doing a handful of narrow tasks (checking a status, submitting a form, pulling a report), the fix is different: move them to a flat-fee custom portal synced to Salesforce instead of a per-seat license. See the full breakdown in how to reduce CRM licensing costs, and pair this cleanup with a broader look at how to identify your light CRM users.

Frequently asked questions

Will freezing a user break their existing records or workflows?

No — freezing blocks login only. Ownership, record history, and automation tied to that user ID stay intact, which is why it’s the safer first step before deactivating.

How often should we run this cleanup?

Quarterly at minimum if done manually; continuously if automated. Seat drift happens between every hiring and departure cycle, so an annual review misses months of avoidable spend.

What if a “dormant” user turns out to still need access occasionally?

That’s usually a sign they need a lighter-weight tool, not a full seat — a custom portal for occasional access costs nothing extra per person and doesn’t require reactivating a full license for infrequent use.

Book a Free Call