Configure a sending platform campaign correctly the first time: schedule, tracking, limits, timezone and the fields that silently reset...
Sequencer campaign settings have a specific failure shape: some fields are dropped silently at creation and must be set in a second update call, and some values that look valid are rejected or, worse, stored as a literal zero. This skill sets the configuration in the order that survives, then reads it back and diffs it against what was intended.
Check these before you run the skill. Nothing outside this table is needed.
| Requirement | Needed | Used for | What it costs you |
|---|---|---|---|
Apify account and API token (APIFY_TOKEN) |
Required | Runs the live data actors | A free Apify account works. Each run bills your own Apify account at the actor's Store price: clay-to-instantly-smartlead-push 0.01 USD per lead pushed. |
| Node.js 18 or newer | Required | The MCP tool calls | Free. It starts the Mamba Labs MCP server with npx. |
| Instantly v2 or Smartlead API key | Required | Creating the campaign, pushing leads and reading the campaign back | Comes with your existing sending plan. An Instantly v1 key does not work. |
Missing a required item? Stop before the live steps and tell the user which item is missing and what it is for. Do not run the step without it and do not present an empty result as an answer. Keys are read from the environment at run time and are never written into a file, a prompt or the output.
Before doing anything else, read whichever of these exist at the project root and use them instead of asking the user to repeat themselves:
BRAND.mdIf none exist, do the work from what the user gives you, then offer to write the missing file so the next skill in the pack starts warmer.
Pushing a finished list into the sequencer can run through the Mamba Labs push actor rather than a manual CSV, which keeps the field names identical between the enrichment table and the campaign payload. The push needs your Instantly v2 or Smartlead API key as api_key: read it from the environment at call time and never write it into a file or the output. Run with dry_run first, which returns the exact payload and writes nothing.
This skill calls live data through the Mamba Labs MCP server, which runs the actors on Apify with your own Apify token (https://console.apify.com/account/integrations).
.mcp.json from this folder into your project root and set
APIFY_TOKEN in your environment, or run:claude mcp add mamba-gtm-suite -e APIFY_TOKEN=<your token> -- npx -y @mambalabsdev/mcp-gtm-suite@1.12.0
| Actor | MCP tool | Used for | Store page |
|---|---|---|---|
| Sequencer Lead Push | push_leads_to_sequencer |
push enriched rows into a sequencer campaign with the field names preserved | https://apify.com/mambalabs/clay-to-instantly-smartlead-push |
Runnable example input, matched to the live tool schema:
push_leads_to_sequencer:
{
"sequencer": "instantly",
"api_key": "${INSTANTLY_API_KEY}",
"campaign_id": "example-campaign",
"dry_run": true,
"leads": [
{
"email": "jordan@example.com",
"first_name": "Jordan",
"company": "Example Co"
}
]
}
Cost line. Before any live call, state how many calls you plan and which actors they bill. After the run, report the calls made, the calls that failed, and the Apify usage where the tool reports it. Each actor bills the user's own Apify account at its Store price.
No token, no live data. If no Apify token is available, say so and stop the live steps. Never fill a live section from memory and present it as live.
scripts/check-output.py before you return it.Stop and ask before creating, changing, or launching a sequencer campaign, or pushing leads. Show exactly what will be sent or written, to whom or to which records, and how many. Proceed only on an explicit yes from the user in this conversation. A yes for one batch does not cover the next one.
The configuration as set, the read back diff with any field that did not stick, and the seed test result.
Save the output to a file and run python3 scripts/check-output.py <file>. The
contract it checks is scripts/output-contract.json.
COMPLETE: return the output.INCOMPLETE: do not present the output as finished. Fill what you can, run
the check again, and if parts stay missing, return the output under the heading
Incomplete with every reason the check printed.merge-variable-linterwave-launch-prechecksending-capacity-plannerShips in the cold-email-system pack.