Before you start
Step by step
1
Find the campaign
GET /business/campaigns lists your campaigns with their headline numbers. Narrow it with status and search:2
Sort the leads into repliers and clickers
Page through Use
GET /business/campaigns/{campaignId}/leads, 100 at a time:contactId, not id: id is the lead’s row in this campaign, while contactId is the contact every other endpoint works with. Build two sets:- Repliers:
hasRepliedistrue. - Clickers to re-engage:
hasClickedistrue,hasRepliedisfalse, andsentStepsequalstotalSteps, so they have finished the first sequence and will not get two campaigns at once.
hasOpened overstates interest.3
Read what each replier said
GET /business/contacts/{contactId}/activities returns the contact’s timeline, newest first. Replies are email entries with status: "replied" and the campaign’s id:4
Hand repliers to your CRM
Put the repliers in their own list and push it:Adding members is idempotent, so a weekly run can add the same people again safely. To record how each person replied, add a
Reply status custom column to the list and write your classification into it. Pushing the whole list creates any missing CRM records and only fills empty fields on existing ones. With Push contact records on in the app, Fuse’s activity sync also logs the campaign emails against them.5
Build the second-touch list
Create a list for the clickers and add them the same way:Then
POST /business/lists/{listId}/members with their contactId values, up to 5,000 per call.6
Duplicate the campaign and point it at the clickers
Duplicating keeps the sequence, schedule and sending setup you already tuned:Point the copy at the clickers and clear the contacted-before exclusion:
isDynamic: true means clickers you add on later runs are enrolled automatically. The copy is ready to edit straight away, AI campaigns included, and keeps the original’s exclusions except excludeCompanyLists. If the first campaign kept customers out with it, send it again in this PATCH.7
Change the angle, then approve
The second touch should not repeat the first. On a manual campaign, rewrite each step with
PATCH /business/campaigns/{campaignId}/steps/{stepId} and a new subject and body. On an AI campaign, PATCH a new topic onto each step, or rebuild them all with POST /business/campaigns/{campaignId}/steps/regenerate-topics.Preview each step with POST /business/campaigns/{campaignId}/steps/{stepId}/generate, then approve with POST /business/campaigns/{campaignId}/approve. See Campaigns for the step fields.Run it every week
Re-run steps 2 to 5 weekly. Membership adds are idempotent, the dynamic second-touch campaign enrolls new clickers within about 30 minutes, and the CRM push only fills fields that are still empty. To keep repliers out of everything you send next, create future campaigns withexcludeEngagedContacts: true, and add the repliers list to excludeLists.
What it costs
Reading leads and timelines, building lists, duplicating campaigns and pushing to your CRM cost no credits. See Credits & billing.Troubleshooting
Run the whole workflow
Python script: weekly reply hand-off and second touch
Python script: weekly reply hand-off and second touch
Do it from Claude
With the Fuse MCP server connected:Who replied to my “Q4 fintech outreach” campaign? Summarize each reply and push those people to HubSpot. Then draft a second-touch campaign for the people who clicked but never replied, with a different angle from the first one, and don’t launch it.The assistant reads the campaign’s replies, summarizes them, pushes those people to HubSpot and drafts the new campaign. The push writes to your CRM as soon as it runs, so keep your client’s approval prompt on for it.
Related
Campaigns
Leads, stats, duplicating and exclusions.
CRM sync
What Fuse writes to each CRM, including engagement fields.
Review what a campaign will send
Approve, edit or skip queued messages before they go out.
Personalize every email with AI research
Give the second touch a researched opening line.