Tuesday 12 November 2013

How to insert user and send email notification with password in apex trigge

The following trigger will insert a new user record when ever contact record is created and send email notification with password.

  1. trigger PortalUserCreation on Contact (after insert) {
  2.    
  3.     List<User> userList=new List<User>();
  4.    
  5.     Profile pf = [SELECT Id FROM profile WHERE name='Standard User' limit 1];
  6.    
  7.     for(Contact objectContact:System.Trigger.new)
  8.     {
  9.         User mockUser=new User();
  10.         mockUser.contactId=objectContact.Id;
  11.         mockUser.username=objectContact.Email;
  12.         mockUser.firstname=objectContact.FirstName;
  13.         mockUser.lastname=objectContact.LastName;
  14.         mockUser.email=objectContact.Email;
  15.         mockUser.communityNickname = (objectContact.LastName +string.valueof(Math.random()).substring(4,9));
  16.         mockUser.alias = string.valueof(objectContact.LastName.substring(0,1) +
  17.                                         string.valueof(Math.random()).substring(4,9));            
  18.         mockUser.profileid = pf.Id;
  19.         mockUser.emailencodingkey='UTF-8';
  20.         mockUser.languagelocalekey='en_US';
  21.         mockUser.localesidkey='en_US';
  22.         mockUser.timezonesidkey='America/Los_Angeles';
  23.        
  24.         // Mail alert Coding with temporary password
  25.         Database.DMLOptions dlo = new Database.DMLOptions();
  26.         dlo.EmailHeader.triggerUserEmail = true;
  27.         dlo.EmailHeader.triggerAutoResponseEmail= true;
  28.         mockUser.setOptions(dlo);  
  29.         userList.add(mockUser);          
  30.        
  31.     }
  32.     insert userList;
  33.    
  34. }

No comments:

Post a Comment

Activities: Assign Tasks to a Queue Salesforce Lightning

Salesforce announced to assign Tasks to a Queue beginning from Spring'20 release. How does it work? In Setup, enter Queues in th...