HLAI Experts

Guide · Contacts

Importing contacts into HighLevel: pick the method first

Before you upload anything to GoHighLevel (GHL), decide whether you need a one-time import or a sync that keeps running, because they're different jobs with different tools. For a one-time move, the CSV importer works: create your custom fields first, map every column, and read the error log in Bulk Actions when it finishes.

Rob EasonPublished

A one-time import is not a sync

A CSV upload copies your contacts as they were on the day you exported them. Anything that changes in the old system afterwards stays there. An ongoing sync keeps sending new and changed records across.

Say out loud which one you're doing, and write it down. When we plan an import, this is the first line of the plan, because the two need different tools: a team that thinks it has a sync will wait for new leads that never arrive.

Decide import or sync before you choose a tool.

The ways contacts can get in

These are the methods we choose between when we plan a move. A move can also be a mix, such as a one-time upload of history plus a feed for new leads.

  • A CSV upload. The built-in importer, for a one-time copy of a spreadsheet or an export.
  • A migration from another CRM. A planned move of records, fields and history out of the old system.
  • An automation platform. A feed that keeps passing new or changed records into HighLevel.
  • A direct integration. A connection between the source system and HighLevel. Whether one exists depends on the system you're leaving, so check before you plan around it.
  • Manual entry. Typing records in, for a handful of contacts.
  • A combination of the above, named method by method.

Get the file ready before you upload

Import problems are cheapest to fix before the upload starts. Sort these out in the spreadsheet, not afterwards in HighLevel.

  • Give every column a header, and keep each kind of data in its own column.
  • Make sure every row has a name, an email or a phone. HighLevel needs one of those to create a contact.
  • Create every custom field you need in HighLevel first. A column can only map to a field that already exists, and unmapped data is left out of the import.
  • Put phone numbers in a valid international format. Badly formatted international numbers can fail with error 1007.
  • Check the file size limit on the import screen. HighLevel's own pages have given different limits, so split a large file if the importer asks you to.

Running a CSV import

You need admin access in the sub-account to import contacts.

  1. Open Contacts and choose Import Contacts.
  2. Upload the CSV and choose the import type. Create and Update can add new contacts as well as update existing ones; Update works on contacts that already exist.
  3. Click Next and map each column to a standard field or a custom field. Read down the whole list: a column you skip doesn't come in.
  4. Decide on tags. Adding a tag for this import makes it easy to find the group later.
  5. Decide on workflows. Enrolling imported contacts in a workflow is optional, and it can start automation for every contact in the file. Leave it off unless you mean it.
  6. Confirm the import.

Rather have it set up for you?

Through a 30-minute 1:1 with Rob, we pick the right method for your contacts; then we map, import and check every column before your team works the list.

Book a 1:1 with Rob

Reading the result

When the import has run, open Bulk Actions. It keeps a history of imports, and Show Stats opens the details for this one. Rows that failed are listed under Error, with the reason.

Fix the failed rows in the spreadsheet and import just those again, rather than re-running the whole file. Then open a few imported contacts and compare them with the source, field by field.

One Smart List for each source

Once contacts are in, build a Smart List for each lead source, so an imported list can be worked apart from fresh leads. In our plans, every lead source gets its own.

A Smart List needs a filter it can actually run. It has to point at a field or tag that exists on the contacts. A source name you wrote in your notes isn't a filter; a tag added during the import, or a source field you mapped, is.

Questions

Contact import questions

Can I import contacts into HighLevel from a CSV file?
Yes. HighLevel's contact importer accepts CSV files, and you map each column to a standard or custom field during the import. You need admin access in the sub-account to run it.
Why are some columns missing after my HighLevel import?
Data in a column that wasn't mapped is left out. Custom fields also have to exist before the import, or there's nothing to map the column to. Create the fields, then import the missing data again.
What does error 1007 mean on a HighLevel CSV import?
HighLevel's troubleshooting page ties error 1007 to international phone numbers in an invalid format. Fix the numbers in the file and import the failed rows again. The Error list in Bulk Actions shows which rows they were.
Will importing contacts set off my workflows?
Only if you choose to enroll them. Adding imported contacts to a workflow is an optional step, and it can start automation for everyone in the file. Leave it off unless that's what you want.
Does a CSV import keep my old CRM and HighLevel in sync?
No. A CSV import is a one-time copy. Keeping two systems in step needs an ongoing sync, through an automation platform or a direct integration where one exists for your CRM.
Rob Eason

Who you talk to

Rob Eason

Rob runs HLAI Experts and takes the 1:1 calls himself.

He is a HighLevel Certified Admin with the second-most reviews in HighLevel's Certified Admin Directory worldwide, all of them 5 out of 5.

He won HighLevel's Top New Subaccounts via AI Employee award in its 2025 Summer of AI Awards and taught HighLevel's official masterclass on its AI Employee.

Before HighLevel, he co-owned a 60-employee financial services firm and sold his share.

On the call he looks at your account, not a script.

5/5 across 83 reviews in HighLevel's Certified Admin Directory