Skip to content

Import Existing Contacts

Already have a contact list from a booking system, a till, a previous mailing tool or a spreadsheet? Upload it and those contacts join your CaptiFi contacts, ready to include in campaigns alongside the guests your WiFi collects.

CaptiFi keeps the two apart internally, so imported contacts never show up as venue visits in your analytics.

Where to Find It

  • my.captifi.io: Guests page, then Import contacts (top right)
  • app.captifi.io: My Business then Import Contacts in the sidebar, or the Import contacts button on Guest Visits

Both give you the same wizard.

What You Can Upload

File typesCSV, TSV, Excel (.xlsx or .xls), OpenDocument (.ods)
Size limit20 MB
Row limit100,000 rows per file (split larger lists)
RequiredAn email address column. Rows without a valid email are skipped

Only the first sheet of a spreadsheet is read, so keep your contacts on one tab.

Semicolon and tab separated files are handled automatically, and a file with no header row still works: the columns are simply listed by position for you to match.

Step 1: Upload

Pick the venue the contacts belong to (single-venue accounts skip this), then drop your file in or browse for it. A progress bar shows the upload, then CaptiFi reads the file and tells you how many rows and columns it found.

One import goes into one venue. For several venues, run the import again for each.

Step 2: Match Columns

CaptiFi matches the usual column names on its own: first name, surname, email address, mobile, opt-in, date of birth, sign-up date, notes and tags, along with the common variants ("Email Address", "E-mail", "Mobile Number", "Subscribed", "DOB" and so on).

Anything it could not place is left blank and highlighted for you to point at the right column. The first rows of your file are shown above the picker, and each option previews a real value from your list, so you can tell two similar columns apart.

The fields you can match to:

FieldNotes
Email addressRequired. Contacts without one cannot be emailed
First name / Last nameUsed to personalise campaigns
Full nameUse when your file has a single name column. Split on the first space
Phone numberStored on the contact and used by SMS campaigns (see Text Messages below)
Marketing opt-inYes/No, True/False, 1/0, Subscribed/Unsubscribed are all understood
Date of birthEnables birthday campaigns
Date added to your listKeeps the original sign-up date instead of today's
NotesFree text kept on the contact profile
TagsComma or semicolon separated, up to 10 per contact

Columns that are not CaptiFi fields can still be kept: tick them under Keep any other columns? and they are stored against each contact, visible in your contacts table and in exports.

This part matters legally, so CaptiFi handles it explicitly:

  • If your file has an opt-in column, it is honoured row by row. Rows without a clear "yes" are imported but not subscribed to marketing.
  • If your file has no opt-in column, you must confirm you have permission to email these contacts before the import runs. All imported contacts are then subscribed, and CaptiFi records your confirmation, who made it and when, against the import.

Either way, an address that has previously unsubscribed, bounced or made a complaint anywhere in CaptiFi stays unsubscribed. An upload can never re-subscribe someone who has told you to stop.

Text Messages

If you map a phone number column, you also get a "I have permission to text these contacts" tick-box. Permission to email is not permission to text, so CaptiFi asks separately and records your confirmation against the import.

Tick it and those contacts can be included in SMS campaigns. Leave it unticked and their numbers are still saved (visible on the contact and in exports), they simply are not texted. Either way:

  • Contacts with no phone number in the file are never included in SMS.
  • A number that has already replied STOP to you stays opted out, whatever the file or the tick-box says.
  • The review step tells you how many of the batch can be texted before you start.

Only import contacts you have permission to email

Wherever you operate, marketing to imported contacts needs a lawful basis, normally their consent: GDPR and PECR in the UK and EU, CAN-SPAM and TCPA in the US, CASL in Canada, and similar laws elsewhere. Uploading a purchased or scraped list risks complaints, damage to your sending reputation, and enforcement action.

Step 3: Review

Before anything is written you get the numbers:

  • Will be imported, how many new contacts you are about to add
  • Rows in file, the total we read
  • Already in CaptiFi, contacts this venue already has, which are skipped
  • Repeated in your file, the same address listed more than once in your upload; the first one is kept
  • No usable email, rows we cannot import, with the first few reasons listed

If those numbers look right, press Import.

Step 4: Import

The progress bar and the counters update live as the import runs. Large lists keep going in the background, so you can close the window or carry on working. When it finishes you see how many contacts were added, how many were already there, and how many were skipped.

Skipped rows downloads a CSV of every row that did not import, with the reason on each line, so you can fix and re-upload just those.

What Happens to Your Existing Data

Nothing is overwritten. If an email in your file already exists for that venue, that row is skipped and the contact CaptiFi already had is left exactly as it was, including their marketing preference. Duplicates inside your own file are collapsed too, so uploading the same address twice creates one contact.

The readout counts those two cases separately, because they call for different action: Already in CaptiFi means your list overlaps contacts you have already collected, while Repeated in your file means the file itself lists someone twice. Both appear in the skipped-rows CSV with the reason on each line.

Importing is deliberately quiet. Imported contacts do not trigger:

  • Welcome emails or any other automatic email
  • Google review requests
  • New-guest notifications or mobile push alerts
  • Loyalty, CRM or webhook syncs to connected integrations

Those are for people who actually connect to your WiFi. An import adds contacts to your list and nothing else.

Imported Contacts vs WiFi Guests

Imported contacts appear in your contacts list marked Imported, and can be filtered with the Source dropdown (my.captifi.io) or the Source filter (app.captifi.io). Your CSV export gains a Source column too.

They are fully marketable: they count in campaign audiences, segments, and towards your plan's monthly email allowance exactly like any other contact.

On their contact profile they show as Imported with no visit history, and the date reads "Added to your list" rather than "First seen". If an imported contact later connects to your WiFi, that real visit appears on their profile from then on.

They are excluded from anything that measures footfall, because they never visited:

  • Guest and visit counts, including "today's guests"
  • Returning visitor rates and dwell time
  • Device and browser breakdowns
  • Peak hours and busiest day
  • Your plan's monthly guest allowance

So an import of 5,000 old contacts will not make it look like 5,000 people walked through the door.

Undoing an Import

Made a mistake, or uploaded the wrong file? Open the import and choose Undo import. Every contact that import added is deleted, and contacts CaptiFi collected from your WiFi are untouched.

Undo is available after an import finishes, including one that failed part way through.

Who Can Import

Account owners and admins. Team members need the Manage marketing permission to run an import, and Manage team to undo one. Contact import is not available on limited-access accounts.

Troubleshooting

"Tell us which column holds the Email address" Your file's email column was not recognised. Pick it manually in step 2.

"That file has no contact rows in it" The file is empty, or everything in it was blank. Check you exported the right sheet.

Everything came back as "Already in CaptiFi" Those contacts already exist for that venue. Check the venue you selected in step 1, and use the Source filter on your contacts list to see what is already there.

Contacts imported but are not in my campaign audience Check they were subscribed: a file with an opt-in column only subscribes rows with a clear "yes", and anyone who previously unsubscribed or bounced stays unsubscribed. Filter your contacts by Imported and Not subscribed to see them.

My file has more than 100,000 rows Split it into several files and import them one after another.

CaptiFi — Guest WiFi Marketing Platform