New: meet Clu, and send email, LinkedIn and call steps with Sequences. Watch the videos →
Features
Play Steps Reference
👤

Who this is for: self-serve plans (Free, Starter, Pro, Enterprise). 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: Add steps with Add step on the play canvas. Steps are grouped as Source, Enrich, AI, Logic, CRM and Output. Only Enrich, Validate and the Agents step (skills) cost credits; everything else is free. Each step card shows its price, for example "1 /record". Approve puts a person in the loop, and the Webhook step authenticates with Secrets saved by an admin.

Play steps reference

Each record that enters a play runs through its steps in order. Clu adds and configures steps when it builds a play, and you can add or change them yourself with Add step on the canvas. Each step card shows its cost per record or per company.

All steps at a glance

CategoryStepWhat it doesCredits
SourceFind PeopleFind matching people at each companyFree
SourceGet companyTurn people into one record per companyFree
EnrichEnrichFind emails, phones, and profile dataPer result, see below
EnrichValidateVerify email and phone quality0.5 per check
EnrichFind meetingsNext and last Google Calendar meeting with each recordFree
EnrichGet Fathom call notesRead the latest Fathom call: summary and action itemsFree
AIAgentsRun skills on each recordPer skill, see below
LogicBranchRoute records down different pathsFree
LogicApproveAsk a person before records continueFree
LogicWaitResume each record after a time or on a dateFree
LogicCodeCompute typed outputs from declared record fieldsFree
LogicHand offSend records to another play of this agentFree
CRMCRM ActionRead CRM data or apply a saved CRM actionFree
CRMReview duplicates / Merge duplicatesDuplicate cleanup onlyFree
OutputAdd to sequenceAdd people to a sequenceFree
OutputNotifySend a run summary to Slack or emailFree
OutputWebhookSend records to an https endpointFree
OutputExport to Google SheetsAdd or update rows in a Google SheetFree
OutputCreate a Google DocCreate a doc for each recordFree
OutputAdd a page to a Notion database / Update a Notion pageAdd or update a Notion page for each recordFree

Get company, Approve, Wait, Code, Webhook and Hand off work only in a play that belongs to an agent, not in a library play.

Source steps

Find People

Finds people matching your filters at each company the play is working on. People per company: 1 to 25 (default 10). Free.

Get company

Turns people into one record per company, so later steps (for example a Research skill on the company) run once per company instead of once per person. Company source: Employer or CRM account. Free.

Enrich steps

Enrich

OptionCredits
Work email1 per email found
Phone10 per phone found
Profile0.5 when found, free when an email or phone is also found
Company1 per company
Mobile only (Phone option, agent plays)Adds a line check, 0.5 per number
Find LinkedIn from email (agent plays)1 per attempt
Personal email (agent plays)1.5 per completed attempt, found or not

Nothing is charged for an email, phone or profile that isn't found. See Waterfall enrichment.

Validate

Verify email and Verify phone, 0.5 credits each per record.

Find meetings and Get Fathom call notes

Find meetings adds the next and last Google Calendar meeting with each record. Get Fathom call notes adds the latest Fathom call's summary and action items. Both are free and need the app connected. See Google, Airtable, Notion and Fathom.

AI: the Agents step

The Agents step runs one or more skills on each record:

SkillWhat it returnsCredits per record
ResearchLive web research on the company or contactFrom your workspace's estimate (defaults about 6.3 contact, 12.2 both, 17.8 company)
QualificationICP fit score, verdict, reasons and CRM statusFrom your workspace's estimate (default about 0.6)
Employment checkWhether the person still works at the company, and where they wentUp to 3.5, billed after the check for the lookups made
WriteCopy written for the record. Kinds: First line, Email, LinkedIn note, Call opener, Account brief, CRM note3
Your saved per-record skillsThe outputs you definedFrom the prompt's estimate (about 0.2 to 0.6)
Agent instructionsThe agent's own instructions run on each record, with optional tools Web search, Read web pages, CRM record and Knowledge3, or 5 with Web search or Read web pages
  • The play's projected cost (on the step card and in the Test on 5 records ceiling) assumes the longest allowed prompt, so it can be higher than what a run actually charges. Runs charge the skill's real estimate.
  • Agent instructions can read your Knowledge sources at no extra cost.
  • For Employment check, the Invalid email counts as left policy can be set by asking Clu.
  • Skill outputs (for example {{play.first_line}} from Write) can feed later steps such as Add to sequence. More on each skill in Skills.

