Event registration tracker with Microsoft Forms and SharePoint
Short answer: use a Microsoft Form as the sign-up page and a SharePoint list as the guest list. A Power Automate flow copies each sign-up into the list. A grouped view with a Count total shows the head count for each session. A second action in the same flow can email a confirmation. You can build all of it in Microsoft 365. Exact names of menus and buttons may differ in your tenant.
What you are building
You run an event, such as a workshop, a class or a fundraiser dinner. People sign up. You need to know who is coming, how many, and who still has to be contacted. A form alone gives you a results page. A list gives you a working guest list you can sort, filter, mark as checked in, and share with the people running the door.
Here is the end result:
- One Microsoft Form with the sign-up questions.
- One SharePoint list called "Registrations", with one row per sign-up.
- One flow that copies each sign-up into the list and sends a confirmation.
- Three views: all guests, head count by session, and a check-in view for the day.
If you only need the Forms-to-list copy step in detail, see "Save Microsoft Forms answers to a SharePoint list". This guide adds the event parts: head count, waitlist, confirmation and check-in.
Before you start
You need a Microsoft 365 work or school account, a SharePoint site where you can create a list, and access to Power Automate. Microsoft's page for the Forms connector says: "The connector only works with organizational accounts." Check with your admin about which license your account needs.
Decide these things first. One way to start is to write them on a sheet of paper.
- How many sessions or dates do you have?
- How many places does each session have?
- What do you need from each guest? Keep it short. Every extra question is one more column.
- Who will look at the list each day, and who runs check-in?
Step 1. Build the form
Go to https://forms.office.com and sign in with your work or school account. Microsoft's steps say: "Select New Form." Then add these questions. Use short wording, because the question text is what you will see later in the flow.
- Guest name (Text)
- Email address (Text)
- Session (Choice, one answer, with your session names)
- Number of guests, including you (Choice or Number)
- Notes, such as diet or access needs (Text, long answer, not required)
Our advice, not a Microsoft rule: ask for the minimum. Do not collect anything you will not use. If the form asks about health or diet, check with your admin first about where that data may be stored.
Microsoft says: "Select Preview to see how your form will look." Test it this way before you share it.
Step 2. Create the list
Open your SharePoint site from https://www.microsoft365.com and create a blank list named "Registrations". Add these columns. Choose the type before you create each column, because changing a type later can damage the data in it.
- Title. A new list has this column and it is required by default. Rename it to "Guest" and use it for the guest name, or turn off its Require setting. If you leave it required and empty, the flow cannot create the row.
- Email, Single line of text.
- Session, Choice. Type the same words you used in the form, one per line.
- Party size, Number.
- Notes, Multiple lines of text.
- Status, Choice, with numbered choices so they stay in your order: 1 Registered, 2 Waitlist, 3 Checked in, 4 Cancelled, 5 No show. Set the default value to "1 Registered". A Choice column sorts by its text, so the number prefix keeps your order. A blank status would hide the row from any view that filters on Status, so set the default.
- Confirmation sent, Yes/No. Set its default value. Our advice, not a Microsoft rule: set it to No, so a new row is clearly not confirmed yet.
Do not add columns you will not use. Five columns for the guest and two for your team is enough to start.
Step 3. Build the flow
Go to https://make.powerautomate.com and sign in. Create a flow from blank and give it a name you will recognize, such as "Event form to Registrations list".
- Trigger: choose the Microsoft Forms trigger "When a new response is submitted". Microsoft's connector page says: "This operation triggers a flow when a new response is submitted." Pick your form in the Form Id box.
- Action: add the Microsoft Forms action "Get response details". Microsoft's page says the Response Id is to be used "with 'Get response details' action to fetch the content of the form response." Pick the same form, and use the Response Id from the trigger.
- Action: add the SharePoint action "Create item". Pick your site and the Registrations list.
- Match each answer to a column. Guest name goes in Title, email goes in Email, and so on. For the Session choice, the form text must match one of the list choices exactly.
If your form belongs to a group, the form will not show in the drop-down. Microsoft's page says: "Group forms will not show up in the drop-down list. In order to trigger the Group forms, the Form Id needs to be added manually." The page says to paste only the part after "FormId=".
Save the flow and submit one test answer. Then open the list and check that the row is there. Delete the test row when you are done.
Step 4. Send a confirmation
After "Create item", add an email action from the Outlook connector. Put the guest email in the To box. In the body, repeat the session, the date and the place, and say what to do if plans change. Then add a SharePoint "Update item" action that sets Confirmation sent to Yes. Your Title column is required by default, so in Update item also fill Title with the guest name from dynamic content.
Our advice, not a Microsoft rule: if you later add a second flow that runs when an item is created or modified and updates the same item, add a guard condition, such as Confirmation sent is equal to No, and fill Title. See "Power Automate flow keeps running itself over and over".
If you want the email to come from a team address, see "Send Power Automate emails from a shared mailbox".
Step 5. Show the head count
Make a new view named "Head count". Microsoft's page on views describes two settings you need. Group By: "Group list and library items by information in the columns." Totals: "Displays summary calculations for the columns in the view, such as: count, average, maximum, minimum."
- Open the list and choose the view options menu on the command bar.
- Choose "Edit current view" (save it as a new view first so you keep the original).
- Group by Session.
- Under Totals, set Title to Count. Check your view's Totals menu for what else it offers for the Party size column.
- Save.
You now see one group for each session and the number of rows in each. Note the difference: Count on Title counts rows, not people. If one row stands for a party of four, the Count shows sign-ups, not seats. Our advice, not a Microsoft rule: to count seats, check whether your Totals menu offers a sum for the Party size Number column. If it does not, ask each guest to sign up on their own row.
Step 6. Handle full sessions and the waitlist
A form can close after a set number of responses. See "Close a Microsoft Form after a set number of responses". That works for one form with one limit. If you have several sessions with different limits, a simple way to start is one form per session, or one list where you check the head count view and change a row to "2 Waitlist" by hand.
Our advice, not a Microsoft rule: keep waitlist handling manual at first. When a place opens, change the waitlisted row to "1 Registered" and send that guest a message yourself.
To stop the same person signing up twice, see "Stop people filling in a Microsoft Form more than once".
Step 7. Make a check-in view for the day
Make a view named "Check-in". Show only Guest, Session, Party size and Status. Sort by Guest. Filter Status to "1 Registered", so people who are already checked in drop off the list. On the day, open the list on a phone or laptop at the door and change Status to "3 Checked in" for each arrival.
For the filter, edit the view and use the Filters section. Microsoft's page shows filters such as [Today] and [Me] and says they are used "to show items when the date matches today" and "to show items for the user of the view". Our advice, not a Microsoft rule: use the classic view editor for blank and "is not equal to" filters too. Use "equals" with the full choice text, for example 1 Registered, so no blank or not-equal filter is needed.
A reminder the day before is a second flow. See "Send a reminder before a due date in a SharePoint list". Use the event date as the date and the guest email as the person to message.
What to avoid
- Do not leave Title required and empty. The flow will fail on the row.
- Do not type the session names two different ways in the form and the list. A Choice that does not match stops the row.
- Do not count head count from the Forms results page after you start editing rows in the list. The list is now the master record. Edits in the list do not go back to the form.
- Do not use a view as security. A view is not security. Anyone who can open the list can open another view. If the guest list is private, set the list permissions, not only the view.
- Do not use a calculated column for "days until the event". A calculated column cannot use today's date, because SharePoint blocks [Today] in formulas. Use a view filter or a flow instead.
- Do not delete a question in the form after people have answered. Microsoft says: "If you delete a question, it will be permanently deleted along with any response data that's been collected for it."
- Do not test with real guests. Test with a row called "Guest 17" and delete it after.
Honest limits
The flow copies new sign-ups only. If a guest edits their answer later, the list does not change. If a guest wants to cancel, they will email you, and you change the Status to "4 Cancelled" yourself.
The flow runs under the account that built it. If that person leaves, the flow can stop. Ask your admin about ownership.
Microsoft's connector page lists a throttling limit of 300 API calls per connection every 60 seconds. A small event will not come close.
This setup does not take payment, issue tickets or scan QR codes. If you need those, use a ticketing tool and keep the list for your own notes.
When to get help
You can build all of this yourself in Microsoft 365. If you would rather have it built and tested for your team, I do that. A tracker like this is a fixed price: $5,000 for one, built in 2 weeks. See "What a SharePoint tracker costs to build". Bring one example of the problem to a free call.
I am Al Davies. I run 250 High Street LLC and build SharePoint trackers and Power Automate flows for operations teams. I work remotely. The first call is free, and I will not try to sell you anything.
See trackers I built: Tools I built
FAQ
Can a Microsoft Form send sign-ups straight into a SharePoint list?
Yes, with a Power Automate flow. The trigger is "When a new response is submitted", then "Get response details", then SharePoint "Create item". Microsoft's connector page lists these actions.
How do I see how many people signed up for each session?
Make a view grouped by Session with a Count total on the Title column. Microsoft's page says Totals "Displays summary calculations for the columns in the view, such as: count, average, maximum, minimum."
Why did a sign-up not appear in my list?
Open the flow in Power Automate and check the run history. Look for a Title that is required but empty, or a Session choice that does not match the list choices.
Can I stop sign-ups when a session is full?
A form can close after a set number of responses. See "Close a Microsoft Form after a set number of responses". For separate limits per session, one way to start is one form per session.
Does the list update if a guest changes their answer in the form?
No. The flow copies new responses only. Make the list your master record and edit rows there.
Sources
- Microsoft Learn, Microsoft Forms connector reference
- Microsoft Support, Create, change, or delete a view of a list or library
- Microsoft Support, Create a form with Microsoft Forms
- Microsoft Learn, SharePoint connector reference