Skip to main content

Integrate HubSpot with lemlist

Discover how the latest update to HubSpot's integration works and what new features you can expect to enhance your experience! πŸ”₯

Updated this week

Learning Objective

By the end of this guide, you'll know how to access the HubSpot integration in lemlist at the team level, configure general sync settings, set up field mapping (including custom fields and sync direction), use Advanced settings to control when records can be created in HubSpot and define default property values for new records, map users to preserve activity ownership, choose which activities are logged in HubSpot, and use Logs to troubleshoot sync behavior.


Why This Matters

Managing leads across lemlist and HubSpot manually creates inefficiency and data inconsistencies. Without integration:

  • Campaign activities don't appear in HubSpot

  • Contact data stays siloed between platforms

  • You manually update CRM records after every campaign action

  • Activity ownership gets lost or misattributed

The HubSpot integration:

  • βœ… Syncs contacts and companies between platforms

  • βœ… Logs activities in HubSpot automatically (based on your Activities settings)

  • βœ… Maintains ownership through user mapping

  • βœ… Works at team level – Configure once, applies to all campaigns


Prerequisites

Before setting up HubSpot integration:

  • You have HubSpot admin access to authorize the integration and manage properties/users

  • You have lemlist admin access to configure team-level settings

  • You know which fields to sync between lemlist and HubSpot

  • You're ready to map users between both platforms


HubSpot integration setup checklist

Use this checklist to make sure your HubSpot integration is fully configured before launching any campaigns.

  • ☐ HubSpot shows as Connected in Settings β†’ Integrations β†’ HubSpot

  • ☐ Contact creation is enabled and the trigger is set

  • ☐ Field mapping is configured for all important fields (name, email, company, etc.)

  • ☐ Custom fields are mapped if you use any

  • ☐ Sync direction is set for each field

  • ☐ Fields are mapped before importing leads or launching campaigns (field mapping is not retroactive)

  • ☐ Users are mapped in the User Mapping tab

  • ☐ Activity sync is configured in the Activities tab

  • ☐ Every contact has at least one identifier (email, LinkedIn URL, or company domain)

  • ☐ Mandatory properties are set if you want to control which contacts get created in HubSpot (Advanced Settings)


Key Concepts

Team-Level Integration

The HubSpot integration works at the team level. This means:

  • Configure settings once in team CRM settings

  • Settings apply to all campaigns and all users automatically

  • No need to manually connect each campaign

Exception: Deal creation triggers are configured at the campaign level (each campaign can have different deal triggers). Additionally, you can disable the 'push to CRM' option within the campaign settings to limit synchronizations for specific campaigns.

Contact-Based Integration

lemlist uses Contacts as the core object, not campaign-specific leads.

How it works:

  • A Contact represents a person (e.g., "John Smith")

  • That Contact can exist in multiple campaigns as different leads

  • HubSpot integration syncs at the Contact level, not lead level

Bi-Directional Sync

Field mapping supports bi-directional sync:

  • Changes in lemlist update HubSpot

  • Changes in HubSpot update lemlist

  • You can control sync direction per field (bi-sync, HubSpot priority, lemlist priority)

⏱️ Sync timing: Typically 2–10 minutes, though delays can occur with large data volumes or API congestion. Periodic syncs automatically refresh CRM data, ensuring up-to-date information in Lemlist campaigns. Dynamic updates from HubSpot lists reflect new contact additions or changes within the same timeframe.


Step 1: Open the HubSpot integration in lemlist

  1. Click your profile/name (bottom-left corner), then select Settings

    Open settings from your profile menu
  2. In the left sidebar, click Integrations, then select HubSpot

    Open the HubSpot integration from the Integrations menu

On the HubSpot page, confirm the integration shows Connected.


Step 2: Configure General Settings

Enable contact and company creation (and choose the trigger)

In General options, enable Create contacts and companies in HubSpot if they do not exist, then choose the trigger that will create/update records in HubSpot (for example, When they are created (or updated) in lemlist). For campaigns linked to dynamic HubSpot lists, contacts added to these lists are also synchronized automatically. Additionally, importing contacts based on specific HubSpot filters (e.g. by email verification status) enables targeted updates during periodic syncs.

Enable contact and company creation and choose the sync trigger

