Guide · The Donut Agency
AI-Maxing for Email & SMS
How we doubled our agency with zero new hires, and the exact prompts we use.
You open ChatGPT, type “write an email about our sale,” and press enter. The output reads like generic marketing filler. You close the tab and go back to writing copy by hand.
We built a system that works differently. Over the last year our agency doubled its business while dropping prices for clients and hiring zero extra employees. Output per employee roughly tripled.
These systems run daily on every account we manage, including the 9-figure ones. Every prompt we use is printed in full below. Copy them.
Section 1
What AI actually gives you
Three things: volume, speed, and cost. Every impressive AI story you have heard is a subcategory of one of them.
Speed shortens the workflow. Six hours of customer research in ten minutes. A month's calendar in thirty minutes instead of four hours. A monthly report from one question instead of an afternoon. Cost cuts the bill: generated assets instead of photoshoots, analyst work automated, and the checking, tracking and remembering delegated.
Volume is the one that makes money. On this system a brand sending 20 to 25 campaigns a month moves to 60 to 90 on the same team and the same budget. That volume is never 90 blasts to your full list. It is the same four or five marketing moments, cut for tightly defined segments: one-time buyers, prospects, gift-givers, tall-size purchasers, members.
One list, one send
22
campaigns a month
Same 5 moments, cut by segment
60–90
campaigns a month
One sale, sent as different emails
Recent prospects
1x customers
Repeat customers
Lapsed customers
Volume per person barely moves. Relevance goes up, so unsubscribe rates go down even as total sends rise.
Tight segments times unique content equals higher conversion. On a $200M apparel brand this system runs a single sale as a dozen different emails. XL buyers see XL products, recent shirt buyers see bottoms, members see their pricing. Unsubscribe rates went down, because relevance went up while volume per person barely moved.
On our accounts that produced +19% year-over-year email campaign revenue at the $200M apparel brand, benchmarked against the brand's other channels, and +22% at a $30M brand. Both moved from the 20-25 campaign range to 60-90 without adding headcount. We did not run a holdout on either, so treat these as the pattern we see when relevance and volume rise together rather than an isolated causal estimate.
None of it happens by pasting “write me an email” into a chatbot. It happens by running the same six steps every month, with AI doing the heavy lifting inside each one.
The rest of this guide is that cycle, then the two places AI quietly earns more: flows and reporting.
plus $5,000 of photography
Section 2
Step 1: Research
Skipping research is why most AI copy sounds generic: the model was asked to draft with nothing to draft from. Feed it your actual customers first and the same model produces copy your competitors cannot, because they do not have your reviews.
Start with raw reviews. Export a few hundred from your review platform, paste them into the prompt below, and get back three personas with the emotional detail that actually powers copy: the problems, the secret shames, the fears nobody admits in a survey.
Prompt 1A · Reviews → customer personas
I will provide you with a set of customer reviews for an ecommerce brand. Your job is to read and analyze them to identify 3 distinct Ideal Customer Profiles (ICPs) based on shared needs, emotional context, and behavioral patterns. Then, for each ICP, generate a rich, insightful customer persona in the following format: Customer Persona for [ICP Name] 5 Customer Problems 5 Challenges 5 Secret Shames 5 Deep-Seated Fears (they wouldn't openly admit) 5 Key Emotional Drivers 5 Motivations 5 Product Benefits 5 Product Features Skip all tables and classifications — just give me the 3 personas based on your analysis of the reviews. Here are the reviews: [PASTE REVIEWS]
For a second layer of depth, enrich each persona with the Jobs To Be Done framework.
Prompt 1B · Jobs To Be Done enrichment (optional)
For each ICP, create a table that provides 3 functional jobs to be done, 3 emotional jobs to be done, and 3 social jobs to be done. Please make the jobs as detailed as possible in the form of a paragraph, mentioning non-obvious insights and in-depth analysis of the fears, challenges, motivations, key emotional drivers and results expected (not each paragraph has to contain every single point, please use your discretion).
Then go underground. Reviews tell you what customers say to you. Forums tell you what they say when you are not in the room. This prompt mines the anonymous internet for the truths that never show up in a survey, and each one is a campaign concept waiting to happen.
Prompt 1C · Underground insights
Based on the brand and Ideal Customer Profiles you've already explored, your next task is to uncover 10 raw customer truths from real forum discussions. These truths should reflect the unfiltered language, fears, motivations, and emotional triggers that people are expressing online — particularly in communities like Reddit, where anonymity allows for honesty. Avoid generic pain points. Instead, look for: - Emotional or taboo topics that people discuss anonymously - Insider slang, acronyms, or recurring phrases (e.g., "FUPA" in weight loss communities) - Unexpected behaviors, coping strategies, or unmet needs (e.g. bamboo cooling sheets used by peri-menopausal women) - Real quotes that reveal shame, frustration, or obsession - Issues people talk about but brands tend to overlook Each insight should be specific, surprising, and culturally grounded. Do not summarize broadly — each truth should feel like something you'd never find in a traditional customer survey. Please provide: - A bold Concept Title - A short 1–2 sentence explanation of why it matters - A direct link to the post or comment it came from Repeat for all 10.
Check every link before you use it
That prompt asks the model for a direct link to each source post. Language models routinely produce plausible-looking URLs that lead nowhere. Open every link before you build a campaign on the insight behind it. If the link is dead, or the thread does not say what the model claimed it said, throw the insight out. A fabricated customer truth is worse than no truth, because it arrives feeling like research.
The output of this step is three personas and ten underground truths per profile. That document is the fuel for everything below. Regenerate it quarterly, not monthly.
Section 3
Step 2: Calendar
A calendar is a structure problem before it is a creativity problem. Decide the skeleton first: dates, segments, email types, products. Fill the topics second. Teams that start from topics end up with a month of whatever occurred to them in a Monday meeting.
The inputs that define it: your events and promos, your segments, your personas from step 1, your standing rules (weekly deal, monthly drop), your frequency, and what worked last month.
Two details make the prompt below work where naive calendar prompts fail. First, it constrains the model to YOUR email types and YOUR segments, so it cannot invent a flash sale you never approved. Second, it ends with a validation pass where the model checks its own output against the rules before showing you anything.
Prompt 2 · Monthly calendar
Using the inputs below, generate an email calendar formatted as a Google Sheets-compatible table. The calendar may include multiple campaigns on the same date, each targeting different customer segments. Inputs Brand: For the month of: Upcoming promos/sales this month: Total number of emails: ICPs to consider (Ideal Customer Profiles or audience segments): Products to consider: [one line of positioning per product] Email types to consider: Sale (only if there are sale periods specified above) Bestsellers Benefits-Features Cross-Sell Problem-Solution Science Behind How-to/Hacks Social Proof Comment-Response Brand/Founder Story Back In Stock New Arrivals Interesting topics to consider for educational email types: Allowed Segments You may assign one or more emails per day, as long as they target different segments. Use only the following: Recent Prospects 1x Customers Repeat Customers Lapsed Customers Output Format (Google Sheets-Compatible Table) Present the calendar as a table with the following columns: Email No. | Date | Topic | Email Type | ICP | Products | Brief | Segments Email No.: 1, 2, 3, etc. Date: Format as YYYY-MM-DD Topic: Email topic or working title Email Type: Must match the provided types ICP: Intended audience or persona Products: Product(s) Brief: 25-word summary of the email content Segments: One or more of: Recent Prospects, 1x Customers, Repeat Customers, Lapsed Customers Format each row as plain text rows separated by | so the data can be copied directly into Google Sheets. Validation Process 1. Generate the initial calendar using the inputs. 2. Ensure: - Total number of emails matches the requested count. - Content is tailored to the specified ICPs. - Segment assignment logically matches the content and email type. - Only use approved email types (no variations). - Do not include "New Arrivals", "Back in Stock", or "Seasonal Sale" themes unless explicitly stated in the inputs. 3. If the criteria are not met: adjust topics, email types, content, segment targeting and regenerate the full table accordingly. Final Output Requirement Only output the final email calendar in the specified table format, ready for Google Sheets. Do not include explanations, notes, or summaries. Perform all evaluations internally before displaying the table. After completing the calendar, evaluate your response and cross-check if it meets the conditions specified.
Set the promotional intensity before you generate
Give the month a promotional rating from 1 to 10, where 1 is no promos and 10 is the hard ceiling of 75% promotional content. Never let a calendar go past 75% promotional, whatever the sale schedule looks like. The remaining quarter carries the education, the social proof and the brand, and it is what keeps the promotional sends working.
Tell it not to invent events
Left unconstrained, a model will cheerfully schedule a “Spring Refresh Sale” nobody approved. A fabricated event on a calendar is the most common way an AI planning pass wastes a meeting: the dates look plausible, so nobody catches it until someone asks who signed off on the sale.
A human still reviews the output. The point is that the human is now editing a complete, rule-compliant draft instead of staring at a blank month. People move from originators to editors, and editing is much faster than drafting.
Section 4
Steps 3 + 4: Brief and copy
Each calendar row is already a brief: topic, audience, offer, products, email type. Copy is where most teams get AI wrong, so here is the framework that fixes it.
Miss one slot and the output is generic. Fill all five and the model writes like it has been on your account for a year.
The part most people fail is Tone. “Write casually” is not a tone. A tone is a paragraph of direction, specific enough that a stranger could imitate your brand from it alone. Three examples from wellness brands with distinct voices follow. Steal the closest one and rewrite it for your brand.
Tone example · Confident (Lemme)
Write in a bold yet approachable tone that blends playful confidence with science-backed credibility. Use conversational phrases, punchy one-liners, and empowering language that speaks directly to the reader's goals (feeling good, looking good, taking control). Tap into seasonal or situational hooks (e.g., spring break, new season, busy life) and layer in subtle urgency or FOMO without sounding pushy. Include clear benefit-led statements, supporting science, and modern wellness lingo that feels fun, digestible, and aspirational. Keep it crisp, lively, and just a touch cheeky.
Tone example · Lighthearted (Gruns)
Write in a cheeky, straight-shooting tone that feels like wellness advice from your smart, slightly sarcastic best friend. Balance digestible science with relatable realness — highlight benefits using bold claims, but keep the language grounded and non-preachy. Use modern, witty phrasing, playful jabs ("your greens might be ghosting your gut"), and everyday problem-solution framing that mirrors how people actually talk about their bodies. Embrace headlines with attitude, textured benefit lists, and a you-got-this vibe. Think clarity with edge, glow-up energy without fluff.Tone example · Aspirational (Armra)
Write in a reverent, poetic, and high-performance tone that fuses ancestral wisdom with cutting-edge science. Channel a sense of cellular awe — each word should feel like a bioelectric charge. Use elevated, rhythmic language that evokes transformation, vitality, and primal intelligence. Speak to the body as an ecosystem and to the reader as an elite, intuitive being returning to their biological roots. Blend mythic metaphor with molecular-level precision, invoking the sacredness of light, water, and nature. Prioritize phrases that feel immersive, ritualistic, and intentional — designed to spark both intellectual curiosity and spiritual resonance. Always tie benefits to foundational biology and emergent human potential.
For the Examples slot, transcribe 8 to 10 emails from brands whose copy you admire. milled.com archives nearly every DTC brand's sends; pick your favourites and paste the full text. Models learn structure and rhythm from examples faster than from any instruction.
Then assemble the final prompt.
Prompt 3 · Campaign copy
Write copy for a marketing campaign based on the parameters specified below. Topic: ICP: Research: [paste the persona + the underground insights relevant to this topic] Tone: [paste your tone paragraph] Writing style example (do not lift phrases or copy the format/structure from here as this is strictly for guiding you): [paste 1-2 transcribed emails you admire] This is exactly the format you need to follow for the copy: [your email structure: hero headline, subhead, body block, CTA, etc.]
Your copywriters become editors, not originators. On our accounts the editing pass is where the humans earn their keep: cutting the one weak line, sharpening the hook, catching the claim that needs a compliance check. Twenty hours of drafting becomes four hours of editing, and the volume from section 1 becomes physically possible.
Section 5
Step 5: Design
Design scales through structure, not through faster designers. Build a library of templated email layouts with auto-layout, one layout per email type. Structured copy from step 4 maps onto structured layouts, so design for a routine campaign becomes paste, adjust, export. Minutes, not hours.
AI enters twice. First, generated assets: seasonal backgrounds, lifestyle scenes and product-in-context shots that used to require a photoshoot now cost pennies. A holiday campaign that would have waited three weeks for a shoot ships the same week. Second, variant production: once one master design exists, producing the segment variants from section 1 is mechanical work AI handles well.
The honest caveat: brand-defining creative, the hero visuals that make customers recognise you in one scroll, still comes from human designers. AI collapses the cost of everything around it, which buys your designers time to do exactly that work.
Section 6
Step 6: Measurement, then loop
Open rate, click rate and revenue per recipient are secondary KPIs. Worth watching, not worth steering by. Email only your most engaged few thousand and you will post a beautiful open rate while sending fewer people back to your site than you could have.
The questions that compound are different: which email types make money, for which ICPs, featuring which products. Track those three dimensions and every month's calendar gets smarter than the last.
What makes that possible is a naming convention. Name every campaign the way you would name an ad variant.
Morning Lift
Topic
benefits-features
Email type
Herbal Hannah
ICP
Wake
Product
Four tokens, one separator. Every send becomes a labelled experiment, and the campaign report stops being a list of names and becomes a dataset you can pivot.
Export the campaign report from Klaviyo, paste it with this prompt, and the labels become columns you can pivot on.
Prompt 4 · Enrich the campaign report
You are given a tabular CSV dataset whose columns include: #, Campaign Name, Recipients, Revenue Campaign names follow the pattern: Topic - email subtype - ICP - Product (e.g. "Find Your Flow - how-to/hacks - Stressed Sally - Calm") For every row: 1. Parse the Campaign Name field. 2. Extract and append as new columns: - Email Subtype: second dash-delimited token - ICP: third token - Products: final token (preserve commas if multiple) Leave the original columns unchanged; simply extend the table with the three new fields. Output the full enriched table in CSV format. Do not add extra commentary or explanation — just the header row and data rows. Example input row: 2,Morning Lift - benefits-features - Herbal Hannah - Wake,89344,32517.85 Desired output row: 2,Morning Lift - benefits-features - Herbal Hannah - Wake,89344,32517.85,benefits-features,Herbal Hannah,Wake
Revenue per recipient. Read down a column and you learn what an audience responds to; read across a row and you learn where an email type earns its place.
Then ask the obvious questions: best email types, best ICPs, best products, best offers, best send days. Then ask them again per segment. The answers go straight back into next month's research notes and calendar inputs. That loop is why this is a flywheel and not a checklist.
Section 7
AI for flows
Campaigns get most of the AI attention, but flows hold more failure modes. A broken campaign stops sending after one day. A broken flow drains revenue quietly for months. AI is good at finding those, watching them, and remembering to check on them.
Auditing configuration
The worst flow bugs are invisible in reports, because the flow is live and the report shows numbers. Three of them account for most of what we find.
First, a flow filter that contradicts its trigger, so a live flow sends to almost nobody. A checkout-abandon flow filtered to “Checkout Started = 0” empties itself. Second, negative exclusion conditions joined with OR where AND was needed, so the suppression never fires and customers who already bought keep getting the emails. That one looks perfectly healthy in the report. Third, a handoff gap: one flow correctly exits to hand off, but the receiving flow is gated or missing, so a whole segment falls through both and gets nothing.
AI reads configuration the way an auditor does, every flow at once, and it does not get bored on flow 23.
Prompt 5 · Flow audit
I'm giving you an export of our Klaviyo flows: for each flow, its trigger, trigger filters, flow filters, and per-email performance (recipients, opens, clicks, revenue). Audit for silent failures: 1. Filters that contradict their trigger (a flow that can never fire, or fires to near-zero recipients despite being live) 2. Exclusion logic joined with OR where AND is needed (people getting emails they should be excluded from) 3. Handoff gaps: segments that exit one flow and qualify for no other flow (e.g. cart vs checkout coverage) 4. Emails inside a flow with recipients but near-zero revenue vs their siblings (decayed or broken messages) 5. Missing canonical flows for a DTC brand: welcome, browse abandonment, cart, checkout, post-purchase, winback, sunset For every finding: name the flow, the exact configuration problem, who is affected, and the one-line fix. Rank the findings by estimated revenue impact.
What the API cannot see
The Klaviyo flow-report API cannot read trigger configuration, filter logic, re-entry rules or time delays. AI can rank suspects from the numbers, but the cause is confirmed in the UI. Treat any configuration diagnosis as a hypothesis until somebody has opened the flow and looked at it.
Monitoring without willpower
The failure mode of flow monitoring is that nobody looks. Flows are set and forget, which in practice means set and degrade. So we stopped relying on looking. Our agent posts a per-brand flow revenue summary to Slack every morning: which flows sent, what they made, and anything anomalous versus the trailing weeks. A flow email that decays 30% does not wait for the quarterly review to be noticed.
The same applies to one-off follow-ups. “Remind me next week to chase the A/B test results” is a request our team makes constantly. The AI holds the calendar so no human has to.
Project management
Our agent reads a client's Slack message, extracts the actual asks, and writes them into the project board as structured tasks with the context attached. It checks the board for next week's planned campaigns. It keeps the master SOP document current when a process changes.
None of that is glamorous, and at 15% of all usage it is one of the biggest time savings in the whole system: no copy-paste project management.
Section 8
Reporting: talk to your own data
You can export your data from Shopify and Klaviyo, load it into your own database, and ask it questions in plain English. Not dashboard questions. Real ones:
- What is the 90-day LTV of customers whose first purchase was product A versus product B?
- After someone buys product X, what do they buy next, and how long do they take?
- What is the median number of days between order 1 and order 2? Between 2 and 3? Where should the winback flow actually fire?
- Which acquisition products create customers who come back, and which create one-and-done buyers?
- Rank this summer's products by revenue from repeat purchases only.
Those are windowed LTV, product journey analysis and replenishment timing: the exact analyses we broke down in the Advanced Retention guide. That guide covers what the numbers mean and which levers move them. The point here is the workflow change: what used to be an analyst's week is now a conversation.
We rebuilt our entire agency reporting layer this way. A monthly client report with year-over-year comparison is one message. “Top 10 revenue campaigns this year, non-promotional” is one message.
Two practical notes from running this on real accounts. First, AI writing SQL against your order data is also how the wrong-number traps get caught: duplicate line-item joins that inflate revenue several times over are exactly the thing you tell it to check once and it checks forever. Second, pair this with the naming convention from step 6 and campaign reporting joins the same database, so orders, flows and campaigns are answerable in one place.
Section 9
What 1,137 real requests taught us
Our team runs its AI agent inside Slack, and we logged every request for two months: 1,137 requests from 9 people across 10 brands. Here is what an email team actually uses AI for.
1,137 requests, 9 people, 10 brands, over two months. Copy generation is 8%.
Copy generation is 8%. The number one use of AI in a real email team is not writing. It is checking, tracking, reporting and remembering.
Four lessons from the logs.
Put the AI where your team already lives. Ours is in Slack, and it gets tagged in the same message as human teammates. Nobody opens a separate tab, which is exactly why it gets used 20 times a day instead of twice a week.
20% of usage is steering, and that is the point. “Try again.” “Go with B.” “Those dates are wrong.” That is not AI failing, that is delegation working. You do not accept the first draft from a junior employee either.
Teach it in the flow of work. Every correction (“do not say drop, say release”) gets pushed into its brand knowledge, so the same note never has to be given twice. Six months of corrections compound into an assistant that knows the account better than a new hire would.
Schedule it. The highest-leverage requests were not questions but standing orders: daily flow summaries, morning reports, Friday reminders. AI with a calendar beats AI with a chat box.
That is the full picture. Volume, speed and cost on the campaign side. Auditing, monitoring and memory on the operations side. Not one prompt, but a system that runs every day.
Want this run on your account instead?
Get a free Klaviyo audit. We pull your numbers and show you exactly where the revenue is leaking.
Get the free audit