Sweet Potato


Flow Features in the Spring 24 release


In this blog post, we will delve into the updates to Salesforce Flow introduced in the Spring ’24 release.

A Salesforce release encompasses regular changes and fixes, introducing new features and security updates. Salesforce typically delivers three releases annually, known as the Spring, Summer, and Winter releases.

1. Transform Element Aggregation

The Transform element facilitates the aggregation of amount, customer ID, and status fields from the source data into the fields for the target data. It automatically establishes mappings between collections containing the specified fields, enhancing visibility into resource data structures. Each item in the source collection must correspond to an item in the target collection, maintaining alignment within their respective hierarchical locations.

2. Repeater Component for Screen Flows

Eliminate the hassle of repeatedly filling in information across multiple screens with the new Repeater (Beta) component for Screen Flows. This component empowers Flow builders to capture and repeat data input seamlessly within a single screen.

3. Enhancements to Auto-Saved Flows

Building on the auto-save functionality introduced in Winter ’24, Spring ’24 expands its scope by enabling auto-save for all elements except Screens and Actions. Say goodbye to manual saving and seamlessly save your progress as you navigate through your Flow configuration.

4. Platform Event Run-As Enhancements

In the Spring ’24 release, Platform Events now offer the option to execute them using the default workflow user. This feature provides flexibility in assigning actions to the default user rather than the triggering user. To activate this functionality, select the Default process User as the assigned user for executing the process by going to the Advanced Settings menu on the Start element. 

5. Reacting to changes on the same screen using text templates

Text Template resources now have the capability to dynamically react to changes in component outputs within the same screen. For instance, a Text Template referencing the output of a Name component on the screen will update in real-time as the user modifies the Name component during runtime.

6. Flow Management Streamlining

Efficiency in flow management is significantly enhanced with the new found capability to identify flows utilizing specific email alerts effortlessly. This enhancement enhances visibility into the usage of email alerts, thus facilitating more streamlined management practices. 


In Spring ’24, Salesforce Flow underwent a symphony of significant enhancements, enriching our beloved tool. Once again, a balanced blend of minor enhancements and quality improvements accompanies the more impactful new features and functionality. These additions promise to greatly ease and streamline the tasks of admins, developers, and business users once integrated across your organization.


Automating File Attachments from Opportunities to Accounts in Salesforce Using Flows


In the dynamic world of Salesforce, automation plays a crucial role in enhancing productivity and efficiency. One common requirement for sales teams is the seamless transfer of files and documents associated with opportunities to their corresponding accounts. In this blog post, we’ll explore how you can achieve this using the power of Salesforce Flows.

Understanding the Challenge:

In Salesforce, opportunities and accounts are often interlinked, and it’s common for sales professionals to work with various documents and files throughout the sales process. Manually attaching these files from opportunities to their respective accounts can be time-consuming and prone to errors. Automation provides a solution to this challenge, allowing you to streamline the process and ensure accuracy.

Create a Flow:

Build a flow that captures the necessary information and performs the file attachment. Use the ‘Record Trigger’ element to initiate the flow when the specified conditions are met.

1. Start – Record Triggered Flow:

Begin the automation process by setting up a record-triggered flow. Specify the condition for triggering the flow, such as when the opportunity status is marked as “Closed-Won.” This ensures that the flow initiates at the right point in the sales process.

2. Get Records – Retrieve Content Document Files:

Utilize the ‘Get Records’ element within the flow to retrieve content document files associated with the triggered opportunity record. This step ensures that the relevant files are identified and ready for further processing.

3. Loop – Iterate Through Retrieved Files:

Implement a loop within the flow to iterate through each file obtained from the ‘Get Records’ step. This looping mechanism allows for the systematic handling of multiple files associated with the closed-won opportunity.

4. Note: Define Variables:

Establish two essential variables to facilitate efficient record handling:
a. Content Record (CR):
A single-record variable designed to hold information for each content file.

b. Content Record List (CRL):
A list variable that accumulates multiple content records. This list serves as a container for all files associated with the opportunity.

5. Assignment 1 – Assign Retrieved Records to CR Variable:

Within the flow, Create the ‘Assignment’ element to assign the content records obtained in the loop to the Content Record (CR) variable. This step ensures that each file’s information is stored in a structured manner.

6. Assignment 2 – Assign CR Variable to CRL:

Utilize another ‘Assignment’ element to transfer the single Content Record (CR) into the Content Record List (CRL). This transformation allows for the consolidation of information from individual files into a comprehensive list.

7. Create Records – Attach Multiple Records:

Leverage the ‘Create Records’ element within the flow, utilizing the resource from the Content Record List (CRL). This step efficiently creates multiple records, attaching the content of each file to the associated account. It ensures that the entire process is automated, saving time and reducing the risk of errors.

