Skill
Campaign Launch Skill

Full end-to-end workflow for launching an outbound email campaign. Covers everything from list prep to the first send.
Before starting, confirm you have access to:
Your sending platform API key
The lead list (CSV)
The approved copy (sequence steps + subject lines)
Step 0 — Gather context
Confirm before doing anything:
Is the list (CSV file) ready?
Is the copy ready — all sequence steps and subject lines approved?
Which client and which sending account or workspace?
Any context to share that isn’t in a file? (onboarding notes, special targeting rules, copy constraints)
Don’t proceed until you have at least the copy, the list, and the workspace confirmed.
Step 1 — Switch to the right workspace
Locate the API key for the client’s sending workspace. Confirm the workspace name before continuing. If your platform resets to a default workspace between API calls, re-authenticate at the start of each operation.
Step 2 — Clean the list
Run both passes regardless of how clean the list looks.
Company name cleanup
Strip legal entity suffixes from the Company Name column. Common ones: LLC, LLP, PLLC, PC, APC, PA, Ltd, and period/comma variants. Also strip trailers like “Attorneys at Law”. Run the strip in a loop until no suffixes remain — some records have stacked suffixes (e.g. “LLC, P.C.”).
Deduplication
Always dedupe by email address. Never by name or company — the same organization can have multiple legitimate contacts.
Save the output as [Original Filename] Clean.csv. Report: names cleaned, dupes removed, unique contacts remaining.
Step 3 — Create the campaign
Create a new campaign with a clean, descriptive name. Recommended format: [Client] — [Audience or Campaign Type]
Never include words like “Sample”, “Test”, or “Draft” in the campaign name.
Step 4 — Build the sequence
This is the most error-prone step. Go carefully.
Variables
Use the exact variable format your platform requires. Check the docs — platforms differ on case sensitivity and token syntax. When in doubt, test with a real preview before launching.
Common field tokens (adjust to match your platform’s syntax):
Field | Example token |
|---|---|
First name | {FIRST_NAME} |
Last name | {LAST_NAME} |
Company | {COMPANY} |
Title | {TITLE} |
Sender signature | {SENDER_EMAIL_SIGNATURE} |
Unsubscribe line
Every email must have an unsubscribe line, placed below the sender signature. Confirm the exact wording with the client if not already provided.
Step delay math
Set delays relative to the previous step, not to Day 0. For a standard Day 1 / Day 3 / Day 7 sequence:
Step | Sends on | Delay from previous |
|---|---|---|
Step 1 (initial) | Day 1 | 1 day |
Step 2 (follow-up) | Day 3 | 2 days |
Step 3 (breakup) | Day 7 | 4 days |
Write out the delay math before building the sequence, not after.
Thread replies and variants
Follow-ups in the same thread: use your platform’s thread-reply setting
A/B variants: link each variant to its parent step using your platform’s variant/branching feature
Subject lines for thread replies: most platforms auto-prepend “Re:” — pass the base subject only
API behaviour
Check whether your platform’s sequence endpoint appends or replaces. If it appends, be careful not to duplicate steps. If you need to fix a step after creation, update it individually rather than resubmitting the full sequence.
Step 5 — Upload leads
Map CSV columns to your platform’s lead fields:
CSV column | Platform field |
|---|---|
First Name | first_name |
Last Name | last_name |
Job Title | title |
Company Name | company |
Custom variables (website, phone, city, etc.) must be created in the workspace before attaching to leads — most platforms return a 422 if you reference a variable that doesn’t exist yet. Skip custom variables unless the client specifically requires them.
Upload in batches where the platform requires it. Collect returned lead IDs, then attach them to the campaign in a single call if your platform supports bulk attachment.
Report: leads created, leads attached, any skipped.
Step 6 — Attach sender mailboxes
Pull all sender email IDs from the workspace (paginate if needed — default page sizes vary by platform). Attach all relevant mailboxes to the campaign.
Step 7 — Set mailbox signatures
Check whether mailboxes already have a signature set. If any are missing, confirm the sender persona’s name and title with the client.
Recommended format: [Sender Name] / [Title] | [Client Name]
Update each mailbox individually if bulk signature updates aren’t supported.
Step 8 — Campaign settings
Apply these settings before launch:
Plain text: always on
Open tracking: off by default — enable only if the client explicitly requests it
Max emails per day: set a campaign-level ceiling appropriate for the mailbox count and warmup stage
Step 9 — Schedule
Days: Monday to Friday only
Hours: 9:00 am to 6:00 pm in the target audience’s timezone
Timezone: confirm with the client — default to the primary target market if unclear
Step 10 — Pre-launch system checks
Run these before asking the client to confirm launch:
CRM or lead tracking system: is there a place for leads to land when replies come in?
Notification flow: is there a way for the client to be alerted when a Tier 1 reply arrives?
Lead dashboard: does a tracking sheet or view exist for this campaign?
Flag anything missing — it may block the post-launch lead handoff flow.
Step 11 — Warmup check
Check how long each mailbox has been running warmup. If any mailbox is under 14 days old, flag it and ask the client to confirm before proceeding.
Minimum: 14 days
Optimal: 21 days
Warmup should never be turned off — it runs in parallel with live campaigns indefinitely.
Step 11.5 — Pre-launch checklist
This is the gate. Do not launch until every item is confirmed.
List cleaned: entity suffixes stripped, deduped by email
Leads uploaded, columns mapped correctly
Sequence built: every step and variant has subject, body, and signature
Unsubscribe line below the signature on every variant
Step delays written out before building (verify the math — Day 3 = 2-day wait from Step 1, Day 7 = 4-day wait from Step 2)
Variables tested and populating in a real preview
Sender mailboxes attached to the correct campaign
Plain text on
Schedule set: correct timezone, 9 to 6, weekdays only
Bounce monitoring in place — auto-pause at 4% if the platform supports it, manual monitoring if not
Warmup complete: 14 days minimum, 21 optimal
Test send reviewed in an actual inbox (not a preview)
Client approved the copy
Step 12 — Launch
Activate the campaign via your platform’s UI or API. Confirm the returned status shows the campaign as active or queued before closing out.
Step 13 — Notify the client
Send a launch confirmation that includes:
Campaign name
Number of leads loaded
Number of mailboxes sending
Send schedule (days, hours, timezone)
What to expect next (first sends, typical reply timeline)
How Tier 1 replies will be flagged to them
Quick reference: common issues
Issue | Likely cause | Fix |
|---|---|---|
Validation error on sequence step | Delay set to 0 | Minimum delay is 1 day |
Validation error on lead import | Custom variable doesn’t exist in workspace | Create the variable first, or skip it |
Validation error on bulk sequence update | Duplicate step order numbers | Update one step at a time |
Validation error on mailbox update | Missing required field | Check platform docs for required fields on PATCH requests |
Auth error on campaign activation | Wrong token or endpoint | Confirm API key scope and endpoint format in platform docs |
