Skip to content
NewSee how
email agents

Email agent guardrails: 7 layers before an AI sends

Email agent guardrails for outbound: seven layers from tool scope to a kill switch that keep an AI agent from burning your domain.

TL;DR: An agent that can influence email needs seven stacked guardrails, because any single one will eventually fail: narrow tool scope, a readiness check, a test email, volume caps, human approval, monitoring and a kill switch. Build them in that order, and make sure the last two work without the agent's help.


#What you will learn

  1. Why one guardrail is never enough
  2. What the mailbox providers already enforce
  3. The seven layers at a glance
  4. Layer 1: narrow tool scope
  5. Layer 2: the readiness check
  6. Layer 3: the test email
  7. Layer 4: volume caps and pacing
  8. Layer 5: human approval
  9. Layer 6: monitoring and alerts
  10. Layer 7: the kill switch
  11. Putting the layers together
  12. Frequently asked questions
  13. Conclusion

#Why one guardrail is never enough

Every guardrail has a failure rate. Rules get skipped, filters miss cases, and people approve things on a tired Friday.

Our angle is layered defense. Stack guardrails so that each one catches what the one before it missed, and arrange the stack so the last layers do not depend on the agent at all.

That last clause matters. If your kill switch needs the same agent that went wrong to flip it, you have a decoration, not a control.

Anthropic's engineers recommend a similar posture when building agents. Their guide says agents can pause for human feedback at checkpoints, and that stopping conditions such as a maximum number of iterations help maintain control.

OWASP gives the same advice from a security angle. Its material on Excessive Agency describes preventing an assistant that a malicious email tricks into sending spam by limiting functionality, requiring user approval and rate limiting.

Both sources point to controls that sit outside the model's judgment. That is the design principle for the rest of this post.

If you are still deciding how much autonomy an agent should have, the debate in AI-assisted versus autonomous outbound is the right starting point. The guardrails here assume you have decided to let an agent touch your campaigns at all.

#What the mailbox providers already enforce

You are not the only one watching your sending. Gmail and Outlook enforce rules whether or not your agent behaves, and those rules define how much room a mistake has.

Google's sender guidelines tell bulk senders to keep their user-reported spam rate below 0.1% and to avoid reaching 0.3%. The same FAQ describes bulk senders as those sending around 5,000 or more messages a day to personal Gmail accounts.

Google also requires authentication and easy unsubscribes for bulk senders, namely SPF, DKIM, DMARC and one-click unsubscribe. Enforcement has tightened over time, with temporary and permanent rejections ramping up from November 2025.

Microsoft applies parallel rules. Its announcement for Outlook says domains sending more than 5,000 emails a day need SPF, DKIM and DMARC, and non-compliant mail goes to Junk before it may be rejected.

The law adds a third layer of consequence. The FTC's CAN-SPAM compliance guide says each separate email in violation can bring penalties of up to $53,088, and it has no business-to-business exception.

Look at what these rules imply for an agent. A 0.1% spam rate on 1,000 messages is one complaint, so a handful of complaints in a small batch can push you past the line.

That arithmetic is ours, not a published statistic. It shows why small batches matter early and why a runaway agent is so costly.

For deeper context, see our notes on the spam complaint rate threshold, Google's bulk sender rules, Microsoft's cold email rules and one-click unsubscribe.

Providers are the last line of defense, and they punish quickly. Your guardrails should stop problems long before a mailbox does.

#The seven layers at a glance

Each layer answers a different question. Together they cover the path from an agent's idea to a prospect's inbox.

LayerQuestion it answersWorks without the agent?
1. Tool scopeWhat can the agent touch at all?✓
2. Readiness checkIs the campaign safe to launch?✓
3. Test emailDoes it look right in a real inbox?✓
4. Volume capsHow much can go wrong at once?✓
5. Human approvalDid a person say yes?✓
6. MonitoringIs something drifting right now?✗ if it only reads the agent's own report
7. Kill switchHow do I stop it fast?✓

