HubSpot does not accept VCF files directly. To import contacts to HubSpot from VCF, first convert VCF to CSV, rename the column headers to match HubSpot properties (Email, First Name, Last Name, Phone Number, Company Name), then import the CSV via Data Management, Data Integration, Start Import. For a few contacts: Import VCF contacts to your phone first, then use the HubSpot mobile app’s “Import from device contacts” feature.
Introduction
HubSpot CRM does not support direct VCF file upload. This is one of the most requested features on the HubSpot Ideas Forum, with hundreds of upvotes from sales teams who receive vCards at conferences, trade shows and networking events. Until HubSpot adds native VCF support, you need to convert your vCard contacts to CSV or XLSX format before importing them.
This guide walks through the complete pipeline to import contacts to HubSpot from a VCF file, with HubSpot-specific field mapping, CSV preparation requirements, and contact-company association setup. If you are importing to a different CRM, see our guides for importing VCF to Salesforce, importing VCF to Outlook, or importing VCF to Google Contacts.
We have built VCF conversion tools at Univik since 2013 and help users prepare contacts for CRM imports across HubSpot, Salesforce, Zoho and Pipedrive from vCard exports.
Why HubSpot Requires CSV (Not VCF)
HubSpot’s import tool accepts only CSV, XLSX, and XLS files. Each row represents one contact, and each column maps to a HubSpot property. VCF files use a completely different structure (BEGIN:VCARD blocks with key-value pairs like FN, TEL, EMAIL), so HubSpot cannot parse them. The conversion from VCF to CSV restructures the data from vCard blocks into spreadsheet rows that HubSpot can read.
Email Address Is Critical
HubSpot uses the Email property as the primary unique identifier for contacts. If your VCF contacts do not include email addresses, HubSpot can still create the records using First Name or Last Name, but it cannot deduplicate them. Contacts without email addresses also cannot be automatically associated with companies. Always include email addresses when possible.
3 Methods to Import VCF Contacts to HubSpot
Method 1: Convert VCF to CSV, Then Import (Recommended)
This is the most reliable method for any number of contacts. It gives you full control over field mapping and lets you clean the data before importing.
Phase 1: Convert VCF to CSV
1
Convert your VCF file to CSV using any method from our VCF to CSV guide. You can use a Python script, Google Contacts (import VCF then export CSV) or a VCF converter tool.
2
Rename column headers to match HubSpot property names. Open the CSV in Excel or Google Sheets. Rename columns using the field mapping table below. For example, rename “Full Name” to “First Name” and “Last Name” (split into two columns), rename “Phone” to “Phone Number” and rename “Organization” to “Company Name”. This step is critical because HubSpot’s import tool auto-matches columns by header name.
3
Save as UTF-8 CSV. If your contacts include international characters, save the file as “CSV UTF-8” from Excel (File, Save As, change file type to “CSV UTF-8”). HubSpot requires UTF-8 encoding for non-English characters.
Phase 2: Import CSV into HubSpot
4
Go to Data Management, Data Integration, Start Import. In your HubSpot account, navigate to the import screen. Select “File from computer” and choose “One file”, then select “One object” and pick “Contacts”.
5
Upload the CSV file. HubSpot scans the column headers and attempts to auto-map them to HubSpot properties. If you renamed the headers correctly in Step 2, most columns will map automatically.
6
Review and correct the property mapping. Check each column mapping. If a column says “Don’t import”, click it and manually select the matching HubSpot property. Pay attention to the Email column (must map to “Email”) and Phone Number (must map to “Phone Number”, not “Mobile Phone Number” unless appropriate).
7
Name the import and finish. Give the import a descriptive name (e.g., “Trade Show VCF Contacts Feb 2026”). Check the consent box confirming these contacts expect to hear from you. Click “Finish Import”. HubSpot processes the file and sends an email notification when complete.
Method 2: HubSpot Mobile App (Phone Contacts)
If you have already imported the VCF contacts to your phone (iPhone or Android), the HubSpot mobile app can pull them directly from your device contacts. This method is best for a small number of contacts collected at events.
1
Import the VCF to your phone first. On iPhone, open the VCF file from email or Files and tap “Add All Contacts”. On Android, go to Contacts, Import and select the VCF file. See our guides for importing VCF to iPhone or importing VCF to Android.
2
Open the HubSpot app. Tap the Create button (+), then tap “Contact”. In the pop-up, tap “Import from device contacts”. Allow HubSpot to access your device contacts when prompted.
3
Select contacts and import. Check the contacts you want to import (or tap “Select All”), then tap OK. HubSpot imports the selected contacts and shows a confirmation. Contacts are imported with name, email, phone and address properties where available.
Method 3: HubSpot API Import (Developer Workflow)
For recurring imports or automated pipelines, you can use the HubSpot Imports API to send contact data programmatically. This requires converting VCF to CSV first, then uploading via the API.
1
Convert VCF to CSV using a Python script or converter tool (same as Phase 1 of Method 1).
2
Use the HubSpot Imports API (POST /crm/v3/imports) to upload the CSV with column mappings defined in JSON. Set fileFormat to “CSV” and define columnMappings for each column. This method is documented at developers.hubspot.com/docs/api-reference/crm-imports-v3/guide.
3
Monitor the import status. The API returns an import ID. Use GET /crm/v3/imports/{importId} to check progress. HubSpot processes the file asynchronously and returns the number of created, updated and failed records.
VCF to HubSpot Field Mapping
HubSpot auto-maps columns when the CSV header names match its default property names exactly. Use these header names in your CSV to get automatic mapping.
| VCF Property | HubSpot Property Name | CSV Column Header | Required? |
|---|---|---|---|
| N (given name) | First Name | First Name | Yes* |
| N (family name) | Last Name | Last Name | Yes* |
| Yes* | |||
| TEL | Phone Number | Phone Number | No |
| TEL (CELL) | Mobile Phone Number | Mobile Phone Number | No |
| ORG | Company Name | Company Name | No |
| TITLE | Job Title | Job Title | No |
| ADR (street) | Street Address | Street Address | No |
| ADR (city) | City | City | No |
| ADR (state) | State/Region | State/Region | No |
| ADR (postal code) | Zip Code | Zip Code | No |
| ADR (country) | Country/Region | Country/Region | No |
| URL | Website URL | Website URL | No |
| NOTE | (custom property) | Notes | No |
*HubSpot requires at least one of First Name, Last Name or Email to create a contact. Email is strongly recommended because it serves as the unique identifier for deduplication.
Preparing the CSV for HubSpot
VCF-to-CSV output often needs adjustments before it is ready for HubSpot. Follow these four steps to avoid import errors.
1
Split the full name into First Name and Last Name. VCF files store the full name in the FN property. HubSpot requires separate First Name and Last Name columns. In Excel, use Text to Columns (split by space) or use formulas: =LEFT(A2,FIND(" ",A2)-1) for first name and =MID(A2,FIND(" ",A2)+1,100) for last name.
2
Split the address into separate columns. VCF stores the address as a single ADR property with semicolon-delimited components. HubSpot requires separate columns for Street Address, City, State/Region, Zip Code and Country/Region.
3
Remove rows without email addresses (optional but recommended). Contacts without email addresses cannot be deduplicated in HubSpot. If you import 50 contacts named “John” without email addresses, HubSpot creates 50 separate contact records. Remove or manually add emails to these rows before importing.
4
Remove the PHOTO column. If your CSV export includes a PHOTO column with base64-encoded image data, delete it. HubSpot does not import contact photos via the CSV import tool. Photo data in CSV cells causes formatting errors and dramatically increases file size.
Importing Contacts with Company Associations
If your VCF contacts include ORG (company name) data, you can import contacts and associate them with companies in a single import. This creates both the contact and the company record, then links them together.
Contacts Only (Simpler)
Import as “One object: Contacts”. Include a Company Name column. HubSpot stores the company name as a text property on the contact but does not create a separate Company record. Enable “Automatically create and associate companies with contacts” in HubSpot settings (CRM, Contacts, Automation) to have HubSpot auto-create companies based on the contact’s email domain.
Contacts + Companies (Full CRM)
Import as “Two objects: Contacts and Companies” in one file. Include both contact columns (Email, First Name, Last Name) and company columns (Company Name, Company Domain Name). Each row represents one contact-company pair. HubSpot creates both records and associates them. Company Domain Name (e.g., acme.com) is required for company deduplication.
HubSpot Import Limits
| Limit | Free / Starter | Professional / Enterprise |
|---|---|---|
| Max rows per file | 1,000,000 | 1,000,000 |
| Max columns | 1,000 | 1,000 |
| Max file size | 512 MB | 512 MB |
| Accepted formats | CSV, XLSX, XLS | CSV, XLSX, XLS |
| Association labels | Not available | Professional+ only |
| API imports | Limited | Full access |
Common Problems and Fixes
HubSpot says “unable to upload file” or shows a format error. The most common cause is that the CSV file is not UTF-8 encoded or contains invisible special characters. Re-save the file from Excel as “CSV UTF-8 (Comma delimited)”. If the error persists, open the file in a text editor (Notepad++, VS Code) and check for BOM characters or encoding issues.
Columns are not mapped automatically. HubSpot matches columns by header name. If your CSV uses “Phone” instead of “Phone Number” or “Company” instead of “Company Name”, the auto-match fails. Rename headers to exactly match HubSpot’s property names using the field mapping table above, or manually map each column during the import wizard.
Duplicate contacts are created instead of updating existing ones. HubSpot uses Email as the primary deduplication key. If an imported contact has the same email as an existing contact, HubSpot updates the existing record. If email addresses are missing or different, HubSpot creates a new contact. Before importing, extract and verify email addresses in your VCF file.
Phone numbers lose leading zeros or formatting. If you open the CSV in Excel before importing, Excel may strip leading zeros from phone numbers (turning 0044123456 into 44123456). To prevent this, either import the CSV directly to HubSpot without opening it in Excel first or format the phone column as Text in Excel before saving.
Company associations are not created. If you imported contacts only (not contacts + companies), company names appear as text on the contact record but no Company object is created. To auto-create companies, enable “Automatically create and associate companies with contacts” in CRM settings or re-import using the “Two objects” option with a Company Domain Name column.
Frequently Asked Questions
Can I import a VCF file directly to HubSpot?
No. HubSpot does not accept VCF files. You must convert VCF to CSV or XLSX first, then import the spreadsheet. The HubSpot Ideas Forum has a long-running feature request for direct VCF import, but it has not been implemented.
Can I import VCF contacts from my phone to HubSpot?
Yes, using the HubSpot mobile app. First import the VCF to your phone contacts, then open the HubSpot app, tap Create, Contact and select “Import from device contacts”. The app pulls contacts from your phone’s address book. HubSpot can also scan business cards and QR codes (in vCard format) directly on iOS 16+ and Android.
How do I handle VCF contacts that have multiple phone numbers?
HubSpot has separate properties for Phone Number, Mobile Phone Number and Fax Number. When converting VCF to CSV, create separate columns for each phone type. Map them to the corresponding HubSpot properties during import.
Can I import VCF contacts as Leads instead of Contacts?
HubSpot does not have a separate Lead object. All people are stored as Contacts. You can set the “Lead Status” property during import by adding a “Lead Status” column to your CSV with values like “New”, “Open”, “In Progress” or “Unqualified”. You can also assign a Lifecycle Stage (e.g., “Lead” or “Marketing Qualified Lead”) via a Lifecycle Stage column.
What happens if I import the same VCF contacts twice?
If the contacts have email addresses, HubSpot uses email to deduplicate. The second import updates the existing records rather than creating duplicates. If email addresses are missing, HubSpot creates new records each time, which leads to duplicate entries.
Conclusion
Last verified: February 2026. Tested with HubSpot Free, Starter, and Professional plans. CSV import tested via the HubSpot web import tool and Imports API v3. Mobile import tested on HubSpot iOS app 10.x and Android app 10.x. VCF files tested from iCloud, Google Contacts, Outlook and Samsung exports across vCard 2.1, 3.0 and 4.0.
To import contacts to HubSpot from a VCF file, convert the VCF to CSV first (Method 1), rename column headers to match HubSpot property names, and import via Data Management. For a small batch of contacts from a trade show or event, the HubSpot mobile app (Method 2) can import contacts directly from your phone after you load the VCF onto your device. For automated pipelines, the HubSpot Imports API (Method 3) handles programmatic uploads.
Three things to remember: HubSpot requires CSV/XLSX, not VCF (convert first), use Email as the column header for automatic deduplication and company association and split the full name into separate First Name and Last Name columns before importing.