Skip to content

How to Import Sponsors from a Spreadsheet

This guide shows you how to import sponsors from a spreadsheet. If you sold sponsorships outside Handbid, each row becomes a sponsor on your event with a company contact, a record of what they paid, and their seats. The contact takes the first seat unless you mark them as not attending, and the rest are empty guest seats they can fill in from their sponsor page. By default the import sends your sponsors no e-mail (see Receipts for offline payments).

  • Create your sponsorship tickets. Each sponsor’s LEVEL in the file must match a ticket on your event, such as Platinum Table or Gold Table, and each ticket must admit at least 1 guest (see Levels, quantities and seats).
  • Create your tables (optional). To seat sponsors at a table during the import, set up your tables on the Tables page first (see The TABLE column).
  • Check your permissions. You need the Guests management permission.
  1. Open the sponsor import. In the Manager, open your event and go to People › Guests → Sponsors → Import Sponsors.
  2. Download the template. Click Sample File to download sponsor-import-template.csv, and delete the two example rows.
  3. Add one row per sponsorship. Fill in SPONSOR NAME, CONTACT, EMAIL, LEVEL and QTY, plus PHONE, AMOUNT, TABLE and NOT ATTENDING if you need them (see The template and its columns).
  4. Upload the file and match your columns. If your column names or order differ from the template, match each column on the upload screen.
  5. Review the preview. Validate the file. The preview shows exactly what will happen for each row before anything is saved. Fix any row errors in your file and validate again; warnings still import (see Messages you may see).
  6. Choose whether to send receipts. Don’t send receipts for these offline payments is checked by default. Uncheck it to e-mail each sponsor one paid-offline receipt (see Receipts for offline payments).
  7. Confirm consent and import. Check the consent box (see Consent before you import) and run the import.

When the import finishes, open Sponsors. Each imported sponsor appears with their seat count and $0 owed.

The sections below explain every column, rule and message in detail.

Click Sample spreadsheet (or the Sample File button at the top of the import screen) to download sponsor-import-template.csv. It is a plain UTF-8 CSV with this header row and two example rows — delete the examples before you upload:

SPONSOR NAME,CONTACT,EMAIL,PHONE,LEVEL,QTY,AMOUNT,TABLE,NOT ATTENDING
Meridian Trust,Priya Raman,priya.raman@meridiantrust.example.com,303-404-1369,Platinum Table,1,5000,Table 4,
Halcyon Partners,Reid Halloran,reid.h@halcyon.example.com,,Gold Table,2,,,yes
Column Required What to put in it Example
SPONSOR NAME yes The company or sponsor name as it should appear on the guest list and the sponsor page. Up to 64 characters. Meridian Trust
CONTACT yes The contact person’s name (first and last). The column must be mapped; a blank cell leaves the person’s name empty and the row still imports. Priya Raman
EMAIL yes The contact’s e-mail address. It becomes the sponsor’s Handbid login (no welcome e-mail is sent). priya.raman@meridiantrust.example.com
PHONE no The contact’s phone number, any common format. 303-404-1369
LEVEL yes The exact name of the sponsorship ticket on your event (see below). Platinum Table
QTY yes How many of that level the sponsor bought — a whole number, 1 or more (a blank or 0 is an error). 2
AMOUNT no What the sponsor paid, in dollars. Blank records $0 (see below). 5000
TABLE no A table you have already created on the Tables page, to pre-assign the sponsor’s seats. Table 4
NOT ATTENDING no yes if the contact is not coming, so every seat stays open. Blank (or no) means the contact attends and takes the first seat. yes

Your file can use different column names or a different column order — you map each column on the upload screen. Files are limited to 500 rows; split a bigger list and import each part.

LEVEL must match a ticket on your event. Create your sponsorship tickets first (for example Platinum Table, Gold Table), then use those exact names in the file. Capitals and extra spaces do not matter (gold table matches Gold Table); a name that matches no ticket is an error, and a name that matches two tickets is an error too — rename one of the tickets so each level is unique. A blank LEVEL is an error as well: the row is not imported and shows Unknown level “”. There is no default level — every row must name its ticket.

