trigger SendIndustryChangeEmail on Account (before update) { for (Account a : Trigger.new) { Account oldAccount = Trigger.oldMap.get(a.Id); if (a.Industry != oldAccount.Industry) { Messaging.SingleEmailMessage email = new Messaging.SingleEmailMessage(); email.setToAddresses(new String[] {a.Owner.Email}); email.setSubject('Industry Changed for Account: ' + a.Name); email.setPlainTextBody('The industry of the account has changed from ' + oldAccount.Industry +' to ' + a.Industry); Messaging.sendEmail(new Messaging.SingleEmailMessage[] {email}); } } }
trigger and a separate class:
Trigger:
trigger SendIndustryChangeEmail on Account (before update) { IndustryChangeHandler handler = new IndustryChangeHandler(); handler.sendIndustryChangeEmail(Trigger.new, Trigger.oldMap); }
Class:
public class IndustryChangeHandler { public void sendIndustryChangeEmail(ListnewAccounts, Map oldAccountsMap) { for (Account newAccount : newAccounts) { Account oldAccount = oldAccountsMap.get(newAccount.Id); if (newAccount.Industry != oldAccount.Industry) { Messaging.SingleEmailMessage email = new Messaging.SingleEmailMessage(); email.setToAddresses(new String[] {newAccount.Owner.Email}); email.setSubject('Industry Changed for Account: ' + newAccount.Name); email.setPlainTextBody('The industry of the account has changed from ' + oldAccount.Industry +' to ' + newAccount.Industry); Messaging.sendEmail(new Messaging.SingleEmailMessage[] {email}); } } } }