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: Cleanlist integrates with HubSpot (via Unified.to, per user) and Salesforce (direct OAuth, org-level, sandbox supported, 8-hour polling) as full CRMs. Lemlist is a push-only sequencer with no presence check or exclusion sets. CRM integrations require Pro or above. On first push, cleanlist_id and cleanlist_list custom fields are auto-provisioned. Dedup cascade: cleanlist_id → email → LinkedIn → name + company.
CRM Integration Setup
Plan requirement. CRM integrations require a Pro plan or above. AppSumo customers need Tier 5 or above — see the AppSumo documentation.
Connect Cleanlist with your CRM or sales-engagement tool to push enriched leads without manual exports — and to see which leads already exist in your CRM. This guide covers all three supported integrations.
Supported integrations
| Integration | Type | Connect method | Scope | Exclusion sets | Dedup / custom fields |
|---|---|---|---|---|---|
| HubSpot | CRM (full) | OAuth via Unified.to | Per user | Yes | Yes |
| Salesforce | CRM (full) | Direct OAuth (sandbox supported) | Org-level | Yes | Yes |
| Lemlist | Sequencer (push only) | API key | Org-level | No | No |
All three are connected from the Integrations page in the Cleanlist portal.
HubSpot
HubSpot connects through Unified.to and is scoped per user — each teammate connects their own HubSpot account.
Open Integrations and connect HubSpot
Go to the Integrations page, find the HubSpot card, and click Connect.
Authorize via OAuth
A HubSpot OAuth window opens. Log in, review the requested CRM and marketing-list permissions, and grant access. No passwords are stored — Cleanlist holds only the connection authorized through Unified.to.
Confirm the connection
You're redirected back to Cleanlist and the HubSpot card shows as connected.
What you can do with HubSpot:
- Push enriched leads from a list to HubSpot as contacts, with field mapping
- Save reusable field-mapping templates (Cleanlist fields → HubSpot properties)
- Import members from HubSpot marketing lists into a Cleanlist list
- Build exclusion sets from HubSpot data to flag do-not-contact leads
- See each lead's CRM state in the CRM status panel
cleanlist_idandcleanlist_listcustom fields are auto-provisioned on first push- Dedup cascade:
cleanlist_id→ email → LinkedIn URL → name + company
Sync: HubSpot changes are polled via Unified.to on an interval managed by Unified.to.
Salesforce
Salesforce connects via direct OAuth at the organization level — one connection serves the whole org. Sandbox environments are supported.
Open Integrations and connect Salesforce
Go to the Integrations page and click Connect on the Salesforce card.
Choose production or sandbox
Pick your environment: production (login.salesforce.com) or sandbox (test.salesforce.com).
Authorize via OAuth
Log in to Salesforce and approve access (api, refresh, and offline access scopes). Because it's a direct OAuth connection, Cleanlist refreshes the token automatically as needed.
What you can do with Salesforce:
- Push enriched leads to Salesforce as Contacts or Leads (choose the sObject type when pushing)
- Enable sync on a list so new and updated records flow in
- Build exclusion sets from Salesforce data to flag do-not-contact leads
- See each lead's Salesforce state in the CRM status panel
cleanlist_idandcleanlist_listcustom fields are auto-provisioned on first push- Dedup cascade:
cleanlist_id→ email → LinkedIn URL → name + company
Sync cadence: Salesforce lists with sync enabled are polled by a Temporal schedule on an 8-hour interval, importing records created or updated since the last poll.
Org-level connections (Salesforce and Lemlist) can only be disconnected by the user who originally connected them.
Lemlist
Lemlist is a sales-engagement / sequencer tool. It connects at the organization level using an API key (no OAuth).
Open Integrations and connect Lemlist
Go to the Integrations page and click Connect on the Lemlist card.
Paste your API key
Enter your Lemlist API key in the dialog. The connection is created for your whole organization.
What you can do with Lemlist:
- Push enriched leads into a Lemlist campaign (provide the campaign ID when pushing leads)
Lemlist is push-only. There are no CRM presence checks, no sync-status tracking, and no exclusion sets for Lemlist in Cleanlist.
Pushing leads to your CRM
Once connected, push enriched leads from any list:
Select leads
Open a lead list and select the leads you want to send.
Choose the destination
Pick the connected integration (HubSpot, Salesforce, or Lemlist). For Salesforce, choose Contact or Lead; for Lemlist, choose the target campaign.
Map fields and confirm
For HubSpot and Salesforce, map Cleanlist fields to your CRM properties (or apply a saved mapping template), then confirm.
Cost: pushing or syncing to a CRM costs 0.2 credits per lead.
Auto-provisioned custom fields
On the first push to HubSpot or Salesforce, Cleanlist automatically creates two custom fields in your CRM — no manual setup required:
| Field | Purpose |
|---|---|
cleanlist_id | Unique Cleanlist contact identifier — used as the primary dedup key |
cleanlist_list | Name of the Cleanlist list the contact belongs to |
These fields appear in your CRM after the first push and are used by subsequent dedup checks.
Deduplication cascade
When pushing to HubSpot or Salesforce, Cleanlist checks for existing records in this order:
cleanlist_id(set on first push)- Email address
- LinkedIn URL
- Name + company
Existing records are updated, not duplicated. If no match is found, a new record is created.
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. This feature is available for HubSpot and Salesforce only — Lemlist does not support exclusion sets.
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.
Checking CRM presence
The Qualification agent checks each lead against your connected CRM — as part of its ICP scoring — and reports whether the contact already exists.
- Matches on:
cleanlist_id, email, LinkedIn URL, or name + company - Object type: Contact or Lead
Add the Qualification agent from the column menu on any lead list to score fit and check CRM presence in one pass. The crm_contact_lookup Smart Column also lets you run a standalone CRM check across a list. Read more in AI Agents.
Limits
- Daily cap: 500,000 CRM API calls per organization per day
AppSumo customers
CRM integration is available to AppSumo Tier 5 and above. See the AppSumo documentation for details.
Disconnecting an integration
To disconnect, go to the Integrations page, find the connected integration, and click Disconnect. For Salesforce, disconnecting also cancels its polling schedules and revokes the token. Data already in your CRM is unchanged.
Learn More
- Integrations feature overview
- Smart Columns —
crm_contact_lookupchecks CRM presence across a list - AI Agents — Qualification includes a CRM presence check
- Export your data
- Manage lead lists