Evolve Forms

This is a quick look at Evolve Forms, a new “dynamic forms” app from developers at Google.

At the time of writing, this is a proof of concept only, and is only available for install from the Github repo.

Install from https://github.com/google/sf-evolve-forms/

Look at the YouTube video https://www.youtube.com/watch?v=E-gZUKZIgsc for some key details.

Setup

Steps:

  • Remove the page layout on the Lightning Record Page

  • Add the Evolve Forms page layout.

  • Add the Evolve Forms Cancel and Save button at the bottom of the page (if you add it to the top it takes up blank space).

  • Set up and add the Evolve Forms Edit button https://github.com/google/sf-evolve-forms/blob/main/docs/setup.md (it’s an Action rather than a button).

  • Override the Edit button on the standard Page Layout.

    • Does that mean No Dynamic Actions anymore?

  • I do NOT understand the setup bit about creating new records.

First impressions are:

  • The dark lines around the fields in edit mode is standard SLDS but is not standard Salesforce. Why oh why does Salesforce do this. So your users are going to say “why is this object different to others” to which you will have no reply except “because”.

Using Evolve Forms

Things you don’t get because this is a custom Page. These are not something Evolve Forms can control, just something you lose with going custom.

  • Owner field doesn’t have the inbuilt action button. Use the Owner field on the Highlights Panel if you want that.

  • No Google Map on display mode.

    • Actually I don’t know this for sure, as Maps are not available in Developer or Scratch Orgs, but due to the way the address fields are rendering, I’m sure it will not work.

  • No Lookup address - built in Google Addresses.

  • No create new on Lookups - not even the new Lookup LWC Base Component has that functionality yet.

  • The Name and Address fields don’t show as a consolidated field in display mode. This could be disconcerting to users - why is it different.

Weird Things are:

  • Name field renders across the page rather than down the page. So First Name and Last Name are not on the same line or even in line. So very weird.

    • The only way around it is to put the Pronouns or Title field next to the Name field so it doesn’t look so weird.

    • Or build that section of the page layout yourself so that you can order the fields in the way that makes some sense to you. But that involves keeping two page layouts or a page layout and a field set up to date.

    • If you use the Full Name field in a Field set with Pronouns next to it it looks somewhat OK, but you can’t do that with a standard page layout. Or Use each field in a two column Field Section with spaces between each field. But then it is going to take up a lot of space on the display form.

First Name must be at least on the same line as Last Name, but should be underneath, like normal!
  • Account says Account ID on the view page, but Account Name on the Edit page.

  • Again, addresses go LEFT to RIGHT - so the City is next to the Address. This is just not right.

    • And two addresses just meld into each other.

Addresses don’t work like this
  • Created By and Last Modified by look different, and include the date field separately but also within the Created By field - it looks weird.

  • Field Section renders slightly differently than regular sections, so looks a little off.

    • But set Include Boundary to true and it looks much better.

Great things are:

  • Still control the pages via page layouts - not having to set them up in two places like you have to do with Dynamic Forms.

    • But you can still override them with field sections.

    • And changing the Page Layout just works.

  • Multiple Page Layouts on the one Lightning Page

  • When editing a field in a field section, if it is in another section, the edits change in real time and the colour of the field changes to show it’s been edited. Very helpful (if for some reason you have the same field on the layout twice).

  • Read Only Field Sections work when the page is not overriden with the full form, so you can add them to any page layout!

  • BLANK SPACES! Wooohoo!

    • Caveat, you can only do them with regular Page Layouts and Dynamic Forms - Field Section, not Dynamic Forms - Field Section via Fieldset.

  • Loving the help text and field overrides. But remember, as soon as people start to use Reports and List Views they are going to get confused, so use sparingly, like in a data entry form, with the real field also on the page layout maybe.

    • Remember the tip that if the standard field doesn’t already have Help Text, you need to override the name also.

    • The realtime field updates in the Lightning Record Page Setup is amazingly good!

  • Ooh the hover displays on lookup values are different… now, normally I would be against anything that looks different but wow, we have a real option here… what if we could customise the hovers! How cool would that be!

    • But remember the limitations you get with lookups here.

Issues are:

  • Not available for Mobile. We have only just got Dynamic Forms for Mobile so it must be difficult.

    • With all the overrides you have to make, I think you might even have to have a completely separate Lightning Page for mobile.

  • Still makes the Lightning Page that extra second slow to save like Dynamic Forms does.

  • No Compact Mode is a big drawback. I suppose the answer is you should not need so many fields on a page to need to scroll that long, but Compact Mode is still better.

  • The Save functionality disappeared at some point, and nothing I did would make it return. Not even removing all Evolve Forms details off the page, saving the page, and then re-adding them one by one. Not even opening in a different browser made it come back. Not even deleting the Lighting Page and rebuilding it would make it come back. Not even starting on a new object would make it come back.

    • Oh dear, this was a simple issue - I had not filled in all the required fields.

    • Oh dear, this raised an even bigger issue, where requiredness does not work like standard.

