function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Surender reddy SalukutiSurender reddy Salukuti 

How can i write a trigger to assign permission set when a new user is inserted with particular role ?

Hi all,

i have one requirement i need to assign a permission set when a new user is insrted with a particular role in system how can i do this by using a trigger ? 

Thanks 

 

Sai PraveenSai Praveen (Salesforce Developers) 
Hi Surender,

It would be a easy way to assign a permission set through a flow than with trigger. Any reason you need specifically a trigger?

Thanks,
 
Surender reddy SalukutiSurender reddy Salukuti
Hi praveen thanks for your response as a client requested to use a trigger 
Sai PraveenSai Praveen (Salesforce Developers) 
Hi Surender,

The trigger can be as below. You can replace that permission set id with the custom label or even quering with name. 

 
trigger AssignPermissonset on User (after insert) {
    set<id>userid= new set<id>();
    

    for(user us:Trigger.new){
       userid.add(us.id);
    }
    List<PermissionSetAssignment> permissionSetList = new List<PermissionSetAssignment>();
    List<User> userlist=[select id,UserRole.Name from user where UserRole.Name ='CEO' and  id in :userid ];
    
    for(user usr:userlist){
        
      PermissionSetAssignment psa = new PermissionSetAssignment (PermissionSetId = '0PS5g000005LIqXGAW', AssigneeId = usr.Id);
        permissionSetList.add(psa);
    }
    insert permissionSetList;
}
If this solution helps, Please mark it as best answer.

Thanks,