Append images to a Rich Text field using a Flow (Admin-Oriented)

This article demonstrates how to append images to a Rich Text field using a Salesforce Flow.

Pre-requirements:

For this demo, you should ensure that the SharinPix Image Sync feature is activated for the object you intend to use. For more information on how to set up Image Sync, you can refer to the following article: Setup SharinPix Image Sync

In the following sections, we will use the Account object and configure automation that will append images to a Rich Text whenever an Account record's type is changed to a specific value using the SharinPix Apex class, SharinPixToRichTextAutomation. To do so, we will use a Salesforce Flow

The Apex class, SharinPixToRichTextAutomation, provides several fields that can be used to parametrize the Rich Text. The table below provides more details for each field:

Field Name
Description
Is Field Value Mandatory?
Record ID
The current record ID.
Yes
Rich Text Field API Name
The API name of the target Rich Text field.
Yes
Image URL Field API Name
The API name of the image URL field.
Some available values are:
sharinpix__ImageURLFull__c, 
sharinpix__ImageURLOriginal__c,
sharinpix__ImageURLThumbnail__c
,
sharinpix__ImageURLMini__c

You can also create a custom image URL field on the SharinPix Image object.
Yes
List of Image Public IDs
The list of public IDs of images to be included in the Rich Text field.
If no value is provided for this field, all images available on the record's album will be included in the Rich Text field.
No
Replace Rich Text Area Content
When the value is set to true, the existing content of the target Rich Text Area will be replaced.
No
Image Caption Text
The API name of the field containing the text to be displayed alongside the image.
Some accepted values here are any API name of Text fields available for the SharinPix Image object such as Name, sharinpix__Title__c, or Title & Description.
No
Number of Columns
The number of columns to be included in the Rich Text field.
The default column value is 1 and the accepted value ranges from 1 to 10 columns.
No

The SharinPix package includes the Apex class SharinPixToRichTextAutomation which is used in Flows to append images to a Rich Text field. 

Please note that this class is available in package version 1.194 and above. If your SharinPix package has an older version, you should refer to the following article to update the same:

How to update SharinPix package from the AppExchange?

Creation of the Flow

This section demonstrates how to create a Flow that invokes the Apex class SharinPixToRichTextAutomation to append images to a specific Rich Text field.

To do so, follow the steps below:

  • On the Account object, create a new Rich Text field named Images (You can skip this step if you have already created the field in the previous section)
  • Go to Setup. In the Quick Find Box, type Flow
  • Under Process Automation, select Flows
  • Click on the button New Flow located on the top right corner
  • Select Record-Triggered Flow as the Flow type
  • Once on the Flow builder, click on the Edit link located in the Start element
  • For the, Trigger the Flow When, section, select A record is updated
  • For the, Run the Flow section, select After the record is saved
  • Next, click on the Choose Object button located on the Start element, then
    1. Choose Account as the object
    2. Leave the Condition Requirements section as After the record is saved
    3. Next, choose Type as the field, Equals as the operator, and Customer - Channel as the value
    4. For the When to Run the Flow for Updated Records section, select Only when a record is updated to meet the condition requirements
    5. Click on Done to apply the changes
  • Then, go to the Manager tab and click on the New Resource button to create a variable as follows:
    1. For the variable, select Variable as the Resource Type
    2. Enter recordId as the API Name
    3. Choose Text as the Data Type
    4. For the Availability Outside the Flow section, select Available for input
    5. Click Done to save

Next, drag and drop an Assignment element onto the canvas. For this element, enter the following details:

  1. Enter Assign Record ID as the label
  2. In the Set Variable Values section, enter recordId as the Variable, Equals as the operator, and for the value, click on $Record__Prior followed by Id
  3. Click on Done to save
  • Connect the Assignment element to the Start element
  • Next, drag and drop an Action element
  • In the Action search bar, search for sharinpix__SharinPixToRichTextAutomation 
  • Enter Append images to Rich Text for the label
  • In the Set Input Values, configure the fields as follows:
    1. For the field Image URL Field API Name, enter the desired image URL field's API name. For this example, the field sharinpix__ImageURLThumbnail__c was used
    2. For the field Record ID, choose the variable recordId
    3. For the field, Rich Text Field API Name, enter the desired Rich Text field API name. In this case, it is Images__c

Image URL Field API Name, Rich Text Field API Name, and Record ID are mandatory fields and should always be provided with a value.

