The Record Detail Component

The RecordDetail component provides new ways to display record fields in Flow screens. Flow excels in providing fine control over field combinations, but sometimes you just want to show a bunch of fields from a record in one place without a lot of configuration. This component handles all the formatting, provides 2 column layout, and takes advantage of additional goodies that the platform provides.

If you don’t provide a specific set of fields, this component will show the entire record:

But you can pass in a specific list of field names:

…and you’ll get just the fields you asked for:

If you set the mode attribute to ‘edit’, you can make changes inline and save them immediately with a save button. Note that unlike everything else in Flow, changes you make inside of this component do not get output for use downstream in the flow. In other words, this component will not output a full record. So if you want to use the data that has just been entered and saved, you’ll need to add a separate downstream Get Records element to pull the full record ‘back’ into Flow.


Version 1.5 Update Notes:

Earlier versions displayed the fields without any separation between lines.

This update adds underlines when in View Mode to improve readability. This more similar to a standard record detail view.

The underlines will not appear when you are in Edit Mode.


Attributes

recordIdInput – This is the ID of the record to display or 
Output – The ID of a newly created record.
recordTypeId When provided, picklist values will be filtered for the selected record type. Note that if the
object has multiple recordtypes, you _must_ provide a record type Id. Note that it’s easy to provide a picklist that lets the flow user select a record type.
objectApiNameIf you pass in no recordId, an Object API Name, and mode of Edit, the component will open in edit mode and create a new record on save.
modeMode (View or Edit)
fieldsA comma-separated list of field names from the recordId’s object type. If this is not provided, this component will display all fields accessible to the running user’s profile.
flowNavigationOnCancelDirection Specify Previous or Next for the flow navigation direction after the Cancel button is clicked.
flowNavigationOnCancel Check if you would like the flow to navigate to the Previous or Next screen when clicking Cancel.  
For best results, hide the page footer in the flow screen.
flowNavigationOnSave Check if you would like the flow to navigate to the Next screen (or Finish) when clicking Save.  
For best results, hide the page footer in the flow screen.
isCancelButton Output – This value will be set to True is the user selected the Cancel button.
showCancelButton = false;
Can suppress the Cancel button
suppressToast = false;Provides a way to suppress the toast that normally displays
suppressUnderline = falseProvides a way to suppress gridlines
SaveBtnLabel = ‘Save’;Allows changing the label for Save
CancelBtnLabel = ‘Cancel’;Allows changing the label for Cancel
columnsize = 2;Sets custom width, out of 12

Installation

Version 1.7.1 Unlocked 8-9-20

Version Notes

1.7.1 Enhancement by Eric Smith

  • Added way to turn grid lines on/off

1.7 Improvements by MHamza

1.6 – Bug Fix by Eric Smith (4/29/20)

1.5 – Enhancements by Eric Smith (4/16/20)

  • Added underlines to fields when in View Mode to improve readability

1.4 – Fix for required system fields on record create screen (2/9/20)

1.3 – Enhancements by Eric Smith (1/24/20)

  • Added a feature to display and handle a Cancel button when in Edit mode
  • Added an option to support flow navigation on record save and cancel
  • Included descriptive labels and help text for Flow parameters

1.2 – Adds ability to pass in a Record Type Id

View Source

View Source

Synergies

You can have RecordDetail automatically display the subset of fields that’s tied to a particular combination of profile and record type by using actions like:

There’s a good video of this here.

Considerations

This component uses the recordEditForm and recordViewForm base components and is constrained by their limitations. It doesn’t support all Salesforce standard objects. For example, the Event and Task objects are not supported. This limitation also applies to any record that references a field that belongs to an unsupported object. The list of supported objects is here.

If you are creating a new record and don’t select a list of fields, the component will include some system fields a required such as Created Date and Date Last Modified.

This component responds to your Display Density settings (“Comfy”, “Compact”, etc…).

For behavior like Required and Validation, think of this component as ‘listening’ to the object and field manager in Setup instead of to Flow Builder. I.e. if the field is configured in Setup required in Setup it will be required in this component. If there’s a validation rule on the field in Setup, it will run on save here.