πŸ’‘ lemlist checks for existing contacts (by email) and companies (by domain/name) before creating new ones.


Step 3: Configure Advanced Settings

Configure Mandatory Properties

Open Advanced settings to manage the rules that control record creation in HubSpot.

What this does: This setting controls when lemlist is allowed to create a contact or company in HubSpot.

When enabled, lemlist will only create a contact or company if the required fields are filled in.

How to set it up:

  1. Click the Advanced settings tab

  2. Enable Only create contacts and companies in HubSpot if defined properties are not empty in lemlist

  3. Choose whether you want to apply the rule to Contacts or Companies

  4. Select the property or group of properties that must be present before lemlist can create the record

Open Advanced settings and configure mandatory property rules

Example: If you require Email and LinkedIn URL, a contact will be created in HubSpot only if both values are present.

What happens if a contact doesn't have a required field?

  • The contact won't be created in HubSpot

  • This remains true even if the contact is already in a campaign

  • This remains true even if the contact is active in lemlist

  • Other populated fields do not override the requirement

πŸ’‘ This is useful when you want a cleaner CRM and want to avoid pushing incomplete records into HubSpot.


Set default property values for newly created records

In the same Advanced settings tab, you can define default property values that lemlist will assign when it creates new records in HubSpot.

Use the object tabs to configure defaults for Contact, Company, or Deal, then click Add a default value.

This is useful when you want records created by lemlist to always include a value such as a lifecycle stage, lead source, or any other default HubSpot property.

Set default property values for newly created contacts companies or deals

Step 4: Configure Field Mapping

Field mapping tells lemlist which data to sync between platforms.

⚠️ If you skip field mapping or do it too late: your data may not appear in HubSpot correctly, values may sync into the wrong property, and sync errors can occur. Most importantly, field mapping is not retroactive in V1, so fields mapped after contacts are imported or campaigns are launched will not backfill existing records.

Access Field Mapping

In the HubSpot integration, click Field Mapping to view and manage mappings for your HubSpot objects (for example, Contacts)

Open the Field Mapping tab in the HubSpot integration

Set sync direction per field

For any mapped field, use the sync direction control (the arrows icon) to choose how values should sync.

  • Use HubSpot β†’ lemlist if HubSpot should control the value

  • Use lemlist β†’ HubSpot if lemlist should update HubSpot

  • Use 2-way sync only if both systems should update the field

πŸ‘‰ If you're unsure, keep HubSpot as the source of truth for most fields.

Choose the sync direction for a mapped field

Add a custom field to map (optional)

  1. Click Add a custom field

    Add a custom field in Field Mapping
  2. Enter a Field name, choose a Field type, then click Create field

    Create a custom contact field

After the field is created, map it to the matching HubSpot property and set the desired sync direction.

⚠️ Important: Do your field mapping before importing contacts or launching campaigns. Field mapping is not retroactive in V1, so existing data will not backfill if you map fields later.

Common field mapping mistakes:

  • Dropdown mismatch: Values must match exactly, including capitalization (for example, "TITLE" is not the same as "title")

  • Missing HubSpot property: The property must already exist in HubSpot before you map it

  • Late mapping: Mapping after import or campaign launch won't retroactively sync old values

πŸ’‘ Best practice: use text fields instead of dropdowns whenever possible.


Step 5: Configure User Mapping

User mapping ensures activities and contact ownership stay consistent between platforms.

Access User Mapping

In the HubSpot integration, click User Mapping

Open the User Mapping tab

Map lemlist users to HubSpot users

For each lemlist user row, select the matching HubSpot user from the dropdown on the right

Map a lemlist user to a HubSpot user

Auto-map users (optional)

If your lemlist users and HubSpot users share the same email addresses, click Auto map users to automatically map them based on email

Automatically map users based on matching email addresses

User mapping rules

Activity ownership:

  1. If the activity has a sender β†’ Use the sender's mapped HubSpot user

  2. If no sender β†’ Use the contact's owner (mapped via user mapping)

  3. If no owner β†’ Use the default HubSpot user (from General settings)

⚠️ You can map multiple lemlist users to one HubSpot user, but not the other way around.


Step 6: Configure Activity Sync

Control which lemlist activities sync to HubSpot.

Access Activities Settings

In the HubSpot integration, click Activities to view the activity types that can be logged in HubSpot

