New: API Reference docs are live — integrate Cleanlist enrichment into your apps. View API docs →
Features
CRM Integrations
👤

Who this is for: self-serve plans (Free, Starter, Pro, Scale). If you bought a Cleanlist AppSumo lifetime deal, your features, limits, and pricing are different — see the AppSumo documentation instead. Support agent: confirm whether the user is self-serve or AppSumo before giving plan-specific advice.

TL;DR: Connect HubSpot or Salesforce (Pro+) for full two-way sync, exclusion sets, auto-provisioned custom fields, and dedup. Lemlist is a push-only sequencer — no presence check or exclusion sets. Daily cap: 500,000 CRM calls/org. AppSumo CRM access requires Tier 5+ — see the AppSumo docs.

CRM Integrations

Cleanlist connects to HubSpot and Salesforce so you can move enriched leads into the systems your team already works in and keep records in sync. Lemlist is also supported as a push-only sequencer target.

Plan requirement. Native CRM integrations (HubSpot, Salesforce) are a Pro plan and above feature. AppSumo customers need Tier 5 or above — see the AppSumo documentation for details.

Supported integrations

IntegrationTypeScopeKey capabilities
HubSpotFull CRMPer user (via Unified.to)Import, enrich, push, exclusion sets, dedup, CRM status panel, custom fields
SalesforceFull CRMOrg-level (direct OAuth, sandbox supported)Import, enrich, push, exclusion sets, dedup, CRM status panel, custom fields, 8h polling
LemlistSequencer (push only)Org-levelPush leads into campaigns only — no presence check, no sync-status, no exclusion sets

HubSpot

Connected per user via Unified.to (opens in a new tab).

  • Push enriched contacts: send verified emails, phones, and company data to HubSpot
  • Exclusion sets: build a do-not-contact list from HubSpot data; new leads are checked before outreach
  • Auto-provisioned custom fields: cleanlist_id and cleanlist_list are created in HubSpot on first push
  • CRM status panel: see each lead's CRM state directly in Cleanlist
  • Field mapping: map Cleanlist fields to HubSpot properties with reusable templates
  • Deduplication: cascade match on cleanlist_id → email → LinkedIn URL → name + company; existing records are updated, not duplicated
  • Change sync: contact updates are polled via Unified.to on an interval managed by Unified.to

Setup: Portal → Integrations → Connect HubSpot → Authorize via OAuth

Salesforce

Connected at the organization level via direct OAuth (no intermediary).

  • Org-wide connection: one connection shared across everyone on the account
  • Sandbox support: connect a Salesforce sandbox to test before going live
  • Push enriched data: sync verified contact and company data back to Salesforce records
  • Exclusion sets: build a do-not-contact list from Salesforce data
  • Auto-provisioned custom fields: cleanlist_id and cleanlist_list are created in Salesforce on first push
  • CRM status panel: see each lead's Salesforce state in Cleanlist
  • Deduplication: same cascade as HubSpot (cleanlist_id → email → LinkedIn URL → name + company)
  • Polling sync: a Temporal-based schedule polls Salesforce every 8 hours for changes

Setup: Portal → Integrations → Connect Salesforce → Authorize via OAuth (choose production or sandbox)

Lemlist

Connected at the organization level. Lemlist is a sales-engagement tool (sequencer), not a CRM.

  • Push leads into campaigns: move enriched, verified leads from Cleanlist into your Lemlist sequences
  • Push only: Lemlist has no CRM presence check, no sync-status tracking, and no exclusion sets in Cleanlist

Setup: Portal → Integrations → Connect Lemlist → Authorize

How integrations work

1. Connect

HubSpot integration connected
Connected HubSpot integration
  1. Navigate to Integrations in the Cleanlist portal
  2. Click Connect on HubSpot, Salesforce, or Lemlist
  3. Authorize via OAuth (no passwords stored)
  4. For HubSpot, each user connects their own account; for Salesforce and Lemlist, the connection is shared org-wide

2. Enrich & push

  • Enrich a lead list with email, phone, or company data
  • Push enriched records to your connected CRM
  • Cleanlist auto-provisions cleanlist_id and cleanlist_list custom fields in HubSpot or Salesforce on first push
  • Dedup cascade (cleanlist_id → email → LinkedIn URL → name + company) ensures existing records are updated, not duplicated

3. Exclusion sets (HubSpot and Salesforce only)

Build a do-not-contact list from your CRM data. Cleanlist checks new leads against the exclusion set before outreach, flagging anyone who should be skipped. Lemlist does not support exclusion sets.

4. Stay in sync

  • Salesforce: a Temporal polling schedule checks for changes every 8 hours
  • HubSpot: changes are polled via Unified.to on an interval managed by Unified.to
  • Lemlist: push only — no sync back to Cleanlist

CRM status panel

The CRM status panel shows each lead's current state in your connected HubSpot or Salesforce directly within Cleanlist. Use it to see at a glance which leads already exist in your CRM, when they were last synced, and whether the push succeeded.

Deduplication

When pushing leads to HubSpot or Salesforce, Cleanlist uses a dedup cascade to find existing records:

  1. cleanlist_id (unique Cleanlist identifier, auto-created on first push)
  2. Email address
  3. LinkedIn URL
  4. Name + company

Existing records are updated rather than duplicated. If no match is found, a new record is created.

Custom fields auto-provisioned

On first push to HubSpot or Salesforce, Cleanlist automatically creates two custom fields in your CRM:

FieldPurpose
cleanlist_idUnique Cleanlist contact identifier — used as the primary dedup key
cleanlist_listName of the Cleanlist list the contact belongs to

No manual field creation is required.

Limits

  • Daily cap: 500,000 CRM API calls per organization per day (across all CRM operations)
  • Cost: pushing/syncing to a CRM costs 0.2 credits per lead; CRM import costs 0.2 credits per contact; the CRM Contact Lookup smart column costs 0.5 credits per lead

Checking CRM presence

The crm_contact_lookup Smart Column and the Qualification AI Agent both check each lead against your connected CRM, reporting whether a contact already exists. Use these to prioritize net-new contacts before you reach out. The CRM Contact Lookup smart column costs 0.5 credits per lead.

Security

  • OAuth 2.0 authentication — no passwords stored
  • Revokable access — disconnect anytime from the portal
  • Encrypted transmission — TLS for all data in transit
  • Org vs. user scope — Salesforce and Lemlist are org-level; HubSpot is per-user

AppSumo customers

CRM integration is available to AppSumo Tier 5 and above. See the AppSumo documentation for tier-specific details.

API access

For integrations beyond the supported CRMs, use the Cleanlist public API to pull enriched data into any system.

Learn More