Notice that almost every layer works without the agent's cooperation. That is intentional, because a guardrail that relies on the model's good behavior fails exactly when the model misbehaves.

flowchart TD
    A[Agent proposes a change or a launch] --> B[Layer 1: tool scope limits what it can touch]
    B --> C[Layer 2: readiness check]
    C --> D[Layer 3: test email to an inbox you own]
    D --> E[Layer 4: volume caps and pacing]
    E --> F[Layer 5: human approval]
    F --> G[Campaign runs]
    G --> H[Layer 6: monitoring and alerts]
    H --> I{Anything wrong?}
    I -- No --> G
    I -- Yes --> J[Layer 7: kill switch, pause the campaign]

Follow the chart left to right and then around the loop. Layers one through five prevent, layer six detects and layer seven contains.

#Layer 1: narrow tool scope

The first layer is the menu. If the agent cannot reach a dangerous action, it cannot take it, whatever the prompt says.

Start with read-only tools and add narrow writes after a trial. Our guide to which tools an agent should get sorts a real menu into four tiers by blast radius.

For FirstSales, the product MCP exposes tools to read campaigns, analytics, progress and events, and a few narrow writes such as editing sequence steps, adding contacts and adding blocked domains. We saw 21 tools in one connected session on October 8, 2026, and your list may differ.

Two facts shape the design. We did not confirm any MCP tool that creates a campaign, so you create one with firstsales campaigns create and then use MCP to edit and watch it.

Also, mutating, destructive, billing or approval-backed actions should go through the CLI or API, according to the shipped product skill. That keeps the riskiest verbs in tools that have guards.

Scope also covers identity. The product MCP uses OAuth, so actions carry your own permissions, and Developer API keys are not accepted by it.

Keep the menu small. As the post on why 100 MCP tools make an agent worse explains, a smaller menu is cheaper, more accurate and easier to review.

Finally, watch for descriptions that change after approval. The routine in MCP security for outbound covers saving and comparing tool lists.

What layer one stops: unwanted actions that no one should have been able to take. What it misses: harmful uses of tools you did allow.

#Layer 2: the readiness check

Layer two asks whether the campaign is fit to launch. It is a gate that runs before any message leaves.

On FirstSales the command is firstsales campaigns readiness, which the safety lines require before campaigns start. The CLI also provides prepare-launch as part of the campaigns group, and the full list of subcommands appears in the registry through firstsales commands --json.

A readiness check should look at the things that wreck deliverability. These include sending authentication, tracking domains, warm-up status, suppression and blocked lists, and campaign content settings.

The CLI gives you related read commands for the pieces. These include email-auth status and email-auth verify, warmup status, suppression check and blocked-domains list.

Read the readiness output yourself. Do not let the agent summarize it and decide, because a summary that glosses over one failing item is how launches go wrong.

Set a rule: no failing item, no launch. If a check fails, fix the cause, and run it again.

Our post on the pre-launch checklist from the terminal walks through the check step by step. For the wider logic of automated checks, see automated pre-send checks for cold email.

Authentication deserves special attention. If your records are wrong, every other layer is working on a broken base, so follow the steps in SPF, DKIM and DMARC setup for 2026.

What layer two stops: launches on broken infrastructure. What it misses: content problems that only show in a real inbox.

#Layer 3: the test email

Layer three sends a real message to a real inbox you control. It catches what automated checks cannot see.

The command is firstsales campaigns send-test-email, and the safety lines require it before campaigns start. The CLI also offers prepare-test-email as a preparation step.

Open the test in the inbox providers your audience uses. Check how the subject, the first line and the unsubscribe handling look.

Look for variable errors. Placeholders that did not fill, a wrong first name, a company name in the wrong field and broken links are all common.

Check tone as well. Does it read like something a person would send, or like a template with a name stapled on?

