Salesforce Dynamic Forms – Overview & Deep Dive Tutorial

Share this article...

The #1 asked for feature is here: Dynamic Forms. It’s been 13 years in the making, 10771 votes, and 30 merged ideas; finally, the first iteration of Dynamic Forms is coming to an org near you.

In this post we’ll cover what Dynamic Forms are, how to get started, as well as what is and isn’t supported.

What are Dynamic Forms?

The premise of Dynamic Forms is to create user centric, intuitive page layouts that display the right information at the right time. Over time, the page layout, or “Details” section in Lightning pages, can become congested with fields. These fields may well be necessary but not all the time or to all users. The closest resolution we’ve had is to create multiple page layouts and different profiles, which is labour and config intensive.

Well no more. With Dynamic Forms you’ll be able to:

  • Place fields anywhere on the layout without needing to add them to the traditional page layout (“Details” tab)
  • Use visibility rules to make fields and components appear and disappear based on criteria you choose
  • Do away with multiple page layouts
  • Improve page load times

When and how can I get Dynamic Forms?

Dynamic Forms will be available in your production instance from the Summer ’20 release and generally available from Winter ’21 release.

You no longer have to enable Dynamic forms, simply go to the Lightning record page of a custom object and select the “Highlights Panel” or the “Record Detail” component, then you’ll see the option to “Upgrade Now” and can choose between migrating an existing page or starting from scratch.

1. Create or migrate a page

For any custom objects open the Lightning page you wish to upgrade, select the “Record Detail” or “Highlights Panel” component, and choose “Upgrade Now”.

Source: Salesforce Summer ’20 Release Notes

Choose to migrate your page or create a brand new page.

Once you’ve migrated or created a new Lightning record page, you will see the option to add a “Field Section” component which will then enable you to add fields directly to the Lightning record page.

In this example, I have removed the traditional “Details” tab and created a custom tab called “Candidate Information”. I then dragged a “Field Section” component onto my tab.

Note: You need to add a Fields Component before you are able to add fields!

2. Add fields to a component

Once you’ve added a “Field Section” component to your page, you can start to add individual fields. A “Field Section” can be added in many places, not just in tabs, so go wild!

First, let’s add some fields that should always be visible to anyone who views the record:

  • Don’t forget to name each field section!
  • With a field selected, you can choose the UI behaviour such as “Read Only” or “Required”.

3. Make fields and components conditionally visible

We can make both fields and entire field components conditionally visible.

Below, I’ve added a new “Fields Section” component titled “Confidential Information”, and made it visible only to users with the Profile name “HR”:

I’ve also made the field “Distance Willing To Travel” conditionally appear only if “Willing to Travel” is true:

This is a real game changer. In edit mode, our conditional field will appear once “Willing to Travel” is checked, without the user having to save or refresh the page.

4. Plan page performance

Tabs and accordion load only when selected, so instead of adding lots and lots of “Field Section” components to the initial page (e.g. what shows when you select a record), consider utilising tabs or the accordion for improved load speed and performance.

5. Add a mobile component

You’ll need to add a “Record Detail – Mobile” component to any pages you create so your mobile users can see “Details” fields. This is because the new “Field Section” component is not available on mobile. Any migrated pages will automatically include this component.

What’s not supported?

  • Dynamic Forms is currently only available for custom objects; standard objects such as Accounts and Opportunities are not supported. Salesforce aim to make standard objects supported by Spring 2021 (safe harbour). To stay up to date on the road map for Dynamic Forms please join the Trailblazer Group here.
  • Dynamic Forms are not supported on record pages that use pinned-region or custom page templates.
  • The new Field Section component and the Field components are not supported on mobile. Any migrated pages will automatically have a new “Record Detail – Mobile” component added but you need to remember to add this if you’re building a page from scratch.
  • Traditional page layouts will still control related lists e.g. order of related lists and visible columns on related lists.

Useful resources

Trailhead: Be An Innovator With Dynamic Pages Trailmix

Break Up Your Record Details with Dynamic Forms

Dynamic Forms & Actions Group

Release Notes

