Incorporating Permission Set Assignment Migrations into Your Salesforce DevOps Process

Sam Hoult
July 4, 2025

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.

Why Permission Set Assignments Matter in DevOps

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.

How to Migrate Permission Set Assignments with Dataimporter

Incorporating this into your deployment flow is straightforward with Dataimporter:

1. Create a Migration Template

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.

2. Add PermissionSetAssignment as a Top-Level Object

On the Objects page, select PermissionSetAssignment as a top-level job. This ensures you're migrating user-to-permission set links directly.

3. Apply Filters (Optional)

You can refine which assignments to migrate. For example, exclude system-owned sets with:

PermissionSet.IsOwnedByProfile = false

4. Map Fields with Lookups

The key fields are:

Use lookup mappings to match users by email or username, and permission sets by name. This avoids relying on IDs, which differ between orgs.

5. Pre-Deploy Metadata

Ensure all PermissionSet records already exist in the target org. These must be deployed via your metadata pipeline before running the Dataimporter job.

6. Run the Migration

Execute the job. Dataimporter will recreate all valid assignments in the target org, restoring user access exactly as defined in the source environment.

Best Practices

Final Thoughts

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.

Get Started with Dataimporter