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 ​

Open the Guests page, then click Import contacts (top right).

Contact import is on every plan from Essentials up. It is not on Lite.

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. If your file has a column naming the venue on each row, choose This file covers several venues instead; see Importing a list that covers several venues.

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.

A column called Status, Number, Group, Category or Label is never matched on its own, because those names mean different things in different systems. CaptiFi shows it under the field it might belong to as Suggested, with a Use this column button. Check the sample values before you use it: a Status column can be a membership status, and a Number column can be a member number instead of a phone number. 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
VenueOnly on a file that covers several venues, and required there. Each value is matched to one of your venues in the next step

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.
  • If CaptiFi suggested a column as the opt-in, such as a column called Status, it asks about that column first. Choose Use it as the opt-in to take consent from it row by row, or It is not an opt-in and then confirm you have permission to email everyone in the file.

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.

Importing a list that covers several venues ​

A list exported from another system for a group of venues often has one row per guest per venue, with a column naming the venue. CaptiFi can import that file in one go and put every row into the venue it belongs to.

  1. In Step 1, open the venue picker and choose This file covers several venues, then upload the file. This option shows on accounts with more than one venue.
  2. In Step 2, set Venue to the column that names the venue, and match the other columns as usual.
  3. A Match venues step lists each different value in that column, with how many rows hold it. Choose the CaptiFi venue for each value, or leave it on Skip these rows. Every value starts on Skip: CaptiFi never matches a value to a venue for you, even when the names are the same. Rows with an empty venue cell are listed as (empty).
  4. Review shows the totals for the whole file, a Venue skipped count for rows whose value you skipped, and a line per venue with what that venue will get.
  5. Press Import. When it finishes you see how many contacts each venue received.

Each venue's rows are handled exactly as a single-venue import would handle them:

  • Duplicates are checked per venue. The same email address listed for two venues is added to both; listed twice for one venue, it is added once.
  • Tags in a row go only to that contact at that row's venue. A contact the venue already has is skipped as usual, and keeps the tags it had.
  • Opt-in, the permission confirmations and the suppression rules apply to every venue the same way.
  • Each venue gets its own Skipped rows file, and rows whose venue was skipped are listed in the skipped rows file for the whole import.

The 20 MB and 100,000 row limits apply to the whole file, not to each venue.

Undo import on a file that covers several venues removes the contacts it added at every venue. The whole file and its undo are open to the account owner, to team members with All venues access and to whoever uploaded it, provided they have access to every venue the file reached. A team member with Specific venues access who did not upload the file sees the part of the file for each of their venues instead, and can undo each part on its own.

Moving a list from Stampede ​

A Stampede guest export can go straight into CaptiFi this way, with no need to split it by venue first.

  1. Export your guest list from Stampede as a CSV or Excel file, with every column included.
  2. In CaptiFi, open Guests, click Import contacts and choose This file covers several venues.
  3. Set Venue to the column that holds the venue tag.
  4. A Stampede export can carry columns called Status, Number, Group, Category and Label. CaptiFi shows them as suggestions only. Use one only when its sample values really are an opt-in, a phone number or tags.
  5. On Match venues, choose the CaptiFi venue for each venue tag. A cell can hold several venue tags at once, for a guest seen at more than one venue. That combination is listed as its own value: match it to one venue, or skip it.
  6. Check the per-venue numbers on Review, then press Import.

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 email automation
  • 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. 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.

Automations and Imported Contacts ​

Email automations start from a WiFi visit: a guest connects, comes back, or goes a set number of days without connecting. An imported contact has no visit, so no automation ever fires for them, including Guest has not visited.

To message an imported list on a schedule, use a repeating campaign instead:

  1. Go to Email Marketing → Audiences → Segments, click New segment, choose the venue, and add the condition How they joined is Imported contact. Do not add a Last visit condition to this segment: contacts who have never connected have no visit, so it would drop them
  2. Save the segment, then create a campaign with that segment as its audience
  3. On the Schedule step set Repeat to Monthly (or Daily or Weekly), add an Until date if you want it to stop on its own, and leave Email each guest only once ticked so nobody hears from you twice. Untick it if the reminder should go out again on every run

The steps and the allowance rules are in Repeat a campaign.

Once an imported contact connects to your WiFi they have a real visit, and a segment built on Last visit (for example, was more than 60 days ago) picks them up like any other guest from then on. See Last visit and how they joined.

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 emails and texts 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.

"The venue column has more than 200 different values" The column picked as Venue is probably not the venue column. Go back to step 2 and choose the column that names the venue.

A venue is missing from my import across several venues Its value was left on Skip these rows. Those rows are in the skipped rows file for the import, with the reason "Venue not matched". Import them again, matched to the right venue.

CaptiFi — Guest WiFi Marketing Platform