The full operational workflow for running an AI Outreach campaign — from lead selection in Salesforce through enrichment and sending in Clay and Smartlead, all the way to reply handling and data writeback. This page replaces tribal knowledge and is the single source of truth for teams, auditors, and security reviews.
The campaign lifecycle runs in two directions — outbound (steps 1–4) and inbound/writeback (steps 5–7). Every step is connected through the native Clay ↔ Salesforce connector, eliminating manual CSV transfers.

MARCOM Ops creates or updates a Campaign with AI_Outreach__c = TRUE. Campaign Members are added using a list view or report filtered by Cold_Lead_Eligible__c = TRUE. All eligibility criteria must be validated before proceeding.

Marking as an AI Outreach Campaign

Adding Campaign Members
Using the Cold Lead Report
Once the audience is selected, records move into Clay. Clay is used to import the campaign data, check record quality, enrich missing fields, standardise company and contact information, classify the record into the correct segment or vertical, and prepare each row for messaging and downstream write-back.
Use only the approved 'SFDC Campaign Member Export for Clay Import' report. This report always includes CampaignMemberId and LeadId as stable mapping keys — critical to avoid writeback mismatches.

Importing Records to Clay
Video Recording - Importing Records to Clay
Clay runs enrichment against the imported lead list — adding Company Description, Industry signals, and other approved fields. Enrichment outputs are staged for writeback. MARCOM must confirm enrichment quality before proceeding.
After Clay enrichment is complete, the following Salesforce fields are eligible for writeback. Only these approved fields should be updated, no other Lead or Campaign Member fields should be modified during this stag
| Field label | API name | Object | Description | Notes |
|---|---|---|---|---|
| Clay company description | clay_company_description__c | Lead | AI-generated summary of the company's vertical industry and what they do | Populated from Clay's summary column during enrichment |
| External hard bounce | clay_external_hard_bounce__c | Lead | Flags whether the email address was found unreachable during enrichment | Setting this to TRUE also sets the overall hard bounce field to TRUE |
After the data is ready, the campaign message can be prepared. The AI layer uses approved prompts and business inputs to create personalised messages. Human review is essential before launch. This check should confirm the tone, relevance, factual accuracy, and whether the message feels appropriate for the target audience. Checks
|
Campaigns should run in controlled waves, not as a single uncontrolled push. During launch, the team monitors send progress, opens, bounces, unsubscribes, early replies, and any signs of deliverability issues. A record that replies, unsubscribes, or hard-bounces should not continue through the sequence.
Purpose:
This is the stage where outbound campaign activity becomes actionable. Once emails are live, replies and delivery signals need to be reviewed, classified, and written back into Salesforce so that the right follow-up can happen quickly and reporting stays accurate.
At a minimum, the process should distinguish:
Signal | Typical meaning | Main action | Write-back target |
POSITIVE | Interested, asks for a call, asks for material | Route quickly to Sales or the agreed owner | Campaign Member |
NEUTRAL | Acknowledgement, low intent, needs review | Review and decide next action | Campaign Member |
NEGATIVE | Does not want contact | Stop outreach and mark appropriately | Campaign Member |
OOO | No immediate reply, but may contain useful info | Review for new contact or follow-up timing | Campaign Member |
Unsubscribe | Not interested in email communications | Update Lead to Unsubscribed | Lead Note |
How the process works
Write-back logic
1. Reply write-back
Reply outcomes should update the Campaign Member record:
And Lead record:
Business rule:
The Campaign Member field Has Replied is set to TRUE automatically on first response and is set-once.
2. Bounce and unsubscribe write-back
Bounce and unsubscribe outcomes should update the Lead record through a dedicated Clay tab.
That tab should contain:
This allows Clay to update the correct Lead with the correct status.
Proposed operating model
To be confirmed with Demand7 and Marcom: The team still needs to define whether this write-back will run:
Monitoring and control
Even if the core flow is automated, the team should still monitor it during active campaigns:
Salesforce fields in scope
| Write-back type | Salesforce Object | Field | Value / Logic |
|---|---|---|---|
| Reply write-back | Campaign Member | Status | Responded |
| Reply write-back | Campaign Member | Reply Classification | Captured value, for example Positive, Neutral, Negative |
| Reply write-back | Campaign Member | Has Replied | Set automatically to TRUE on first response; set-once logic |
| Reply write-back | Lead | SLV36_Pardot_Question_Asked__c | Email reply content |
| Bounce / unsubscribe write-back | Lead | clay_external_hard_bounce__c | TRUE or FALSE |
| Bounce / unsubscribe write-back | Lead | HasOptedOutOfEmail | TRUE or FALSE |
| Enrichment write-back | Lead | Clay Company Description | Captured / enriched value |
Open point
Demand7 and Marcom to define the final write-back automation approach and sync cadence.
For the Salesforce side, the process should update the agreed business fields only. That mainly means Lead-level fields such as Clay Company Description, Industry where applicable, hard bounce or unsubscribe flags, and Campaign Member fields such as Has Replied and Reply Classification. |
The value of the campaign depends on what happens next. Positive replies should move into a follow-up process with a clear owner and an agreed response time. Reporting should then show both performance and trust signals, not just volume.
