• LaurenAke
  • NEWBIE
  • 10 Points
  • Member since 2015
  • Salesforce Enthusiast
  • Eating Recovery Center

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 2
    Questions
  • 0
    Replies
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);
}
}
Okay...what is staring me in the face that I'm missing here? It's saying this on line 18
 
// Send follow up notification to ERC team
trigger outpatientFollowUp on Opportunity (before insert, before update) {
  // Get Oppy record that has just changed to admitted
  Set<Id> admOpp = new Set<Id>();
  for (Opportunity oppLoop : Trigger.new) {
    if (oppLoop.StageName == 'Admitted' && oppLoop.Admission_Date__c != null) {
      admOpp.add(oppLoop.Id);
    }
  }

  // Get ERC Treatment Team Members
  Map<Id,ERC_Treatment_Member__c> ercTTsmap = new Map<Id,ERC_Treatment_Member__c>([SELECT Id, Provider_Email__c FROM ERC_Treatment_Member__c WHERE Admission__c IN:admOpp]);
    Set<Id> ercTTs = ercTTsmap.keyset();
    
  // Create a master list to hold the emails to send
  List<Messaging.SingleEmailMessage> mails = new List<Messaging.SingleEmailMessage>();
  
      for (ERC_Treatment_Member__c teamMember : ercTTs) {
    if (teamMember.Provider_Email__c != null) {

      // Create new Email
      Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
    
      // Set list of people who should get the email
      List<String> sendTo = new List<String>();
      sendTo.add(teamMember.Provider_Email__c);
      mail.setToAddresses(sendTo);

      // Set ID of template
      mail.setTemplateId('00X0G000001jlXV');
    
      // Set who the email is sent from
      mail.setReplyTo('lauren.ake@eatingrecovery.com');
    
      // Add email to master list
      mails.add(mail);
    }
  }
  // Send all emails
  Messaging.sendEmail(mails);
}