Home / Team CRM / Import Guide
Team CRM

CSV Contact Import Guide

How to bulk-import contacts and automatically assign each one to the right rep — in three steps.

On this page

  1. How it works
  2. CSV format & column reference
  3. Routing contacts to the right rep
  4. Step-by-step upload instructions
  5. Understanding import results
  6. Troubleshooting & FAQ

How it works

The Team CRM import lets any team member upload a single CSV. Each row maps to one contact. The assigned_to column routes each contact to a specific rep by their login email address. Contacts without a valid assignment default to the person who uploaded the file.

The import runs in the background. You'll see a live progress bar, then a results summary showing how many contacts were imported, skipped, or flagged.

Tip: If you're setting up a new team, collect everyone's login email addresses first. Paste them into your spreadsheet's assigned_to column before exporting to CSV.

CSV format & column reference

Your file must be a standard comma-separated CSV with a header row as the first line. UTF-8 encoding is required (the default in Google Sheets, Excel "Save as CSV", and most export tools).

Supported columns

Column name What it does Required?
first_name Contact's first name Required*
last_name Contact's last name Required*
assigned_to Rep's login email — routes this contact to that team member Key field
email Contact's email address (also used for duplicate detection) Optional
phone Contact's phone number — any format accepted Optional
company Company or organization name Optional
title Job title or role Optional
pipeline_stage Where in the pipeline this contact starts: prospect, new, contacted, qualified, proposal, won, lost. Defaults to prospect. Optional
notes Free-text notes attached to the contact record Optional

* At least one of first_name or last_name must have a value — rows missing both are skipped and counted in "Rows skipped."

Example CSV (copy as your starting template)

first_name,last_name,assigned_to,email,phone,company,pipeline_stage Sarah,Johnson,[email protected],[email protected],555-1001,Acme Corp,new Marcus,Webb,[email protected],[email protected],555-1002,Beta LLC,contacted Lisa,Torres,[email protected],[email protected],,Gamma Inc,qualified Derek,Park,[email protected],[email protected],555-1004,Delta Media,proposal

Yellow headers — row 1 is always the header  |  Pink — required name fields  |  Green — the assignment column  |  Grey — optional fields

Column names are flexible. The importer auto-detects common variations: firstname, first, rep, owner, organization, mobile, stage, comments, and more. You can also manually map any column in Step 2 of the import wizard.

Routing contacts to the right rep

The assigned_to column is the key to a clean team import. Each value must be the rep's login email address — the email they use to sign in to the CRM.

Rules

How to find each rep's login email

  1. Go to Team Settings
  2. The member list shows each rep's email address
  3. Copy those emails into your spreadsheet's assigned_to column before exporting
Double-check before uploading. A typo in assigned_to won't fail the import — the contact just lands in your queue instead of the rep's. Check the error log after every import.

Step-by-step upload instructions

1

Prepare your CSV

Open your contacts spreadsheet (Excel, Google Sheets, or Numbers). Rename your column headers to match the supported names above. Add an assigned_to column and fill in each rep's login email. Export or "Save as" → CSV (UTF-8).

2

Go to Import

In the Team CRM sidebar, click Import. Or go to /team-crm/import directly. Any team member can run imports; Team Leaders usually handle the team-wide ones.

3

Upload your file

Drag your CSV onto the upload zone or click to browse. The importer reads your header row and shows a column count. Click Continue.

4

Map columns (Step 2)

The importer auto-matches known column names (look for the ✓ Auto-matched label). Review each mapping. Make sure assigned_to is mapped to Assigned To (email). Click Review Import.

5

Review & start

Confirm the row count and that the assigned-to column is mapped. Click Start Import. The progress bar runs in real time — do not close the tab until it finishes.

6

Check the results

After the import completes, you'll see three numbers: Imported (success), Duplicates skipped (email already in team CRM), and Rows skipped (missing name). Read any notices in the error log — especially for assigned_to mismatches. Then click View Contacts.

Understanding import results

ResultWhat it meansAction needed?
Imported Contact created and assigned successfully None — check Contacts
Duplicates skipped A contact with that email already exists in the team CRM None — existing record is preserved
Rows skipped Row had no first_name or last_name value Fix those rows in your CSV and re-import
Notice in error log assigned_to email not found in team — contact assigned to uploader instead Reassign from Contacts list, or re-import with the corrected email

Troubleshooting & FAQ

The import finished but some contacts are assigned to me instead of my rep.

The assigned_to email in your CSV didn't match any active team member. Check the error log on the results screen for the exact rows. You can bulk-reassign from the Contacts list, or fix the CSV and re-import (duplicates will be skipped automatically).

I don't see an "Assigned To" option in Step 2.

Your CSV column might be named differently. In Step 2, find the dropdown for that column and select Assigned To (email) manually. Common aliases the importer auto-detects: assigned, rep, owner.

My import shows 0 imported and everything skipped.

Most likely cause: the first_name and last_name columns weren't mapped. Go back to Step 2 and confirm both are matched. If your spreadsheet uses a single "Name" column, split it into two columns first.

Can reps import their own contacts?

Yes — any team member can run an import. Contacts with blank or invalid assigned_to values are assigned to the uploader. The assigned_to column is most useful when a Team Leader runs a bulk import for the whole team at once.

What happens if I import the same file twice?

Any contact with a matching email address is skipped as a duplicate. Contacts with no email (or a different email) would be imported again. To be safe, only import each file once.

Is there a row limit?

There's no hard cap, but imports over ~2,000 rows may take a minute or two. Keep the tab open until the progress bar completes.

My CSV has extra columns I don't need.

That's fine. In Step 2, set those columns to (skip this column) and the importer ignores them.

Ready to import?

Go to the import page, upload your CSV, and your team's contacts will be ready in minutes.

Open Import Page →

It's Buzzing — free tools for your business

Market intel · CRM · Reviews · BuzzDeals · and more

Get Started Free →