Use the bulk upload feature to import a CSV list of attendees into a completed event's attendee list without adding people individually.
This feature is only available for use post-event (completed) and require team role permissions to manually add attendees. Contact your HQ admin about your team role permissions.
Bulk upload attendees
- In the chapter dashboard, access the completed event you want to import the attendees into.
- Open the Registrations tab.
Select Bulk Upload. The button sits between Download and Add registration.
The button is disabled when the event is in live, draft or canceled status.
A modal opens where you will download the CSV template.
- Select Download CSV template.
- The file downloads as attendee_import_template_event_<event_id>.csv and contains the header row with every supported column and one example row (Jane Doe) which you can overwrite or delete.
- Always start with a freshly downloaded template for each event. The template is scoped to that event and downloading it confirms you have permission to import there.
- Fill in the CSV.
The CSV supports the following fields:
Column Required Notes first_name Yes Attendee's first name. last_name Yes Attendee's last name. email Yes Must be a valid email. Used to match or create the user. checked_in No TRUE or FALSE. Defaults to FALSE when blank. job_title No Free text. company No Free text. ticket_type Yes, for paid events Must exactly match the title of an existing ticket on the event. - Save the file as CSV(UTF-8) before uploading. You can upload up to 5,000 data rows per file. Please split larger lists into multiple files.
- Upload the file and click Validate file. Before adding the attendees, the platform runs a validation check. The validation will return the following information:
- Total rows read
- Rows that are ready to import
- Rows with errors, including a preview of the first 20 problem rows.
- After the validation returns no errors, select Confirm import. The modal shows a progress indicator while the import runs as a background job. When it finishes, you see a summary showing rows created, rows updated, and rows failed. The attendee table refreshes automatically.
You can close the modal after confirming-the job keeps running in the background. However, the in-modal progress view is the easiest way to monitor it.
Common upload errors
| Error | Fix |
|---|---|
| Invalid email | Correct the email column. |
| Missing ticket_type on a paid event | Add the ticket title using an exact match. |
| ticket_type does not match any ticket on the event | Check spelling and casing against the event's ticket list. |
| Duplicate rows for the same email | Remove the duplicate row. |
Edit the CSV with the appropriate corrections, re-upload, and validate again until the error count is zero.
Re-uploads and duplicates
If a row's email matches an existing attendee on the event, that attendee is updated-not duplicated. Non-blank fields in the CSV overwrite the existing values.
If a row matches an attendee who was previously deleted (by event, email, and name), the deletion is undone and the attendee reappears. This makes it safe to re-upload a corrected CSV without worrying about creating duplicates.
Paid events
For paid event, ticket type is required and must exactly match the title of a ticket that exists on the event.
The import does not create a ticket order and complete a paid ticket transaction. Bulk importing a paid ticket is the same as manually adding an attendee. The attendee is created but no order is generated, no ticket inventory is consumed and no payment is captured. Paid-event bulk-imported attendees do not appear in ticket sales reports or revenue reports.
Troubleshoot bulk upload
| Issue | Solution |
|---|---|
| The button is disabled on my event. | Check the tooltip. You are likely on a draft, canceled, or not-yet-ended event. Bulk upload is only available after the event has ended. |
| Validation says 'ticket not found' but my ticket exists. | The match is case- and whitespace-sensitive. Copy the exact title from the event's Tickets tab into the ticket_type column. |
| My emails are valid but still fail validation. | Make sure the column header is exactly email (lowercase, no spaces) and the file is saved as CSV UTF-8. Re-download the template if in doubt. |
| The progress indicator is stuck. | The import runs in the background — large files take longer. Close the modal, refresh the attendees table, and check whether rows have started appearing. Contact Bevy support if the job appears truly stuck. |
| I imported the wrong data. How do I undo it? | There is no bulk undo. Use the attendee list to delete the rows individually (which is reversible — a follow-up re-upload will restore them), or contact support for bulk deletion. |