Duplicate Prevent Lead Based On Email

Requirement: Write a trigger to prevent duplicate Email on Lead Object

Solution:


trigger leadDuplicatePreventer on Lead (before insert, before update) {
Map<String, Lead> leadMap = new Map<String, Lead>();
for (Lead lead : System.Trigger.new) {
if ((lead.Email != null) &&
    (System.Trigger.isInsert || (lead.Email != System.Trigger.oldMap.get(lead.Id).Email))) {
if (leadMap.containsKey(lead.Email)) {
  lead.Email.addError('Another new lead has the ' + 'same email address.');
} else { 
    leadMap.put(lead.Email, lead); 
}
}
}
for (Lead lead : [SELECT Email FROM Lead WHERE Email IN :leadMap.KeySet()]) {
Lead newLead = leadMap.get(lead.Email);
newLead.Email.addError('A lead with this email ' + 'address already exists.');
}
}

                             Thanks,
                           Sumit Shukla

Comments

Popular Post

Copy Billing Address to Shipping Address on VF Page Using JavaScript

How to use Comparable Interface in Salesforce

Get list of Key Prefix of Sobject in Salesforce