Clay to Smartlead: Approve and Reconcile Leads Before a Campaign Sends

Set up Clay's native Smartlead action with campaign ownership, field checks, duplicate controls and a post-push reconciliation loop for agency teams.

The safe Clay → Smartlead handoff is a controlled release of approved leads into one existing campaign. Clay can enrich and route records; Smartlead owns the sending sequence, account selection and replies. For an agency, the important question is not whether the two products connect. It is which client and campaign each row belongs to, which fields must be complete, who approves the push, and how the operator proves that the right rows actually arrived.

Clay's Smartlead integration reference and Smartlead's Clay connection guide were checked on October 22, 2026. The workflow here is a documented design for a team to configure and test. We have not pushed a private lead list through either product for this article, and the example below uses invented field names rather than customer data.

This is a setup and control guide. Our Clay + Smartlead stack page helps decide where each tool belongs; this page addresses the narrower handoff into a campaign. A Smartlead + Make event workflow covers the reverse direction when an interested reply needs to reach a CRM.

What the native action does

Clay currently exposes Smartlead actions for Add lead to campaign, Lookup lead in campaign, Lookup lead status in campaign, Update lead in campaign, Update lead category and Remove lead from campaign. The Add action takes a campaign ID, email and optional person, company and custom fields. Clay says every action needs a campaign already created in Smartlead; Clay cannot create one. Its Add action confirms success but returns no extra lead fields, so a green action cell is a poor substitute for a separate status check.

Clay's documentation says Allow Duplicate Leads Across Campaigns? is off by default; a lead can still be added once per individual campaign. It separately says Allow Leads from Community Bounce List? is on by default and that switching it off skips those addresses. Those settings solve different problems. A row can also be intentionally suppressed by your own client rules even when the integration would allow it. Review these toggles in the live action, because they affect who enters the sequence.

State Owner Release rule
Prospect and enrichment fields Clay table owner Complete the fields the email actually uses, check source and permission to contact, and mark the row approved.
Client and campaign choice Agency operator Map each approved row to one Smartlead client/campaign ID; unknown mapping goes to review.
Sending eligibility Smartlead operator Campaign exists, sequence is reviewed, sending accounts and suppression rules are ready.
Reply and unsubscribe state Smartlead operator Reconcile with Smartlead before re-adding or updating a person.
Proof of handoff Operations owner Check campaign membership/status after the Add action and log exceptions.

Jan said in an August 10, 2024 video that an automation can be reused across similar businesses while still adapting the workflow to each one. That is historical advice about process design, not a claim that he has tested this particular Clay integration. The client-to-campaign map and approval rule below are a concrete way to apply that principle without pooling different clients' leads.

Prepare the campaign and a release sheet

Create and review the intended campaign in Smartlead first. Confirm the client workspace, selected senders, sequence variables, schedule and unsubscribe handling with the person responsible for delivery. Clay's integration has no campaign-creation action. If the campaign is absent from Clay's dropdown, fix the connection or campaign access before sending any row elsewhere.

In Clay, keep one source table or a clearly partitioned view for the client. Add columns for client_key, smartlead_campaign_id, approved_by, approved_at, release_state and a link or reference to the source record. These are suggested internal control fields, not Smartlead's required schema. A client-to-campaign mapping table might look like this:

Client key Smartlead campaign Reviewer Required personalization
client-a Campaign selected from live Clay dropdown Named account manager first name, company and approved offer angle
client-b Different campaign selected from dropdown Different account manager first name and industry-specific proof point

The names are illustrative. Do not copy this table into a production account as if the campaign IDs were real. If a row has no known client mapping or a required field is empty, leave its release state hold. Do not silently fall back to the previous client or a default campaign. That simple gate protects both segmentation and sender reputation more reliably than a later cleanup.