Logic steps

Branch

Routes records down 2 to 6 paths: If, Else if and Else. Each path has its own conditions on record fields, skill outputs or CRM data. A record goes down the first path it matches; the rest fall to Else, and leave the play if no step follows Else. Free.

Approve

Holds each record until a person approves or rejects it. Free. Full details in Approvals below.

Wait

SettingOptions
For a timeHours 1 to 72, Days 1 to 365, or Business days 1 to 60
Until a dateA Date field on the record, with Days before or after (up to 365 either way)
If the date is missingDrop from the play or Continue on the next run
If the date has passedContinue on the next run or Drop from the play

Waiting records show under Waiting records on the Runs tab. Free.

Code

Runs JavaScript to compute typed outputs from record fields you declare as inputs. Limits: up to 20,000 characters of code, 1 to 30 inputs, 1 to 12 typed outputs, 3 seconds per batch of records. Code has no network access, cannot import packages and cannot read secrets. Free.

Hand off

Sends records to another play of the same agent (Hand records to), which receives them with the Another play sends records trigger. New play creates the receiving play. Free.

CRM steps

CRM Action

Reads from or writes to Salesforce or HubSpot. Free (it uses your CRM's API calls, not credits).

ActionWhat it does
SyncMatches the record and creates or updates it (Match and create or update), or always creates one (Create a new record). Record type: Use CRM default, Contact or Lead
Look upReads the matching CRM record (owner, link, related data) without writing
Update fieldsWrites chosen fields: Fill only when empty, Overwrite when different or Always overwrite
Create taskTask type Call, Email or To do; Priority; Due date (Days after this run or An upstream date field); Create once per source record or per CRM target
Log noteAdds a note to the record
Add to campaignSalesforce campaign (with an optional campaign member status); on HubSpot it reads Add to list
Set ownerChanges the record owner
Add contact roleSalesforce only

Owner assignment options: Keep current owner (your CRM defaults), Assign one specific owner, Round-robin across all owners, Round-robin across chosen owners, Account owner, Owner from a field, or Rules, each with an Otherwise fallback.

Write safety: Inherit CRM protections (the default, follows your CRM settings, for example leaving records a rep owns alone) or Allow updates to owned records.

Review duplicates and Merge duplicates

Used only by CRM cleanup plays with the CRM duplicates trigger. See CRM duplicate cleanup.

Output steps

Add to sequence

Send to: a Cleanlist sequence, or (on an agent's play) lemlist, Outreach or Salesloft. Free: sending costs no credits.

Cleanlist sequence

  • Pick a Sequence, or create a new one.
  • Values stores per-person text from earlier steps (for example a Write first line) that your sequence emails use as {{play.first_line}} or {{play.<value name>}}. A person missing a value a step needs is stopped with the reason, for example "Stopped: no first line written".
  • People who replied or were stopped in another sequence are skipped. People added to a draft sequence wait there and start when you launch it.
  • Needs access to Sequences.

lemlist, Outreach or Salesloft

  • Connect from the step: Connect lemlist and Connect Salesloft take an API key; Connect Outreach opens Outreach sign-in in a new tab. An organization admin makes the connection. These connections are not on the Integrations page.
  • Pick the Sequence and Status. Sender: Sequence default, Record owner or One user (lemlist uses the sequence default), with a fallback user (Outreach requires one).
  • If active in another sequence: Skip (default) or Add anyway.
  • People are skipped when they have no email, unsubscribed from Cleanlist sequences, have a risky or invalid email, are already in that sequence, opted out or bounced there, are active elsewhere (unless Add anyway), or have no mapped sender. Existing people in the sequencer are never updated.

Notify

SettingOptions
Send toSlack (pick a channel) or Email (with a Subject)
Send (agent plays)Summary (one message per run), Digest (one message listing the records), or Each record (one message per record)
Recipients (Digest and Each record)The Slack channel or default email recipients, or Each record's owner, with a choice for owners who can't be reached (for example Skip the record)
Message limit1 to 200 messages
Approve to sequenceAdds a Slack button to approve adding the people to a sequence. The button expires after 7 days.

Slack channels must be internal to your Slack workspace. Free.

Webhook

Sends records to your own https endpoint. Free.

SettingOptions
URLhttps only
SendEach record, or Batches with a Batch size of 1 to 100
BodyA default JSON body, or your own
Authentication TypeNone, Bearer token, Custom header (with a Header name), Basic or HMAC signature, each using a Saved secret
HeadersUp to 10 extra headers (Add header)
OutputsWith Each record, read values from the response into typed outputs with a response path such as $.data.score
Calls per period1 to 10,000 (default 1,000)

Use Send test to check the endpoint once the play is saved. Secrets come from Settings → Connections → Secrets; see Secrets.

Export to Google Sheets

Adds a row per record, or updates the matching row, in the Google Sheet and Tab you pick, with the columns you choose. Free.

Create a Google Doc and Notion steps

Create a Google Doc creates one doc per record. Add a page to a Notion database adds one page per record, and Update a Notion page updates the matching page. Free; the apps must be connected.

Brief

Scheduled briefs (an agent with a Schedule trigger and no record play) have a Brief step: one unattended Clu turn that writes the brief, then a Notify step that sends it. It is charged like a Clu message, up to the agent's Brief credits per run (default 100, at most 1,000). See Agents: Scheduled briefs.

Failures and retries

On an agent's play, open a step's On failure settings:

SettingOptions
Retry temporary failuresOff, Once, Twice or 3 times, retried after 1, 6 and 24 hours
If this step failsStop, Continue, or Error path (send the record down a separate path)

New Enrich and CRM Action steps on an agent's play retry 3 times by default. A retry restarts at the step that failed and never charges earlier steps again. Records waiting for a retry show under Waiting records on the Runs tab.

Play size limits

A play can have up to 50 steps, branches nested up to 10 deep, and is limited to 200 KB in size. Records parked by Wait, Approve, retries and Hand off are capped at 50,000 per play.

Approvals

The Approve step pauses records until a person decides. Approvals appear on the agent's Approvals tab, in the Approvals inbox and, if you choose, in Slack.

Approve step settings

SettingOptions
Who approvesPlay owner, People (up to 10), or Record owner
NotificationsSlack, Email, or neither (decide in the app only)
DeadlineNone, or After a number of days (1 to 30)
At the deadlineReject (default) or Approve
Show fields, up to 8The record fields approvers see

Approvers get one reminder after 24 hours. Approved records continue on the Approved path. Rejected records take the Rejected path, or leave the play if it has none.

Where to decide

  • Approvals inbox: on the Agents tab, click Approvals. Tabs Pending and Decided, with Refresh and Download CSV. Each row shows the agent, play, step, how long it has waited, and when it expires (or "No deadline"). Select rows and click Approve selected (N) or Reject selected, or open one with Review and approve / Review and reject.
  • The agent's Approvals tab: the same records for one agent, plus Approve all at this step (N). The tab appears only when a play has an Approve step or approvals are pending.
  • Slack: approvers linked to Slack get Approve and Reject buttons (with reasons Not a fit, Wrong timing, Already in touch, Wrong person), and Approve all.

When you confirm, Cleanlist explains what happens next ("Records continue on the saved Approved path." or "Records take the Rejected path. With no Rejected path, they leave the play.") and lets you add a Reason, optional. When you approve a single record, you can edit the fields shown before it continues, except emails, phones, LinkedIn URLs and IDs.

Who can decide

An approver listed on the step, or an organization admin. In Slack, only the linked approver can use the buttons. The agent must be on: inside a paused agent the Approvals tab shows "Turn the agent on to decide." With nothing pending, the inbox shows "No approvals waiting".

Secrets

Secrets hold tokens and keys for Webhook step authentication, so they never appear in a play or in chat.

  • Where: Settings → Connections → Secrets. Visible to organization admins in workspaces that have Agents.
  • Add secret: a Name (up to 80 characters) and a Value (up to 8,192 characters), then Save secret. "The value will be hidden after saving."
  • Saved secrets lists each secret with a short hint (•••• and the last characters) and when it was last used.
  • Archive removes a secret from use ("It will no longer be available for Webhook steps."). A secret that a Webhook step still uses cannot be archived.
  • Values are encrypted at rest. Only Webhook steps can use secrets; Code steps cannot.

Related