Open the Activities tab

Enable/disable activity types

Use the toggles to turn logging on or off for the activity types you want to store in HubSpot (for example, Email activities)

Enable or disable activity types for sync

Choose how an activity is stored in HubSpot

For each enabled activity, use the dropdown on the right to choose the HubSpot activity type (for example, store an event as Emails or as Notes)

Choose how an activity is stored in HubSpot

If you open the dropdown, select the destination type you want (for example, Notes)

Select a HubSpot activity type from the dropdown

⚠️ HubSpot doesn't allow third-party apps to store some events (like opens/clicks) as dedicated Email objects in all cases, so they may be stored as Notes depending on your configuration.

⚠️ Unsubscribe sync limitation: At the moment, lemlist doesn't push to CRMs when a lead is added to the Unsubscribe section. We can only sync unsubscribe activity if the lead manually unsubscribed from the campaign (for example, by clicking an unsubscribe link or using an unsubscribe mechanism in the message).


Step 7: Use Logs to troubleshoot

To review what the integration is syncing (and whether it succeeded or failed), open Logs, choose a date range, then click Refresh to reload results

Use Logs to filter sync results by date and refresh the list


How You'll Know It Worked

βœ“ HubSpot shows "Connected" in the HubSpot integration page

βœ“ Field mapping syncs data – Changes appear within 2–10 minutes (typical)

βœ“ Activities log in HubSpot – Based on your Activities settings

βœ“ User mapping maintains ownership – Activities and contacts show the correct HubSpot user

βœ“ Logs show successful sync entries – And surface errors when something fails


Troubleshooting

Issue: HubSpot shows as connected, but fields aren’t syncing

Root cause: Incorrect mapping, incorrect sync direction, missing HubSpot properties, or non-retroactive behavior.

Fix:

  • Verify the lemlist field is mapped to the correct HubSpot property

  • Check the sync direction for that field

  • Make sure the HubSpot property already exists

  • Remember: Field mapping is not retroactive in V1, so values won't backfill if you mapped the field after import or after launching a campaign

  • Check Logs for errors or aborted entries

  • If you encounter 'this HubSpot is already on another user' error, disconnect the account from the other user before retrying.

  • If selected filters or lists are paused in HubSpot, ensure they are reactivated for proper synchronization.

  • Verify the 'Sync Contacts' option is enabled in lemlist's HubSpot settings to allow automatic imports of new contacts from HubSpot lists.

  • If contacts were present in HubSpot before linking to lemlist, manually import these using the CRM import option.

Issue: Contacts are not being created in HubSpot

Root cause: Mandatory properties are enabled and the contact does not meet the required field conditions.

Fix:

  • Review your Mandatory properties configuration in Advanced settings

  • Check whether the contact has all required values (for example, Email and LinkedIn URL)

  • If a required field is missing, the contact will not be created in HubSpot until that field is populated

  • Use Logs to confirm whether the record was skipped or the sync was aborted

Issue: Activities appear under the wrong HubSpot user

Root cause: User mapping missing or incorrect.

Fix:

  • Go to User Mapping and map each lemlist user to the correct HubSpot user

  • Use Auto map users if emails match

  • If no mapping exists, ownership falls back to the default HubSpot user (from General settings)

Issue: Sync delays longer than 10 minutes

Root cause: Large data volumes, API congestion, or HubSpot rate limits.

Fix:

  • Wait up to 30 minutes during high-volume periods

  • Check Logs for repeated failures

  • Contact lemlist support if delays persist beyond 1 hour

  • Be aware that a single HubSpot account cannot connect to multiple lemlist teams or accounts. For campaigns linked with ongoing HubSpot lists, lemlist ensures a continuous alignment by adding new contacts when they match the filter criteria and pausing contacts that no longer fulfill these conditions.


Optimization Tips

Map fields before importing leads: Field mapping is not retroactive, so set up your mappings before importing contacts or launching campaigns.

Always include at least one identifier per contact: Email is best, but LinkedIn URL or company domain also help matching.

Prefer text fields over dropdowns: This reduces sync failures caused by value mismatches.

Review user mapping quarterly: Update mappings when teammates join/leave.

Use Logs regularly: Logs are the fastest way to diagnose why a record didn’t sync.

Did this answer your question?