Importing Clients, Leads & Suppliers from CSV

Last updated September 8, 2026

Switching from another CRM, or have a spreadsheet of supplier commission rates and contacts? JourneyFuse makes it easy to bulk import clients, leads, and suppliers from any CSV file. The import wizard automatically detects common column names, validates your data, and flags duplicates before anything is saved.

Starting an Import

  1. Navigate to the Clients, Leads, or Suppliers page
  2. Click the Import CSV button in the toolbar (next to "Add Client", "Add Lead", or "Add Supplier")
  3. The import wizard opens with four steps: Upload, Map Columns, Review, and Confirm

Suppliers: export first to get a template. On the Suppliers page, click Export CSV to download your current suppliers with the exact column headers the importer expects. Even with no suppliers yet, the export gives you a header-only file to fill in. Edit that file and re-import to add new suppliers or bulk-update existing ones (suppliers are matched by name — see Handling Duplicates).

Step 1: Upload Your CSV

Drag and drop your CSV file onto the upload area, or click Choose File to browse. Requirements:

  • File must be in .csv format
  • Maximum 5,000 rows per import
  • The first row must contain column headers

Step 2: Map Columns

JourneyFuse automatically matches your CSV columns to the correct fields using fuzzy matching. For example, "First Name", "fname", or "Given Name" all map to the first name field automatically.

If a column isn't matched correctly, use the dropdown to select the right field or choose Skip to exclude it from the import.

Supported Fields

For Clients: First Name, Last Name, Email, Phone, Address, Birthday, Anniversary, Passport Number, Passport Expiry, Known Traveler Number, Notes, Tags, Assigned Advisor

For Leads: First Name, Last Name, Email, Phone, Destination, Travel Start Date, Travel End Date, Travel Type, Budget, Traveler Count, Source, Stage, Notes, Assigned Advisor

For Suppliers: Name, Category, Commission Rate (%), Phone, Email, Website, Agent Portal URL, Booking Notes, and BDM details (BDM Name, Title, Email, Phone, Notes). Headers like "Commission", "Vendor", "Rep Name", or "BDM Email" are matched automatically.

Combined Name Columns

If your CSV has a single "Name" or "Full Name" column instead of separate first/last name columns, JourneyFuse will automatically split it. For example, "Mary Jane Watson" becomes First Name: "Mary Jane", Last Name: "Watson".

Assigned Advisor (Clients and Leads)

Importing a whole agency's list? If your file has a column naming the advisor each record belongs to, JourneyFuse files each row under that team member instead of putting everyone on one person. The column is detected automatically from the headers your old system uses — Agent Name (TESS), Advisor or Contact Owner (Tern), CreatedByUserFullName (Travefy), Agent (PIE) — or you can map any column to Assigned Advisor by hand.

A cell can hold the advisor's full name (Mindy Carter or Carter, Mindy), their email address, or the part of their email before the @. Capitalisation, accents and punctuation do not matter. A row whose cell is empty, or names someone who is not on your team, goes to the advisor you pick in the Confirm step instead — and the import result lists every name it could not place, with a row count, so you can invite that advisor and re-import, or reassign those records from the list.

Two things to know:

  • Names must be unambiguous. If two team members share a full name, a row naming them goes to the fallback advisor — the importer will not guess. Use the email address in the file for those rows.
  • Re-importing never reassigns. When a row updates a client or lead that is already in your account, the advisor column is ignored, so a colleague importing a list that happens to contain your clients cannot take them over.

Tags (Clients only)

Want to carry your tags over from your old CRM? Add a Tags column and JourneyFuse turns each value into a real, filterable workspace tag. The importer auto-detects the column from any of these headers: Tags, Tag, Labels, Label, Groups, Group, or Categories.

To apply more than one tag to a client, separate the tags with a semicolon (;) — not a comma. Commas already separate columns in a CSV file, so a comma-separated list would break apart into the wrong columns.

First Name,Last Name,Email,Tags
Jane,Smith,jane@example.com,VIP; Disney; Repeat Client

That row tags Jane with three separate tags: VIP, Disney, and Repeat Client. Spaces around the semicolons are trimmed, and the same tag listed twice in one cell is only applied once.

On import, each tag is created in your workspace (if it doesn't already exist) and linked to the client — exactly like a tag you'd add by hand — so you can filter and segment by it right away. Re-running the import won't create duplicate tags.

Step 3: Review Data

Before importing, review all rows in a table with status indicators:

  • Valid — Ready to import
  • Warning — Minor issues (e.g., unparseable date) — the row will still import with the problematic field skipped
  • Error — Missing a required field (first/last name for clients and leads, or name for suppliers) — these rows cannot be imported
  • Duplicate — Matches an existing record (clients/leads by email or name, suppliers by name)

Handling Duplicates

For each duplicate row, you can choose:

  • Skip — Don't import this row
  • Import Anyway — Create a new record even though a match exists
  • Update Existing — Merge the CSV data into the existing record

This is how you bulk-update suppliers: export your suppliers, edit the commission rates or BDM details in the file, re-import, and choose Update Existing for the matched rows.

Use the filter tabs at the top to quickly view just errors, duplicates, or warnings.

Leads for people who are already clients

Importing inquiries for people already on your client list does not create a second client. Include an Email column: each lead whose email matches a client's email (capital letters don't matter) is linked to that client, and Convert to client later uses the same record. A lead with no email, or a different one, comes in unlinked. Open it and use Link to existing client to attach it by hand.

