Skip to main content

Permission Types Reference

SimplePerm migrates 13 permission types from profiles to permission sets. Each type is listed below with its API name, category, and what it controls.

Supported Permission Types

#Type NameAPI NameCategoryDescriptionExample
1Object PermissionsobjectPermissionsCoreCRUD access (Read, Create, Edit, Delete, View All, Modify All) on standard and custom objectsAccount: Read, Create, Edit
2Field PermissionsfieldPermissionsCoreField-level security controlling read and edit access on individual fields per objectAccount.Phone: Read, Edit
3System/User PermissionsuserPermissionsCorePlatform-level permissions controlling system-wide capabilities (~160+ available permissions)ViewSetup, ManageUsers, ApiEnabled
4Tab SettingstabSettingsCoreTab visibility settings controlling whether tabs appear for each appAccount: DefaultOn, Opportunity: DefaultOff
5Apex Class AccessclassAccessesAccessControls which Apex classes a user can executeMyController: Enabled
6Visualforce Page AccesspageAccessesAccessControls which Visualforce pages a user can accessMyPage: Enabled
7Custom PermissionscustomPermissionsAccessCustom permissions defined by packages or admins for feature gatingMy_Custom_Perm: Enabled
8Record Type VisibilitiesrecordTypeVisibilitiesVisibilityControls which record types are visible per objectAccount.Business: Visible
9Flow AccessflowAccessesAccessControls which Flows a user can run (Screen Flows, Autolaunched, Record-Triggered)My_Screen_Flow: Enabled
10Custom Metadata Type AccesscustomMetadataTypeAccessesAccessControls access to custom metadata typesMy_MDT__mdt: Enabled
11Custom Setting AccesscustomSettingAccessesAccessControls access to custom settingsMy_Setting__c: Enabled
12External Data Source AccessexternalDataSourceAccessesAccessControls access to external data sources configured in the orgMy_External_Source: Enabled
13App VisibilitiesapplicationVisibilitiesVisibilityControls which Lightning/Classic apps are visible and which is the defaultSales: Visible, Default

Non-Migratable Settings

These profile settings cannot be migrated because Salesforce does not support them on the PermissionSet object:

SettingReason
Login HoursProfile-only setting. No permission set equivalent exists.
Login IP RangesProfile-only setting. No permission set equivalent exists.
Layout AssignmentsLayout assignments are a profile-level concept. Permission sets do not control page layouts.

These will always show as differences when comparing a profile to its migrated permission set. This is a Salesforce platform limitation, not a SimplePerm gap.

Migration Behavior

These rules apply to all 13 migratable types:

  • Enabled-only filtering: Only entries that are enabled (or set to true) on the source profile get migrated. Disabled entries are excluded.
  • Name preservation: Object names, field names, class names, and other identifiers carry over exactly as they appear on the profile, namespace prefixes included (e.g., ns__My_Object__c).
  • Profile-only fields stripped: Some profile metadata fields (like default flags on record types) have no permission set equivalent. They are read during extraction but dropped at the build step.

Category Breakdown

Core (4 types): Object Permissions, Field Permissions, System/User Permissions, Tab Settings. The most commonly configured and the backbone of any migration.

Access (6 types): Apex Class, Visualforce Page, Custom Permission, Flow, Custom Metadata Type, Custom Setting, External Data Source. These gate which platform resources a user can interact with.

Visibility (2 types): Record Type Visibilities and App Visibilities. Control which record types and applications a user sees.