
Maintain AI content accuracy with context engineering
Run a six-step workflow to prevent outdated or inaccurate information in AI-assisted content, with verification steps, metrics, re-audit cadence, and a reusable editorial SOP.
Copy-paste ChatGPT prompts grouped by email type and psychological angle. Includes brand voice blocks, A/B testing guardrails, and spam-check templates.

ChatGPT writes generic subject lines when the prompt has no audience, offer, character limit, or banned words. Paste a brand voice block, then a fill-in formula that names the email type and the angle. The prompts below follow that structure, grouped by type and by psychological angle.
For the voice constraints that belong in the same paste, see how to train an LLM on brand voice. For the larger production loop, see how to build an AI content workflow. For a sibling prompt set, see ChatGPT prompts for LinkedIn posts.
A reliable subject-line prompt pins down these variables: role, context, audience, tone, quantity, and character limit. When one is missing, the model has less campaign context and may fall back on generic marketing language such as “Unlock Your Potential 🚀”. The prompt structure OpenAI recommends starts with a short role, then defines personality, goal, success criteria, constraints, and output format, and that sequence maps onto a subject-line brief.
Each variable buys something different in the output:
Open rate is the metric for this exercise because the subject line has one job, which is getting the email opened. The number is noisier than it used to be: roughly 70% of reported opens come from Apple’s privacy proxy, which loads tracking pixels whether or not a person ever looks at the message. Use opens to pick between two subject lines sent to the same list at the same time, and use clicks to decide whether the open was worth anything.
Every prompt below assumes you have pasted the brand voice block from the next section first. The table shows which prompt to reach for by email type and angle:
Every prompt in this article is one formula with the bracketed variables filled differently. Copy this once and keep it next to your brand voice block:
Write [N] email subject lines for a [email type] going to [audience: who they are and why they are on this list, one sentence].
The email is about [offer or content, two sentences max, facts only].
Angle: [curiosity gap / urgency / benefit / question / social proof].
Tone: [two or three adjectives]. A line we have sent that sounds right: "[real past subject line]".
Constraints: under [50] characters, hook in the first [30] characters, no emoji, no ALL CAPS, no exclamation points, nothing from the banned list in the brand block. Do not invent numbers, customer names, dates, or product capabilities that are not in this brief.
Output: numbered list with the character count in parentheses after each line.
The last constraint matters more than it looks. OpenAI’s own copywriting guidance, linked above, separates source-backed facts from creative wording and tells the model not to invent metrics or customer outcomes to make a draft sound stronger. Put that rule in the prompt, because a subject line that promises “40% faster onboarding” when your brief said nothing of the sort will get opened and then resented.
The brand voice block is where consistency lives, and the prompts above are only the place where you invoke it. Build it once as a document in Notion or Google Docs, paste it as the first message of every ChatGPT session (or into custom instructions), and update it when your voice or offer changes. The individual prompts stay short because the block already carries the role, the audience, the offer, and the banned words.
Here is the template:
Role: You are a direct-response email copywriter working in-house at [company]. You write to be opened and you never trade accuracy for punch.
Brand voice: [three adjectives]. We sound like [reference]. We never sound like [anti-reference].
Three subject lines we have sent that sound like us:
1. [real line]
2. [real line]
3. [real line]
Audience: [one paragraph: role, company stage, what they are trying to get done, what they are sick of hearing].
Offer context: [what we sell in one sentence] plus the one proof point you may cite: [sourced number or named customer, or "none"].
Banned words and patterns: [list]. If a line needs one of these to work, rewrite the line.
Replacements: instead of "unlock" name the outcome. Instead of "last chance" state the date. Instead of "exclusive" say who it is for.
Hard rules: no emoji, one punctuation mark per line maximum, never start with Re: or Fwd:, never invent a number, name, or date.
Confirm in one line and wait for the brief.
Here is a compact filled-in version for a product-analytics SaaS selling to mid-market product teams:
Pair every banned word with a replacement, as the template does. Telling a model only what to avoid is unreliable: in a study of open-source chat models, baseline models told to avoid a topic mentioned it marginally more often, and never less. “Say the date instead of ‘last chance’” gives the model somewhere to go. “Don’t say ‘last chance’” gives it a word to fixate on.
Keep this block in the same workspace as the rest of the brief so every writer pastes the same version.
Cold outreach is the only email type here where the recipient has no reason to trust the sender, so the prompt has to force specificity about them rather than about you.
We ran this on our own cold list for a practitioner survey. No variant shipped without a subject line. The first-touch winners were the mirror (how AI-forward is your team, really) and the contrarian (most teams think they are ahead on AI). Proof-led and pain-led were the A/B pair, not twelve lines dumped into the ESP. Short and direct beat the longer credential stack.
The prompt below adds one variable the formula lacks, the observed trigger, because a cold line that names something true about the recipient reads like a colleague and a line that names your product reads like a pitch.
Write 12 email subject lines for a cold outreach email going to a head of product at a 200-person B2B SaaS company who has never heard of us. Trigger: their company posted a job for a "product analyst" last week.
The email offers a 20-minute walkthrough of how teams our size answer retention questions without hiring an analyst. Proof point allowed: "14-day free trial, no card".
Angle: benefit, phrased as something true about their situation, not ours.
Tone: lowercase-feel, peer to peer, no sales energy. A line we have sent that sounds right: "the analyst you're hiring for, in 20 minutes".
Constraints: under 40 characters, hook in the first 25, no company name, no emoji, no exclamation points, nothing from the banned list. Do not invent anything about their company beyond the trigger.
Output: numbered list with character counts.
Sample output, the kind of lines you should expect when the block is loaded:
1. Re the product analyst role (27)
2. Before you hire the analyst (27)
3. Retention questions, no SQL (27)
4. A shortcut on the analyst hire (30)
5. Who's answering retention now? (30)
6. 20 minutes vs one headcount (27)
Line 1 is a trap. It uses “Re” to fake a reply thread, which violates the hard rule in the brand block. Delete it and keep the rest.
Recount the character counts before you send.
Promotional lines carry the most spam-pattern risk because the model’s training data for “sale email” is full of capitals and words like “free,” and in the Helsinki-based dataset below both of those correlated with lower opens.
In a dataset of 31,812 subject lines sent 4.6 billion times, lines containing “free,” “exclusive,” “today,” “flash,” and “save” had significantly lower open rates, and fully capitalized words cut opens by about 3.3%, though the same study found a single exclamation point slightly raised opens. Ban exclamation points by default to prevent stacked punctuation. Add those five words to the banned list for this prompt.
Write 12 email subject lines for a promotional email going to existing trial users of our analytics product who have not upgraded. The offer: annual plans are 20% off through March 31 for anyone who upgrades from a trial.
Angle: benefit. The urgency is allowed only as the printed date, not as adjectives.
Tone: plain and specific. A line we have sent that sounds right: "Annual plans, 20% off until the 31st".
Constraints: under 45 characters, hook in the first 30, no emoji, no ALL CAPS, no exclamation points, and none of these words: free, exclusive, today, flash, save, hurry, last chance, don't miss. Do not invent any discount, date, or feature not in this brief.
Output: numbered list with character counts.
Sample output:
1. 20% off annual, ends March 31 (29)
2. Your trial, priced for the year (31)
3. Upgrade by the 31st, pay 20% less (33)
4. The annual plan math, done for you (34)
5. March 31: trial to annual, 20% off (34)
6. One decision before the 31st (28)
Line 4 promises something the body may not contain (a worked calculation). Either put the math in the email or cut the line. Line 5 breaks the one-punctuation-mark rule with a colon and a comma. Treat every output line as a claim the body has to honor.
Newsletter lines fail when they describe the format (“Issue #47: this week in product”) instead of the single most specific thing inside the issue.
Paste the issue’s lead item into the brief in two sentences. The model cannot build a curiosity gap around content it has not seen.
Sample output:
1. WAU up, revenue retention down (30)
2. Three cohorts, one misleading metric (36)
3. The active-user number that hides churn (39)
4. Why growing WAU can mean shrinking NRR (38)
5. More actives, less money. The reason (36)
6. A retention metric worth distrusting (36)
Line 5 breaks the one-punctuation-mark rule and uses a generic explanatory hinge models often reach for. Lines 1 and 4 are the ones I would send.
The welcome subject line’s job is to get the first action, so the brief needs to name that action explicitly or the model defaults to “Welcome to [brand]!”
Write 12 email subject lines for the first welcome email going to someone who signed up for a trial in the last 10 minutes. The action we want: connect a data source, which takes about 5 minutes and is the step most trial users skip.
Angle: benefit. Name what they get once the data source is connected.
Tone: direct, helpful, no celebration. A line we have sent that sounds right: "Connect a source, see your first funnel".
Constraints: under 45 characters, hook in the first 30, no "welcome" as the first word, no emoji, no exclamation points, nothing from the banned list. Do not invent time estimates beyond "about 5 minutes."
Output: numbered list with character counts.
Sample output:
1. Five minutes to your first funnel (33)
2. Connect one source, skip the blank screen (41)
3. The step most trials skip (25)
4. Your first retention chart, 5 min away (38)
5. Start here: connect a data source (33)
6. What your account shows once it's connected (43)
Line 3 uses the curiosity angle rather than benefit. That is fine as a test variant, but it is the model drifting from the brief, and you should notice when it happens.
Re-engagement lines work when they acknowledge the silence and ask a question the recipient can answer with one click, because the goal of a win-back send is a signal you can segment on, not a pretense that nothing changed.
Write 12 email subject lines for a re-engagement email going to contacts who have not clicked anything in 120 days but have not unsubscribed. The email asks one question: do you still want these emails, with a one-click yes and a one-click no.
Angle: question. Honest about the gap, no guilt, no discount.
Tone: plain, short, human. A line we have sent that sounds right: "Still want these?".
Constraints: under 40 characters, no emoji, no "we miss you" unless the body is written in first person by a named sender, no "last chance," no exclamation points, nothing from the banned list.
Output: numbered list with character counts.
Sample output:
1. Still want these? (17)
2. Keep or stop: your call (23)
3. One click decides this list (27)
4. Haven't heard from you in 4 months (34)
5. Should we keep writing? (23)
6. Yes or no, no hard feelings (27)
Line 2 and line 4 state facts the body must match (a real two-button choice, a real 120-day window). If your ESP’s segment is 90 days, fix the brief before you run it, because the model will print whatever number you gave it.
The five angles below are short add-on prompts. Each assumes the brand block is loaded and the formula’s audience and offer lines are already in the session, so you only have to change the angle instruction.
Curiosity-driven lines work when writers pay off the gap in the body. Require the prompt to name that payoff.
Rewrite the brief above with angle = curiosity gap. For each of 10 lines, name the tension without resolving it, then on the next line write the one sentence from the body that pays it off. If no body sentence pays it off, drop the line.
Urgency has well-documented reversals. In one controlled test, a line using “Today” opened at 18.9% while “Don’t wait another minute” opened at 13.7%, so a plain time word beat a pleading phrase. The larger Helsinki dataset still found “today” lowered opens, so print the actual date instead.
Rewrite the brief above with angle = urgency. Every line must contain the actual end date or the actual remaining quantity. Do not use hurry, last chance, don't miss, ending soon, act now, or final hours. 10 lines, character counts.
Benefit lines name the outcome in the recipient’s terms, which means the prompt has to supply the outcome in those terms.
Rewrite the brief above with angle = benefit. Each line states what the recipient has after they act, in words a [audience role] would use in a standup, not words we use on our pricing page. 10 lines, character counts.
Question lines are easy to generate and easy to overuse, so constrain them to questions the recipient already has.
Rewrite the brief above with angle = question. Each line is a question the recipient has asked themselves this month, answerable by the email body. No rhetorical questions, no questions about our product. 10 lines, character counts.
Social proof requires a sourced number or a named customer in the brief, and nothing else.
Rewrite the brief above with angle = social proof. Use only this proof point: "[sourced number or named customer]". If the line needs any other number, customer, or claim, do not write it. 10 lines, character counts.
Use two constraints for subject-line length:
Preview text is the second half of the same unit, and most prompts ignore it. Keep preview text under 90 characters and put the important information first, because you cannot control how much a given client shows. On mobile the average visible preheader runs about 35 to 50 characters, so the first 35 characters of the preview do the real work.
Generate both together so the preview extends the subject instead of repeating it:
For each of the 5 subject lines I pick below, write preview text that adds the next piece of information rather than restating the line. 35 to 90 characters, most important words in the first 35, no emoji, no "View in browser," no question if the subject is already a question. Output as subject | preview | combined character count.
Ask for 10 variants split across two angles, then test the best line from each angle against each other. Testing two lines from the same angle tells you which wording won. Testing across angles tells you which mechanism works on this list, which is the finding you can reuse next month.
Using the brief above, write 10 subject lines: 5 with angle = benefit, 5 with angle = curiosity gap. Label each group. Keep audience, offer, tone, and all constraints identical across both groups so the only difference between the two sets is the angle. Then mark the single strongest line in each group and explain in one sentence why, using only facts from the brief.
Pick the winner on clicks where you can and on opens only when the test is a same-list, same-time split. Open-based A/B results may be inaccurate under Mail Privacy Protection, while clicks and purchases are unaffected, so an open-rate winner is a hypothesis and a click-rate winner is a result. Fix the sample size before you send, and resist checking early. Peeking at results ten times turns a perceived 1% significance level into an actual 5%, because the significance math assumes you decided the sample size in advance.
The loop repeats weekly with one more prompt. Paste the winner, the loser, and the metric back into the session:
Last send: "[winning line]" beat "[losing line]" on [click rate: X% vs Y%] to the same segment. Write 10 new lines for this week's brief that keep the property that made the winner work (state what you think it was in one sentence first). Same constraints as always.
After a few rounds you should have a short list of mechanisms that work on your audience, written in the model’s one-sentence explanations, and that list belongs in the brand voice block under “what has worked.” The prompt invokes it. The block keeps it.
Keep the copy review and sending infrastructure separate:
Use the banned list in the brand block for the first pass. Run a verification prompt on the output for the second pass, because prohibitions alone are unreliable, as the Pink Elephant study of open-source chat models above found:
Review the 12 subject lines you wrote. For each line, flag any of the following and say which rule it hits: a word from the banned list, a word in ALL CAPS, more than one punctuation mark, an emoji, a fake Re: or Fwd:, a number or name not in the brief, or a promise the body cannot keep. Output a table: line | flags | fixed version. Leave clean lines unchanged.
Run this on every batch, including batches that look clean. In practice a second review pass tends to catch rule breaks the first pass missed, and the table format makes each fix visible.
The same campaign brief run two ways shows what context buys. The brief: announce a completed SOC 2 Type II report to existing trial users of the product-analytics SaaS from the filled-in brand block.
The weak prompt, with no brand block loaded:
Write 5 catchy subject lines for an email announcing that we completed our SOC 2 Type II report.
The kind of output a weak prompt produces:
1. Big Security News: We're SOC 2 Type II Certified!
2. Your Data, Protected, We Just Leveled Up
3. Unlock Enterprise-Grade Security Today
4. Compliance and Peace of Mind
5. We Did It! SOC 2 Type II Is Official
Every line has at least one problem the brand block would have caught: emoji, Title Case, an exclamation point, a weak second-half hinge, “unlock,” “today,” abstract framing, and “certified,” which is inaccurate, since a SOC 2 Type II engagement ends in an auditor’s report.
The strong prompt, with the brand block loaded:
A sample output from the strong prompt:
1. Our SOC 2 Type II report is ready (33)
2. For your security review: SOC 2 Type II (39)
3. The report your procurement team asked for (42)
4. SOC 2 Type II, available on request (35)
5. One less blocker for security review (36)
6. Send this to your security team (31)
The rule to extract: the audience line about security review gives the model the context reflected in lines 3, 5, and 6. The recipient’s blocker moved the copy beyond the tone adjectives used in the weak prompt.
Even a well-briefed model leaves fingerprints, and the fingerprints shift by model generation. Watch for em dashes used for punch, not-only-X-but-Y framing, significance inflation, the rule of three, and Title Case headings. Run this edit pass on every batch before it reaches your ESP:
Add each tell you catch to the brand block’s banned list with its replacement, and the next batch arrives cleaner. The edit pass shrinks over time only if the block absorbs what the pass found.
Pick the prompt by what the email has to make happen, and let the angle follow from the goal rather than from taste.
Whichever prompt you pick, the sequence is the same: load the brand block, fill the formula, run the A/B variant prompt for 10 lines across two angles, run the spam check prompt on the output, and send the two strongest lines as a same-time split. Feed the click-rate winner back into the session before next week’s brief.
Keep the brand block and last week’s winning line in the same workspace so the next brief inherits them. For a weekly working example of this kind of editorial system, subscribe to the newsletter.
Every week, we share real examples and systems the fastest-growing companies are using to scale smarter.
Get the last workshop recording when you sign up.

Run a six-step workflow to prevent outdated or inaccurate information in AI-assisted content, with verification steps, metrics, re-audit cadence, and a reusable editorial SOP.

Copy-pasteable ChatGPT prompts for ICP, competitive differentiation, positioning statements, and messaging pillars with frameworks and validation methods.

The essential SaaS marketing metrics with formulas, stage benchmarks, and practical guidance on CAC, LTV, MRR, churn, NRR, and marketing attribution.