How to Compare Two Profiles in Salesforce

Compare two Salesforce profiles field by field: the native Setup route, the permission types worth diffing, and how to keep the result auditable.

Updated 2026-09-09

Two users, same job title, different outcomes: one can edit the record and the other cannot. Answering why means diffing two profiles across object permissions, field-level security, system permissions, and everything the profile inherits from permission sets.

Salesforce has no built-in side-by-side profile diff, which is why this is one of the most-searched admin questions and one of the most tedious to answer by hand.

The native route in Setup

This works, and it is exactly as slow as it sounds. On an org with a hundred objects, a full manual diff of two profiles is an afternoon.

  • Setup → Users → Profiles, open profile A, and note object and field permissions.
  • Repeat for profile B in a second browser tab.
  • Check assigned permission sets for both users - a permission set can grant what the profile denies.
  • Check the user records themselves for role, licence type, and Sharing settings that change effective access.

What to compare, in priority order

  • Object permissions: Read, Create, Edit, Delete, View All, Modify All.
  • Field-level security - the usual culprit when a field is invisible for one user only.
  • System permissions such as View All Data, Modify All Data, and API Enabled.
  • Tab visibility, app assignment, and record type access.
  • Assigned permission sets and permission set groups, since profile alone no longer tells the whole story.

Do it in one screen with TurboKit

TurboKit's profile comparison shows two profiles side by side with the differences highlighted, so a diff that took an afternoon in Setup takes a couple of minutes.

The same panel reads field-level security for the current object, which is normally three clicks deep in Setup per field.

Keep the result auditable

  • Export the diff before you change anything - it is your rollback reference.
  • Change one permission at a time and re-test with Login As.
  • Record the ticket or change request ID alongside the diff so the next admin knows why the permission moved.

Frequently asked questions

Does Salesforce have a built-in profile comparison tool?
Not a side-by-side diff. Setup shows one profile at a time, and permission set groups have a Muting view, but comparing two profiles across every object and field is a manual exercise without a third-party tool.
Should I compare profiles or permission sets?
Both. Salesforce's guidance is to keep profiles minimal and grant access through permission sets, so effective access is the union of the profile and every assigned permission set.
Can I compare profiles across two orgs?
Not directly in the UI. Retrieve both profiles as metadata and diff the XML, or compare them in each org and reconcile the two exports.

More from the Admin How-To

Related reading