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

# Check-ins

> How to track who is on-site at your location using check-ins and handle failed check-in attempts in Nexudus.

## Overview

The **Check-ins** section shows you who is currently on-site at your location and their visit history. Customers check in when they arrive and check out when they leave — either manually, via door access activity, WiFi network detection, automation tiles, sensors, or automatically when a booking starts.

Check-ins are tied to **passes**, which represent a customer's entitlement to access your space. When a customer checks in, the system validates that they have a valid pass (from their plan or a standalone pass) and deducts usage time accordingly.

If a check-in attempt fails (e.g., no valid pass, account disabled, plan limits exceeded), it's recorded as a **failed check-in** for review.

## How to access

* **Check-ins calendar**: Navigate to **Operations → Access & Check-in → Customers on site**
* **Failed check-ins**: Navigate to **Operations → Access & Check-in → Failed check-ins**

<Note>
  Requires the **checkin** role.
</Note>

## Key concepts

| Term                   | Meaning                                                                                          |
| ---------------------- | ------------------------------------------------------------------------------------------------ |
| **Check-in**           | A record that a customer arrived at your location, with start and optional end time              |
| **Check-out**          | Closing a check-in by recording the departure time                                               |
| **Pass**               | A customer's entitlement to access the space (from a plan benefit or a standalone pass purchase) |
| **Pay-as-you-go**      | A mode where customers without a plan are charged per-minute for their time on-site              |
| **Daily cut-off time** | The hour at which all customers are automatically checked out (e.g., midnight or 2 AM)           |
| **Failed check-in**    | A check-in attempt that was rejected because the customer didn't meet the requirements           |
| **Check-in source**    | How the check-in was triggered (manual, door access, WiFi, etc.)                                 |

***

## Check-in sources

Check-ins can be created through several methods:

| Source                      | How it works                                                                                              |
| --------------------------- | --------------------------------------------------------------------------------------------------------- |
| **Manual / NexIO**          | An administrator checks the customer in from the dashboard, or the customer uses the NexIO front-desk app |
| **Door access**             | A door access integration (Kisi, Salto, Gallagher, etc.) detects the customer entering the building       |
| **Network activity (WiFi)** | The system detects the customer's device MAC address on the WiFi network                                  |
| **Automation tile**         | A configured automation tile triggers a check-in (e.g., tapping an NFC tag)                               |
| **Sensor**                  | An IoT sensor detects the customer's presence                                                             |
| **Booking**                 | A booking starts and the customer is automatically checked in for the duration                            |

***

## The check-in calendar

The main check-ins page displays a **hybrid calendar and list view** showing:

* Who is currently on-site (open check-ins with no departure time)
* Recent check-ins and check-outs
* Booking-based check-ins (displayed separately)
* Visitor check-ins from bookings

### Calendar views

* **Month view** — Overview of check-in activity across the month
* **Timeline view** — Check-ins grouped by customer, showing durations as bars
* **List view** — Tabular list of check-ins by day

### Check-in list columns

| Column         | Description                                            |
| -------------- | ------------------------------------------------------ |
| **Customer**   | The customer's full name (links to their profile)      |
| **Start time** | When the customer checked in                           |
| **End time**   | When the customer checked out (blank if still on-site) |
| **Plan**       | The customer's active plan at the time of check-in     |
| **Team**       | The customer's team membership at the time of check-in |

***

## Creating a manual check-in

<Steps>
  <Step title="Open the check-in calendar">
    Navigate to **Operations → Access & Check-in → Customers on site**.
  </Step>

  <Step title="Click on a time slot or use the new button">
    Select a date/time on the calendar or click the "+" button to open the check-in form.
  </Step>

  <Step title="Select the location">
    Choose the location where the customer is checking in.
  </Step>

  <Step title="Select the customer">
    Choose the customer from the dropdown.
  </Step>

  <Step title="Set arrival and departure times">
    Set the arrival time. You can optionally set a departure time (or leave it open to check the customer out later). Use the duration shortcuts (1h, 2h, 4h, 8h) for quick selections.
  </Step>

  <Step title="Save">
    Click **Save**. The system validates that the customer has a valid pass and records the check-in.
  </Step>
</Steps>

<Info>
  Times are rounded to the nearest 15-minute interval automatically.
</Info>

***

## Check-in form fields