If the agent wrote or edited the copy, read every step, not only the first. The follow-ups are where sloppy edits hide.

Do the check yourself. An agent can verify that a field exists, but only a person feels the awkward line.

Our guide to sending a test email from Claude Code first covers the workflow. The broader topic of AI copy quality is in AI email quality at scale and the AI-generated email compliance review.

What layer three stops: visible errors and tone problems. What it misses: problems that appear only at volume.

#Layer 4: volume caps and pacing

Layer four limits how much can go wrong at once. A mistake that reaches fifty people is a lesson, and the same mistake at five thousand is an incident.

Start small and ramp. New campaigns and new mailboxes should send low volumes first, and the agent should never be able to raise limits without a person approving.

Per-inbox limits matter. Our posts on email sending limits, emails per inbox per day and how many cold emails per day give working numbers and the reasoning behind them.

Spread volume across enough inboxes that no one mailbox looks like a firehose. But keep your overall volume far from the bulk-sender thresholds that providers define, since crossing them changes the rules you must follow.

Pacing is the cousin of caps. Spreading sends across the day looks more natural to mailbox providers and gives you time to notice trouble.

Treat limits as settings that humans own. An agent may propose a change, and a person applies it after thinking about the consequences.

A rule worth writing down: the agent can lower volume on its own, but only a person can raise it. That asymmetry keeps mistakes small.

Watch the burn rate of your domains too. The note on cold email domain burn rate explains how fast poor sending practices erode a domain.

What layer four stops: large-scale damage from a small error. What it misses: slow drift in quality across many small batches.

#Layer 5: human approval

Layer five puts a person at the decision. It is the most effective layer and the one teams cut first when they are busy.

Approval works best when it is specific. "Looks fine" is weak, while "I read steps one to four, ran readiness, checked the test email and approve starting at 100 a day" is a real decision.

Make the approver different from the author when you can. The person who wrote the prompt is the least likely to notice what is wrong with the result.

Put approval at the points where an action becomes visible to prospects. Starting, resuming, raising limits and editing steps in a running campaign are the main ones.

On FirstSales the start and resume steps sit in the CLI as campaigns start and campaigns resume, which a person types. The CLI's --dry-run previews a command without a network call, and --confirm is required for destructive commands.

Use --dry-run as part of approval. Reading exactly what a command will do is faster and safer than trusting a description of it.

Never delegate deletes. Commands like contacts delete cannot be undone, so a person should run them deliberately.

Approval does not need to slow you down much. Teams that standardize the checklist can approve a launch in a few minutes.

The question of how much review is enough has real data behind it. Our notes on the human review rate for AI email and on human-in-the-loop cold email cover where teams place review, and AI drafts, human sends describes a hybrid model.

What layer five stops: anything a sensible person would catch. What it misses: things the person was not shown.

#Layer 6: monitoring and alerts

Layer six watches the live campaign. Prevention fails sometimes, so you need to see trouble early.

Track a short list of numbers daily. Bounce rate, spam complaints, reply sentiment, unsubscribes and sending volume against plan will tell you most of what you need.

The read tools in MCP help here. The product menu includes tools for campaign progress, analytics and events, and the CLI offers campaigns progress, campaigns analytics and campaigns events.

The CLI also has an alerts group with list, acknowledge and resolve actions. Use it to see what the platform flagged.

Make monitoring a habit and not a heroic act. A daily check, such as the one in the daily outbound standup in one prompt, keeps you close to the numbers, and a scheduled report as in weekly campaign reports with cron and the CLI covers the longer view.

Set thresholds before you launch. Decide the bounce rate at which you pause, and the complaint rate at which you stop, based on provider guidance. Google's 0.1% and 0.3% lines are a useful anchor for complaints.

Watch replies too. Angry replies, requests to stop and mentions of spam are early warnings that precede formal complaints. The guide to the reply handling playbook shows how to triage them.