Dynamic Field Set Component

  • For the Hovers it shows the standard compact layout using the layout-type="compact" from the standard lightning-record-form. It would be great if you could customise the fields that go in there via a Field Set though - maybe have the field set named Lookup on the object, and if there is a Lookup Field Set it uses that. But maybe that could be expanded even further to allow there to be different Field Sets for use for different Permission Sets or similar. Eg Lookup-MarketingUser, and if the user has the MarketingUser Custom Permission they get those fields in the Lookup hover.

  • Very cool component

  • Can include Child values - Oldest or newest! WOW! I would love to see Max or Min based on a date for example.

  • Can include the Icon for the Object or not. Which is so different than Related Record Components.

  • I think this is a winner for now, compared to what they showed for Dynamic Forms Spanning Fields the other day.

Now for the fun part - Soft Validations

  • There is some caching happening, so fully refresh your lightning page before testing the validation.

  • Hmm, you can’t have a Soft Validation appear for a field - so make sure your warning message includes the field name.

  • You can have multiple, but they have to be in separate flows.

  • There does not seem to be a way to order the messages on the screen. I hope it goes by the order of the field on the page, but I’m not convinced.

  • Repeated warnings of the same thing could get really annoying really quickly. I would love a UI that had a checkbox next to it and said “don’t remind me about this again today”, or ever. BUT you could make it fire only on Is Changed on the field value (if your condition is not just Is Null). Dammit, no Is Changed or Prior Value on Autolaunched Flows!

    • Surely there must be a way to do something like this.

  • 2 Validations fire

    • Both messages display

    • Click Close

    • Fix one issue

    • Click Save

    • The remaining validation message displays twice.

  • But then it’s displaying twice even after the first validation is fixed and the record is edited again. Yep, if there are two validations, and one is fine, the other will display two messages.

Verdict: They are not a panacea. There are a few issues. Use sparingly. I think our Indicators Exception Grid is going to really help with this soft validation issue instead of popups. But it is a really nice way they have built it with the combo of Flow and CMDT.

Calculated Values

  • OK this is techy! I do LOVE a good use case for Apex Defined Data Types, and to use that, in conjunction with an LWC, where the users can build the logic, and then the LWC displays the value is just so amazingly powerful!

  • Yeah, not any Admin is going to be able to do this first go, but once you get the hang of this this is amazingly fantastic!

  • OMG it does work without overriding the forms! You can have the Power of calculated fields, without needing the rest of the product.

  • OMG I have NEVER been able to do this in Salesforce ever before! Game Changer!

A “related record” with the URL to go right to the related record in this window, along with other fields from the related record!
  • Mitch, please release this just as a feature on its own please!

    • And allow me to have the icon on the Calculated Fields panel similar to the Related Record Component. And Allow me to have more than 2 columns.

Overall Verdict

Where would I use this?

  • Communities (Experiences), definitely, because users won’t be shocked if things are different, and things need to be different on communities.

    • But not if the community will be used on Mobile.

  • Maybe non standard objects, eg key objects for your business that are finicky where you need the extra power.

    • But not if they need to use it on Mobile too (yep, the one object I am thinking of, they use Mobile).

Would I use it now?

  • No not until it is a managed package, but I doubt it ever will be because Google is not about to provide support for an Appexchange app.

  • No I probably would not use the forms functionally as there are still some issues with it.

  • No I would probably not use the soft validations yet.

But Wait! Rea Only Field Sections!

You can use Read Only Field Sections and Related Record Sections without using the Forms override, and you can even use them with Dynamic Forms. So, would I use this product for Field Sections and Related Field Sections that are Read Only - Hell Yes! But they would still not be visible on Mobile and are not Compact Layouts, but maybe on separate tabs it could work.

What would I like to see:

  • I would love to see the power of Field Sections, Related Record Field Sections as read only fields, as a separate stand alone install, and be available on Mobile.

  • I would love to see the power of Calculated Fields as a separate stand alone install. And be available on Mobile.

  • I would love to see field set with more than 2 columns so I could make my own highlights panel.

  • That way we could use the amazing features of this tool without the issues of having to rebuild all the page layouts and work around all the form limitations.