> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xpressbot.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Event Scan

> Check attendees in by scanning QR tickets, and review the scan log.

## What is this?

**Event Scan** is the check-in tool for Event Studio. It opens a page titled **Ticket scanner**, where you scan a ticket's QR code (or paste its ticket number) to check an attendee in at the door, and review a log of every scan for your events.

\[SCREENSHOT: event-scan-page — Full Ticket scanner page showing the Total scans / Checked In / Rejected tiles, the event selector, the Scan button, and the scan log table]

<Info>
  Event Scan requires the `events:scan` permission and a plan that includes Event Studio. Without them you'll see an access-denied or upgrade message instead of the scanner.
</Info>

## What can I do here?

* Select which event to scan for using the event dropdown (or **All events** to scan against any event).
* Open the scanner dialog with the **Scan** button to check in a ticket via camera or by pasting a ticket number.
* View scan log statistics: **Total scans**, **Checked In**, and **Rejected**.
* Search scan logs by result, message, ticket number, registration ID, attendee name, email, phone, event name, or scanner name.
* Review the scan log table, showing for each scan: row number, status (**Checked In**, **Duplicate**, or **Failed**), attendee details (name, email, phone, ticket no., registration ID), the result message, who scanned it, the scan's geolocation (linked to Google Maps when available), and the timestamp.
* Page through scan logs using pagination controls at the bottom of the table.

## How to use it

### Scan a ticket

1. Go to **Event Studio** → **Event Scan**.

2. Optionally, select a specific event from the event dropdown at the top — or leave it on **All events**.

3. Click **Scan**.

   \[SCREENSHOT: event-scan-dialog — Scan dialog open with the live camera viewport and the "Scan or paste ticket no" input field]

4. In the dialog, either:
   * Point your device's camera at the ticket's QR code — it scans automatically, or
   * Type or paste the ticket number into the **Scan or paste ticket no** field and click **Check in** (or press Enter).

5. The dialog shows the result:

   * **Checked in** / **Welcome back** — a green success state confirming the attendee is checked in, with event, venue, date/slot, and attendee details.
   * **Already scanned** — a warning state if the ticket was already checked in.
   * **Scan failed** — an error state if the ticket is invalid.
   * If the scan is outside the event's scheduled check-in window, you'll see a prompt to **Allow late check-in**, which logs the entry as a late check-in.

   \[SCREENSHOT: event-scan-result — Scan result state showing a successful check-in with attendee name, ticket details, and scan location]

6. Click **Scan next** to check in another ticket, or **Close** to exit the dialog and return to the scan log.

### Review scan history

1. Use the **Total scans**, **Checked In**, and **Rejected** tiles to get a quick summary.
2. Use the search box to find a specific attendee, ticket, or registration ID in the log.
3. Filter by event using the event dropdown — scan logs update to show only that event's history (or all events combined).

   \[SCREENSHOT: event-scan-log-table — Scan log table showing multiple rows with status pills, attendee details, and scan location links]

<Info>
  Each scan can capture the scanner's device location (with permission) and is shown in the log as a link to Google Maps, alongside who performed the scan.
</Info>