Monitoring also catches model drift. Prompts and behavior shift over time, as described in AI SDR prompt drift, so compare current drafts with an evaluation set from time to time. See building an eval set for outbound AI.

Deliverability needs its own watch. Follow the habits in email deliverability monitoring.

What layer six stops: nothing by itself, but it shortens the time to notice. What it misses: harm that happens faster than you look.

#Layer 7: the kill switch

Layer seven is how you stop. A kill switch should be fast, simple and independent of the agent.

On FirstSales, firstsales campaigns pause stops a campaign, and resume restarts it. Practice these before you need them, so the commands are muscle memory.

Write a runbook with three lines. Who is allowed to pause, how to pause, and who to tell.

Include a rule that anyone on the team may pause for any reason, no questions asked. The cost of an unneeded pause is small, and the cost of a delayed one is large.

Know how to revoke access as well. api-keys revoke ends a key, and revoked keys fail immediately according to the CLI package.

An agent may run campaigns pause on its own, as long as it tells a person at once. Resuming stays with a person, because that is the step that can send more mail.

After a pause, investigate before you resume. Find the cause, fix it and restart at a lower volume.

If mailbox reputation took a hit, follow the playbook in deliverability incident response. Domain damage can take weeks to repair, which is why the earlier layers exist.

Our walkthrough on starting, pausing and resuming campaigns from the CLI covers the commands in detail.

What layer seven stops: the spread of damage. What it misses: harm already done, which is why you want all seven layers.

#Putting the layers together

Layers work as a system. The table below shows how one failure meets several defenses, and which defense usually catches it.

FailureLayer that usually catches itBackup layer
Agent edits the wrong campaign1 (scope), 5 (approval)6 (monitoring)
Authentication records broken2 (readiness)6 (monitoring)
Variable did not fill3 (test email)5 (approval)
Volume too high on day one4 (caps)7 (kill switch)
Hostile text in a reply steers the agent1 (scope), 5 (approval)7 (kill switch)
Complaint rate climbing6 (monitoring)7 (kill switch)
Model drifts after an update6 (monitoring), eval set5 (approval)
Everything looks fine but a list is wrong5 (approval)6 (monitoring)

Two patterns stand out. Every failure has at least two defenders, and the kill switch backs up almost everything.

Implementation order matters. Build the kill switch and the readiness habit first, because they are cheap and cover the most.

Then add scope limits, caps, the test email routine and approval rules. Add monitoring thresholds as soon as you have a campaign running.

Keep the safety lines in every workflow. Run campaigns readiness and campaigns send-test-email before campaigns start, never paste an API key into a prompt, and treat every delete as permanent.

Finally, remember where this sits in the larger design. The five-layer view in the AI outbound agent stack places guardrails at the oversight layer, which cuts across all the others.

#Guardrails by autonomy level

How many layers you need depends on how much freedom the agent has. The table maps three common setups to the controls that should be mandatory.

SetupWhat the agent doesLayers that must be in place
Reporting onlyReads campaigns and answers questions1, 6
Drafting and editingEdits sequence steps in paused campaigns1, 2, 3, 5, 6, 7
OperatingEdits running campaigns, adds contacts, adjusts listsAll seven, with approval on every write

Even the reporting-only setup needs two layers. It needs scope, so it cannot drift into writes, and monitoring, so someone checks its numbers against the app.

The drafting setup is where most teams live. It adds the readiness check, the test email, human approval and the kill switch because the agent's output can reach prospects once a person starts the campaign.

The operating setup is rare and risky. If you run it, tighten caps, shorten review intervals and keep the approver separate from the author.

None of these setups includes an agent that starts campaigns on its own. We do not recommend that setup, and the product's own guidance sends mutating and approval-backed actions to the CLI.

#Three hypothetical failures and which layers catch them

These stories are invented to show the layers at work. They are not reports of real events.

