Loading
Upcoming Mandatory Changes to Public Key Infrastructure (PKI)Read More
Salesforce Enforces New Security Requirements in Summer 2026Read More
Table of Contents
Select Filters

          No results
          No results
          Here are some search tips

          Check the spelling of your keywords.
          Use more general search terms.
          Select fewer filters to broaden your search.

          Search all of Salesforce Help
          Create an Apex Class for Proof of Insurance Emails

          Create an Apex Class for Proof of Insurance Emails

          Create an Apex class to send an email with attachment to the policyholder who requests insurance proof.

          Required Editions

          Available in: Lightning Experience
          Available in: Enterprise, Unlimited, and Developer Editions with Financial Services Cloud and Unified Catalog.
          User Permissions Needed
          To create Apex class: Customize Application
          1. Click Setup, and then click Developer Console.
          2. Click File | New | Apex Class.
          3. Enter a name for the apex class.
          4. Add the apex class code.

            Here’s a sample apex code for an apex class. This code is used to send an email with attachment to the user who requests an insurance proof.

            /*************************
            * @Class Name:- FSCInsServiceProcessSendEmail
            * @Description:- This apex class contains an invocable method used to send email along with attachment
            **************************/
            global with sharing class FSCInsServiceProcessSendEmail {
            // Method to send email along with attachment and returns either Success or Failure back to flow output variable
            @InvocableMethod(label='Send Email to user with attachment' description='Sends email to user from apex ')
            public static List<String> sendEmail(List<Requests> request) {
            List<Messaging.SingleEmailMessage> mails = new List<Messaging.SingleEmailMessage>();
            Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
            List<String> response = new List<String>();
            List<String> sendTo = new List<String> {request[0].sendToEmailId};
            mail.setToAddresses(sendTo);
            mail.setSubject(request[0].emailSubject);
            mail.setHtmlBody(request[0].textTemplate);
            //Fetch attachment id associated to the caseId and append it to email as attachments
            List<Attachment> attList = new List<Attachment> ([SELECT Id, Name FROM Attachment WHERE parentId =: request[0].caseId WITH SECURITY_ENFORCED]);
            if (attList.size() > 0) {
            List<String> attachmentIds = new List<String> {attList[0].Id};
            mail.setEntityAttachments(attachmentIds);
            }
            // Add email to the master list
            mails.add(mail);
            //Send all emails in the master list
            Messaging.SendEmailResult[] results = Messaging.sendEmail(mails);
            if (results[0].success) {
            response.add('Success');
            } else {
            response.add('Failed to send email');
            }
            return response;
            }
            
            //set of invocable variables which is used to set values from flow
            global class Requests {
            @InvocableVariable(label='Email Body' description='Text template of email body')
            global String textTemplate;
            @InvocableVariable(label='Send To Email Id' description='Email id of recipient')
            global String sendToEmailId;
            @InvocableVariable(label='CaseId' description='Case Id associated with attachment')
            global String caseId;
            @InvocableVariable(label='Email Subject' description='Email subject')
            global String emailSubject;
            }
            }
            
           
          Loading
          Salesforce Help | Article