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
| Integration | Type | Scope | Key capabilities |
|---|---|---|---|
| HubSpot | Full CRM | Per user (via Unified.to) | Import, enrich, push, exclusion sets, dedup, CRM status panel, custom fields |
| Salesforce | Full CRM | Org-level (direct OAuth, sandbox supported) | Import, enrich, push, exclusion sets, dedup, CRM status panel, custom fields, 8h polling |
| Lemlist | Sequencer (push only) | Org-level | Push 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_idandcleanlist_listare 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_idandcleanlist_listare 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

- Navigate to Integrations in the Cleanlist portal
- Click Connect on HubSpot, Salesforce, or Lemlist
- Authorize via OAuth (no passwords stored)
- 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_idandcleanlist_listcustom 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:
cleanlist_id(unique Cleanlist identifier, auto-created on first push)- Email address
- LinkedIn URL
- 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:
| 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 |
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
- CRM integration setup guide
- AI Agents — Qualification includes a CRM presence check
- Smart Columns —
crm_contact_lookupchecks CRM presence across a list - Credit pricing