There are 4 additional non-mandatory fields, also provided by the SharinPixToRichTextAutomation Apex class. You will find more information regarding these fields in the table at the beginning of this article. 

Let's add some of them by selecting the Include button and entering the required values as follows:

  • For the Image Caption Text field, enter Name
  • For the field, Number of Columns, enter the value 2
  • For the Replace Rich Text Area Content, select {!$GlobalConstant.True}
  • Click Done to save

Tips:

  • In the above example, we did not specify a list of pre-defined images to be appended to the Rich text. In this case, all photos uploaded onto the record's album will be appended to the Rich Text by default.
  • Salesforce Flows allows you to filter the images you want to add to the Rich Text. For example, if you only want SharinPix images having the png format to be appended, you can set up the Flow in such a way as to store these images in a Collection Variable and pass the same variable as the value for the List of Image Public IDs field
  • Connect the Action element to the Assignment element before saving and activating your Flow

Demo

To test the Flow:

  • Go on an Account record
  • In the record's Details section, change the value of the field Type to Prospect to append the images to the Rich Text field
  • Check if the Rich Text field, Images, has been populated accordingly

DEPRECATED: Creation of the Process Builder

This section demonstrates how to create a Process Builder that invokes the Apex class SharinPixToRichTextAutomation to append images to a specific Rich Text field.

To do so, follow the steps below:

  • On the Account object, create a new Rich Text field named Images 
  • Go to Setup. In the Quick Find Box, type Process Builder
  • Under Process Automation, select Process Builder
  • Click on New
  • For the newly-created Process Builder:
    1. For the field, Process Name, enter SharinPix - Append images to Rich Text field
    2. Enter a description for the process (This step is optional)
    3. For the field, The process starts when, select A record changes
    4. Click Save

Once on the Process Builder editor:

  • Click on Add Object
    1. For the field Object, select Account
    2. For the field Start the process, choose when a record is created or edited
    3. Click on Save
  • Next, click on Add Criteria
    1. For the field Criteria Name, enter Account Type is Prospect
    2. For the field Criteria for Executing Actions, select Conditions are met
  • Inside the Set Conditions section
    1. Choose Account Type as the field
    2. Then, select Equals as the operator, Picklist as the type, and Prospect as the value
  • Leave the field Conditions as All of the conditions are met (AND)
  • Click on Save when done
  • Next, click on Add Action
    1. For the Action Type, choose Apex
    2. For the Action Name, enter Append images to Rich Text
    3. For the Apex Class, select sharinpix__SharinPixToRichTextAutomation
  • Inside the Set Apex Variables:
    1. For the field Image URL Field API Name, enter the desired image URL field's API name. For this example, the field sharinpix__ImageURLThumbnail__c was used. Note: Notice here that the type remains String. You only need to insert the field's API name
    2. For the field, Rich Text Field API Name, enter the desired Rich Text field API name. In this case, it is Images__c. Note: Notice here that the type remains String. You only need to insert the field's API name
    3. For the field Record ID, choose Field Reference as the type and Account ID as the value

The fields Image URL Field API Name, Rich Text Field API Name, and Record ID are mandatory and therefore, should always be provided with a value.

There are 4 additional non-mandatory fields which are also provided by the SharinPixToRichTextAutomation Apex class. You will find more information regarding these fields in the table available at the beginning of this article. 

Let's configure some of these parameters in our Process Builder:

  • To access the parameters, click on the + Add Row link within the Set Apex Variables section
    1. Add the field, Image Caption Text, and enter Name as the value. Note: Notice here that the type remains String. You only need to insert the field's API name
    2. Add the field Replace Rich Text Area Content and enter True as the value
    3. For this demo, we will add a list of pre-defined images to the PDF. Therefore, add the field List of Image Public IDs and enter the image public IDs of the desired images as follows: ["<First image's Public ID>","<Second image's Public ID>","<Third image's Public ID>","<Forth image's Public ID>"]

      Here is an example:

      ["cb3cac5e-17fa-480c-b85f-085c78b8a3ec","cb3cac5e-17fa-480c-b85f-085c78b8a2ee","cb3cac5e-17fa-480c-b85f-085c78b8a4ff","cb3cac5e-17fa-480c-b85f-085c78b8a6gt"]

  • Click on Save when done

You can now activate the Process Builder.

0 Comments

Add your comment

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.