What this article is
A reference for understanding the five ways a PlusPlus event records that an attendee was present. Use it to choose which check-in methods to enable, to troubleshoot why an attendee is or isn't showing as checked in, or to understand what each method does before reading the cookbook that sets it up.
Throughout this article, event owner refers to anyone listed as an organizer, co-organizer, or facilitator on an event. Admins are called out separately because they have system-wide permissions independent of their role on any specific event.
For step-by-step setup, see the cookbooks linked under each method below.
The five check-in methods
PlusPlus supports five methods of checking an attendee into an event:
Self check-in — the attendee clicks a check-in button on the event page.
QR code check-in — the attendee scans a QR code with their phone, or a host scans the attendee's QR code from an enrollment email - Walk-through video
Host check-in — an event owner or admin manually checks an attendee in from the event roster.
Auto check-in — PlusPlus checks the attendee in automatically when they take a qualifying action, such as joining the virtual conference link or submitting a star rating.
Force check-in — an event owner or admin checks in someone who isn't yet enrolled, enrolling them in the process.
QR code check-in and host check-in are sometimes thought of as two separate methods, but mechanically they're the same: someone with the right permission records the check-in on an existing enrollment. The QR code is a faster way to get to that action, not a different action.
What to know before the comparison
Two things apply across every method below.
Every method produces the same result. Regardless of how a check-in happens, the attendee's enrollment is updated with the same check-in timestamp and the same "checked in" state. You cannot tell from the enrollment record, a CSV export, the dashboard, or the GraphQL API which method was used. Check-in is check-in — the method is not preserved.
Self check-in must be enabled for self check-in and QR self check-in to work. Both methods are controlled by the same setting (Self check-in). When self check-in is disabled at the event or event series level, the attendee cannot use the self check-in button or scan the event QR code, even if the QR is shared with them. Host check-in, auto check-in, and force check-in are independent of this setting.
Comparison
| Self check-in | QR code check-in | Host check-in | Auto check-in | Force check-in |
Who initiates it | Attendee | Attendee (event QR) or host (enrollment QR) | Host | The system | Host |
Required permission | Be the enrollee | Self: be the enrollee. Host: event owner or admin | Event owner or admin | None | Event owner or admin |
Requires Self check-in setting? | Yes | Yes for the attendee-scanned mode; no for the host-scanned mode | No | Yes | No |
Respects check-in cutoff window? | Yes | Yes for the attendee-scanned mode; no for the host-scanned mode | No | Yes | No |
Requires existing enrollment? | Yes | Yes | Yes | Yes | No — enrolls the attendee in the process |
Idempotent on repeat? | Yes | Yes | Yes | Yes | Yes |
Per-method notes
Self check-in
The attendee opens the event page and clicks a check-in button. Available when the Self check-in setting is on for the event (or inherited from the event series or system level), and when the current time falls within the configured Self check-in opens cutoff and Self check-in closes cutoff window.
QR code check-in
QR code check-in has two modes that share the same underlying mechanism.
Attendee scans the event QR code. The QR code encodes a link to the event's public check-in page. Any attendee with an enrollment can scan it to check themselves in. Organizers access the event QR from the event's context menu (Show Check-in QR Code), then display the QR code or copy the check-in URL it encodes. This mode follows the same rules as the self check-in button — self check-in must be enabled and the current time must fall within the check-in window.
A host scans the attendee's enrollment QR code. Each enrollment has its own QR code that encodes a link to a per-attendee check-in page. When PlusPlus sends an enrollment confirmation email that uses the {{ qr_code }} notification tag, the attendee receives an inline QR code they can present at the door.
An event owner or admin scans the attendee's QR with their phone, lands on the attendee's check-in page, and confirms the check-in.
This mode does not require self check-in to be enabled and does not respect the check-in cutoff window — it is a host action, not a self-service one.
A host can also check in a waitlisted attendee this way — something attendees can't do themselves with the event QR code.
In both modes, scanning is done with the device's native camera app — PlusPlus does not include an in-app QR scanner.
Host check-in
A host opens the event roster and checks an attendee in from the per-attendee action menu or via a bulk roster action.
Available to event owners and admins. Host check-in does not require self check-in to be enabled and is not subject to the check-in cutoff window.
Auto check-in
PlusPlus automatically checks an attendee in when they take a qualifying action.
Joining the virtual conference link. When an enrolled attendee clicks the watch / VC link, PlusPlus checks them in. Gated by the instance-level Auto check-in on VC join setting. Respects the self check-in cutoff window.
Submitting a star rating. When an enrolled attendee submits a rating for the event, PlusPlus checks them in. Respects the self check-in cutoff window.
In both cases, the attendee must already be enrolled (specifically, in the "going" state) and not already checked in.
Force check-in
A host checks in someone who is not yet enrolled in the event. PlusPlus enrolls the attendee as part of the check-in action. Available to event owners and admins, in two places:
The Add Attendees flow — when adding one or more attendees by email, the host can enable a Force check-in option that checks each attendee in immediately after enrolling them.
Bulk action on the roster — a Force check-in multi-row bulk action that checks in any selected attendees, enrolling first if necessary.
If the event's enrollment cap is full when force check-in is used, behavior depends on the enrollment policy selected alongside it:
The default Attempt to enroll then attempt to waitlist policy sends overflow attendees to the waitlist.
The Force enroll (auto-increase enrollment capacity) policy raises the cap by one per over-cap attendee. The increase is audit-logged.
The Attempt to enroll then force waitlist policy grows the waitlist capacity to fit overflow attendees.
For a deeper look at these enrollment policies, see How to add attendees to events.
What's not preserved
Once a check-in is recorded, the enrollment shows only when it happened, not how. If you need to know whether a specific attendee self-checked-in versus was checked in by a host, that information is not available in PlusPlus reports. The check-in record stores:
The check-in timestamp
Who recorded the check-in (the attendee themselves, for self check-in, attendee-scanned QR check-in, and auto check-in; the host, for host check-in, host-scanned QR check-in, and force check-in)
In practice, the "who recorded it" field is the only signal you have for distinguishing methods after the fact, and it doesn't distinguish a button press from a QR scan — or a self check-in from an auto check-in, since auto check-ins are recorded as the attendee themselves rather than as a system actor.




