Skip to main content
6 of 7
added 1216 characters in body
PartOfTheOhana
  • 10.6k
  • 15
  • 95
  • 182

How to pass paramaters from an email template into a custom component?

setup:

Opportunities are related in a MDR to children__c object. When my opp reaches a stage, an email alert (via workflow) gets sent out with the opp info. I want to include a list of urls for the children record related to that master opp. I did some reading- and it looks like custom components do the trick.

questions:

  1. is this the right approach?
  2. how do i pass params to the custom compoenent from the email template?

EDIT- Code:

Apex Class

    public with sharing class BenefitChecklistEmailTemplateHelper {
        public list <Benefit_Checklist__c> checklists;
        public String oppId {get; set;}
        
        public BenefitChecklistEmailTemplateHelper(){
            system.debug('oppid :' +oppId);
            this.checklists = [select id, name from Benefit_Checklist__c where Opportunity__c = :oppId];
            getChecklists();
        }   
        public list<Benefit_Checklist__c> getChecklists(){
             return checklists;
        }
    }

Custom component

    <apex:component controller="BenefitChecklistEmailTemplateHelper" access="global">
    <apex:attribute id="oppId" assignTo="{!oppId}" name="opportunityIDFromEmail" type="ID" description="The Opporunity's SF ID"/>    
       <table border="0" >
             <tr>
                 <apex:repeat var="c" value="{!Checklists}">
                    <tr>
                        <td><a href="https://na1.salesforce.com/{!c.id}">View</a> </td>
                        <td class="sub_section_label">Checklist Name</td><td class="sub_section_data">: {!c.id}</td>
                    </tr>
                </apex:repeat>   
            </tr>              
        </table>
    </apex:component>

Email Template

    <c.BenefitChecklistEmailTemplateHelper opportunityIDFromEmail="{!relatedTo}"/>
PartOfTheOhana
  • 10.6k
  • 15
  • 95
  • 182