| Field             | Description                                                                          |
| ----------------- | ------------------------------------------------------------------------------------ |
| **Location**      | The location where the customer is checking in                                       |
| **Customer**      | The customer being checked in                                                        |
| **Check-in type** | The source of the check-in (read-only after creation — see "Check-in sources" above) |
| **Arrival**       | The check-in start time                                                              |
| **Departure**     | The check-out time (leave empty for an open check-in)                                |

***

## How pass validation works

When a customer checks in, the system validates their entitlement in this order:

1. **Is the account active?** — Disabled accounts cannot check in.
2. **Does the customer have a valid pass?** — The system looks for an unused pass that:
   * Is valid at the current time (within the pass's allowed hours and days)
   * Is valid at this location (if the pass is restricted to specific locations)
   * Has remaining time (if the pass is time-based)
   * Is not already in use by another check-in (for single-use passes)
3. **Are plan limits exceeded?** — For members with a plan, the system checks:
   * Weekly check-in limit (max number of check-ins per week)
   * Weekly hours limit (max hours per week)
   * Monthly check-in limit (max number of check-ins per month)
   * Monthly hours limit (max hours per month)
   * Plan-period check-in limit (total check-ins since last renewal)
   * Plan-period hours limit (total hours since last renewal)
4. **Is pay-as-you-go available?** — If no pass is found, the system checks if pay-as-you-go access is enabled and a valid pay-as-you-go pass exists.

If all checks fail, the check-in is rejected and recorded as a **failed check-in**.

### Pass priority

When multiple valid passes exist, the system selects one based on:

1. Passes with the highest priority value (configured on the pass)
2. Passes restricted to this location (more specific = preferred)
3. Passes linked to specific plans
4. Passes with the most remaining time
5. Plan-included passes over standalone passes

### Shared passes (teams)

If the customer doesn't have their own valid pass, the system checks if their team's paying member has shared passes available. Shared passes are used when:

* The team has pass-sharing enabled
* The paying member has valid passes with remaining time

***

## Failed check-ins

When a check-in attempt fails, a record is created in **Operations → Access & Check-in → Failed check-ins** with:

| Field                     | Description                                  |
| ------------------------- | -------------------------------------------- |
| **Customer**              | Who attempted to check in                    |
| **Check-in attempted at** | When the attempt was made                    |
| **Check-in type**         | The source (manual, door access, WiFi, etc.) |
| **Description**           | The reason the check-in failed               |

### Common failure reasons

| Reason                              | Meaning                                                                            |
| ----------------------------------- | ---------------------------------------------------------------------------------- |
| **Account disabled**                | The customer's account is inactive                                                 |
| **No valid pass**                   | The customer has no pass that's valid at this time and location                    |
| **Plan limits exceeded**            | The customer has used all their included check-ins or hours for the current period |
| **Pass not valid at this location** | The customer has a pass, but it's restricted to a different location               |
| **Pass expired**                    | The customer's pass has expired                                                    |

### Filter segments

Failed check-ins can be filtered by:

* Today
* This week
* Last week
* This month
* Last month

<Tip>
  Review failed check-ins regularly to identify customers who may need a plan upgrade or have an expired pass.
</Tip>

***

## Automatic check-out

The system automatically checks customers out in several scenarios:

### Daily cut-off time

All customers are automatically checked out at the configured **daily cut-off time** (e.g., midnight or 2 AM). This prevents check-ins from spanning into the next day when customers forget to check out.

The cut-off time is configured in hours (0–23) and represents the time in your location's timezone.

### Pass depletion

If a customer's pass runs out of remaining time while they're checked in, the system:

1. Continuously monitors whether the check-in is still valid via background processing
2. If the pass is depleted, automatically checks the customer out at the time the pass ran out (determined by checking backwards in 15-minute intervals)
3. Attempts to check the customer back in with a new pass (if one is available)
4. If no new pass is available, sends an auto-checkout notification (if enabled)

### Pass time restrictions

If a pass is only valid during certain hours (e.g., "Weekdays 9 AM – 6 PM"), the system continuously validates the check-in and automatically checks the customer out when the valid window ends. After checkout, the system attempts to check the customer back in with another available pass.

### Day change

If a check-in spans across the daily cut-off time (e.g., customer checked in at 10 PM, cut-off is midnight), the customer is checked out at the cut-off time. If they're still on-site after the cut-off, a new check-in is started for the new day.

***

## Pay-as-you-go access

Pay-as-you-go mode lets customers who don't have a plan (or who have exceeded their plan limits) still check in and be charged per-minute for their time.

### How it works

1. When a customer checks in with no valid pass, the system looks for a **pay-as-you-go pass** configured for their customer type (member or contact).
2. A temporary pass is created with zero minutes.
3. When the customer checks out, the total time is calculated and a charge is generated based on the pass's per-minute rate.
4. The charge appears on the customer's next invoice (or immediately for contacts, depending on settings).

### Pay-as-you-go settings

| Setting                            | Effect                                                                                                         |
| ---------------------------------- | -------------------------------------------------------------------------------------------------------------- |
| **Enable pay-as-you-go access**    | Allows customers without a valid pass to check in and be charged per minute                                    |
| **Exclude time used in bookings**  | Deducts time spent in bookings from the pay-as-you-go calculation (avoids double-charging)                     |
| **Members pay via their contract** | Pay-as-you-go charges for members are added to their contract invoice instead of generating a separate invoice |
| **Minimum daily price**            | The minimum charge for a day, regardless of how little time was used                                           |
| **Maximum daily price**            | The maximum charge for a day, regardless of how much time was used (acts as a daily cap)                       |

***

## Check-in settings

Check-in settings are found under **Settings → Members → Check-in settings**.

### General settings

| Setting                                              | Effect                                                                                                                                                              |
| ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Notify customers when running low on access time** | Sends an email when the customer's remaining pass hours drop below the threshold                                                                                    |
| **Low credit threshold (hours)**                     | The number of hours below which the low-credit notification is sent                                                                                                 |
| **Notify customers if they forget to check out**     | Sends an email when the system auto-checks out a customer                                                                                                           |
| **Record multiple check-ins per day**                | When enabled, checking in and out multiple times in one day creates separate records. When disabled, re-checking in on the same day re-opens the previous check-in. |
| **Daily cut-off time**                               | The hour (0–23) at which all customers are automatically checked out                                                                                                |
| **Building capacity**                                | Maximum number of people allowed on-site simultaneously (enforced by NexIO)                                                                                         |

### Network check-in settings

| Setting                                                           | Effect                                                                                |
| ----------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
| **Automatically check known users in based on their MAC address** | When the system detects a registered device on WiFi, automatically creates a check-in |
| **Generate an access token for every pre-registered visitor**     | Creates a WiFi access token for visitors automatically                                |
| **Default duration for visitor access tokens**                    | How long visitor WiFi tokens remain valid (in minutes)                                |
| **Maximum devices per user**                                      | Limit on how many devices a single customer can register for network check-in         |
| **Maximum devices per visitor**                                   | Limit on how many devices a visitor can connect                                       |

***

## Webhooks

The following webhook events are triggered by check-in activity:

| Event                        | Triggered when                                       |
| ---------------------------- | ---------------------------------------------------- |
| **Customer checked in**      | A check-in is successfully created                   |
| **Customer checked out**     | A check-in is closed (departure time set)            |
| **Customer check-in failed** | A check-in attempt is rejected                       |
| **Check-in created**         | A check-in record is created (includes manual/admin) |
| **Check-in updated**         | A check-in record is modified                        |
| **Check-in deleted**         | A check-in record is removed                         |

***

## Best practices

* **Set a daily cut-off time** to prevent check-ins from spanning days when customers forget to check out. A time between midnight and 4 AM works well for most spaces.
* **Enable auto-checkout notifications** so customers know when they've been checked out and can see their usage for the day.
* **Use pay-as-you-go with a daily cap** to offer flexible drop-in access while capping the cost at a reasonable day rate.
* **Review failed check-ins weekly** to identify customers hitting plan limits — these are upgrade opportunities.
* **Enable network check-in** for a frictionless experience — customers are checked in automatically when their phone connects to WiFi.
* **Set building capacity** if your location has occupancy limits — NexIO will prevent check-ins when the space is full.

***

## Related pages

<CardGroup cols={2}>
  <Card title="Passes" icon="ticket" href="/platform/billing/time-passes">
    Configure the passes that determine who can check in.
  </Card>

  <Card title="Plans" icon="file-contract" href="/platform/billing/plans">
    Set up plan benefits including check-in limits and included passes.
  </Card>

  <Card title="Access control" icon="lock" href="/platform/access-control/overview">
    Integrate with door systems for automated check-ins.
  </Card>

  <Card title="Bookings" icon="calendar" href="/platform/operations/bookings">
    Bookings can automatically check customers in for the duration of their reservation.
  </Card>
</CardGroup>
