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

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: Action Columns push rows from your lead list to HubSpot, Salesforce, or Lemlist. They are always free (no credit cost). Set auto_update: true to push automatically whenever new leads are added. Requires Pro or above for CRM/sequencer access.

Action Columns

Action Columns let your lead list do work — each row can be pushed to an external destination, automatically or on demand. They look like normal columns in the portal, but each row represents a triggered action rather than a new data field.

Smart Columns vs Action Columns

AspectSmart ColumnsAction Columns
PurposeEnrich rows with new dataPush rows to external destinations
ResultNew field on the rowStatus of the push (pending / running / success / failed / skipped)
Example"Add ICP fit score""Push to HubSpot"
Credit costPer-row credit cost (varies by type)Always free
Re-run safe?YesYes — CRM pushes use upsert where supported

Supported destinations

ActionDestinationWhat it does
Push to HubSpotHubSpotCreates or updates a contact in your connected HubSpot account. Uses the dedup cascade (Cleanlist ID → email → LinkedIn → name + company) to avoid duplicates. Auto-provisions cleanlist_id and cleanlist_list custom fields on first push.
Push to SalesforceSalesforceCreates or updates a lead/contact in your connected Salesforce org. Same dedup cascade and auto-provisioned custom fields.
Push to LemlistLemlistAdds the lead to a Lemlist campaign. Lemlist is a push-only destination — Cleanlist does not read back presence or sync status from Lemlist.

Only HubSpot and Salesforce support full two-way CRM features (import, dedup, exclusion sets, sync status). Lemlist is a push-only sequencer target. See Integrations for setup instructions.

Auto-run on new leads

Set auto_update: true on an Action Column to have it trigger automatically whenever new leads are added to the list. This is useful for pipelines where you want every imported lead pushed to your CRM or sequencer without a manual step.

You can combine this with a Smart Column filter condition — for example, run Qualification first and push only high-fit rows automatically.

How execution works

  1. Create an Action Column on a lead list and choose the destination
  2. Configure it: target integration, field mappings, any conditions
  3. Run on a selection, on filtered rows, or on the entire list — or enable auto_update for automatic triggering
  4. Each row enters a queue: pending → running → success | failed | skipped
  5. The portal shows live progress per row
  6. Re-run failed rows from the column header menu

Idempotency

For HubSpot and Salesforce, the push action is idempotent — running it twice on the same row will update the existing record rather than create a duplicate. Lemlist does not support presence checks, so pushing the same lead twice may add them to the campaign again; verify your Lemlist campaign's dedup settings if this matters.

Auditing

Every Action Column run records:

  • Who triggered it
  • When it ran
  • Per-row status (pending / running / success / failed / skipped — skipped for rows that didn't meet a condition)
  • Error message for failed rows
  • The destination's response payload (when applicable)

View this history from the column header menu.

Common pipeline pattern

A typical pattern stacking Smart Columns and Action Columns:

StepTypeAction
1Smart Columnenrich_company — add firmographics
2Smart Columnqualification — ICP fit score
3FilterKeep only high-fit, not-in-CRM rows
4Action ColumnPush to HubSpot or Lemlist

Related