How do I take course or workshop registrations in Notion?

Build a Notion workshop registration form with a Form view, track seats on a board, and pair it with a Stripe Payment Link for paid courses.

Nookesh KarriNovember 1, 20267 min read
Light cover card with the title 'How do I take course or workshop registrations in Notion?' in dark text and a blue accent bar

To take course or workshop registrations in Notion, add a Form view to an Attendees database, ask for name, email and session, and share the form with Anyone on the web with link. Every registration becomes a row you can sort by session. A Notion workshop registration form can’t take money or cap seats, so for paid classes you put a payment link with a seat limit in front of it.

What a Notion workshop registration form can and can’t do

A Notion form collects answers into a database, and that covers most free workshops. Notion’s forms help says all members on all plans can create and use forms, and that Anyone on the web with link lets people who don’t use Notion fill one out.

What it doesn’t do matters more for courses:

  • No payment question. You can’t charge on the form.
  • No seat cap. The form keeps accepting answers until you close it.
  • Anonymous public responses. Notion says respondents to a web form are automatically anonymous, so the form only knows who registered if you ask.
  • Branching is gated. Conditional logic is only on the Business and Enterprise plans.

None of those stops a free lunch-and-learn. The first two hurt a paid multi-week cohort.

Fields to put on a course registration form

A registration form should collect what you need to run the session and contact the person, and stop there. For a typical workshop that’s:

Question Property type Notes
Full name Title Required, since public responses are anonymous
Email Email Required; your key for matching payments later
Session Select One option per date or cohort
Experience level Select Helps you pitch the content
Access needs Text Captions, seating, dietary
How did you hear about us Select Worth it if you promote in several places

Keep the session question a select, not free text. A select gives you a clean property to group by, and a session name typed several different ways will break your counts.

How to build the form in Notion

The setup takes a few minutes in the desktop or web app; Notion says you can’t create or customize a form on a phone.

  1. Create a database called Attendees with the properties above.
  2. Select + next to your view tabs and choose Form, then let Notion turn the properties into questions.
  3. Mark name, email and session as required.
  4. In share settings, pick Anyone on the web with link.
  5. Send one test registration and check it appears as a row.

If you’re unsure which sharing mode to pick, our guide on sharing a Notion form publicly compares them.

How to track seats per session

Seat tracking in Notion is a view, not a form setting. Add a Board view to Attendees and group it by Session. Notion’s board view help lists the Count all calculation, which “gives you the total number of rows in the column,” so each session column shows how many people have registered.

When a session fills, delete it from the Session options so new registrants can’t pick it. When every session is full, set the form to No access, which Notion describes as the way to “close your form and stop accepting new responses.”

The weak spot is timing. If you post the link in a busy newsletter, the last seats can go over before you look at the board. For a free class that’s an awkward email. For a paid one it’s a refund.

Taking payment for a paid workshop

For paid courses, I’d sell the seat first and register second. Let a payment tool enforce the seat limit, then send buyers to the Notion form.

Stripe Payment Links handle the hard part. Per Stripe’s Payment Links docs, you can select Limit the number of payments, and “when the payment link reaches the limit, it automatically deactivates and customers can’t use it to make a purchase.” Late visitors see a deactivated message, which you can customize to point at a waitlist.

The flow looks like this:

  1. Create one Payment Link per session, with the seat count as the payment limit.
  2. In the link’s after-payment settings, redirect to your Notion form. Stripe’s tracking docs say you can “redirect them to a URL or display a custom message by setting after_completion on the payment link.”
  3. On the form, ask for the same email the buyer used at checkout.
  4. Before the class starts, compare Stripe’s payments to your Attendees rows by email.

Two optional extras help with that match. You can share the payment link with prefilled_email in the URL, though Stripe notes the customer can still edit it. And client_reference_id attaches your own string to the checkout, up to 200 characters, if you track cohorts with a code.

Stripe also lets you add custom fields to the payment page, but its docs warn against using them for personal, protected or sensitive data. Keep access needs and similar questions on the registration form.

Sending confirmations from Notion

Notion can email you each new submission, and the forms help mentions an email copy option. Emailing the registrant is harder.

Notion’s automations help says database automations are available on paid plans. The Page added trigger fires when a form adds a row, and Send mail to sends from your Gmail account. The recipients it lists are a person property, a workspace member or a specific address, which can be external. An Email property filled in by an anonymous respondent isn’t on that list, so per-registrant confirmations from Notion alone are unreliable. On a paid course, Stripe’s receipt and the redirect page do that job.

My take, and where this setup falls short

My take: for a solo teacher or a small team, the Notion form plus a payment link is the cheapest setup that works. Your attendee list lives next to your course notes, and Stripe enforces the seat limit so you don’t have to watch a board at midnight.

The limitation is the gap between the two tools. Nothing forces a buyer to finish the registration form after paying, and nothing checks that the email on the form matches the payment. Expect to chase the odd buyer by email.

A dedicated form builder narrows some gaps but not all. nDBForms writes each registration to your Notion database, emails you on each submission, lets you customize the success screen, and on Pro adds conditional logic and multi-page forms that work with any Notion plan. It doesn’t take payments, so the payment link step stays the same.

For more Notion form gaps, see the limitations of Notion forms. For one-off events rather than courses, the event RSVP guide is a better fit, and if you also need helpers on the day, see collecting volunteer signups in Notion.

FAQ

Can a Notion form take payments for a course?

No. Notion forms collect answers only. For a paid workshop, sell the seat with a payment tool such as a Stripe Payment Link and send paid attendees to the Notion form.

Can I limit the number of seats on a Notion form?

Not on the form itself. Count registrations on a board grouped by session, and set the form to No access when it’s full. A Stripe Payment Link can cap paid seats for you with Limit the number of payments.

Do attendees need a Notion account to register?

No. Share the form with Anyone on the web with link and people who don’t use Notion can fill it out. Responses arrive as anonymous, so ask for name and email.

Can Notion email a confirmation to each registrant?

Only with a workaround. Database automations need a paid Notion plan, and Send mail to sends from your Gmail account to a person property, a workspace member or a fixed address.

Sources