• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

TinyGrab

Your Trusted Source for Tech, Finance & Brand Advice

  • Personal Finance
  • Tech & Social
  • Brands
  • Terms of Use
  • Privacy Policy
  • Get In Touch
  • About Us
Home » How to get the record ID in a screen flow in Salesforce?

How to get the record ID in a screen flow in Salesforce?

June 7, 2025 by TinyGrab Team Leave a Comment

Table of Contents

Toggle
  • How to Get the Record ID in a Screen Flow in Salesforce: The Definitive Guide
    • Accessing the Record ID in Your Flow
    • Practical Examples
    • FAQs: Record ID Retrieval in Screen Flows
      • 1. What happens if my Screen Flow isn’t on a Record Page and I don’t pass in the Record ID?
      • 2. How do I pass the Record ID to a Screen Flow from Apex?
      • 3. Can I use the recordId variable in a Subflow?
      • 4. What if I need the Record ID of a related record, not the main record the flow is on?
      • 5. Is the recordId variable read-only? Can I change its value?
      • 6. How can I handle the scenario where the recordId is null?
      • 7. Does the recordId variable work for custom objects?
      • 8. Can I use the recordId in a Scheduled Flow?
      • 9. How does the recordId variable behave in a Flow triggered from a Quick Action?
      • 10. What’s the difference between the recordId variable and using a Get Records element with “Get the record that triggered the flow”?
      • 11. Can I pass multiple Record IDs to a Screen Flow?
      • 12. What are some best practices for using the recordId in Screen Flows?

How to Get the Record ID in a Screen Flow in Salesforce: The Definitive Guide

So, you want to snag that Record ID within your Salesforce Screen Flow, eh? It’s a common requirement, pivotal for creating dynamic and contextual user experiences. The core of it boils down to this: When your flow is running in the context of a record (like an Account, Contact, or Opportunity), the Record ID is automatically available within a special variable. This variable is cleverly named recordId (all lowercase, mind you). This variable is automatically created for you as long as the screen flow is either configured to run on a record page or launched with a record ID passed to it.

Now, let’s delve into the nitty-gritty and dissect how to leverage this powerful little nugget.

Accessing the Record ID in Your Flow

The beauty of the recordId variable is its simplicity. No complex code or Apex sorcery required. Here’s the lowdown:

  1. Ensure Your Flow is Record-Aware: The most crucial step is making sure your flow “knows” which record it’s working with. This typically happens in one of two ways:

    • Flow on a Record Page: When you embed your Screen Flow on a Lightning Record Page (using the Lightning App Builder), the recordId is automatically populated with the ID of the record being viewed. This is the most common and straightforward scenario.
    • Flow Invoked with Record ID Parameter: You can also launch a Screen Flow from somewhere else (like Apex code, a button, or even another Flow) and explicitly pass the Record ID as a parameter. This method provides more flexibility but requires careful configuration to ensure the ID is passed correctly.
  2. Using the recordId Variable: Once your flow is record-aware, you can directly reference the recordId variable in various elements within your flow. For example:

    • In Formulas: You can use it in formulas to perform calculations or manipulate data based on the current record. Example: IF(ISBLANK({!recordId}), "No Record", {!recordId}).
    • In Decision Elements: You can create decision branches based on the Record ID. Perhaps you only want a certain screen to appear if the record ID matches a specific value (although this is less common).
    • In Data Elements (Get Records, Update Records, Create Records): This is where the magic truly happens. You’ll often use the recordId to filter records you want to retrieve or to update the fields of the current record. For instance, in an Update Records element, you would specify that the record to update has an ID equal to {!recordId}.
    • In Display Text: For debugging or displaying information to the user, you can simply include {!recordId} in a display text component. This will show the actual Record ID on the screen.
  3. Data Type: It’s important to remember that the recordId variable is a Text data type. So, if you’re using it in a data element to compare against a field that’s a Record ID field, Salesforce will automatically handle the comparison behind the scenes.

Practical Examples

Let’s solidify this with a couple of tangible examples:

  • Updating a Record’s Description: Imagine a Screen Flow on an Account record page. The flow contains a screen where the user can enter a new description for the Account. In an Update Records element, you would set the filter to Id Equals {!recordId} and update the Description field with the value entered by the user.

  • Displaying Related Contact Information: Suppose you want to display a Contact’s name and email address in a Screen Flow on an Account record page. You’d use a Get Records element to find the Contact whose AccountId is equal to {!recordId}. Then, you would use a Display Text component to show the Contact’s Name and Email fields.

FAQs: Record ID Retrieval in Screen Flows

