Skill

Campaign Launch Skill

abstract-blurred-dark-and-light-gradient - magicpattern (unsplash)./pho

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:

  1. Is the list (CSV file) ready?

  2. Is the copy ready — all sequence steps and subject lines approved?

  3. Which client and which sending account or workspace?

  4. 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

Email

email

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