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

# Import attendees

> How attendees flow into a Badge event from Eventbrite or Luma, and how to resync mid-event.

Attendees enter Badge through the same import that brings the event in. Once an event lives in Badge, it stays connected to the provider. New registrations, cancellations, and edits made on Eventbrite or Luma flow through automatically while sync is `ACTIVE`. This page walks the initial import, the live sync that follows, and the manual resync you'll want during the event.

<Note>
  **Before you start**

  * The event must already be added to Badge. See [Add an event](/badge/events/create).
  * The integration that owns the event must be **CONNECTED** in **Settings → Integrations**.
  * Workspace **Admin** role to start an import.
</Note>

## Initial import

When you click **Import** in the Import Event dialog, Badge starts an import job in the background. The job pulls every existing attendee from the provider in one pass.

<Steps>
  <Step title="Watch the import progress">
    Open the new event from the Badge dashboard. While the job is running, the event page shows an **Import in progress** view with live counts that update without a refresh.
  </Step>

  <Step title="Confirm when it completes">
    Once the job finishes, the page swaps to the full event view. The **Total Attendees** stat card shows the imported count, and the **Attendees** table at the bottom lists every row.
  </Step>

  <Step title="Spot a partial import">
    If the import stops mid-flight, the event lands in sync status `PENDING` with no active job and surfaces an **Import failed** alert. Click **Retry** in the alert to restart from scratch. The dialog routes through the same provider-picker UI.
  </Step>
</Steps>

## Live sync after import

After the initial import, sync status flips to `ACTIVE`. Badge keeps the attendee table in sync with the provider:

* **New registrations** appear in the table automatically as they're created on Eventbrite or Luma.
* **Edits** to attendee fields (name, ticket type, etc.) update in place.
* **Cancellations** mark the attendee as `NOT_ATTENDING`.

A green **Syncing** indicator in the event header confirms the link is live. If it disappears, check the status alerts described in [Sync status](/platform/concepts/sync-status).

## Manual resync

On event day you sometimes want a hard pull instead of waiting for the next live update. For example, a registration was just edited on the provider and you need the row to be current at the check-in desk.

Click **Sync** in the event page header. Badge runs a one-shot resync that refreshes the attendee list, the event totals, and the check-in statistics. The button reflects the in-flight state and re-enables when the resync completes.

## Provider-side rules

The same uniqueness and import rules that apply when [adding an event](/badge/events/create) apply to attendees:

* **Eventbrite.** Attendees come from the event's `Orders` API. Each registration that has a ticket becomes one attendee row.
* **Luma.** Attendees come from the event's guest list. Each guest becomes one attendee row.
* **Ticket name.** The provider's ticket type carries over as the attendee's `ticketName`, which is what Badge uses to match variant templates at print time.
* **VIP flag.** Toggled from inside Badge per attendee. The flag persists across syncs and is not overridden when the provider updates other fields.

## Troubleshooting

### Sync stays `PENDING` and nothing happens

The initial import never completed. Click **Retry** in the **Import failed** alert on the event page, or open the Import Event dialog from the Badge dashboard and re-pick the event.

### Sync flips to `DISCONNECTED` mid-event

The integration credential was revoked on the provider side or the OAuth token expired. Follow [Recovering from disconnect](/badge/events/recovering-from-disconnect): reconnect the provider in **Settings → Integrations**, then reconnect the event.

### New registrations don't appear

Confirm the event header shows the green **Syncing** indicator. If it does, click **Sync** to force a fresh pull. If rows still don't appear, the registration may not yet be visible on the provider's API.

## Related

* [Add an event](/badge/events/create). The Import Event dialog that started this whole flow.
* [Sync status](/platform/concepts/sync-status). `PENDING` / `ACTIVE` / `FAILED` / `DISCONNECTED` reference.
* [Recovering from disconnect](/badge/events/recovering-from-disconnect). Reconnect when the integration is severed.
* [Connect Eventbrite](/platform/integrations/eventbrite). Re-authorize the Eventbrite integration if needed.
* [Connect Luma](/platform/integrations/luma). Re-authorize the Luma integration if needed.
