Workplace & Facilities package

Event registration with session choices

A four-step registration page with an attendee table, first and second session choices, slider, rating and rich text; seats are checked by a decision table and waitlisted groups go to the organiser.

OfficialNo integrations neededStarts from a formIntermediate~10 min setupv1.0.0

About this package

What it does

Event registration with session choices books groups into limited-seat sessions using only UserTasks features and the official form controls. The registration page has four steps with a progress bar and a review step: an event lookup that fills the date and venue from the Events table, a Table control for the attendees (name, email, dietary needs, accessibility needs), first and second choice sessions looked up in the Sessions table (only the sessions of the chosen event), a Slider for how many sessions they plan to attend, a heart Rating for interest in networking and a Rich text box for questions to the speakers.

The Event registration workflow counts the attendees with COUNT, reads the event and both sessions, and a Seat allocation decision table compares the spare seats with the size of the group: the first choice if it fits, else the second, else the waitlist. The registration is saved to the Registrations table, the seats taken go up on the session and the event, and a loop records every attendee in the Attendees table and emails each one their session; the person who registered gets a booking summary.

A waitlisted group becomes a task for the organiser (the person who installed the package) with a two-day SLA, a reminder and escalation: an Info card shows the group and both choices, a Progress bar how full the first choice is, and the organiser either offers another session (the group is then booked and emailed) or keeps them on the waitlist with a message.

The Organiser dashboard page shows a Progress bar of the chosen event's seats filled, Chart controls of seats taken against capacity per session and registrations by status from the data tables, Saved report controls for attendees by session and by dietary need (workflow variables), and a button that emails the event's attendee list with the catering numbers.

Starts from a form

Starts from a form page: share the Event registration with sessions page (/f/<id>) with staff or signed-in guests, or submit it from your own site through the forms API.

Someone fills in a form to start it: the workflow start form (Run dialog in the app, or your own portal posting to the API) or a standalone form page (/f/<id>) whose Form submitted trigger starts the workflow. People complete User Task forms along the way.

How forms work

The flow

Step by step

  1. 1

    Register

    Pick the event (date and venue fill in), list the attendees in the table, choose a first and second session, slide how many sessions you plan to attend, rate your interest in networking and add questions for the speakers.

  2. 2

    Check seats

    The attendees are counted and the Seat allocation decision table compares the spare seats at the event and in both sessions with the size of the group.

  3. 3

    Confirm

    A group that fits is booked: seats taken go up on the session and the event, every attendee is recorded and emailed, and the contact gets a summary.

  4. 4

    Waitlist

    A group that does not fit is waitlisted and the organiser gets a task with an SLA to offer another session or keep them on the waitlist; the contact is emailed either way.

  5. 5

    Organise

    The Organiser dashboard shows seats filled, seats by session, registrations by status, attendees by session and dietary needs, and emails the attendee list.

Event registration — A group registers: attendees are counted, the seats left at the event and in the first and second choice sessions are checked by a decision table, the group is confirmed (seats taken, every attendee recorded and emailed) or waitlisted, and the organiser offers waitlisted groups an alternative session. The same canvas you get in the designer after installing.

Sub-workflow: Attendee list

From the Organiser dashboard: reads the chosen event, lists its confirmed and waitlisted attendees, works out the catering numbers and emails the list to the organiser who asked.

Forms

The start form and the task forms

People start it from a form page (/f/<id>) with its own header, theme and buttons; submitting it starts the workflow. User Tasks show their fields and outcome buttons to the assignee.

Form page · /f/<id>

Event registration with sessions

Register for an event · own header and theme · Its own page: share the link or open it on a tablet

Event * event · lookup
Event name event_title · text
Date event_date · dateYYYY-MM-DD
Venue event_venue · text
Your name * contact_name · text
Your email * contact_email · emailname@company.com
Organisation organisation · text
Attendees * attendees · ut-table
First choice session * first_choice · lookup
Second choice session * second_choice · lookup
How many sessions do you plan to attend? sessions_planned · ut-slider
How interested are you in the networking breaks? networking · ut-rating
Questions for the speakers questions · ut-rich-text
I agree to these details being used to run the event * consent · boolean
Register

Form page · /f/<id>

Organiser dashboard

2-column grid · own header and theme · Its own page: share the link or open it on a tablet

Event * event · lookup
Event name ev_title · text
Seats taken ev_taken · number0
Capacity ev_capacity · number0
Seats filled seats · ut-progress
Seats by session session_chart · ut-chart
Registrations by status status_chart · ut-chart
Attendees by session session_report · ut-saved-report
Attendees by dietary need diet_report · ut-saved-report
Email me the attendee list

User Task

Offer an alternative session

Waitlisted: {{form.contact_name}} ({{attendee_count}}) for {{event_row.title}} · 2-column grid · own header and theme