Seats = the ticket’s admits × QTY. A Gold Table that admits 8 with QTY = 2 gives the sponsor 16 seats: the contact takes seat 1 and the other 15 are empty guest seats (all 16 are empty when the row says NOT ATTENDING = yes — see The NOT ATTENDING column). The sponsor names their guests from their sponsor page, or you do it from the guest list. A ticket that admits 0 guests cannot be imported — set its admits first.

The AMOUNT is what the sponsor actually paid you. Handbid records it as a paid-offline Check/Offline transaction on the sponsor’s receipt for this event: it counts in your event revenue and reports, it appears under Invoices on the sponsor’s receipt, and the sponsor owes nothing.

  • Blank AMOUNT records $0 — use it when the sponsorship was in kind or you track the money elsewhere.
  • An AMOUNT that differs from the level price × QTY imports exactly as typed, with the note Amount $<amount> differs from the level price $<price> × <qty> — recorded as paid in the preview so you can double-check it.
  • Re-importing the same file never books the money twice — see Re-importing a file below.

Handbid does not charge a card for an imported sponsor. If a sponsor should pay through Handbid, sell them the ticket instead of importing them.

Before the first row imports you confirm one checkbox. What Handbid records is the platform’s import attestation, quoted here in full:

Every person on this list has given my organization explicit permission to receive communications from us. This includes past donors, ticket buyers, event attendees, members, subscribers, and any other contact who has knowingly opted in to hear from us.

For any phone numbers included in this file, I have obtained express written consent from each individual to send them SMS/text messages from my organization. I understand that SMS consent is a separate legal standard under TCPA and cannot be assumed from email opt-in alone.

I have not purchased, rented, scraped, or otherwise obtained this list from a third party without the contacts’ direct, affirmative consent to be contacted by my organization.

I understand that all email addresses will be validated by a third-party email verification service prior to being added to this event. Addresses that fail validation will be excluded from the import.

I understand that misuse of this tool — including contacting non-opted-in recipients, generating high spam complaint rates, or violating Handbid’s Acceptable Use Policy — may result in suspension of my account and reputational damage to my organization’s sending domain and SMS sender ID.

I am authorized to send these communications on behalf of my organization.

By default the import sends no e-mail or welcome message to your sponsors — the attestation is about your right to contact them from your event, not about an immediate send. The only e-mail the import can send is the paid-offline receipt you opt into on the import screen (next section).

Every imported sponsor has a receipt in Handbid from the moment the row imports (their per-event receipt, showing the offline payment with $0 owed). Whether they are e-mailed that receipt is your choice:

  • The checkbox Don’t send receipts for these offline payments is checked by default. Nothing is e-mailed, and the summary says No receipts sent.
  • Uncheck it to e-mail each sponsor one copy of their receipt when the import finishes — a sponsor with two levels in the file gets one e-mail, not two. The summary then says <n> receipts sent. On events whose e-mail is disabled the summary says <n> receipts sent (e-mail disabled for this whitelabel) and nothing is sent.
  • Re-importing the same file never e-mails a sponsor again.

In this release the platform default is don’t send, and the import checkbox is the only control.

If your organization has e-mail validation turned on, every EMAIL is checked as the file is validated:

  • Off — no check.
  • Warn — every row imports; risky or undeliverable addresses are marked with Email flagged by validation: risky or Email flagged by validation: undeliverable so you can follow up.
  • Block — an undeliverable address is rejected with Email blocked by validation: undeliverable (the row is not imported and nothing is written for it); risky addresses still import with the warning. If the validation service is unavailable the row fails with Email validation is temporarily unavailable. Please ensure Kickbox is configured or try again later. — run the file again later.

