Loading

How to query on PermissionSetLicenseAssign to get map of Permission Set Licenses with User IDs

게시 일자: Jun 26, 2026
상세 설명

This article provides three methods to retrieve a mapping of Salesforce Permission Set Licenses and the User IDs of the users assigned to them. A Permission Set License (PSL) grants a user access to a specific set of features beyond their base license. You can retrieve this mapping using a SOQL query in the Developer Console, using the Workbench REST Explorer, or by running Apex code in the Execute Anonymous Window to generate and email a CSV file with the results.

솔루션

Option 1: Run a SOQL Query in the Developer Console

Open the Developer Console in Salesforce (from Salesforce Classic: click Your Name > Developer Console; from Lightning Experience: click the gear icon > Developer Console). In the Query Editor tab, run a SOQL query against the PermissionSetLicenseAssign object, selecting the PermissionSetLicense.MasterLabel field (the human-readable name of the license) and the AssigneeId field (the 15 or 18-character User ID of the assigned user). Click Execute in the lower right corner. The results show each user and their associated Permission Set License name.

SELECT PermissionSetLicense.MasterLabel, PermissionSetLicenseAssign.AssigneeId 
FROM PermissionSetLicenseAssign

Option 2: Use REST Explorer in Workbench

In Workbench (workbench.developerforce.com), navigate to the Utilities tab and select REST Explorer. Send a GET request to the Salesforce Query API endpoint using the same SOQL statement, URL-encoded. For example, the query endpoint format is /services/data/vXX.0/query/?q=SELECT+PermissionSetLicense.MasterLabel,PermissionSetLicenseAssign.AssigneeId+FROM+PermissionSetLicenseAssign. Click Show Raw Response to view the JSON results, which you can copy, save, and process as needed.

/services/data/vxx.0/query/?q=SELECT+PermissionSetLicense.MasterLabel,PermissionSetLicenseAssign.AssigneeId+FROM+PermissionSetLicenseAssign

Option 3: Email a CSV File Using Execute Anonymous Window

Open the Execute Anonymous Window in the Developer Console (Debug > Open Execute Anonymous Window). Paste Apex code that queries all PermissionSetLicenseAssign records, iterates through the results, builds a comma-separated string of license name and User ID pairs, attaches the resulting data as a CSV file using Messaging.EmailFileAttachment, and sends it to a specified email address using Messaging.SingleEmailMessage. Update the email address variable at the top of the code to your own email address before executing. After execution, check your inbox and download the CSV file.

string emailAddress='YOUR EMAIL ADDRESS GOES HERE';
string myRow;
string myCSVFile = '';

list<permissionsetlicenseassign> response = [SELECT PermissionSetLicense.MasterLabel,AssigneeId,PermissionSetLicense.ID FROM PermissionSetLicenseAssign];

for (permissionsetlicenseassign result:response) {
  myRow = result.permissionsetlicense.masterlabel + ',' + result.AssigneeId;
  system.debug (myRow);
  myCSVFile += myRow + '\n';
}
Messaging.EmailFileAttachment csvAttachment = new Messaging.EmailFileAttachment();
Blob myBlob = blob.valueOf(myCSVFile);
String myName = 'UserID and Wave Permission Set License List.csv';
csvAttachment.setFileName(myName);
csvAttachment.setBody(myBlob);
Messaging.SingleEmailMessage myEmail = new Messaging.SingleEmailMessage();
String[] toAddresses = new String[]{emailAddress};
String subject = 'UserID and Wave Permission Set License List CSV';
myEmail.setSubject(subject);
myEmail.setToAddresses(toAddresses);
myEmail.setPlainTextBody('UserID and Wave Permission Set License List CSV');
myEmail.setFileAttachments(new Messaging.EmailFileAttachment[]{csvAttachment});
Messaging.SendEmailResult[] r = Messaging.sendEmail(new Messaging.SingleEmailMessage[]{myEmail});
Knowledge 기사 번호

000383181

 
로드 중
Salesforce Help | Article