Workplace & Facilities package

Meeting room booking

Book a room from a themed start form; rules send large, long or catered bookings to facilities for approval, everything else is confirmed straight away.

OfficialNo integrations neededStarts from a formStarter~10 min setupv1.0.1

About this package

What it does

Meeting room booking gives people one simple, branded form to ask for a room: meeting title, room, date, start time, duration, number of attendees, catering and external guests. The Rooms table holds every bookable room with its floor, seats and equipment, so facilities can keep it up to date without touching the workflow.

The workflow reads the chosen room and checks the request against the Room booking approval decision table: more attendees than seats, a large room (12+ seats), a booking longer than four hours or catering all need facilities approval; anything else is confirmed automatically. Every request is recorded in the Room bookings table with the rule that applied.

Facilities get an approval task with Approve and Reject buttons, choose the room setup, tick that catering is ordered and leave a note for the organiser. The organiser gets a confirmation email with the room details, or the reason it could not be approved. No integrations needed.

Starts from a form

Starts from its start form: open the Meeting room booking workflow and press Start (or share the start link). The form is themed and laid out in a grid.

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.

The flow

Step by step

  1. 1

    Ask for a room

    The organiser fills in the themed start form: room, date, time, duration, attendees, catering and guests.

  2. 2

    Check the room

    The workflow reads the room's seats and equipment from the Rooms table and flags more attendees than seats.

  3. 3

    Apply the rules

    The approval decision table decides whether facilities must approve (large rooms, long bookings, catering) and records why.

  4. 4

    Facilities approve

    Facilities pick the room setup, confirm catering and press Approve or Reject, with a note for the organiser.

  5. 5

    Confirmation

    The booking is confirmed or declined in Room bookings and the organiser is emailed the details.

Meeting room booking — Book a meeting room from a themed start form: the room is read from the Rooms table, the approval rules decide whether facilities must approve, and the organiser gets a confirmation (or the reason it was declined). The same canvas you get in the designer after installing.

Forms

The start form and the task forms

The workflow inputs are the start form: the Run dialog renders them on its grid and theme, and your own portal can post the same fields. User Tasks show their fields and outcome buttons to the assignee.

Start form

Meeting room booking

Filled in by whoever starts the process

Meeting title * meeting_title · textWhat the meeting is, as it will appear on the booking
Room * room · select
KauriRimuTotaraHarbour ViewBoardroomTraining Room+1
Pick a room (see the Rooms table for seats and equipment)
Date * booking_date · dateYYYY-MM-DDThe day of the meeting
Start time * start_time · text24-hour time, e.g. 09:30
Duration (hours) * duration_hours · number0How long you need the room; over 4 hours needs approval
Attendees * attendees · number0How many people, including you
Your email * organiser_email · emailname@company.comWhere the confirmation goes
Catering catering · booleanTick if you need tea, coffee or lunch (facilities approve and order it)
External guests external_guests · booleanTick if visitors from outside the company are coming
Notes for facilities notes · textRoom setup, accessibility needs, anything else
Facilities approver (user id) approver_id · textOptional: user id of the facilities coordinator who approves large, long or catered bookings. Set it as this input's default after install; empty means the person booking reviews it (handy for a demo).

User Task

Facilities approval

Approve {{room}} for "{{meeting_title}}" on {{booking_date}} at {{start_time}} · 2-column grid · own header and theme

Room setup * room_setup · choice
As isBoardroomU-shapeClassroomTheatreCabaret
Catering ordered catering_ordered · boolean
Note for the organiser facilities_note · textarea
ApproveReject

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":{"meeting_title":"Quarterly business review","room":"Boardroom","booking_date":"2026-11-12","start_time":"10:00","duration_hours":3,"attendees":12,"organiser_email":"priya.shah@example.com","catering":true,"external_guests":true,"notes":"Customer visit: please set up the boardroom layout"}}'

CLI

shell
usertasks workflows inputs <workflow id>          # the start form: keys, types, required
usertasks workflows run <workflow id> --input meeting_title="Quarterly business review" --input room=Boardroom --input booking_date=2026-11-12 --input start_time=10:00 … --wait

Inbound webhook

shell
usertasks webhooks create <workflow id>          # prints the hook slug and secret once
curl -X POST "$USERTASKS_URL/api/webhooks/inbound?hook=<slug>" \
  -H "Authorization: Bearer <webhook secret>" -H "Content-Type: application/json" \
  -d '{"meeting_title":"Quarterly business review","room":"Boardroom","booking_date":"2026-11-12","start_time":"10:00","duration_hours":3,"attendees":12,"organiser_email":"priya.shah@example.com","catering":true,"external_guests":true,"notes":"Customer visit: please set up the boardroom layout"}'

What's included

6 assets, ready to adapt

TypeNameDetails
Email templateRoom booking confirmedSent to the organiser when a booking is confirmed (automatically or by facilities).
Email templateRoom booking declinedSent to the organiser when facilities decline a booking.
Data tableRoom bookingsEvery booking request, its approval decision and status.
Data tableRoomsBookable meeting rooms: floor, seats and equipment. The booking workflow reads the capacity from here; untick Bookable to take a room out of service.
Decision tableRoom booking approval6 rules — Which bookings facilities must approve. First matching rule wins; the last rule confirms everything else automatically.
WorkflowMeeting room booking17 steps — Book a meeting room from a themed start form: the room is read from the Rooms table, the approval rules decide whether facilities must approve, and the organiser gets a confirmation (or the reason it was declined).

Room bookings · 2 sample rows

Booking referenceRoomMeetingDateStartHoursAttendeesOrganiserCateringApproval ruleRoom setupStatusFacilities note

Rooms · 7 sample rows

RoomFloorSeatsEquipmentVideo conferencingStep-free accessBookable

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. Edit the Rooms table: your rooms, floors, seats and equipment. If you rename or add rooms, update the Room options on the workflow's inputs to match.
  2. Set the default of the "Facilities approver (user id)" input to your facilities coordinator. Until you do, the person booking reviews their own large bookings (useful for trying it out).
  3. Adjust the Room booking approval rules (seat threshold, maximum hours, catering) to your policy.
  4. Optional: set EMAIL_PROVIDER so 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 meeting-room-booking-1.0.1.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/meeting-room-booking-1.0.1.utpkg
usertasks packages inspect meeting-room-booking-1.0.1.utpkg       # offline: checksum, hashes, signature
usertasks packages install meeting-room-booking-1.0.1.utpkg --dry-run
usertasks packages install meeting-room-booking-1.0.1.utpkg       # prompts for each requirement
usertasks packages install meeting-room-booking-1.0.1.utpkg --keep-incomplete --yes   # in CI; finish with:
usertasks packages complete meeting-room-booking -f values.yaml

Verify the download

File SHA-256
8658aac9632ae4dac4789bed60335f632c5086d2f9e985337a4ff1067f6f3ee1
Package checksum (what is signed)
sha256:889175d7bfd9a2f452ff34df8406dde55298ba77409c2a2ea28cef46b5ee761f
Signer
Unsigned preview build — compare the SHA-256 above

shasum -a 256 meeting-room-booking-1.0.1.utpkg should print the file SHA-256. How gallery packages are signed.

Versions

Version 1.0.1

  1. v1.0.12026-10-28Steps for the coordinator who set the package up are assigned to the workflow owner (workflow_owner_id), now that workflow_started_by names the person who started the run.
  2. v1.0.02026-10-28First 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