You can upload the same file again after fixing rows or adding sponsors:

  • A row for a sponsor already on the event (same company, same e-mail, same level) updates them — contact and phone are refreshed, an AMOUNT change moves the same transaction by the difference, a bigger QTY adds empty seats and a smaller QTY removes only seats that are still empty. A changed NOT ATTENDING value seats or releases the contact (see The NOT ATTENDING column). Never a second purchase, never a second charge.
  • Identical duplicate rows in one file (same company, e-mail and level) are a second purchase for that sponsor — the preview flags the row as 2nd purchase at this level so you can remove it before importing.
  • The same sponsor at two levels is two purchases (two rows) on one receipt.
  • A row removed from the file is listed in the preview for your information; the import never deletes a sponsor.
  • An EMAIL that already belongs to a Handbid account links the purchase to that account — the preview says Email matches the Handbid account of <name> — the purchase links to it..
  • A shared inbox such as info@ or office@ gets its own separate sponsor account and is never linked to a person’s existing account (Shared inbox — separate account).
  • One e-mail can be the contact for one company on the event. A second company on the same e-mail is an error (<email> is already the contact for <company> — use a different contact e-mail or the same company name).
  • Sponsor contacts get a Handbid login without a welcome e-mail. They sign in with their e-mail when you send them their sponsor page.

By default the sponsor’s contact is coming to the event, so the import seats them in the first seat of their own sponsorship and they appear on the guest list with their guests. If the contact is not attending, put yes in the NOT ATTENDING column: every seat stays open for the sponsor’s guests.

  • Accepted values: yes, y, true, 1 or x mean not attending; blank, no, n, false or 0 mean the contact attends. Capitals do not matter. Anything else is a row error.
  • The column is optional. A file without it imports every contact as attending.
  • One seat per person per event. If the contact already has a seat on this event (for example from another sponsorship or a ticket they bought), the import leaves all of this row’s seats open and shows a warning.
  • With TABLE: the contact’s seat is placed at the table together with their guests.
  • Changing your mind: re-import the row with a different NOT ATTENDING value. yes releases the contact’s seat (it becomes an empty guest seat); blank seats them again if an empty seat is left. A checked-in contact is warned about before their seat is released. You can also release the seat from the guest list with Release seat — the sponsor stays the sponsor.

If Tables are enabled for your organization, the TABLE column pre-assigns the sponsor’s seats to a table you have already created on the Tables page (Table 12, table 12 and TABLE12 all mean the same table). Create your table layout first; a name that matches no table imports the sponsor without a table.

A table another sponsor already holds still takes the seats — they sit alongside, up to the table’s free capacity, and the row carries Table <table> is held by <holder>. Seats are added alongside them — <table> seats <capacity>, <free> free.. Seats that do not fit stay unassigned and are listed in the summary as awaiting a table; seat them from the Tables page. If Tables are not enabled the column is ignored with the note Tables are not enabled for this organization.

Once your sponsors are imported, the regular guest importer (Guests → Import) can put guests into a sponsor’s empty seats: fill the guest file’s Sponsor column with the sponsor’s name. Each guest takes one empty seat (and the sponsor’s table, if any) — the preview shows Seat with sponsor <sponsor> under the row. When the sponsor has no empty seats left the guest is created without a seat (Warning: no empty seats for <sponsor>), and a name that matches no sponsor keeps the text as a plain label (Warning: sponsor not found). Seating never duplicates a guest who is already on the list.

Every message the sponsor importer (and the guest importer’s sponsor column) can show, word for word. Angle brackets stand for the value from your file or your event, for example <level> is the LEVEL cell.

Row decisions (the chip under each row in the preview)

Section titled “Row decisions (the chip under each row in the preview)”
  • New sponsor record, <seats> seats.
  • New sponsor record, <seats> seats — <contact> takes seat 1.
  • New sponsor record, <seats> seats — sponsor not attending, all <seats> open.
  • Email matches the Handbid account of <name> — the purchase links to it.
  • Sponsor already exists for this event — contact and phone are updated.
  • Sponsor already exists for this event — a second purchase is added.

Row errors — the row is not imported; fix the cell and validate again

