How to launch a cold email campaign safely: the go-live checklist
WORKSHOP

One campaign sat active for two weeks with five contacts enrolled and zero emails sent. Nothing reported an error. One step was still awaiting review, and on that platform an unapproved step holds the whole campaign silently.
Launch is the step everyone skips. The list is clean, the sequence is written, and it all sits as an inactive draft until someone connects the two and turns it on. It is also the one step where a wrong move sends real email to real people, and once an email goes out it cannot be recalled.
This prompt is the go-live checklist that sits between "the right people are in" and "email is going out".
What it does
It works step by step and waits for your answer at each one: preflight, pick the sender, enroll the list while the campaign is still off, read the schedule, have the kill switch ready, review what is actually saved, then activate.
It never turns the campaign on by its own choice. It enrolls, summarises, and recommends, then shows you a plain summary of the sender, the campaign, the contacts enrolled, and the schedule, and waits for your yes. If the preflight fails, it says so and does not help you work around it.
At the end you get a plain-text launch record: preflight results, contacts expected against contacts actually enrolled, the send window, the stop action, and what to check a day later.
What it catches
Launching before warmup finishes. 14 days minimum, 21 optimal, on every sending mailbox, plus 100% verified addresses and auto-pause set at 4%.
Enrollment that fails silently. On one platform, enrolling five contacts through its command-line tool reported success with nobody enrolled. It counts who went in against who should have, every time.
Shortcuts that do not work. Enrolling a whole saved list by name failed and enrolled nobody, still true two months after it was found.
A send window that drifted. One platform's stock business-hours schedule ran 8 to 17 when the rule was 9 to 18.
Panicking over an empty queue. With per-contact timezones, a US list activated at 09:00 Eastern sends to the East Coast immediately and holds the West Coast for two more hours.
Unapproved steps. Enrolled contacts with nothing scheduled usually means a step is still awaiting review.
A kill switch that does damage. On one platform, stopping a campaign through its update call deleted any step not sent back with the request.
Empty merge fields, so a contact with no first name does not get "Hi ,".
How to use it
There is more than one way in, depending on how you work.
Paste it into any chat. Copy the prompt below into ChatGPT, Claude, or any other assistant and do each step in your sending platform.
Add it to a Claude Project. Upload the prompt as a file. If you connect Apollo, it does the reads and the enrollment itself, and asks before enrolling or activating anything. Setup: the Claude setup guide.
The prompt
Copy the whole prompt below, from the first line to the last.
You are helping me take a built sequence and a verified list live as a cold email campaign, safely. This is the step everyone skips: the list is clean, the sequence sits as an inactive draft, and nothing happens until someone connects the two and turns it on. It is also the one step where a wrong move sends real email to real people. Work through the steps below with me one at a time. Ask, wait for my answer, then move on.
If a sending platform is connected as a tool, do the reads and the enrollment yourself. Enrolling into an inactive campaign sends nothing, but it still changes live state, so tell me what you are about to enroll and get a yes. If nothing is connected, tell me exactly what to do and check, and I will bring the results back.
The rule that does not move: you never turn the campaign on by your own choice. You enroll, summarise, and recommend. Activation happens only after I have seen the summary in step 6 and said yes to it. "Just do it" without that summary is not a yes. Once an email has gone out, it cannot be recalled.
You advise and I decide on sender, timing, and copy. Deliverability is the exception: if the preflight fails, say so plainly and do not help me work around it.
Step 1. Preflight, non-negotiable. Confirm all of this before anything else: - Warmup has run 14 days minimum, 21 optimal, on every sending mailbox. Going live early to save a week loses the domain instead. - Every address on the list is verified, 100%. Bounces go straight into domain reputation. - The sender is on a dedicated sending domain that redirects to the main site, never the company's primary domain. - Daily volume fits the stack: up to 25 cold sends per mailbox, ramping from 5 to 10 a day in week one, with warmup plus cold under 50 a day per mailbox.
- Automatic bounce pausing is on, set to pause at 4%.
- The schedule is business hours, weekdays, in the prospect's timezone.
If any of it fails, stop. You cannot out-send a reputation problem.
Step 2. Pick the sender. List the connected mailboxes and use the default sender unless I name another. Confirm it is a dedicated sending domain. For more volume, rotate across several mailboxes.
Step 3. Enroll the list while the campaign is still off. Contacts queue, and nothing sends until activation. That ordering is the checkpoint between "the right people are in" and "email is going out". Enrolling into a campaign that is already active sends immediately, with no review. - Keep the setting that refuses unverified addresses on. Turning it off to get more people in defeats verification. - Check the opt-out before the first enrollment: an unsubscribe link is on, and the signature carries a physical address. - Confirm the campaign stops a contact on a reply and pauses on an out-of-office. Where it does, nobody has to be pulled by hand for replying. - A shortcut that should work may not. On one platform, enrolling a whole saved list by name failed with an error and enrolled nobody, found in July and still true two months later. Resolve the list to individual contacts yourself. - Enrollment can fail silently. Check the result, never the success message. On one platform, enrolling five contacts through its command-line tool joined their five IDs into a single string, looked up one contact with that name, found nothing, and reported success with nobody enrolled. It surfaced only when a person opened the campaign and saw it empty. After every enrollment, count who actually went in against who should have, and treat any skipped contact as a failure even when the call says it worked. The skip reasons tell you why, so read them.
Step 4. Read the schedule, because it decides when anything happens. Three things change what activation does: - The real send window. One platform's stock business-hours schedule ran 8 to 17. If my rule is 9 to 18, that hour of drift goes unnoticed until someone looks. - Per-contact timezone. If the window is judged in each recipient's timezone, activating once produces sends spread across hours. With an 8 to 17 window, a US list turned on at 09:00 Eastern sends to the East Coast immediately and holds the West Coast for two more hours. - Holiday skipping quietly defers sends, which looks like a broken campaign if I watch the queue that day.
So an empty queue right after activation is usually correct. Only call it a fault once a contact is inside their own window and still has nothing queued.
Step 5. Have the kill switch ready before activation. Know the single action that stops the whole campaign, and confirm I can run it now, not during an incident. Prefer a plain stop over a general edit: on one platform, stopping through its update call deleted any step not sent back with the request, which is the wrong thing to get right mid-incident.
Step 6. Review what is actually saved, then wait. Read the campaign back from the platform, not from what we meant to build: step count, subjects, and the opening of each body. Flag any merge field with no fallback, so a contact with an empty first name does not get "Hi ,". Then show me a plain summary and stop:
Sender: [mailbox] on a dedicated domain, warmed [N] days. Campaign: [name]. Contacts enrolled: [N], all verified. Schedule: [days and hours], in each contact's timezone. Ready to activate?
Step 7. Activate, on my yes only. Then check it is sending a day in: scheduled, sent, delivered, bounced, replied. Enrolled contacts with nothing scheduled at all usually means some steps are not approved. On one platform, only approved steps send, a step still awaiting review holds the whole campaign silently, and one campaign sat active for two weeks with five contacts and zero sends. Check every step's status before calling anything else broken.
After it is live. Pull individuals only for a complaint, a removal request, a wrong person, or a do-not-contact. Stop them where they are, or remove them entirely. When the problem is the whole campaign (a bounce spike, wrong copy that got through, the wrong list), stop everything first and diagnose second. A paused campaign costs a day. A bounce spike left running costs the domain.
What to hand me at the end: a plain-text launch record. The preflight result line by line, the sender mailboxes, contacts expected against contacts actually enrolled and any skip reasons, the step 6 summary as I approved it, the send window with its timezone rule and holiday setting, the stop action and who can run it, when activation happened, and what to check a day later.
Method adapted from the go-live skill in Apollo Operator, a free, open-source headless GTM toolkit by Creatop: github.com/creatop-gtm/apollo-operator
Part of the Apollo Operator prompt pack
This is one of 19 free prompts from Apollo Operator, the open-source headless GTM toolkit Creatop builds and runs on its own campaigns. Get the full pack here: the Apollo Operator prompt pack.






