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
LaurenAkeLaurenAke 

Auto email trigger on sibling records not firing

This is supposed to auto-email an opportunity template that pulls info from child objects to contacts related to the main object on this trigger (which is also a child object of opportunities)...it compiles fine, but it's not actually sending anything. I'm new to apex so forgive my ignorance if it's an obvious oversight!
trigger outptProvFollowUp on ERC_Treatment_Member__c (before insert) {
    
    // Get ERCTTs that have just been created and/or updated
  List<ERC_Treatment_Member__c> newERCTTs = new List<ERC_Treatment_Member__c>();
  for (ERC_Treatment_Member__c e : Trigger.new) {
    if (e.Admission__r.StageName == 'Admitted' && e.Admission__r.Admission_Date__c != null && e.Active__c ==true) {
     	newERCTTs.add(e);
     }
  }
    
  // Grab dummy contact
    Contact c = [SELECT Id, Email from Contact where email <> null limit 1];
    
  // Create a master list to hold the emails to send
  
    for (ERC_Treatment_Member__c teamMember : newERCTTs) {
      // Create new Email
      List<Messaging.SingleEmailMessage> mails = new List<Messaging.SingleEmailMessage>();
      Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
    
      // Set list of people who should get the email
      List<String> sendTo = new List<String>();
      sendTo.add(teamMember.Clinician__r.Email);
      mail.setToAddresses(sendTo);
      mail.setWhatId(teamMember.Admission__c);
      mail.setTargetObjectId(c.Id);
      mail.setTemplateId('00X3D000000QOZE');
          
      mails.add(mail);
    
    Savepoint sp = Database.setSavepoint();
    Messaging.sendEmail(mails);
    Database.rollback(sp);
    
    List<Messaging.SingleEmailMessage> msgsToSend = new List<Messaging.SingleEmailMessage>();
    for (Messaging.SingleEmailMessage actualEmail : mails) {
        Messaging.SingleEmailMessage emailToSend = new Messaging.SingleEmailMessage();
        	emailToSend.setToAddresses(actualEmail.getToAddresses());
        	emailToSend.setPlainTextBody(actualEmail.getPlainTextBody());
        	emailToSend.setHtmlBody(actualEmail.getHTMLBody());
        	// emailToSend.setSubject(email.getSubject());
        msgsToSend.add(emailToSend);
    }
    Messaging.sendEmail(msgsToSend);
}
}