The fat-fingered list. A teammate asks the agent to add forty contacts to a list and pastes the wrong file. The agent adds four thousand.

Layer one limits the write tool to list membership. Layer five asks a person to confirm the count before the campaign starts, and the number looks wrong. Layer four's cap would have held the first day's volume down even if no one noticed.

The overeager rewrite. An update to a tool description makes the agent eager to improve copy. During a reporting chat it edits step two of a running campaign.

Layer one's ask-first setting stops the edit from landing without a prompt. The saved tool list from the security routine shows the description changed, and layer six flags a drop in replies a day later if the edit slipped through.

The angry reply. A prospect answers with a hostile message containing instructions aimed at the assistant. The agent reads it in a session that also holds write tools.

Layer one should have separated reading from writing in the first place. Layer five stops any resulting change from reaching prospects, and layer seven pauses the campaign while you investigate.

In each story, two or three layers had a chance. That redundancy is the whole point of the design.

#A launch approval checklist you can paste

Use this list at the moment of approval. A person reads each line and answers yes or no, and any no stops the launch.

  1. I read every step of the sequence, not just the first.
  2. campaigns readiness passed, and I read the output myself.
  3. A test email arrived in an inbox I own, and it looked right.
  4. Variables filled correctly, including names and company fields.
  5. The unsubscribe handling is present and works.
  6. The list was verified and checked against suppression and blocked domains.
  7. The daily volume is low enough for a first day, and I own the limit.
  8. I know who will watch the numbers tomorrow morning.
  9. I can pause the campaign in under a minute.
  10. The approver is not the only author of the copy.

If a line takes more than a minute to answer, that is a sign your tooling needs work. Write that down and fix it next week.

Pair the checklist with a --dry-run of the start command so you see exactly what will happen. Then run campaigns start yourself.

#A one-page kill switch runbook

A runbook is useful only if people can find it at 11 pm. Keep it short, keep it where the team already looks, and rehearse it.

Trigger. Anyone may pause if they see a spike in bounces, complaints or angry replies, or if an agent did something unexpected.

Action one. Run firstsales campaigns pause for the affected campaign, or pause others too if the cause is shared, such as a sending domain.

Action two. Tell the team in the channel you use, with the campaign name and the reason.

Action three. Save evidence: the tool list, the current sequence and the recent events from the read tools.

Action four. If a key may be exposed, run api-keys revoke for it.

Action five. Investigate with a person at the keyboard, not the agent that was involved.

Restart rule. Resume only after the cause is fixed and a second person agrees, and restart at a lower volume.

Rehearse once a quarter on a test campaign. A drill takes ten minutes and shows you which command you forgot.

Notice that the runbook never needs the agent. It needs people and a terminal.

#Prompt rules are not guardrails

Many teams start with instructions in the prompt, such as "never send to anyone on the do-not-contact list". That is a request, not a control.

A prompt rule depends on the model reading it, remembering it and weighing it correctly against everything else in view. Hostile text in a reply, a long context or a model update can all weaken that chain.

Use prompt rules as a helpful second voice, and put the real control somewhere the model cannot argue with. The block list is a good example.

Add domains to the platform's blocked list with the CLI's blocked-domains add, or through the narrow MCP write tool, so the system itself refuses to contact them. Check suppression with suppression check before a launch and not only in a prompt.

The same applies to limits. A cap set in the platform holds when the model forgets, while a cap written in a prompt does not.

Test your guardrails by trying to break them in a test workspace. Ask the agent to do something your rules forbid, and see whether the system or only the prompt stops it.

If only the prompt stops it, you have found a gap. Move the rule into a layer that does not depend on the model.

Our post on the do-not-contact list through MCP shows how to keep that list under system control.

#A quarterly guardrail review

Guardrails drift as teams grow and tools change. A short review each quarter keeps them honest.

