Incorporating Permission Set Assignment Migrations into Your Salesforce DevOps Process

Salesforce DevOps practices are increasingly focused on streamlining deployments and eliminating post-deployment configuration steps. One often-overlooked but critical component in this process is the migration of Permission Set Assignments. These assignments determine which users have access to key features and custom functionality, and omitting them can lead to frustrating gaps in access control post-deployment.
While PermissionSet
itself is metadata and must be deployed via tools like Change Sets, Salesforce DX, or Gearset, the Permission Set Assignments (PermissionSetAssignment
object) are data records—and can be migrated easily using Dataimporter.
Organizations increasingly use permission sets to grant feature-specific access, separate from profiles. In a typical CI/CD pipeline, you may successfully deploy new custom objects, Apex classes, and permission sets, but unless the associated assignments are deployed too, your users won’t have access. That creates friction, increases support overhead, and undermines the reliability of your DevOps process.
Incorporating this into your deployment flow is straightforward with Dataimporter:
Start by creating a new Migration Template. Dataimporter allows cross-org data migration without exporting CSVs, so you can directly link source and target Salesforce environments.
PermissionSetAssignment
as a Top-Level ObjectOn the Objects page, select PermissionSetAssignment
as a top-level job. This ensures you're migrating user-to-permission set links directly.
You can refine which assignments to migrate. For example, exclude system-owned sets with:
PermissionSet.IsOwnedByProfile = false
The key fields are:
AssigneeId
→ maps to the UserPermissionSetId
→ maps to the Permission SetUse lookup mappings to match users by email or username, and permission sets by name. This avoids relying on IDs, which differ between orgs.
Ensure all PermissionSet
records already exist in the target org. These must be deployed via your metadata pipeline before running the Dataimporter job.
Execute the job. Dataimporter will recreate all valid assignments in the target org, restoring user access exactly as defined in the source environment.
Incorporating Permission Set Assignment migrations into your DevOps process closes a critical gap between metadata deployment and real-world user access. With Dataimporter, you can do this quickly, reliably, and without Apex or CSVs. It's one more way to make your Salesforce deployment pipeline more complete, auditable, and automation-ready.
Ready to strengthen your Salesforce DevOps process? Start your first Permission Set Assignment migration with Dataimporter and eliminate post-deployment access issues for good.