Web Forms, one of the intake engines of the portal. Actually was developed before entity forms (the other intake method). Back in the early ADX days if you needed a single page form you just created a 1 step web form because there was no such thing as entity forms. Well because Web Forms had a lot of configuration overhead and the steps were complex to link, entity forms were born to simplify the configuration for portal forms. A large percent of forms were just single page forms as well so why use this really complex configuration for what should be simple.
But there are needs for complex forms, multi-step process, conditional branching as you enter information in steps, and even linked forms. All of that is possible with the Web Form functionality of portals, but its kind of been forgotten and not loved for years now. There is a bunch of things that are needed to bring Web Forms up to par, and then take them to the next level to allow the portals to truly be a complex form intake engine.
Web Form Step Type Load Web Template
This is my number 1 item and likely easy to knock off as a feature. Load any web template as a step. The Web Form Step has a Load User Control (ASCX) step type but that is from the days when you could write your own code into the master portal template.
Load Web Template would open up a crazy world of possibilities especially with CRUD operations coming. Want a blob of HTML content, maybe a terms and conditions or an instructional bit of text as a step then use a Web Template. Want to create a summary step with read-only entity forms across 5 different entities then use a Web Template. Want to load something from another API or inject a React component, then use a Web Template. I could go on and on with the doors this would open.
Navigate Web Form Steps Out of Order
Many intake forms you don’t have to do the steps in order. Users sometimes actually prefer to do the steps of a complex form in what makes sense to them and actually want to bounce between steps as they do the form. There is a way to display a list of the steps in a form but it is just a list of view only, you can’t use them to navigate.
What if you could enable the steps to be clickable and do them however you please. If you look through complex application forms or government forms this is pretty common.
It would be great if the option to lock steps that you had to be to them in order before you could navigate at any time also existed.
- Saving in progress forms on a step without completing the required fields.
The validator for required fields would need to only be enabled on a submit of that step instead of just a save or navigate away as an option. There would be the expectation that as you fill a step and then navigate to another that you are warned or your progress saved.
- Conditional branching that adds or removes steps.
The step visualization somewhat already takes care of this though.
Fight the power, do step 8 of 9 first and 1 of 9 last.
The Hack: Manipulate the Web Form Session entity with an outside API call.
Web Form Step Pre-Requisites and Completion Conditions
This is probably really two features but I have it as one idea.
Pre-requisite conditions is desired when you have complex scenarios, even more so when you also pair it with the navigation of steps out of order. Let’s say you have step A, B, C, and X. You can’t view X without first completing A, B, C. Step X is actually summarizing A, B, C to you for confirmation.
Web Form Step Source Type Previous Step Record Entity Reference
This one is probably super common. You have an edit process, you want the user to edit an account and then the primary contact for that account as step 2. You start to make step 2 but when you go to say what is the source of your contact entity record the result of last step is actually an account and there is no way to reference the contact on that account as your step source.
If the result of previous as the source type was expanded to support record OR entity reference and then lookup the relationship you wanted as the source.
Web Form Step Visualizer
One of the major reasons why Web Forms have fallen behind is the complexity of setting them up and managing them. It is just not easy with the relationship structure and the model-driven Portal Management app. Linking steps is hard, requires a lot of back and forth navigation and then making a change to re-order steps is a huge pain.
If the steps could be visualized in a flow type of nature then it would be a lot easier to at least understand the Web Form and how it operates. If you could manage steps with that visualization, click and drag re-order them, see the conditional branching and even create new steps then it would make them so much more approachable and easy to manage.
This one is a long term ask @Nick Doelman has requested this tool from @James Novak on XrmToolbox for a long time. I think the struggle of no one biting this off yet in the community is the complexity of the visualization and the concern that once someone does then Microsoft will put out there’s 😜. There is great potential for this with the new Portals Maker Studio to provide an experience, or a canvas app or a PCF control.
The Hack: There isn’t one at this time.
Those are the top ones on my list, I am sure there are more that everyone else out there has. If there are, please post them as ideas on the Power Apps Ideas forums and tag them as portal. The portal team looks at that board and uses it as an influence to what they are going to prioritize for releases. Feel free to send your ideas my way in the comments or on Twitter and I will happily promote them as well.
Web Forms are a huge feature that is necessary for complex intake of information and we need to get them more rich with improvements and new features so that they are better adopted. Please go vote for these ideas!