Here are some frequently asked questions to further clarify the ins and outs of accessing the Record ID in your Screen Flows.

1. What happens if my Screen Flow isn’t on a Record Page and I don’t pass in the Record ID?

If your Screen Flow isn’t embedded on a Record Page and you don’t explicitly pass the Record ID as a parameter, the recordId variable will be null or empty. Attempting to use it in this state will likely result in errors or unexpected behavior. Always ensure the variable is populated before using it.

2. How do I pass the Record ID to a Screen Flow from Apex?

You can use the Flow.Interview.start() method in Apex. You’ll need to create an Input Variable named recordId (case-sensitive!) in your Screen Flow, and then you can pass the Record ID from Apex like this:

Map<String, Object> params = new Map<String, Object>(); params.put('recordId', accountId); // accountId is a variable holding the Record ID  Flow.Interview.YourFlowName flowInterview = Flow.Interview.createInterview('YourFlowName', params); flowInterview.start(); 

3. Can I use the recordId variable in a Subflow?

Yes, absolutely. However, you need to ensure that the recordId is passed as an Input Variable to the Subflow. Just like passing from Apex, create an Input Variable named recordId in your Subflow and map the recordId variable from the main flow to the Subflow’s Input Variable.

4. What if I need the Record ID of a related record, not the main record the flow is on?

You’ll need to use a Get Records element to retrieve the related record based on a relationship. For example, if you’re on an Opportunity and need the Account ID, you’d use Get Records to find the Account associated with the Opportunity (using the AccountId field). Then, you can access the Account ID from the retrieved Account record.

5. Is the recordId variable read-only? Can I change its value?

Yes, the recordId variable is effectively read-only. You should not attempt to modify its value directly. It’s designed to represent the context of the record on which the flow is running. If you need to work with a different Record ID, use another variable to store it.

6. How can I handle the scenario where the recordId is null?

Implement robust error handling. Use a Decision element to check if the recordId is null or empty using the ISBLANK({!recordId}) formula. If it’s null, redirect the flow to a suitable error message or handle the situation gracefully.

7. Does the recordId variable work for custom objects?

Yes, the recordId variable works seamlessly with custom objects. It’s not limited to standard objects like Account or Contact.

8. Can I use the recordId in a Scheduled Flow?

No, the recordId variable is not available in Scheduled Flows. Scheduled Flows run on a schedule and are not triggered by a specific record context. If you need to process records in a Scheduled Flow, you’ll need to use a Get Records element to retrieve the records you want to work with based on specific criteria.

9. How does the recordId variable behave in a Flow triggered from a Quick Action?

When a Flow is launched from a Quick Action on a record, the recordId variable is automatically populated with the ID of the record the Quick Action was launched from. This is similar to embedding the Flow on a Record Page.

10. What’s the difference between the recordId variable and using a Get Records element with “Get the record that triggered the flow”?

The recordId variable provides the ID of the current record, immediately and directly. The “Get the record that triggered the flow” option in a Get Records element is used for Record-Triggered Flows, which are a different type of flow altogether. It retrieves the entire record that triggered the flow (e.g., the Account that was just created), not just its ID.

11. Can I pass multiple Record IDs to a Screen Flow?

No, the built-in recordId variable is designed for a single Record ID. If you need to pass multiple Record IDs, you’ll need to create a Text Collection Variable in your flow and pass the IDs as a comma-separated string (or some other delimiter) from Apex or another flow. Then, you can use a Loop element to iterate over the IDs.

12. What are some best practices for using the recordId in Screen Flows?

  • Always validate: Check if the recordId is populated before using it.
  • Descriptive Naming: Although the variable is named recordId, consider giving the Get Record Element a specific name, like “Get Account Record,” to help with readability and understanding in the future.
  • Error Handling: Implement robust error handling to gracefully manage situations where the recordId is null or invalid.
  • Clear Documentation: Document how the recordId is being used in your flow descriptions. This is especially helpful for maintainability when other admins or developers are working with the flow.
  • Remember Case Sensitivity: Always be aware that the recordId variable name is case sensitive.

By understanding these nuances and following these best practices, you’ll be well-equipped to master the art of retrieving and using the Record ID in your Salesforce Screen Flows. Now go forth and build awesome, contextual experiences!

Filed Under: Tech & Social

Previous Post: « How to see accounts you’ve viewed on Instagram?
Next Post: How to download iCloud? »

Reader Interactions

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Primary Sidebar

NICE TO MEET YOU!

Welcome to TinyGrab! We are your trusted source of information, providing frequently asked questions (FAQs), guides, and helpful tips about technology, finance, and popular US brands. Learn more.

Copyright © 2025 · Tiny Grab