diff --git a/composite-envelope-builder/force-app/main/default/classes/DocusignCompositeEnvelopeBuilder.cls b/composite-envelope-builder/force-app/main/default/classes/DocusignCompositeEnvelopeBuilder.cls index ae8d5a8..f009be2 100644 --- a/composite-envelope-builder/force-app/main/default/classes/DocusignCompositeEnvelopeBuilder.cls +++ b/composite-envelope-builder/force-app/main/default/classes/DocusignCompositeEnvelopeBuilder.cls @@ -103,10 +103,27 @@ global with sharing class DocusignCompositeEnvelopeBuilder { List recipients = resolveRecipients(req.recordId); myEnvelope = myEnvelope.withRecipients(recipients); - // Set email subject if provided - if (String.isNotBlank(req.emailSubject)) { - myEnvelope = myEnvelope.withEmail(req.emailSubject, ''); + // Set envelope subject to combined template names and body to concatenated template email messages + // Query for EmailMessage__c + Map templateBodies = new Map(); + for (dfsle__EnvelopeConfiguration__c config : [ + SELECT dfsle__DocuSignId__c, dfsle__EmailMessage__c + FROM dfsle__EnvelopeConfiguration__c + WHERE dfsle__DocuSignId__c IN :sortedTemplateIds + ]) { + if (String.isNotBlank(config.dfsle__EmailMessage__c)) { + templateBodies.put(config.dfsle__DocuSignId__c, config.dfsle__EmailMessage__c); + } } + List bodyParts = new List(); + for (String templateId : sortedTemplateIds) { + if (templateBodies.containsKey(templateId)) { + bodyParts.add(templateBodies.get(templateId)); + } + } + String envelopeSubject = combinedName; + String envelopeBody = bodyParts.isEmpty() ? '' : String.join(bodyParts, '\n\n'); + myEnvelope = myEnvelope.withEmail(envelopeSubject, envelopeBody); // Send the envelope myEnvelope = dfsle.EnvelopeService.sendEnvelope(myEnvelope, true);