Loading

Update custom Profile and Permission Set object level permissions with Data Loader

Publish Date: May 5, 2026
Description

This article explains how to use  Data Loader to perform a bulk update of object-level permissions for custom Profiles and Permission Sets in Salesforce.
The process involves three steps:

  1. Export existing permission records from the ObjectPermissions object using Data Loader.
  2. Edit the resulting CSV file to adjust permission flags (such as Create, Read, Edit, Delete, View All, and Modify All).
  3. Mass update the modified CSV back into Salesforce using Data Loader.

Note: Standard profiles cannot be updated using this method. Attempting to update a standard profile results in the following error: INVALID_CROSS_REFERENCE_KEY - You Can't Create, Edit, Or Delete Records For This Permission Set Parent Because It's Associated With A Standard Profile.
Refer to the User, Sharing, and Permission Objects Data Model for an overview of how ObjectPermissions, PermissionSet, and Profile objects relate to one another.


 

Resolution

Step 1: Export Existing Profile and Permission Set Object-Level Permissions

  1. Open Data Loader and select Export.
  2. Click Show all Salesforce objects and select Object Permissions (ObjectPermissions).
  3. Browse and select a file name and location to save your export, then click Next.
  4. Use the following SOQL query to retrieve all custom profile and permission set object permissions, excluding managed package components (which do not support updates):

SELECT Id, Parent.Profile.Name, Parent.ProfileId, Parent.Name, SobjectType, PermissionsCreate, PermissionsRead, PermissionsEdit, PermissionsDelete, PermissionsViewAllRecords, PermissionsModifyAllRecords, ParentId, Parent.IsCustom, Parent.IsOwnedByProfile FROM ObjectPermissions WHERE Parent.NamespacePrefix = ''

To query permissions for a specific profile only, substitute the profile's ID in the following query:

SELECT Id, Parent.Profile.Name, SobjectType, PermissionsCreate, PermissionsDelete, PermissionsEdit, PermissionsModifyAllRecords, PermissionsRead, PermissionsViewAllRecords FROM ObjectPermissions WHERE Parent.ProfileId = '<ProfileIdHere>'

  1. Click Finish and confirm to run the export.
  2. Use the exported CSV to update each profile's object-level permission columns (set to true or false). Use Save As to create a new file and keep the original as a backup.

Step 2: Mass Update Profile Object-Level Permissions

  1. Open Data Loader and select Update.
  2. Click Show all Salesforce objects and select Object Permissions (ObjectPermissions).
  3. Browse and select the updated ObjectPermissions CSV file, then click Next and OK.
  4. Click Create or Edit a Map, choose Auto-Match Fields to Columns, and verify the following fields are mapped correctly: Id, PermissionsCreate, PermissionsRead, PermissionsEdit, PermissionsDelete, PermissionsViewAllRecords, PermissionsModifyAllRecords.
  5. Click OK, then Next.
  6. Browse and select a location to save the resulting success and error files. Click Finish and confirm to run the update.
 

See Also:

Knowledge Article Number

000381102

 
Loading
Salesforce Help | Article