TL;DR
If data isn't syncing from lemlist to HubSpot, verify the CRM integration is enabled in lemlist Settings → Integrations → HubSpot. Create custom fields in HubSpot under Contacts before importing from CSV or API sources, lemlist can only map fields that exist in HubSpot. When importing from HubSpot to lemlist, add fields as columns in your HubSpot list view before importing, only visible columns are pulled into lemlist.
Additionally, ensure that LinkedIn URLs used for synchronization follow the naming conventions: linkedinurl or lemlistlinkedinurl. Task synchronization relies on properly configured user mapping. If sync still doesn't behave as expected, check Settings → Integrations → HubSpot → Logs to review the sync states and detailed error messages.
Symptoms
Custom fields from lemlist don't appear in HubSpot contacts
Data imported from CSV or API to lemlist doesn't sync to HubSpot
Fields show as empty in HubSpot even though they contain data in lemlist
When importing from HubSpot to lemlist, custom fields are missing
Error: "Field not found" or "Unable to map field" during import
LinkedIn URLs do not sync properly if naming conventions (e.g.,
linkedinurl,lemlistlinkedinurl) are incorrectTask synchronization between lemlist and HubSpot fails due to missing user mappings
Tasks do not sync if they are not marked as "done" or manually completed on either platform
Retrospective tasks created before the integration setup do not sync retroactively
Syncing issues arise in cases of incorrect company domain linkage
Logs show statuses such as Aborted or messages like
Not found, no CRM matchorCONTACT_FIND_FIRST
Environment
Applies to:
lemlist users with HubSpot integration enabled
Users importing leads from LinkedIn, Sales Navigator, CSV, API, or directly from HubSpot
Requires admin access to HubSpot to create custom properties
User mapping must be configured correctly for task synchronization between lemlist and HubSpot
Requires adequate permissions in HubSpot, including app marketplace access, bulk delete, and property editing capabilities
Step-by-Step Fix
Scenario 1: Syncing from lemlist to HubSpot (LinkedIn/Sales Navigator imports)
Verify HubSpot integration is enabled
Go to Settings → Integrations → HubSpot in lemlist. Confirm the integration status shows Connected and the option Create leads in HubSpot is enabled.
✅ Verify: Integration shows "Connected" and "Create leads in HubSpot" is toggled on.
2. Check if LinkedIn fields were created in HubSpot
When importing leads from LinkedIn or Sales Navigator via the Chrome extension, lemlist automatically creates fields in HubSpot (e.g., linkedin_url, company_linkedin, position).
Go to Contacts in HubSpot. Click on your contact list. Click Actions → Edit Columns. In the search bar, type "lemlist". All fields created by lemlist will appear.
✅ Verify: Fields like "lemlist lead status," "lemlist campaign," and LinkedIn-scraped fields (e.g., "position," "linkedin_url") appear in the list.
3. Add missing fields as columns in HubSpot
If fields aren't visible, they may exist but aren't added to your list view. In the Edit Columns window, select the fields you want to display. Click Save.
✅ Verify: Fields now appear as columns in your HubSpot contact list, and data from lemlist populates them.
Scenario 2: Syncing from lemlist to HubSpot (CSV, manual, or API imports)
Create custom fields in HubSpot before importing
If you import leads from CSV, manual entry, or API, lemlist doesn't know which HubSpot fields to map to. You must create custom properties in HubSpot first.
Go to Settings in HubSpot → Properties → Contact properties. Click Create property.
Example: If your CSV has a field called DataSource, create a custom property in HubSpot named DataSource.
Object type: Contact
Field type: Single-line text (or choose appropriate type)
Field label: DataSource
Internal name: datasource
Click Create.
✅ Verify: The custom property appears in HubSpot under Contact properties.
2. Create the same custom field in lemlist
Go to lemlist Settings → Integrations → HubSpot → Field Mapping. Add a new field mapping:
lemlist field:
dataSource(or your custom variable name)HubSpot field:
datasource(the internal name from step 1)
Click Save.
✅ Verify: Field mapping shows in lemlist HubSpot settings.
3. Import leads and verify sync
Import your CSV or add leads manually in lemlist. Wait a few minutes for sync to complete. Go to HubSpot → Contacts and open a synced contact. Check that the custom field (e.g., DataSource) is populated.
✅ Verify: Custom field data from lemlist appears in HubSpot contact record.
Scenario 3: Importing from HubSpot to lemlist
Add fields as columns in HubSpot list view before importing
lemlist only imports fields that are visible as columns in your HubSpot list view. If a field isn't added as a column, it won't be pulled into lemlist.
Go to Contacts in HubSpot. Open the list you want to import. Click Actions → Edit Columns. Add the fields you want to import (e.g., State/Region, custom properties). Click Save.
✅ Verify: Fields appear as columns in your HubSpot contact list.
2. Import the list into lemlist
Go to your lemlist campaign → Leads → Import → HubSpot. Select the HubSpot list you prepared. Click Import.
✅ Verify: Imported leads in lemlist include all fields that were visible as columns in HubSpot.
3. Check imported data in lemlist
Open a lead in lemlist and verify the custom fields (e.g., State/Region, custom properties) are populated.
✅ Verify: All expected fields from HubSpot appear in lemlist lead details.
Scenario 4: How to read sync logs
Open the HubSpot sync logs in lemlist
From your lemlist workspace, click your profile in the bottom-left corner and select Settings.
In Settings, go to Integrations → HubSpot, then open the Logs tab. This is where you can review HubSpot sync states and detailed error messages.
Use the filters to narrow results by Date and Status (Done, Awaiting, or Aborted).
✅ Verify: You can see individual sync events for contacts, companies, tasks, or other objects.
2. Understand what each log row means
Each row represents one sync action. Review these columns:
Category: what is syncing, such as Contact, Company, or Task
Direction:lemlist → HubSpot or HubSpot → lemlist
State: the result of the sync attempt
Details: explanation of the success, skip, or error
✅ Verify: You can identify whether the issue is related to matching, creation, or field mapping.
3. Interpret the sync statuses
Done → The sync action completed successfully.
Awaiting → The sync is still processing. Wait a few minutes and refresh the logs.
Aborted → The sync failed and needs attention. This usually points to a setup issue such as missing identifiers, required fields, or incorrect field mapping.
✅ Verify: If a row remains in Awaiting, give the system a few minutes before troubleshooting further. If it shows Aborted, inspect the Details column.
4. Understand common error messages
Not found, no CRM match
HubSpot couldn't find a matching record for that sync action.
Fix: Make sure the contact exists in HubSpot and verify the identifier being used, such as email, LinkedIn URL, or company domain.
CONTACT_FIND_FIRST
The contact must already exist in HubSpot before lemlist can update it.
Fix: Enable contact creation in the HubSpot integration settings, or create the contact manually in HubSpot first.
WEBHOOK_OPPORTUNITY_NOT_EXISTING_ON_LEMLIST
lemlist is trying to sync a deal or opportunity that doesn't exist in lemlist.
Fix: Check your deal settings and make sure the deal exists in lemlist or is triggered correctly.
Done + Not found, no CRM match
This combination usually means lemlist tried to find the record, didn't find it, and then either created it or skipped creation based on your current integration settings.
Fix: Review your contact creation rules, mandatory properties, and source-of-truth settings to confirm whether creation is allowed for that type of record.
✅ Verify: After correcting the configuration, trigger a new sync event and confirm the next log entry no longer shows the same message.
5. Use logs to isolate the root cause
If sync is failing, the logs should be your first checkpoint. In most cases, issues come from one of these causes:
Field mapping is missing or incorrect
The contact doesn't have a valid identifier
Required properties are missing
A task, company, or deal is being synced without the necessary matching record
✅ Verify: Once the root cause is corrected, new log entries should show Done.
Confirm It's Fixed
✓ HubSpot integration shows Connected in lemlist Settings → Integrations
✓ Fields created by lemlist (LinkedIn imports) appear in HubSpot under Contacts → Edit Columns → search "lemlist"
✓ Custom fields from CSV/API imports sync to HubSpot after creating matching properties
✓ Importing from HubSpot to lemlist pulls all fields that were added as columns in HubSpot list view
✓ HubSpot sync logs show Done for recent sync actions, or previously Aborted events no longer reappear after the fix
✓ Data appears correctly in both lemlist and HubSpot
Why It Happens / Prevent This
lemlist → HubSpot sync fails when:
Fields don't exist in HubSpot: lemlist can't map data to fields that don't exist. Always create custom properties in HubSpot before importing from CSV/API.
Fields not added as columns: Even if fields exist, they must be added to your HubSpot list view for data to appear.
Unsubscribe-related activity expectations: At the moment, we don't push to CRMs when a lead is added to the unsubscribe section. We can only sync activity if the lead manually unsubscribed himself from the campaign.
Field mapping not configured: For CSV/API imports, you must manually map lemlist custom variables to HubSpot properties in lemlist Settings → Integrations → HubSpot → Field Mapping.
Missing identifiers: If a contact has no valid identifier such as email, LinkedIn URL, or company domain, HubSpot may not be able to match the record correctly.
Required properties block creation: If mandatory properties are configured in advanced settings, lemlist will only create contacts or companies in HubSpot when those fields are filled in.
HubSpot → lemlist import fails when:
Fields not visible as columns: lemlist only imports fields that are visible in your HubSpot list view. If a field isn't a column, it won't be imported.
To prevent this:
Create custom properties in HubSpot before importing from non-LinkedIn sources
Always add fields as columns in HubSpot list view before importing to lemlist
Configure field mapping in lemlist for custom variables
Test sync with a small sample before bulk imports
Tasks must be explicitly marked as completed or "done" to ensure sync between lemlist and HubSpot
Company domains must match correctly to avoid mapping errors during synchronization
Retroactive syncing is not supported; changes only apply to future syncing behaviors
Configure user mapping to ensure activity and task consistency between lemlist and HubSpot
Check sync logs first when troubleshooting, especially the Details column and statuses Done, Awaiting, and Aborted
Alternatives
Use default fields only: Stick to HubSpot's default fields (first name, last name, email, company, phone, job title, etc.) to avoid field mapping issues.
Manual data entry: If sync continues to fail, manually copy-paste data between lemlist and HubSpot as a temporary workaround.
Use Zapier: Set up a Zap to sync custom fields between lemlist and HubSpot if native integration doesn't support your use case.




