Skip to content

Checkin

A booking records intent: a resource is reserved for a window of time. A checkin records presence: a user physically arrived, and at some point departed. The two are related but separate. A checkin can be linked to a booking or stand on its own, used purely for access control or attendance tracking without any prior reservation.

Together, bookings and checkins answer different questions. The booking answers whether a slot was claimed. The checkin answers whether it was actually used, how long the occupant stayed, and whether the space went unused despite being reserved.

Shape

A checkin holds a planned window and two optional timestamps filled as the user arrives and departs.

FieldPurpose
starts_atPlanned start of the visit
ends_atPlanned end of the visit
check_inActual arrival timestamp
check_outActual departure timestamp

check_in and check_out are set by separate API calls as the visit progresses. A checkin with no check_in is pending. One with check_in but no check_out is in progress. One with both is complete.

Triggers

Each state transition fires a trigger that routes to bound actions on the bookable.

TriggerFires when
checkin_createdA checkin is registered
checkin_startedThe user checks in
checkin_updatedA checkin is modified
checkin_deletedA checkin is deleted
checkout_startedThe user initiates checkout
checkout_completedThe checkout is finalized

Use cases

No-show detection — compare bookings in a window against their linked checkins. A booking with no associated checkin is a no-show. No extra modeling required.

Space utilizationcheck_in and check_out give the actual occupied interval. Compare that against starts_at and ends_at to measure how much of the booked time was used. The Activity reports surface this at the organization and location level.

Access control and notifications — bind an action to checkin_started to trigger a door unlock or send a welcome notification. Bind one to checkout_completed to flag the space for cleaning or release a follow-on booking early.

Standalone presence tracking — create a checkin without a booking to record that a user was at a space outside of any reservation context. Useful for walk-in access, drop-in desks, or any flow where presence matters but advance booking does not.

For the call sequence see Check in to a Booking.

API

The Checkin tag covers checkin CRUD and the checkin audit log.