Connect and configure the action

  1. In Clay's table, choose Add enrichment, search Smartlead, then select Add lead to campaign under Integrations. Clay's current reference documents this route. Smartlead's own older guide describes a table Actions → Export route. If the current interface differs, find the same named native action rather than assuming the screenshots or menu position are current.
  2. Choose Select Smartlead account. If needed, add the account using the API key from Smartlead's settings/profile as Clay documents. Treat that key as a secret: give access only to the operator who configures the connection; do not place it in a table cell, public how-to, screenshot or log.
  3. Set Campaign ID from the approved client map. Map the Email Address and only the optional fields the sequence actually needs. Clay supports custom field key/value pairs. Before release, compare each key against the variables in the Smartlead email so a misspelling does not leave a blank personalization.
  4. Keep Allow Duplicate Leads Across Campaigns? at its default off unless the client has approved the same person entering another sequence. Decide the Community Bounce List setting separately; Clay's default allows those addresses. A team that wants to exclude them must turn that option off deliberately and verify the result in a test.
  5. Add a Clay Only run if condition for release_state = approved, a nonempty usable email, a known campaign ID and every required personalization field. Clay documents conditional runs and recommends qualifying before adding. Keep Auto-update off during configuration and testing. If using it later for new approved rows, verify how your table triggers re-runs and how a failed row is retried; do not rely on an undocumented exactly-once promise.

A useful approval check has two people or two stages: one person validates source, email and custom fields; another confirms client, campaign and offer. That division is an editorial operating suggestion, not a Clay feature claim. A team with one operator can still record both decisions before release.

Test one row and reconcile the result

Use a controlled address permitted by your team and a test campaign that cannot accidentally contact a real prospect. Run the Add action for that row only. Clay says Add confirms success without returning extra fields; follow it with Lookup lead in campaign and Lookup lead status in campaign. The lookup can return Smartlead's lead ID, unsubscribe state, campaign memberships and custom fields; the status lookup can return steps, sent count and campaign status. Compare the actual values with the approved row, especially the campaign ID and personalization fields. Do not treat a Clay green check as proof that a particular email was sent, delivered or read.

For a first production batch, release a small reviewed slice and inspect it before enabling a larger conditional run. Keep a reconciliation ledger with these nonpublic fields in your own systems: Clay row reference, client key, intended campaign, approval state, Add result, observed Smartlead lead ID or exception, and review owner. Keep subscriber or prospect addresses out of the public report. A practical check is approved rows = observed campaign memberships + held/failed exceptions; investigate every difference instead of assuming the rest succeeded.

If an existing lead needs a field correction, Clay's Update lead in campaign requires a Smartlead lead ID. Use Lookup lead in campaign first, confirm the client and campaign, then update only the intended fields. Do not use Remove lead from campaign as a blanket rollback: it may alter a live sequence and erase useful state. Pause further Clay releases, inspect what entered Smartlead, and plan a controlled correction with the campaign owner.

Troubleshoot the common handoff failures

Symptom Check first Safe next move
Campaign not visible Campaign exists in Smartlead; connected account and client scope Create or grant access in Smartlead, then refresh the Clay action.
Add action skipped a row Condition, empty fields, duplicate toggle, community bounce option Leave the row on hold; inspect the exact reason and decide whether the exception is intentional.
Green Add result, wrong campaign Client-to-campaign mapping and selected dropdown value Stop the batch and reconcile every affected row before sending.
Custom field blank Key spelling, Clay source value and Smartlead sequence variable Correct the mapping and test one row. Do not assume an empty value prevents sending.
Existing lead needs update Lead ID from lookup and current campaign membership Use Update only after confirming the target; keep the prior value in the internal audit.
Duplicate across clients Cross-campaign toggle and client suppression policy Keep the default off unless there is a documented reason and approval to override it.

This workflow makes the handoff inspectable. It does not validate an email address, override opt-outs, guarantee deliverability or prove conversion. Use the email verification guide for tool selection and the Smartlead review for sender economics and limitations. Disclosure: OutboundXYZ has a Smartlead affiliate relationship; the release controls here come from current public documentation and a proposed operating design, not a private performance test.

Back to blog

The outbound tool memo.

One useful note when a tool is worth testing, skipping, or swapping out of your stack.

Friendly OutboundXYZ mascot waving with an envelope