Loading
Insurance
Create an Apex Class

Create an Apex Class

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

REQUIRED EDITIONS
Available in: Lightning Experience in Professional, Enterprise, and Unlimited editions where Financial Services Cloud license is enabled with FSC Insurance add-on.
USER PERMISSIONS NEEDED
To set up the Request Insurance Proof service process:

Industries Service Process, Industry Service Excellence, Omnistudio, Case, Service Catalog Request objects Read, Create, Edit, Delete, View All Records

AND

FSC Insurance

AND

Financial Services Cloud Extension OR FSC Sales

OR

Financial Services Cloud Basic

OR

Financial Services Cloud Standard

To use Request Insurance Proof service process:

Industries Service Process, Industry Service Excellence, Omnistudio, Case, Service Catalog Request objects Read, Create, Edit, Delete, View All Records

AND

FSC Insurance

AND

Financial Services Cloud Extension OR FSC Sales

OR

Financial Services Cloud Basic

OR

Financial Services Cloud Standard

  1. Click Setup, and then click Developer Console.
  2. Create an Apex class.

    Example: To send an email with attachment to the user who requests insurance proof, use a script like this:

    /*************************
    * @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 reurns 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