Walk through the seven layers with the team and ask one question per layer: did this layer ever stop something, and did it ever fail?

A layer that never fires may be set too loosely. A layer that fires constantly may be training people to click through, which is its own risk.

Compare your live tool list with the register, rerun the kill switch drill and check that thresholds still match current provider guidance. Providers change their rules, so verify the numbers at the source.

Record what you change and why. The log becomes your best onboarding document for new teammates.

#What guardrails cannot do

No stack of controls replaces judgment. A few limits are worth stating so that nobody leans on the system too hard.

Guardrails cannot fix a bad offer. A perfectly controlled campaign with a weak message still earns a low response and invites complaints.

They cannot fix a bad list. If your data is stale, your bounces rise whatever you do, so keep list hygiene and data decay in view and use email verification before sending.

They cannot replace consent and compliance thinking. The rules in whether cold email is legal in 2026 still apply to every message.

They cannot predict every new attack. The field changes quickly, so review your layers each quarter.

They also cannot keep up with a team that bypasses them. If people routinely skip the test email, fix the process that made skipping attractive.

Use the layers as a shared language. When someone proposes a shortcut, ask which layer it removes and what replaces it.

#Frequently asked questions

#What are email agent guardrails?

They are controls that limit what an AI agent can do around email and catch its mistakes. Good ones sit outside the model, so they work even when the model is wrong.

#Why do I need more than one guardrail?

Every control fails sometimes. Stacking layers means a failure in one is caught by another before it reaches prospects.

#What is the first guardrail to build?

Build the kill switch and the readiness habit first. They are cheap and cover the most failures, and then you add scope limits and approvals.

#What does campaigns readiness do?

It is the FirstSales CLI check that you run before campaigns start. Read its output yourself and fix every failing item before launch.

#Why send a test email?

A test email shows how the message looks in a real inbox, including unfilled variables and awkward tone. Run campaigns send-test-email before campaigns start.

#Can an AI agent start a campaign?

It should not. Starting a campaign is a person's decision, run in the CLI after readiness and a test email.

#Can MCP create a campaign on FirstSales?

We did not confirm a tool that creates one. Use firstsales campaigns create, then use MCP to edit and watch the campaign.

#What spam rate should I stay under?

Google tells bulk senders to keep user-reported spam below 0.1% and never reach 0.3%. Smaller senders should treat those numbers as targets too.

#What is the bulk sender threshold?

Google describes bulk senders as those sending around 5,000 or more messages a day to personal Gmail accounts. Microsoft uses 5,000 emails a day for its Outlook requirements.

#Do the rules apply to B2B cold email?

Yes. The FTC's CAN-SPAM guide has no business-to-business exception, and penalties can reach $53,088 per violating email.

#How do volume caps help?

They limit how much a mistake can spread. Start small, ramp slowly and let only a person raise limits.

#Who should approve a launch?

A person other than the author when possible, who has read the steps, seen the readiness output and checked the test email.

#What does --dry-run do?

It previews a CLI command by printing the method, URL and redacted headers without a network call. Use it before any change.

#What does --confirm do?

It is required for destructive CLI commands. Without it, the command stops, which gives a person a final chance to reconsider.

#How do I stop a campaign fast?

Run firstsales campaigns pause. Practice it beforehand, and let anyone on the team pause without asking permission.

#What should I monitor daily?

Track bounces, spam complaints, reply sentiment, unsubscribes and volume against plan. The CLI and MCP read tools give you the numbers.

#What does the alerts command group do?

It lists, acknowledges and resolves platform alerts. Check it as part of daily monitoring.

#What if a reply contains hostile instructions?

Keep reading replies in a read-only session without write tools, and keep a person in front of any action. That breaks the combination Simon Willison called the lethal trifecta.

#How should I handle deletes?

Never delegate them. Commands such as contacts delete cannot be undone, and they need --confirm.

#How often should I review my guardrails?