Step 4: Confirm & Import

Review the summary showing how many records will be created, updated, or skipped. For clients and leads you can assign the imported records to a specific team member using the assignment dropdown (not shown for suppliers). If your file has an Assigned Advisor column, the dropdown is only the fallback: it applies to rows whose cell is empty or names someone who is not on your team, and the label says so.

Click Import to complete the process. You'll see a confirmation toast with the results.

Reading the result

When the import finishes you get a breakdown of every row in your file, not just the ones that saved. The lines add up to the row count of your file on purpose, so you can reconcile it against your own spreadsheet:

  • imported — new records created
  • added as household members of another row — rows marked family-only. They joined a household instead of becoming clients of their own, so they are real people in your account but they are not in your client count
  • updated — already existed, details refreshed
  • merged into a row with the same name — two rows in your file were treated as the same person. Both names are shown; two different people can share a name, so it is worth checking these
  • skipped, already in your account
  • rows could not be imported — a required field was empty
  • not accounted for — the number we could not explain. If you ever see this line, import the same file again: anything that did save is recognised as a duplicate, so re-importing is safe and picks up whatever was missed. If the count is still short afterwards, send us the file.

Below the breakdown you will also see any columns that had data but were not imported (with example values), any advisor names that are not on your team (those rows went to the advisor you selected), and any placeholder dates we ignored, such as the 1/1/1900 some systems write when they have no date on file.

If the import stops partway, the rows counted are already saved. You may also see two separate lines: rows that were sent but never confirmed (some of those may have saved — check before re-typing anyone) and rows that were never sent (import the file again to pick them up).

Recent imports

Settings → Data Import keeps a short history of your uploads: the file name, when it ran, and how many of its rows were saved. If a run is marked Did not finish, it stopped without reporting back — whatever it counted is saved, and importing the same file again will fill in the rest without creating duplicates.

Large files are sent in batches, so a long import is normal and safe to leave running. Keep the tab open until it finishes.

Tips

  • Date formats — JourneyFuse accepts dates in most common formats: YYYY-MM-DD, MM/DD/YYYY, M/D/YYYY, and MM-DD-YYYY
  • Budget values — Dollar signs and commas are automatically stripped (e.g., "$5,000" becomes 5000)
  • Tags — Put multiple tags in one cell by separating them with a semicolon (e.g. VIP; Disney), not a comma
  • Lead stages — Valid values are: new, contacted, proposal_sent, won, lost. Invalid stages default to "new"
  • Export from your current CRM first — Most CRMs have a "Download as CSV" or "Export contacts" option in their settings

Importing clients in MyAtlas (Lite agents)

Agents on a MyAtlas (Lite) account have their own, simpler importer. Go to Contacts and click Import.

  1. Upload a CSV — column names are matched automatically, same as the full importer. Maximum 2,000 rows per file.
  2. Check your columns — before anything is saved you see every column in your file, a sample of its values, and where it is going. Anything we could not match shows as Skip; pick the right field from the dropdown to bring it in. If an obviously important column (an email or phone column, say) lands nowhere, a warning calls it out.
  3. Choose whether to update — leave Update clients I already have checked to have matching rows update the client instead of being skipped. Matching is on email, or first and last name.
  4. Import — the result shows how many were added, updated, and skipped, which columns were not imported, and any rows that could not be read.

If your file has two columns for the same thing — "Email" and "Contact Email", for example — the first one is used, and the second fills in only on rows where the first is blank.

Fixing an import that missed a column

Nothing is lost. Set the column correctly and upload the same file again with Update clients I already have checked: matching is by email, or by first and last name, so your existing clients are updated in place rather than duplicated. Only the columns in your file are touched.

Bulk-updating your client list

Use Download CSV on the same page to export your clients with the exact headers the importer reads. Edit the file in a spreadsheet, upload it back with Update clients I already have checked, and every matched client is updated at once. With no clients yet, the export gives you a blank template to fill in.

Only the columns present in your file are changed, so a file with just name and phone will not blank out addresses or birthdays you already have.

What a MyAtlas import can set

Prefix, first/middle/last name, suffix, email, phone, cell, address, apt/suite, city, state, zip, country, birthday, anniversary, client since, and notes. Tags, passport details, and marketing opt-in are not imported through MyAtlas. Anything else in your file is ignored.

Imports are scoped to you: they only ever match against, and update, your own clients, never another agent's.