Use bulk host import to build a banquet-style event's host roster from a spreadsheet instead of adding hosts one at a time. This is designed for large rosters, such as a 100+ host banquet, and lives alongside table hosts in Tables and Seating.
A host added this way is an event-level host membership: a person recruited to host, invited by email, and optionally given a seat goal and one or more table assignments. Host memberships are separate from table host records; see Tables and Seating for how table hosts and table guests work once seating is assigned.
From the event, download the CSV template. It includes columns for First Name, Last Name, Email, Phone, Seat Goal, and Table Numbers.
Fill in one row per host. Table Numbers can list zero, one, or multiple table numbers (not table IDs) separated by commas.
Upload the completed file for preview. Preview never creates or changes any records, so you can review it safely before committing.
Review each row's classification:
Create - a new host membership (and new contact, if no match is found) will be created.
Match - the row matches an existing supporter contact by normalized email.
Update draft - the row matches an existing draft host membership for this event and will update it.
Duplicate - the row repeats an email already seen earlier in the file, or matches a contact who already has an active host membership for this event.
Error - the row is missing required data or otherwise can't be processed (for example, a missing or invalid email).
Deselect or correct any rows before committing. Only selected rows are committed.
Click commit. Each selected row is committed independently in its own transaction, so one bad row cannot discard the other valid rows in the same file.
Download the result file, which lists the host membership ID created or updated for each row, plus any row-level errors.
Names, emails, and phone numbers are normalized before comparison.
Existing supporter contacts are matched first by normalized email.
Confidential client-only records are excluded from matching results, so a bulk host import can never surface or link to a confidential client record.
A row is marked Duplicate if it repeats an email already used earlier in the same file, or if the matched contact already has an active host membership (Draft, Invited, Pending, Accepted, Declined, or Failed) for the event.
Once hosts are imported, select one or more host membership rows to run a batch action:
Send invitations - sends invitation emails to selected Draft or Failed host memberships and moves them to Invited.
Resend invitations - resends to selected Invited, Pending, or Failed host memberships. Resending rotates the invitation token, so previously sent links stop working once a new invitation goes out.
Revoke - revokes selected host memberships after a confirmation prompt and invalidates any active invitation tokens for them.
After each batch action, CoolFocus shows queued, sent, failed, and skipped counts along with row-level results. If some rows in a batch succeed and others don't (for example, a host with no email on file can't be sent an invitation), the result is reported as a partial failure rather than a blanket success message.
Retrying a batch action is safe: retries do not create duplicate invitations or duplicate host memberships.
Draft - imported or created, not yet invited.
Invited - an invitation has been sent.
Pending - the host has not yet responded.
Accepted - the host accepted the invitation.
Declined - the host declined the invitation.
Failed - the invitation attempt failed (for example, delivery failure).
Revoked - the host membership was revoked and its invitation links no longer work.