See more Flow Screen Components

Archived Versions

Version .1.7 Unlocked

Version 1.5 (Unmanaged) Production
Version 1.5 (Unmanaged) Sandbox

Version 1.4 (Unmanaged) Production
Version 1.4 (Unmanaged) Sandbox

Version 1.2 (Unmanaged)

Version 1.1 (Unmanaged) (only installs on Spring ’20)

Version 1

Subscribe
Notify of
guest
84 Comments
Inline Feedbacks
View all comments
Raphael Barreiros

THIS
CHANGES
EVERYTHING

Alex, that INCREDIBLE! I really appreciate that! Thanks for you great work!

Adam White

Been thinking about this for a long time! If we wanted to configure it to also do record creation, would that be a tough thing to do?

David Rabizadeh

YES! This would be a a much welcomed enhancement!
Also, if there is a way for it to honor the page layout of the Record type (if the RT is passed), that would be incredible. Thank you Alex!

Michael Pierce

Alex, once again — LOVE this component. Is there any way to (1) include the “Next” Flow navigation into the Save button (and then hide the Next button) or (2) make the values in the component output values to be saved in the next step in case the user missed it?

Eric Smith

I’ve sent up a Pull Request for the following enhancements I’ve made for this component:

Added a feature to display and handle a Cancel button when in Edit mode
Added an option to support flow navigation on record save and cancel
Included descriptive labels and help text for Flow parameters

Michael Pierce

Eric, thank you so much! This is awesome. I appreciate everything you all do for the community.

Anonymous

If you have validation rules in place do they surface in this component?

Russell Millican

Hi Alex, This is niiiiiice. Super slick, thank you!. I’m also hoping there’s a way to assign the page layout by record type id to present the page layout’s required fields – even if only a subset is declared in the variable. I’m passing the record type id, but not seeing page layout even when not declaring specific fields. Seems like this is may be already in place per the QuickChoiceFSC demo video? Please let me know if I’m missing something. Thanks again!

rbeachhyp

Agree that this is a game changer!! Is there any way to set certain displayed fields as required? Also, is there documentation on the “Store Output Values” piece of this? (Forgive me if it should be obvious, but I’m new).

rbeachhyp

Yes, I thought it didn’t output any values but then I saw the section “Store Output Values to Section Variables” section when I clicked “Manually assign variables (advanced)” and wondered if I were missing something.

Good to know about the validation rules. I was hoping I could make some fields required on the component because there are fields that are not required for the object in a different context but I want them to be required for this flow, but I’ll figure something out.

Thanks for this important tool!

Joshua Petre

Hi Alex, how can I show a field of the the Parent Object:
For example: Object specified=Opportunity, field to show “Account.Name”.

Thanks in advice for your answer.

Arvind

The automation that this component brings is amazing! Thank you for creating this flow component. Please share if there is a way to introduce spacing between the fields or add section separators? Thanks.

Marty R

Yes this is very needed so that we can make the screen look as close as possible to the page layout and it is visually friendly to the user.

Arvind

Alex, I also found when we have screen rendered with the list of fields, currently there is no way for us to pass in a record type that would allow picklist values to be filtered based off that record type. Currently w/o this feature all picklist values are displayed, would that be something doable in this component?

David Rabizadeh

This works great! Is there also a way to pass other pre-defined values (from the flow) as default values when creating a new record. Let’s say pre-populating the recordId of a related lookup from where the flow is run?

J Baker

I haven’t seen that (just due to the component not actually pulling the fields before rendering in the Flow), but you could do a Create Records with pre-defined values in the Flow and lead into another Screen with the RecordDetail FSC showing just the fields you want them to edit at that point. It’s how I’ve handled a use case with new products actually.

Simon

HI, i’ve just started using this component in my flows and its great! so kudos for this. However I have hit a snag relating to the above whereby the flow is creating a child record of a parent and I need to set the parent Id on a lookup on the child record as its requried. As J Baker advises I went down the road of initially creating the record and then updating it using the component which works well. HOWEVER its handling the issue when the user abandons the flow (hits close on the modal screen) rather than using… Read more »

David Rabizadeh