Registered by o_contact · textPrefilled: {{form.contact_name}} <{{form.contact_email}}>
Attendees o_count · numberPrefilled: {{attendee_count}}
First choice o_first · textPrefilled: {{form.first_choice}} ({{=s1.capacity - s1.seats_taken}} seats left)
Second choice o_second · textPrefilled: {{form.second_choice}} ({{=s2.capacity - s2.seats_taken}} seats left)
Event seats o_event · textPrefilled: {{event_row.seats_taken}} of {{event_row.capacity}} taken
Who o_names · textPrefilled: {{attendee_names}}
Waitlisted registration o_card · ut-info-card
First choice seats taken o_s1_taken · numberPrefilled: {{s1.seats_taken}}
First choice capacity o_s1_cap · numberPrefilled: {{s1.capacity}}
First choice session o_fill · ut-progress
Offer this session instead alt_session · lookup
Message to the registrant * organiser_message · textarea
Offer this sessionKeep on the waitlist

Form controls

8 official form controls, installed with it

The forms use these controls from the gallery. They come inside the package and install into Extensibility → Form controls, sandboxed and signed like every official control: nothing else to download.

From your code

Start a run over the API

Every workflow can be started over REST, MCP or the CLI, whatever its trigger, with the sample input below. Runs start straight away on the published version; replace <workflow id> with the id the install created.

REST

shell
curl -X POST "$USERTASKS_URL/api/v1/workflows/start" \
  -H "Authorization: Bearer $USERTASKS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"workflow_id":"<workflow id>","variables":{"event":"OPS-26","event_title":"Operations Summit 2026","event_date":"2026-11-24","event_venue":"Harbourside Conference Centre, Wellington","contact_name":"Jamie Example","contact_email":"jamie.example@example.com","organisation":"Example Logistics","attendees":[{"name":"Jamie Example","email":"jamie.example@example.com","dietary":"Vegetarian","accessibility":""},{"name":"Sam Sample","email":"sam.sample@example.com","dietary":"Gluten free","accessibility":"Step-free access"}],"first_choice":"Workshop A: Forms that fill themselves · Operations Summit","second_choice":"Workshop B: Decision tables in practice · Operations Summit","sessions_planned":3,"networking":4,"questions":{"html":"<p>How do you <strong>test</strong> a decision table before it goes live?</p>","text":"How do you test a decision table before it goes live?"},"consent":true}}'

CLI

shell
usertasks workflows inputs <workflow id>          # the start form: keys, types, required
usertasks workflows run <workflow id> --input event=OPS-26 --input event_title="Operations Summit 2026" --input event_date=2026-11-24 --input event_venue="Harbourside Conference Centre, Wellington" … --wait

What's included

25 assets, ready to adapt