8. Add Fault Path Element for Error Handling:

Enhance the robustness of your flow by adding a fault path element to the ‘Create Records’ element. In the event of an error during the file attachment process, this fault path allows users to view and understand the specific error details.
Configure the fault path to capture any potential errors that might occur, such as missing data or issues with the file attachment process. This ensures that even if an error occurs, it is captured and users are notified to take appropriate action.


Automating file attachments in Salesforce not only saves valuable time for sales teams but also minimizes the risk of errors associated with manual processes. The streamlined workflow empowers sales professionals to focus on core tasks, ultimately contributing to a more efficient and productive sales cycle. As your organization embraces automation, the benefits extend beyond time-saving to improved data accuracy, reduced administrative burden and enhanced overall Salesforce user experience. By staying at the forefront of Salesforce innovation, your business is better positioned to adapt and thrive in today’s competitive landscape.


Salesforce’s Fault Path Component: Your Flow’s Unseen Hero!

Imagine you’re a Salesforce admin, seamlessly cruising through the intricate world of flows, designing powerful automation to drive your organization’s success. But suddenly, you hit a roadblock, an error message, or an unexpected outcome, and you’re left wondering, “Where did I go wrong?” Fear not, for the trail to mastery in Salesforce often involves decoding the enigmatic Fault Path Component!

In this adventure, we will embark on a journey to unravel the secrets of the Fault Path Component in Salesforce flows.

The Flow Adventure Begins

Flows are the backbone of automation in Salesforce. They allow us to create dynamic processes without writing code. But like any adventure, working with flows can sometimes lead you into uncharted territories. That’s where the Fault Path Component comes to the rescue!

What is the Fault Path Component?

The Fault Path Component is like your trusty map in this Salesforce adventure. It’s a vital element within a flow that helps you manage exceptions, errors, and unexpected twists in your automation. Think of it as the safety net that ensures your flow keeps running smoothly, even when unexpected errors occur.

When Does It Come into Play?

Imagine you’re creating a flow to update records or send emails. Everything’s going perfectly until an error arises. Perhaps a record doesn’t meet certain criteria, or there’s an issue with sending an email. Instead of your flow crashing, the Fault Path Component helps you gracefully handle these errors.

Tips for Mastering the Fault Path Component

Here are some tips to help you become a pro:

1. Understand Error Types

Familiarize yourself with the different types of errors you might encounter in your flows. This will help you tailor your Fault Path Component’s actions to specific scenarios.

2. Test Thoroughly

Before deploying your flow, rigorously test it to identify potential error scenarios. This way, you can configure the Fault Path Component to handle them effectively.

3. Use Meaningful Messages

When setting up error messages or notifications, ensure they are user-friendly and provide clear guidance on how to resolve the issue. This enhances the user experience and reduces confusion.

Let’s explore the process of incorporating a fault path component, our safety net, into the flow.

Step 1: Build Your Flow

Use Flow Builder to construct your automation. This can involve various elements like Record Updates, Record Creates, Decision elements, and more. For the sake of this example, let’s assume you have a simple flow that updates an account record.

Step 2: Identify Potential Faults

While building your flow, identify points where errors might occur. These could be due to missing data, record not found, or other exceptions.

Step 3: Add a Fault Path Component

To handle errors, click the “Add Fault Path” element. This element represents the path your flow will follow when an error occurs.

Screenshot 1 - Update records
Add Elements
Step 4: Configure the Fault Path Component

Click on the Fault Path element to configure it. You’ll see a section for “Fault Messages” where you can define error messages or explanations that will be shown to users when an error occurs. 

fault path component salesforce
Step 5: Test Your Flow

It’s crucial to thoroughly test your flow, especially the error handling. Trigger your flow with different scenarios to ensure that it gracefully handles errors according to your configurations in the Fault Path Component

Update Account - Salesforce

Using the Fault Path Component in Salesforce Flow allows you to create robust and user-friendly automation that can gracefully handle errors and exceptions, ensuring a smoother experience for both users and administrators. Happy Flowing!!!


Record sharing using Salesforce Flow

Sharing plays a crucial role in salesforce. Ever wonder if you can share the record with users based on the data in a lookup field. Well, your wish has come true – the flow now allows you to do this without writing a single line of code. Let’s look at this in details with an use case,

Let’s look at a Universal Container use case:

John is a system administrator and is working at the Universal Container (UC) and managing the recruiters. The user would like to see and edit only the candidates that are associated to the recruiters. For this, he already have a custom object called Candidate’.Once the ‘Recruiter__c(Lookup to User object) field gets populated, auto-share the Candidate record (Grant edit access) with the Recruiter.