Is there a way to finish the flow on save? Then I can hide the footer and force the user to make the required update/record creation. Right now, they could accidentally finish the flow without saving any update to the record.

Eric Smith

I’ve sent up a Pull Request for the following enhancements I’ve made for this component:

Added on option to display and handle a Cancel button when in Edit mode
Added an option to support flow navigation on record save and cancel
Included descriptive labels and help text for Flow parameters

J Baker

Eric and Alex, the 1.2 (and 1.3 commit) updates are fantastic!

Ed Poorbaugh

In everyone of the input boxes on the components Properties I am getting error message “The data type of the resource you entered isn’t compatible.” What’s weird is that this is occurring in flows that I build yesterday and that are running using this component. I even opened the test flow from the package and simply clicking into one of the property boxes I get this error message.

Heath Parks

More of a general question, but do you all think with the direction SF is heading in giving us greater control to of what users see outside of just page layouts, do you think that would reduce the need for things like record types in some cases?

I mean, with this component and with the new feature touted at Dreamforce, page layouts don’t seem to matter as much when you have to “hide” fields from certain users.

I know this probably isn’t the place for this discussion, but you all seem smart, so just wondering..

J Baker

Record types serve a purpose beyond field display, but I do think we’re moving away from them being used to show fields we want to show and more towards them being used for specific functions. Already, I’ve done away with Record Types on a variety of objects and use components to display just what I want displayed/editable.

Heath Parks

I can totally see that. I am currently working through some updates to how we track employments for the clients we serve at the nonprofit I work with and I was leaning to different record types, but the more I think about it, the overall process is the same (at the time of this writing anyway) so if it’s just about who sees what… Even after working in the SF ecosystem for 4 years now, there is so much to still learn..

J Baker

Probably my favorite part about working in the Ecosystem is how often it changes, it’s a constant treadmill of learning and it broadly appeals to my ADD that I can never say I’ve ‘completed’ learning on a topic.

I use screen flows to replace record pages entirely and have toggles to allow editing (which loads a different screen) using this particular component along with a few others spun up for this. It’s worked out great and hasn’t hit any roadblocks yet other than time on it vs other projects.

Heath Parks

I would love to know more about using screen flows to replace record pages.

I have been testing that out a bit myself, but I am still pretty new to flow, and the learning curve can leave little time for my “real” work…Good to know, that screen flows are being used like that…very cool. I am not a coder but still good to know.

Anonymous

If you use the component to create a new record, is there a way to get the new record’s ID back to the flow for further manipulation?

Alex Edelstein

Yes, see the table above. recordId is available as an output.

June

Could you help me understand the functionality of the cancel button? If I’m reading correctly you can set it to previous or next. What value to I use for previous? What value do I use for next? I could love if cancel would not save the record (cancel/next seems to still save) or event better the ability to remove the cancel button all together.

Chris Manick

Hi Alex, I’m super excited about this package. However, an included LWC (toastMessage) has the same label as one in a number of Salesforce packages, and so I’m unable to install. Is there any way this component could be renamed, or do you have any workarounds? Thank you in advance!

[…] found that the standard view mode for the Record Detail Flow Screen Component was hard to read because there was no separation between the field rows. To make the display look […]

Charles

This component is awesome. Thank so much. Is there any way to add blank spaces in between fields?

[…] install packages now include the latest (v1.5) of the Record Detail […]

[…] RecordDetail 1.6 gets a bug fix related to record type and view mode […]

Aleksandar Basic

Amazing feature! thank you so much.
Does anyone know how a way to exclude certain fields that are in the page layout and dont want them to be in the recorddetail component?
More specifically, the standard fields like “Case Origin” or “Web Email” that I can’t remove from the page layout or enforce field level security on with this component.

Aleksandar Basic

added an if statement to the GetLayouFields apex class that checks another input variable (excludeFields) which is a comma delimited variable I set to the list of API names of fields I want excluded in the output.

if(!excludeFields.contains(item.field)){
layoutFieldsCSV = layoutFieldsCSV + ‘,’ +item.field;
}

Alex Edelstein