TypeNameDetails
Email templateAttendee listThe attendee list the organiser asks for from the Organiser dashboard.
Email templateRegistration confirmedSent to the person who registered once the group has seats.
Email templateRegistration waitlistedSent to the person who registered when the organiser keeps the group on the waitlist.
Email templateYour session placeSent to each attendee of a confirmed registration.
Data tableAttendeesEveryone registered, one row per person: their session, dietary and accessibility needs and status. The organiser dashboard emails this list.
Data tableEventsThe events people can register for: date, venue, the overall capacity and the seats taken so far (updated by every confirmed registration).
Data tableRegistrationsOne row per registration: the contact, the number of attendees, the first and second session choices, the session they got (or the waitlist), how many sessions they plan to attend and their interest in networking.
Data tableSessionsThe sessions of each event: speaker, time, room, capacity and seats taken. The session lookups on the registration form store the Session column; confirmed registrations add their attendees to the seats taken.
Decision tableSeat allocation4 rules — Decides where a registration goes from the spare seats after it (seats left minus the attendees): the event first, then the first choice session, then the second. A negative number means it does not fit. Change the order or add rules here.
Retention policyRegistrations: 12 months after the eventAttendee details are personal information: purge registration and attendee rows 12 months after they were created. Apply it to the Registrations and Attendees tables after install.
ReportAttendees by dietary needVegetarian, vegan, gluten-free, halal and other dietary needs per event, summed over the registration runs (workflow variables): the catering numbers.
ReportRegistrations by sessionRegistrations and attendees per session they were given (waitlisted registrations have no session), from the registration runs (workflow variables).
ReportWaitlisted registrationsOrganiser tasks for waitlisted registrations that are still open (the Event registration workflow's tasks).
Form controlChartBar, line, area, pie or doughnut chart of static data, another field's rows, lookup results or a saved report. Keyboard-navigable points, a data table view, and optional point selection.
Form controlInfo cardA callout or key / value card: an info, success, warning, error or neutral message that can show up to six other form values ({{field1}} … {{field6}}), formatted for the reader.
Form controlProgressProgress as a bar, a ring or named steps, from two mapped fields (current and total) or fixed values, with optional warning / good thresholds.
Form controlRatingStar, heart or circle rating from 1 to 10 with optional labels (Poor … Excellent). Mouse, touch and keyboard.
Form controlRich textA rich-text editor with bold, italic, underline, headings, lists, quotes and links, a character counter and strict sanitising of everything typed, pasted or dropped.
Form controlSaved reportShows a saved report as a sortable, paginated table or a chart, run with the permissions of the person filling in the form. Optionally pick a row as the field's value.
Form controlSliderA range slider for numbers (0 to 100, $0 to $5,000, 1 to 10) with a value bubble, mark labels such as Low / Medium / High and an optional box for exact entry.
Form controlTableAn editable table (line items, attendees, measurements) with typed columns: text, number, currency, date, choice and tick box. Per-cell validation, totals, and spreadsheet-style keyboard editing.
FormEvent registration with sessionsRegister one or more people for an event: pick the event (date and venue fill in), list the attendees with their dietary and accessibility needs, choose a first and second session, and send questions for the speakers.
FormOrganiser dashboardThe organiser's page: pick an event to see its seats filled, seats taken against capacity for every session, registrations by status, attendees by session and dietary needs from saved reports, and a button that emails the attendee list.
WorkflowAttendee list9 steps — From the Organiser dashboard: reads the chosen event, lists its confirmed and waitlisted attendees, works out the catering numbers and emails the list to the organiser who asked.
WorkflowEvent registration42 steps — A group registers: attendees are counted, the seats left at the event and in the first and second choice sessions are checked by a decision table, the group is confirmed (seats taken, every attendee recorded and emailed) or waitlisted, and the organiser offers waitlisted groups an alternative session.

Attendees · 14 sample rows

AttendeeRegistrationEvent codeSessionNameEmailDietaryAccessibility needsStatusSummary

Events · 3 sample rows

CodeEventDateVenueCapacitySeats takenOrganiserOrganiser emailStatus

Registrations · 8 sample rows

ReferenceEvent codeEventContactContact emailAttendeesFirst choiceSecond choiceSessionStatusSessions plannedNetworking interest (1-5)Questions for the speakersRegistered

Sessions · 9 sample rows

CodeSessionEvent codeTitleSpeakerStartsRoomCapacitySeats taken

Requirements

What you connect it to

Credentials never travel in a package. The install wizard asks for what your environment must provide, or installs it incomplete until you finish setup.

Needs

  • Email (optional) — Email delivery configured for the instance (EMAIL_PROVIDER), used for notifications.

After installing

  1. Nothing to configure: install it and open Forms → Event registration with sessions (share its /f/ link) and Forms → Organiser dashboard.
  2. The Table, Slider, Rating, Rich text, Info card, Progress, Chart and Saved report controls install with the package (Extensibility → Form controls).
  3. Replace the sample rows in Events and Sessions with your own (keep the Session column unique: it is what the session lookups store); delete the sample Registrations and Attendees rows when you go live.
  4. Waitlisted groups go to the person who installed the package: change the Offer an alternative session step's assignee in the designer if someone else organises the events.
  5. Edit the Seat allocation decision table to change how seats are given out.
  6. Optional: apply the "Registrations: 12 months after the event" retention policy, and set EMAIL_PROVIDER so the confirmations are delivered (the console provider logs them).

Asked for on install

Nothing: it installs complete.

Install

Install it in your workspace

Works on UserTasks cloud and on any self-hosted instance. Installing creates the assets above; nothing runs until you complete setup and start it.

In the app

  1. Download event-registration-sessions-1.0.0.utpkg.
  2. Open Automations → Packages and drag the file onto the page (or choose Import package). Browse gallery there lists every gallery package without downloading by hand.
  3. Pick the file. The wizard verifies the checksum, every file hash and the signature, and shows the readme.
  4. Review the changes (what is created) and the data rows.
  5. Fill in the requirements, or tick Keep incomplete and finish later with Complete setup.
  6. Done: the workflow is published and active once setup is complete.

With the CLI

shell
curl -fLO https://usertasks.com/gallery/event-registration-sessions-1.0.0.utpkg
usertasks packages inspect event-registration-sessions-1.0.0.utpkg       # offline: checksum, hashes, signature
usertasks packages install event-registration-sessions-1.0.0.utpkg --dry-run
usertasks packages install event-registration-sessions-1.0.0.utpkg       # prompts for each requirement
usertasks packages install event-registration-sessions-1.0.0.utpkg --keep-incomplete --yes   # in CI; finish with:
usertasks packages complete event-registration-sessions -f values.yaml

Verify the download

File SHA-256
a7b188fa47f65a61446da6775761225c643e3b85b39909ea6e65f3b265d56d28
Package checksum (what is signed)
sha256:e7ca209937f28e2dd5e191d4fb24ef32a5c8e7332f11132ef4c7fc6d9896737d
Signer
UserTasks Gallery · 49:f3:04:90:47:02:4d:07:28:61:3d:dc:bb:aa:db:11

shasum -a 256 event-registration-sessions-1.0.0.utpkg should print the file SHA-256. How gallery packages are signed.

Versions

Version 1.0.0

  1. v1.0.02026-10-31First release.

Installing a newer version upgrades in place: local credentials and requirement values are kept, and changes you made are flagged first. How packages work

More packages

Related

Browse the whole gallery