Contact Imports in HighLevel
To import contacts into HighLevel: prepare a CSV with a header row (First Name, Last Name, Email, Phone, plus any Custom Field columns). Go to Contacts in the sub-account and click Import. Upload the CSV. Map each CSV column to the corresponding HighLevel field. Choose duplicate handling (update existing or skip). Apply an import tag to the batch. Confirm the import. Verify by searching for specific contacts and checking their fields. Custom Fields must exist in Settings before importing – they cannot be created during the import.
This post covers how to prepare a CSV for import, the column mapping process, duplicate handling options, how to use tags to identify imported batches, how to import Custom Field data, and what to do after the import completes.
Reading time: about 5 minutes.
Move your existing customers and – contact import brings your history
Contacts, then Import. Upload a CSV, map fields, apply tags, done.
What Is the Contact Import Feature?
The Contact Import feature in HighLevel allows bulk uploading of contacts from a CSV file directly into the sub-account’s CRM. Rather than entering contacts one by one, a business can export their existing contact database – from another CRM, from a spreadsheet, from an email marketing platform – and bring that entire contact history into HighLevel in a single import operation.
The import wizard handles the translation between the source data format and HighLevel’s contact fields – mapping each CSV column to the appropriate HighLevel field during the import process. The import also supports applying tags to the imported batch and handles duplicates by detecting matching email addresses or phone numbers.
Access Contact Import from the Contacts section in the sub-account – look for the Import button or option in the Contacts header.
Preparing the CSV File
A well-prepared CSV file produces a clean import. The first row must contain column headers – the names that identify each column of data.
Common columns to include: First Name, Last Name, Email, Phone, Address, City, State, Zip Code, Company Name, and any additional data relevant to the contacts.
Phone number formatting matters. HighLevel works best with phone numbers in a consistent format – ideally the full number including country code, or at minimum a consistent format without special characters mixed with plain digits.
Mixed phone number formats (some with dashes, some with parentheses, some plain digits) can cause formatting inconsistencies in imported contact records.
Clean the data before importing. Remove obvious duplicate rows from the CSV itself – even with HighLevel’s duplicate detection, starting with a clean list produces better results.
Remove rows with no email and no phone – contacts with neither identifier cannot be deduplicated against existing records and are harder to search for after import. Fix email addresses with obvious formatting errors.
Column Mapping
The column mapping step is where each CSV column header is connected to the appropriate HighLevel contact field. The import wizard presents a list of the CSV column headers and a dropdown selector for each – choose which HighLevel field each column maps to.
Standard field mappings: First Name to First Name, Last Name to Last Name, Email to Email, Phone to Phone Number. For address fields, map to the corresponding HighLevel address sub-fields (Street, City, State, Postal Code) if they are separate columns in the CSV.
For a full address in one column, map to Address 1.
Columns that do not have a corresponding HighLevel field can be skipped – the data is not imported for those columns. Skipping a column is appropriate for internal CRM IDs, source system columns, or any data that is not relevant to the HighLevel contact record.
Column mapping does not need to be perfect on the first import. If a column is mapped incorrectly, the data imports to the wrong field.
For large imports, it is worth taking a few minutes to review each mapping before confirming – checking that every column header corresponds to the correct HighLevel field.
Duplicate Handling
HighLevel checks for duplicates during import using email address and phone number as the matching criteria. If a contact in the CSV has the same email address as an existing contact in the sub-account, HighLevel identifies it as a potential duplicate.
The import configuration allows choosing how to handle duplicates: update the existing contact with the new data from the CSV row, or skip the duplicate row entirely. For a first-time import from an existing CRM, “update existing” is typically appropriate – the imported data may contain more complete or more current information than what is already in HighLevel.
For ongoing imports from a specific source, the choice depends on whether the CSV data should overwrite or be skipped when a match is found.
Import Tags
The import wizard allows applying one or more tags to every contact in the import batch. This tag application is one of the most practical import features – it marks all imported contacts with a shared label that identifies them as a group.
Common import tag uses: marking the data source (“Imported: Previous CRM”), marking the import date for compliance tracking (“Import: Jan 2026”), identifying the contact type (“Former Customer: Import”), or creating a Smart List filter basis (“Needs Review”). Any tag applied at import is immediately usable in Smart Lists and workflow conditions.
The import tag is also how to undo a bad import. If an import batch is tagged “Import: Jan 2026,” a Smart List filtered by that tag shows all contacts from that batch.
Contacts can be bulk-deleted from a Smart List – making it possible to reverse an import that produced unexpected results.
Importing Custom Field Data
Custom Fields that exist in the sub-account can have their values imported as part of a contact import. Add a column to the CSV for each Custom Field value to be imported – the column header can be anything, since the mapping step connects the column to the Custom Field regardless of the header name.
During column mapping, when a Custom Field column is encountered, scroll the field dropdown to find the Custom Fields section and select the appropriate Custom Field. The imported value is stored in the Custom Field on each contact record after the import.
One important constraint: Custom Fields must be created in Settings, then Custom Fields before the import. A Custom Field that does not exist in the sub-account cannot be mapped during import.
If the CSV contains data for a field that does not yet exist in HighLevel, create the field first, then run the import.
After the Import
After a contact import completes, three verification steps ensure the import worked correctly. First, search for a few specific contacts from the CSV and confirm they appear in HighLevel with the correct name, email, phone, and any other mapped fields.
Second, create a Smart List filtered by the import tag and verify the number of contacts in the Smart List approximately matches the expected import count. Third, spot-check Custom Field values on a few imported contacts if Custom Fields were part of the import.
If the import produced unexpected results – wrong field mappings, incorrect phone number formatting, missing contacts – it is better to identify and address these issues immediately after the import rather than discovering them weeks later when the contact data is in active use.
Common Import Issues
Phone numbers importing incorrectly is the most common import issue. Different systems export phone numbers in different formats – (555) 867-5309, 555-867-5309, 5558675309, +15558675309 are all the same number but import differently.
HighLevel normalizes many formats, but inconsistent formatting in the source CSV can produce inconsistent results. Standardize phone number format in the CSV before importing.
Missing contacts after import are usually caused by rows that had no email and no phone – HighLevel may skip rows that lack both primary identifiers. Rows with duplicate email addresses within the CSV itself (not just duplicates against existing records) may also cause only one row to import.
Custom Fields not populating after import is almost always caused by the field not being created in Settings before the import, or by the column not being mapped to the Custom Field during the mapping step. Check both after any import where Custom Field data is missing.
What Can You Do With It?
- Migrate an existing contact database into HighLevel without manual entry: Export contacts from any source as a CSV and import directly – bringing years of customer history into the HighLevel CRM in minutes rather than entering contacts one by one.
- Bring former customers into HighLevel for re-engagement campaigns: An import of a past customer list with an “Import: Former Customers” tag creates an immediately actionable Smart List for a win-back campaign sequence.
- Import lead lists from trade shows, events, or external sources: A CSV of business cards scanned at a conference can be imported as contacts with a trade-show-specific tag – enabling a targeted follow-up campaign to all event leads at once.
- Update existing contact data in bulk: A CSV with updated phone numbers, email addresses, or Custom Field values for existing contacts can be imported with “update existing” duplicate handling – updating many contact records simultaneously rather than editing each one individually.
Key Definitions
| Term | What It Means |
|---|---|
| CSV Import | The process of uploading a comma-separated values file to create or update contacts in bulk in the HighLevel CRM. |
| Column Mapping | The step in the import wizard where each CSV column header is connected to the corresponding HighLevel contact field. |
| Duplicate Detection | HighLevel’s process of checking imported contacts against existing contacts using email address and phone number as matching criteria. |
| Import Tag | A tag applied to all contacts in an import batch during the import process – used to identify the batch for segmentation and to enable reverting an import if needed. |
Use Cases
Home Services – Migrating from a Previous CRM
A roofing company has been using a basic spreadsheet to track customers for five years. They have 800 customer records with name, phone, email, address, and job type.
To migrate to HighLevel, they export the spreadsheet as a CSV, clean up the phone number formatting, add a “Job Type” column with the appropriate values, and create a “Job Type” Custom Field in HighLevel.
The import maps each column correctly, applies the tag “Imported: Spreadsheet Migration,” and completes in under a minute. All 800 customers are now in HighLevel with their contact information and job type.
A Smart List filtered by “Imported: Spreadsheet Migration” shows the full list for a re-engagement campaign.
Result: Five years of customer history is in HighLevel in under 15 minutes including CSV preparation. The import tag makes the entire customer base immediately accessible as a Smart List for campaigns. The job type Custom Field enables segmented campaigns by work type.
Marketing Agency – New Client Onboarding
An agency onboards a new dental practice that has been using a practice management system. The practice exports a patient contact list as a CSV.
The agency imports the list into the new HighLevel sub-account, applying the tag “Existing Patient: Import” and mapping the patient status column to a “Patient Status” Custom Field.
After import, the agency creates a Smart List of “Existing Patient: Import” contacts and schedules a re-engagement email campaign – a “welcome to the new scheduling system” message with a link to book their next appointment through the HighLevel calendar. The entire existing patient base is engaged through the new system from day one.
Result: The client’s existing patient base is in HighLevel on day one of the new system. The first campaign reaches all existing patients simultaneously – establishing the new communication channel with the existing relationship rather than starting from zero.
Bring your entire contact history into – one CSV import moves years of customer
Contacts, then Import. Map columns, apply tags, done in minutes.
Who Is This For?
Good fit if you…
- Are migrating from another CRM, spreadsheet, or contact management system and need to bring existing contacts into HighLevel
- Have a list of former customers to import for a re-engagement campaign
- Collected leads at an event, trade show, or through an external source and need to add them to HighLevel in bulk
- Need to update multiple existing contact records with new data – phone numbers, email addresses, or Custom Field values
Less relevant if you…
- Are starting HighLevel fresh with no existing contact database – new contacts enter through forms, booking pages, and manual entry as the business grows
How to Import Contacts
Step 1: Prepare Custom Fields
If importing Custom Field data, create the required Custom Fields at Settings, then Custom Fields before starting the import.
Step 2: Prepare the CSV
Export contacts from the source system. Add a header row.
Standardize phone number formatting. Remove duplicate rows and invalid email addresses.
Step 3: Navigate to Contacts and click Import
Contacts section in the sub-account. Find and click the Import button.
Step 4: Upload the CSV
Select and upload the prepared CSV file.
Step 5: Map columns to fields
For each CSV column, select the corresponding HighLevel field. Map Custom Field columns to the appropriate Custom Fields.
Skip irrelevant columns.
Step 6: Configure duplicate handling
Choose “update existing” to update existing contacts when a match is found, or “skip” to skip duplicate rows.
Step 7: Apply an import tag
Enter one or more tags for the batch. Use a descriptive name – the source and date are common tag elements.
Step 8: Review and confirm
Review the import summary. Confirm the import.
Step 9: Verify the results
Search for specific contacts from the CSV. Check field mappings.
Create a Smart List with the import tag and verify the contact count.
How Does It Connect to HighLevel?
- Contact Management: Imported contacts become full contact records in the CRM – with all mapped fields, the import tag, and activity history beginning from the import date.
- Custom Fields: Custom Fields must be created before importing data into them. The import supports mapping CSV columns to any Custom Fields that exist in the sub-account.
- Tags: Import tags applied during the import connect to the Tags system – making the imported batch immediately filterable in Smart Lists and targetable in workflow conditions.
- Smart Lists: After import, a Smart List filtered by the import tag segments the imported batch as a campaign audience. This is the standard workflow for activating an imported list in a re-engagement campaign.
- Email Campaign Automation: Imported contacts can immediately be targeted in Email Campaign Automation via a Smart List filtered by the import tag – enabling re-engagement campaigns to the imported audience from day one.
Common Questions
To import contacts into HighLevel: prepare a CSV with column headers, go to Contacts and click Import, upload the file, map each CSV column to the corresponding HighLevel field, choose duplicate handling (update or skip), apply an import tag, confirm. Custom Fields must be created in Settings before mapping them during import. After import, verify by searching for specific contacts and checking their fields. Use the import tag in a Smart List to see all imported contacts.
How do I import contacts into HighLevel?
Contacts section, click Import. Upload CSV.
Map columns to fields. Choose duplicate handling.
Apply import tag. Confirm.
What file format is required for HighLevel contact imports?
CSV (comma-separated values) with a column header row. Common columns: First Name, Last Name, Email, Phone, Address.
Custom Field columns can also be included.
Does HighLevel handle duplicate contacts during import?
Yes. Matching by email address and phone number. Choose to update existing contacts or skip duplicate rows during the import configuration step.
Can I apply tags to contacts during a HighLevel import?
Yes. Apply one or more tags to the entire import batch during the import process – useful for identifying the source or enabling batch-level Smart List filtering.
Can I import Custom Field values along with contacts in HighLevel?
Yes. Add Custom Field columns to the CSV and map them to the corresponding Custom Fields during the mapping step. Custom Fields must exist in Settings before the import.
To Wrap It Up
Contact import is the bridge between an existing business relationship history and the HighLevel CRM. A business that has been operating for years has customer data – it is just not in HighLevel yet.
The import feature is what moves that history into the platform without manual re-entry.
The most important pre-import step is preparing the CSV properly. Clean phone number formatting, a consistent header row, and pre-created Custom Fields make the import go cleanly the first time.
An import from a poorly formatted CSV produces poorly formatted contact data – and cleaning that up after the fact is more work than preparing the CSV correctly beforehand.
The import tag is the most underused import feature. Applying a specific tag to every imported batch creates an immediately usable audience segment and an undo mechanism.
The 30 seconds it takes to enter an import tag saves the frustration of trying to identify which contacts came from a specific import weeks later.
- Create any Custom Fields needed for the import in Settings, then Custom Fields
- Export the contact list from the source as a CSV
- Clean the CSV – standardize phone formats, remove invalid emails, check headers
- Navigate to Contacts and click Import
- Upload the CSV and work through the column mapping step carefully
- Configure duplicate handling for the specific use case
- Apply a descriptive import tag to the batch
- Review the summary and confirm the import
- Verify results – search for specific contacts, check field values, count the import tag Smart List
Do a test import with 10 to 20 rows before importing the full list. A small test import reveals column mapping issues, phone number formatting problems, and Custom Field mapping errors at a scale that is easy to review and clean up.
The full import with hundreds or thousands of contacts runs the same process – confirming the test works correctly before scaling up is faster than fixing a large import that has incorrect field mappings.
Import your existing contacts into – bring years of customer data
Contacts, then Import. CSV with column headers.
Map fields, apply tag, done.
