Which tool should I use to make a form in Microsoft 365?

It depends on exactly what functionality you need, who your form submitters are, and what licensing you have available to use.

Are your form submitters internal organization users or anonymous/external?

If your submitters are external and not being explicitly invited with their Microsoft 365 accounts, the answer is going to be Microsoft Forms or Power Pages. SharePoint lists and Canvas Power Apps will require a Microsoft account and license to interact with, so those options won’t work here.

Usually Microsoft Forms will be the go-to here, particularly if it’s a simple feedback or survey form. This is included in virtually every license package, so it’s essentially “free”.

When would you use Power Pages?

If you want to collect form data directly into Dataverse (not familiar with Dataverse? Lisa Crosbie has a great video here), want a multiscreen form with a CAPTCHA, or want people to be able to see the data in a Dataverse table directly via your portal then Power Pages is a good choice. It is more expensive than other options, being that it’s essentially a full website hosted by Microsoft in your tenant, so it’s something you’d want to really have a good use case for before venturing into.

Interestingly, the Power Pages sites are free to try out, meaning if you want to play around with it first before purchasing, you can totally do that. These do require very high permissions in a tenant to create, though, so keep that in mind (you need to be a Power Platform administrator and be able to create app registrations in Azure to make one).

ms forms logo
power pages logo

This is basically the enterprise-grade solution that anonymous users can interact with.

What if my external users DO have Microsoft accounts?

If your external users have a Microsoft 365 account, you can “share” objects with them, such as MS Lists forms or canvas apps. MS Lists/SharePoint won’t require a license, as they’ll get a free one auto-assigned if they don’t have one, but canvas apps WILL require a license from either their tenant or your tenant.

Be mindful of how you share when you share with external users. It’s usually recommended to set up a separate M365 group explicitly for the things that will be shared to prevent accidental over-sharing.

Internal Submitters

If your form submitters are internal to your organization, the thing you want to consider is do you need to do anything with the information after it’s submitted in your form. This would be activity around the form, such as the status, approvals, comments, etc.

If yes, Microsoft Lists work great for this (assuming you don’t have massive numbers of submissions, like 100k+). Despite its name, this is basically a form with flexible list views. You can even have multiple different forms held in the same list via content types.

MS Lists is actually my favorite tool for forms and request management, primarily because the list views are fantastic and they’re very fast to set up. You can customize the colors of the header and footer and add an icon via JSON and redirect submitters to a thank you page after submitting via this method. I have a guide on how to configure Lists for request management forms here.

Permissions-wise, MS Lists does have a feature that can restrict view access to where users can only see their own forms with the allowance of specific people to view all, so it can be set up securely for more sensitive forms. Instructions for how to set up permissions this way are in this video.

If you don’t need to manage status (e.g. for surveys or feedback forms), then Microsoft Forms will be your fast and easy choice. It’ll sync responses to an Excel spreadsheet and provide some basic data visualization.

ms forms logo
ms lists logo

What if I need role-based access?

It depends. If you only need view access to be role-based, e.g. to show managers data for their direct reports, you can simply tack Power BI with row-level security onto any data source. Often times, this is the path of least resistance, particularly if you have E5 or similar-sized license packages that include Power BI Pro but not Power Apps premium.

If you need role-based view and edit access, or need to hide specific fields from specific groups of people, you’re looking at Power Apps. Specifically, Dataverse security roles and Power Apps together, which will trigger Power Apps premium (and Power Automate premium licensing if you use a flow with it). Dataverse is also a good choice if you expect a large volume of forms/records. This is the “grown up” choice, but it is more expensive and in my opinion quite a bit more time-consuming to build with (model-driven apps being the exception, in some cases).

But I can do role-based filtering in the app either way, right??

Some developers go the route of MS Lists + a canvas app for role-based access, which will technically work fine through the app, the issue is that the actual source data in SharePoint isn’t similarly secured, so if your data is at all sensitive that’s not a route you want to take. People will still be able to access the data with a direct link. The exception is if you’re using the “users only see their own items” permission setting in SharePoint, but that is an all-or-nothing setting (people can either see all or only their items), not role-based.

What if I want my form to be fancy?

So, Microsoft Forms are pretty fancy for the level of effort involved. You can have dynamic forking in the questions, meaning if someone answers “yes” to a particular question they get asked specific follow-up questions. They look fairly snappy, and you can go so far as to include moving background images and auto-playing audio clips which I honestly don’t recommend but the features exist.

Canvas Power Apps is another option here, if you have more time and can get over the learning curve. Power Apps forms take a significantly larger time investment, particularly for people that are unfamiliar with it, so be prepared for that! Definitely opt for modern form components where possible, they look much nicer.

My issue with canvas apps is IMO, they have pretty poor list views in comparison to MS Lists. You can opt to use them only for the input form, though, and manage your requests through SharePoint if you want to.

Workflow & Automation

You can tack on workflow in Power Automate to any of the above solutions to send automated notifications, log data, run approval processes, etc. Often the licensing for this will already be bundled in your existing license packages. The exception will be using it with Dataverse tables or custom connectors, which will trigger premium licensing.

If you want to trigger on status changes, e.g. in-process to complete status sends an email to the submitter, MS Lists is really the best option (don’t be trying to use MS Forms for this). April Dunham has a great video on how to do this here.

With the addition of AI to M365, you might also consider adding sentiment analysis or text summarization to your form outputs via AI Builder.

Reporting

Power BI can connect to any of the above data sources directly, including MS Forms via the auto-synced Excel file that stores responses in SharePoint, to provide response counts over time, KPIs like SLA percentages, highlighting overdue items, etc.

There’s some really neat tricks like dynamically recreating the hyperlink to the form, so that you can click it in Power BI to open it in the source system (I go over how to do this with MS Lists here) or include dynamic row-level security based on your organizational hierarchy.

You can schedule automatic data refresh on any of these sources, meaning they’ll automatically update as new data comes in.

Summary

TL;DR – MS Lists/SharePoint Lists is a great bet for internal users, and my personal favorite unless you need to get really fancy or have a ton of data. MS Forms is usually your go-to for external users.

Leave a Comment