Associated Procedures:

There are 3 steps to solve John’s business requirement using After-save Record-Triggered Flow. We must:

  1. Create a custom object with fields
  2. Create apex sharing reason 
  3. Salesforce flow
    1. Define flow properties for record-triggered flow
    2. Create a record variable (varR_RecuritShare) to store Recurit__Share
    3. Add a decision element to check if ‘Recruiter__cis populated or not 
    4. Add an assignment element to populate record variable (varR_‘RecruiterShare)
    5. Add a create records element  to share the Candidate record with the Recruiter

Step 1: Create Custom Object – Candidate

  1. Click Setup.
  2. In the Object Manager, click Create | Custom Object.
  3. Now create a custom object Candidate and fields as shown in the screenshot below: 
  4. Click Save.

Step 2: Create Apex Sharing Reason

Then we will create an Apex Sharing Reason. Each Apex sharing reason has a Label and a Name. The Label value is displayed in the Reason column when viewing the sharing for a record in the user interface. This allows users and administrators to understand the source of the sharing. 

  1. Click Setup.
  2. In the Object Manager, type Candidate.
  3. Select Apex Sharing Reasons, then click New.
  4. Enter Reason Label and press the Tab key the Reason Name will populate. 
  5. Click Save.

Step 3.1: Salesforce Flow – Define Flow Properties 

  1. Click Setup.
  2. In the Quick Find box, type Flows.
  3. Select Flows then click on the New Flow.
  4. Select the Record-Triggered Flow option and click on Next and configure the flow as follows:
    1. How do you want to start building: Freeform
    2. Object: Candidate
    3. Trigger the Flow When: A record is created or updated 
    4. Set Entry Criteria
    5. Condition Requirements: None
  5. Optimize the Flow For: Action and Related Records 
  6. Click Done.

Step 3.2: Salesforce Flow – Create a Record Variable to Store Candaiate__Share 

  1. Under Toolbox, select Manager, then click New Resource to store the Candaidate__Share mapping detail. 
  2. Input the following information:
    1. Resource Type: Variable
    2. API Name: CandidateShare
    3. Data Type: Record
    4. Object: Share: Candidate
    5. Check Available for Input
    6. Check Available for Output
  3. Click Done

Step 3.3: Salesforce Flow – Using Decision Element to Check if Recuriter field Is Populated or Not 

Now we will use the Decision element to check the Candaidte__c from Candidate object to find if it is populated by user or not. 

  1. Under Toolbox, select Element. 
  2. Drag-and-drop Decision element onto the Flow designer. 
  3. Enter a name in the Label field; the API Name will auto-populate.
  4. Under Outcome Details, enter the Label the API Name will auto-populate.
  5. Condition Requirements to Execute Outcome: All Conditions Are Met (AND)
    1. Row 1:
      1. Resource: {!$Record.Recuruiter__c}
      2. Operator: Is Null 
      3. Value: {!$GlobalConstant.False}
    2. Add Field
    3. Row 2:
      1. Resource: {!$Record.Recuruiter__c}
      2. Operator: Is Changed 
      3. Value: {!$GlobalConstant.True
  6. Click Done.

Step 3.4: Adding an Assignment Element to Populate Candidate__Share Record Variable 

The next step is to populate the record variable Candidate__share to share the Candidate record with Candidates.

  1. Under Toolbox, select Assignment. Drag and drop Assignment onto the canvas. 
  2. Input the following information:
    1. Enter Label the API Name will auto-populate.
    2. Row 1:
      1. Field: {!CandidateShare.AccessLevel}
      2. Operator: Equals
      3. Value: Edit
      4. Click Add Row
    3. Row 2:
      1. Field: {!CandidateShare.ParentId}
      2. Operator: Equals
      3. Value: {!$Record.Id}
      4. Click Add Row
    4. Row 3:
      1. Field: {!CandidateShare.UserOrGroupId}
      2. Operator: Equals
      3. Value: {!$Record.Candidate__c}
    5. Click Add Row
    6. Row 4:
      1. Field: {!CandidateShare.RowCause}
      2. Operator: Equals
      3. Value: Shared_via_flow__c
  3. Click Done.

Step 3.5: Adding a Create Records Element to Share the Candidate Record with Recuriter

  1. Under Toolbox, select Element. 
  2. Drag-and-drop the Create Records element onto the Flow designer. 
  3. Enter a name in the Label field- the API Name will auto-populate.
  4. For How Many Records to Create select One.
  5. Map Record Collection: {!CandidateShare}
  6. Click Done.

Finally the flow will look like this in the below screenshot.