Nice! Would you like to create a pull request to the GetLayoutFields class? I’d like to get that enhancement in there.

Aleksandar Basic

Done!
First time doing that so I hope I did it ok.

[…] current LayoutId. One use of this is dynamically generating flow screen layouts with the RecordDetail flow screen component. To do this, after using this action to retrieve a LayoutId, use the […]

Michael Pierce

We have version 1.4 installed, and on a Sandbox that updated to a preview of Summer ’20, we’re getting no output for a newly created record in the component. It worked before the upgrade. Is anyone else having this issue? Would upgrading to 1.6 help?

shelja agrawal

I am also experiencing the same. I am not getting any output . I installed 1.6 version so it doesn’t seem that this version fixes the issue. Eric , the component is amazing but it wouldn’t help if we cannot get the recordid created. Can you please help

Evan Ponter

Version 1.6 does not help. I’m having the same issue you describe in a Summer ’20 sandbox. The Record Id output is always an empty string, even though clicking the Save button successfully creates a record in the database. I’ve tried using Automatic Outputs as well as Manually Assign Variables – both are behaving identically.

Alex Edelstein

I think this is a Summer ’20 bug involving outputs of lightning screen components that should be fixed in the next week.

Daniel

Roadmap idea: It would be really useful if we could pass in field values to default values. Eg. Name

Alex Edelstein

the base component doesn’t allow that, for now.

shelja agrawal

Was anyone able to resolve the issue of not getting the record id back in the output variable ?

Alex Edelstein

I think this is a Summer ’20 bug involving outputs of lightning screen components that should be fixed in the next week.

Simon Jones

Hi All, this is a great component and helped provide a nice solution where i added the flow to a lightning page that allows me to easily update a related record ( i couldn’t use the standard related record component due to linmitations and missing fields with person accounts!)   i have another use case thats related to this component and also the screen update/refresh component that I use which is great for refreshing the page when using screen flows.   so when i do a regular field update to a lookup field for example on the main record page… Read more »

nsv

Hi, thank you for this component. I have installed first for 2 profiles(sys admin and my user profile) in sandbox and decided to add other profiles but unfortunately I could not manage licenses so I uninstalled it and installed again, this time for all users. But when I login as a user with non admin profile I cannot see the screen flow. Is there a way to make it available to all users?

Alex Edelstein

That might be a general Flow permissioning issue. Try posting to https://success.salesforce.com/_ui/core/chatter/groups/GroupProfilePage?g=0F9300000001rzcCAA

Craig

Hi, thank for this component. I’m testing it on the Contact object. A couple of questions: The standard field Phone has a label of Phone but is being displayed by the component as “Business Phone” – is there a way to get it to display just as “Phone”? I’m not sure how to use the “Flow – Navigation…” settings. I tried putting “Next” in the “Flow – Navigation Direction on Cancel (Previous or Next)” but this didn’t seem to have any effect when I pressed the Cancel button on the component in the running flow. I also tried to put… Read more »

Eric Smith

1. Check your Field Definition for Phone in the Object Manager to see if the Label was changed.
2. “Flow – Navigation on Cancel?” and “Flow – Navigation on Save?” are both expecting a True/False value

Craig

Thanks. For 2 I hadn’t realised they were meant to be boolean.
For 1, the label in the Object Manager is just “Phone”, so I don’t know where “Business Phone” is coming from.

Craig

From the Record Field List Setting on the component: Phone,DoNotCall

Craig

What’s displayed:
Business Phone

Help
xxxx xxx xxx
Do Not Call

Craig

The issue is happening in 2 sandboxes. I haven’t tried it in production.

Craig

I found a solution based on https://trailblazers.salesforce.com/answers?id=90630000000CjaWAAS
Despite the Standard field label not being overridden, by overriding it from “Phone” to “Phone Number” I was able to get rid of the appearance of the “Business” prefix which would have been really confusing for users.

Jennifer

Hey Alex! Thanks so much for this. I love the edit functionality!

Last edited 1 month ago by Jennifer
Rachel Krzyzanowski

This component has been a life-saver for our org! Thank you! Is there a way to make the fields required tho within the screenflow using this component?