35 thoughts on “Salesforce Dynamic Forms – Overview & Deep Dive Tutorial

  1. Avatar

    again confusing terms….FORMS! A form is not what is being described it should be called DYNAMIC LAYOUTS…Salesforce has to strive for PRECISE nomenclature!!

  2. Avatar

    Noticed a different behaviour after enabling Dynamic forms. I was using “Compact” density setting before dynamic setting enabled. Once enabled and activated, Compact density setting is not working. Looks like that dynamic form is going to have only “Comfy” layout working for now…??

  3. Avatar

    Thank you so much for this article! I couldn’t figure out how to do this on my own – and turns out I am not able to do this yet on standard objects. Good to know before I wasted more time!

  4. Avatar

    If you enabled in an environment but not in the target org, you’ll receive the following error during deployment, “Your org doesn’t have access to component flexipage:column”

  5. Avatar

    I’m struggling with filtering on fields on the parent page using fields on the child object. I have one to many, so I can’t add a lookup field to the child on the parent page. That seems to be a requirement to use the component filter unless I’m missing another step?

  6. Avatar

    I have created a field section and added few fields there and I wanted them to be Read only. So selected Read only in the UI behavior. But it is not reflecting. The tool tip for UI Behavior states that “If these settings are not editable, then the assigned behavior comes from the Object Manager Field definition”. I have not understood this properly.

  7. Avatar

    Added a Field Section on a Tab above a standard Record Detail component. The New record and Edit button functionality don’t work as expected rather you can only create/edit the fields in the Field Section while the Record Detail fields are not presented. Bug or intended behavior?

  8. Avatar

    So we have dynamic forms enabled, but for some objects it seems editing the fields is not available, but on others it *is* available. Not sure why or how to fix this. Any thoughts? I’m not marking any of the fields as read-only. The fields are not read-only on the default page layout either.

    The only difference I’m seeing at the moment is that I’ve overridden the edit function in classic to be a visualforce page. In lightning, I have that VF page embedded into the “Details” tab of the lightning page layout.

      1. Avatar

        Hello Christine,

        So if we use the Dynamic Forms, we can never use the page layout for new records? 🙁

        I mean, I love the Dynamics Forms, since you can distribute the details fields in different Tabs. But I want to use the Page Layout as the new record page.

        Thanks

        1. Avatar

          Christine Marshall

          Reply

          Hi,

          If you use conditional field sections/fields then these do not work with the “Details” component. In addition, when Dynamic Forms are used, the field sections appear when you create a New record, not the “Details” section.

          Best, Christine

  9. Avatar

    I’ve been playing around with Dynamic Forms and I want to confirm with everyone else on my findings:
    1) When making certain field(s) visible based on a condition set to the controlling field, this takes place after the new record is saved. Let’s say I want to make 3 other fields visible when I make Mission Code = 99A. If I’m creating a new record and set Mission Code = 99A, the 3 other fields are not made visible in the new record page. After I save the record, the 3 other fields appear.

    2) This is highly useful for full-license users meaning I can’t take advantage of Dynamic Forms on community pages, is that correct?

    1. Avatar

      Hi Jaclyn – that was not my experience. When creating a new record in your example, if you make Mission Code = 99A, the other 3 fields should display if it is setup properly. I’m not sure about the community pages – haven’t’ tried that yet.

      1. Avatar

        For me, field conditional visibility works without issue. When I try to apply a filter to a field section, all the fields in that section only appear AFTER the record is saved.

      2. Avatar

        For me, the individual field conditionally visibility works without issue. However, when I apply a filter to a Field Section, that field section only appears AFTER the record is saved.

  10. Avatar

    It looks like certain field types cannot be used as conditions for field visibility (multi-select). Unless I am missing something?

    1. Avatar

      Christine Marshall

      Reply

      Hi Sunil,

      This is correct – multi-select picklists cannot be used for field visibility.

      Best, Christine

  11. Avatar

    Has anyone noticed that fields that are dynamically displayed keep the value of the field, even if it switches to hidden? So if you have field 1 as a Yes/No picklist, and then field 2 only displays if field 1 is yes…if you select Yes for field 1, then specify something in field 2, THEN go back and put No for field 1, field 2 disappears from the screen, but the value remains.

    Ideally, it would work like dependent picklists. Ive even tried it WITH dependent picklists. Making field 2 have no values associated with Field 1 = No. In the standard details page, if you select “No” for field 1, the values in field 2 get wiped out. This does not happen with the field section component. I feel like this needs to be resolved before this feature to give its full value.

    1. Avatar

      Hi Chris, The Dynamic Forms will only adjust the visibility of fields on the layout, it will not adjust the content. If you need to also adjust the content you could create a flow that would adjust the content based on the same criteria that adjusts the visibility on the layout.

  12. Avatar

    Hello Everyone,

    Can anyone please help me out in deployment of a Dynamic form from one Org to another?

    Thanks,
    Rahul

  13. Avatar

    Thank you for this! When I go to User Interface > Record Page Settings, Dynamic Forms aren’t listed as an option to toggle on. We’re using Lightning and are on Enterprise Edition… I wonder where I might be going wrong?

    1. Avatar

      Christine Marshall

      Reply

      Hi Julia,
      The official Salesforce instructions are:

      How: To enable Dynamic Forms in your org, from Setup, enter Record in the Quick Find box, and then click Record Page Settings. In the Dynamic Forms section, flip the switch to On.

      If you are unable to see this I recommend you post in the official chatter group: https://trailblazers.salesforce.com/_ui/core/chatter/groups/GroupProfilePage?g=0F93A000000TyRh&s1oid=00D300000000iTz&s1nid=0DB30000000072L&emkind=chatterGroupMembership&s1uid=0053000000CU5hm&emtm=1587493482205&fromEmail=1&s1ext=0

      1. Avatar

        Hi Julia,

        A quick update for you. It seems Dynamic Forms no longer needs to be enabled. You can simply head to your custom Lightning record page and choose to upgrade!

        Best, Christine

  14. Avatar

    Gustavo Soares de Souza

    Reply

    Any of you able to deploy field sections and individual fields (with visibility conditions) from one org (sandbox) to a target org? For some reason, when I deploy the flexipage component, the field sections goes through, but individual fields added to the field sections are not going with. Is there a specific component type that I need to include on my deployment besides the flexiPage? I would appreciate if someone has been able to do that successfully. Thanks!

Leave a Reply