Section titled “Row errors — the row is not imported; fix the cell and validate again”
  • Sponsor name is required.
  • Sponsor name is longer than <max> characters.
  • Email is required.
  • “<email>” is not a valid email address.
  • <email> matches more than one Handbid account — ask the contact which one to use
  • <email> is already the contact for <company> — use a different contact e-mail or the same company name
  • Unknown level “<level>”. Add the ticket to this event, or change the level to one that exists.
  • Ambiguous sponsorship level "<level>" (items #<a>, #<b>)
  • Level “<level>” admits 0 guests — set the ticket’s admits before importing.
  • Quantity is 0. Set it to 1 or more, or remove the row.
  • NOT ATTENDING must be yes, no or blank (got “<value>”).
  • Amount “<amount>” is not a number.
  • Email blocked by validation: undeliverable
  • Email validation is temporarily unavailable. Please ensure Kickbox is configured or try again later.
  • The earlier purchase for this row has no single offline transaction — fix it under Invoices before re-importing.
  • This row could not be imported: <reason>

Row warnings — the row imports; read the note

Section titled “Row warnings — the row imports; read the note”
  • Email flagged by validation: undeliverable
  • Email flagged by validation: risky
  • Amount $<amount> differs from the level price $<price> × <qty> — recorded as paid
  • Shared inbox — separate account
  • A similar company exists — imported as a new sponsor
  • Level matched after trimming spaces
  • <contact> already has a seat on this event — all <seats> seats open.
  • No empty seat for <contact> — release a guest seat, then import again.
  • <contact> is checked in — importing this row releases their seat.
  • 2nd purchase at this level — the same sponsor bought this level before in this event; the row adds a second purchase
  • Table <table> is held by <holder>. Seats are added alongside them — <table> seats <capacity>, <free> free.
  • Table <table> had room for <placed> of <seats> seat(s) — the rest are awaiting a table
  • Table <table> is full — <seats> seat(s) imported without a table
  • Seats already at <old_table> stay there — only unplaced seats were placed at <new_table>; move the rest from the Tables page
  • Unknown table “<table>” — imported without a table
  • More than one table is named “<table>” — imported without a table
  • <table> changed while the file was importing — no new seats were placed; <k> seat(s) already at <table> stay; seat the rest from the Tables page
  • <table> changed while the file was importing — your <k> seats at <table> are unchanged
  • <g> seat(s) of this block were released or moved while the file was importing
  • Tables are not enabled for this organization
  • Seat with sponsor <sponsor>
  • Warning: no empty seats for <sponsor>
  • Warning: sponsor not found
  • All <n> of <sponsor>'s seats are already named. The guest is created unassigned — seat them by hand or add capacity.
  • The seat was taken while the file was importing.
  • No sponsor on this event matches "<text>". The column text is kept on the guest as a free-text label.
  • More than one sponsor on this event matches "<text>". The column text is kept on the guest as a free-text label.
  • Seated with <sponsor> <seat> — the file's "<placement>" was ignored.
  • You don’t have access to sponsor imports
  • Sponsor imports aren’t part of this contract
  • We couldn’t read <file>
  • This file has no sponsor rows
  • Nothing to import
  • This file has more than <max> rows — split it and import each part
  • Required columns are not mapped: <columns>
  • Consent attestation is required before importing sponsors.
  • Import <n> sponsors
  • <done> of <total> rows imported
  • No receipts sent
  • <n> receipts sent
  • <n> receipts sent (e-mail disabled for this whitelabel)
  • Matches your organization default — no sponsor is emailed by this import.
  • <n> sponsors will be emailed a paid-offline receipt for money Handbid did not process.
  • Open Sponsors to see each imported sponsor with their seat count and $0 owed.
  • Send each sponsor their sponsor page so they can name their guests (see Guest Sponsors and their Guest List).
  • Import your guest list with the Sponsor column filled in to seat guests with their sponsors (see How to import a guest list).
  • Check Invoices for the offline transactions if your finance team reconciles them.

Questions? Reply to your Client Success contact with a screenshot of the preview and we will sort it out.