Skip to main content

Monitor venue check-ins in real time

Operator

The Check-In Dashboard provides a real-time view of worker arrivals, staffing coverage, and event status. This guide explains each section of the dashboard and how to use it effectively during an event.

Prerequisites: Start a Check-In Session

The dashboard requires an active check-in session before it will display any data. If no session has been initialized, the dashboard returns an error. You must complete these steps before your event begins.

You need the venues.manage permission to perform these steps.

1. Initialize the session

Call the initialize endpoint once per event. This generates the cryptographic keys used to sign and verify QR scans.

POST /checkin/events/{eventId}/initialize

This call is idempotent — calling it a second time returns the existing session rather than creating a new one.

warning

The signing keys expire 24 hours after initialization. If your event runs longer than 24 hours, or if you initialize significantly in advance, QR scans will fail after the key expires. Initialize the session no more than a few hours before the event starts.

2. Activate the session

A newly initialized session starts in pending status. Scanners cannot record check-ins until the session is active. When you are ready to accept scans, transition the session to active:

PATCH /checkin/events/{eventId}/status
Content-Type: application/json

{ "status": "active" }

3. Close the session after the event

When the event is over, close the session to prevent further scans:

PATCH /checkin/events/{eventId}/status
Content-Type: application/json

{ "status": "closed" }

Valid status transitions:

FromTo
pendingactive or cancelled
activeclosed or cancelled

closed and cancelled are terminal — they cannot be transitioned further.

Accessing the Dashboard

Navigate to /events/EVENT_ID/checkin from the event detail page or from a direct link. The dashboard loads the current state of check-ins for the selected event.

Dashboard Layout

The dashboard is organized into five sections, from top to bottom:

1. Header Bar

The header contains:

  • Title -- "Check-In Dashboard."
  • Live indicator -- A colored dot with the label "Live" (when connected) or "Connecting..." (when the real-time connection is being established). This tells you whether the dashboard is receiving live updates.
  • Export CSV button -- Downloads the full check-in record as a CSV file.

2. Summary Statistics

Three stat cards appear in a row across the top of the dashboard:

StatDescription
Checked InThe number of workers who have successfully checked in so far.
No ShowThe number of assigned workers who have not yet checked in. This count decreases as workers arrive.
Late ArrivalsThe number of workers who checked in after the scheduled start time.

These numbers update in real time as new scans arrive.

3. Gap Alerts

The dashboard uses two separate indicators to surface staffing shortfalls:

IndicatorWhen it appears
Orange gap alert banner (top of page)Any stand has at least one worker short (gap > 0)
Warning icon on a coverage rowA stand is 3 or more workers short (gap > 2)

Each orange banner reads:

Stand Name: below minimum staffing

Banners appear as soon as a shortfall exists, so you get early warning even for small gaps. The warning icon in the coverage grid appears only for stands with a significant shortfall requiring immediate attention.

Both indicators disappear automatically when enough workers check in to close the gap.

4. Coverage by Stand

This section shows a list of all stands configured for the event. Each stand row includes:

  • Stand name -- Preceded by a warning icon if the stand has a significant staffing gap.
  • Worker count -- Displayed as a fraction: checked-in / expected (e.g., "3/5").
  • Progress bar -- A visual fill that represents the coverage percentage. A full bar means the stand is at or above its expected staffing level.

Stands are listed in alphabetical order. Use this grid to quickly identify which areas of your venue need attention.

Color Interpretation

  • Full bar -- The stand is fully staffed or overstaffed.
  • Partial bar -- Some workers have arrived but the stand is not yet at full capacity.
  • Warning icon -- The stand is 3 or more workers short (gap > 2). This stand needs immediate attention.

5. Recent Check-Ins Feed

The bottom section displays a scrollable list of individual check-in events, showing:

  • Worker photo (avatar based on the worker's name).
  • Worker name.
  • Organization -- The NPO the worker belongs to.
  • Stand -- The stand the worker is assigned to.
  • Time -- The time the scan was recorded (e.g., "2:15 PM").
  • Late badge -- A red "Late" label if the worker arrived after the scheduled start time.

Searching the Feed

A search box at the top of the feed lets you filter by worker name, organization, or stand name. This is useful for quickly confirming whether a specific worker has checked in.

Real-Time Update Behavior

The dashboard uses Server-Sent Events (SSE) to receive live updates from the server. Here is how it works:

  1. When the dashboard loads, it fetches the current snapshot of all check-in data from the API.
  2. It then opens a persistent SSE connection to /checkin/events/EVENT_ID/stream.
  3. Each time a worker is scanned (via QR or manual check-in), the server pushes a checkin event through the stream.
  4. The dashboard applies the event immediately: the stats increment, the coverage grid updates, and the new check-in appears at the top of the feed.

Connection Recovery

If the SSE connection drops (network interruption, server restart), the dashboard automatically attempts to reconnect with exponential backoff:

  • First retry after 2 seconds.
  • Second retry after 4 seconds.
  • Up to 5 retries, doubling the delay each time.

During reconnection, the live indicator changes to "Connecting..." When the connection is restored, any check-ins that occurred during the gap are included in the next data refresh.

If all retry attempts fail, refresh the page to re-establish the connection.

Exporting Check-In Data

Select the Export CSV button in the header to download a CSV file containing every check-in record for the event. The exported file includes the following columns:

ColumnDescription
NameWorker's full name.
OrganizationThe NPO organization the worker belongs to.
StandThe stand the worker was assigned to.
TimeThe time the check-in was recorded.
Late"Yes" if the worker arrived late, "No" otherwise.

The file is named checkin-EVENT_ID.csv and downloads immediately to your device. Use this export for post-event reporting, attendance reconciliation, or sharing with NPO coordinators.

Best Practices

  • Display the dashboard on a dedicated screen during the event so that you and your staff can monitor coverage without switching between apps.
  • Watch the gap alerts. When a gap alert appears, coordinate with the relevant NPO lead to reassign available workers.
  • Use the search field to quickly confirm a specific worker's check-in status when handling questions at the gate.
  • Export data promptly after the event for your records. The data remains available in the system, but a local copy ensures you have a backup.

Next Steps