Quarterly, and after any incident or vendor change. Check each layer and ask which failures it would not catch today.

#Conclusion

An email-sending agent needs seven stacked guardrails: narrow tool scope, a readiness check, a test email, volume caps, human approval, monitoring and a kill switch. Each one catches what another misses, and the last layers must work without the agent.

Remember the order of work. Build the kill switch and readiness habit first, add scope, caps and approval next, and set monitoring thresholds before you launch.

Your next step is a rehearsal. Pick a paused test campaign, run campaigns readiness, send a test email and practice campaigns pause so the routine feels ordinary.

Then read MCP security for outbound for the change-control side and the five layers of an AI outbound agent stack for the big picture. For the first layer in depth, return to which tools an agent should get.

Keep reading

Outreach that keeps going after you log off.Leads, emails, follow-ups and replies, handled.

Connect unlimited mailboxes and let AI agents find leads, write each email and follow up. Or send your own templates in manual mode. From $29/mo.

$1 for 3 days · Cancel anytime · No contract

Install with AI

Your coding agent sets up the FirstSales CLI and skills for you.

Prompt for Claude Code

I'm setting up FirstSales (https://firstsales.io), an AI outbound sales platform: campaigns, contacts, a reply inbox, deliverability and lead signals. Help me get my workspace sending real, good emails end to end, from Claude Code.

Read these first so you know how FirstSales works:
- Developer docs and API: https://developer.firstsales.io
- CLI: https://www.npmjs.com/package/@firstsales.io/cli
- Skills for coding agents: https://github.com/firstsalesio/firstsales-skills (read README.md and GUIDE.md)

Setup
1. Install the CLI: npm install -g @firstsales.io/cli
2. Install the FirstSales skills:
   claude plugin marketplace add firstsalesio/firstsales-skills
   claude plugin install firstsales@firstsales
3. Ask me if I already have a FirstSales account. If not, send me to https://app.firstsales.io to sign up.
4. Ask me to create an API key under Settings → API → API Keys, with only the scopes we need.
   Never ask me to paste the key into this chat. Tell me to run this in my own terminal, so the key stays hidden:
   read -rs FS_KEY && firstsales auth login --api-key "$FS_KEY"; unset FS_KEY
5. Run `firstsales whoami` and tell me which workspace and organisation we are connected to.

Then ask me about my business: what I sell, who I sell to (roles, company size, countries), my best customers, and what I use today for outbound (tools, lists, mailboxes). Walk me through:
1. Teaching FirstSales my business: website, offer, proof points and case studies in the knowledge base, so the AI writes like someone who knows the product.
2. Connecting my sending mailboxes and checking my sending domain: SPF, DKIM, DMARC and warm-up. If anything is unhealthy, tell me the exact DNS record to add.
3. Bringing in contacts: import my CSV or CRM export into a clean list, remove duplicates and bad emails, and block domains I must never email (customers, competitors, my own).
4. Building my first campaign: the right list, senders, steps and timing. Write the sequence with me, show me the drafts, and do not launch until I say yes.
5. Setting up Signals if it fits: find people engaging with LinkedIn posts about topics my buyers care about, and turn them into leads.
6. Inviting my team and giving each person the right access.

Once campaigns run, show me how to work the reply inbox from here: which replies need an answer, draft responses in my voice, and move good conversations into deals. If I use Cal.com, connect it so follow-ups can offer my booking link (not the first email).

Throughout, as you learn about my business, proactively suggest and help create:
- Reply templates for the questions and objections my prospects are likely to raise, based on my product, site and codebase if you can see them.
- Campaign ideas and segments worth testing, with the reason for each.

Safety rules:
- Show every change as a dry run (--dry-run) first and wait for my yes. Never send emails, launch campaigns or delete anything without my yes.
- Tell me before anything that spends credits, and how many.

Be opinionated. If the docs give a sensible default, just use it. Don't make me choose between five options.