Back to Learn
#AI Growth Playbooks

ChatGPT prompts for email subject lines that actually convert

Copy-paste ChatGPT prompts grouped by email type and psychological angle. Includes brand voice blocks, A/B testing guardrails, and spam-check templates.

ChatGPT prompt formula and brand voice block for email subject lines

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.

What makes a ChatGPT subject-line prompt actually work?

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:

  • Role: A role line sets register (in-house copywriter versus agency, direct response versus brand). Treat it as a tone setting rather than a knowledge upgrade. Product facts come from the context variable.
  • Context: The offer, the trigger for the send, and the one proof point you are allowed to cite. Without it the model may invent a proof point.
  • Audience: Who the recipient is and why they are on this list. A trial user who hit a paywall and a lapsed buyer need different lines for the same offer.
  • Tone: Two or three adjectives plus one real subject line you have already sent. A real example gives the model wording to imitate.
  • Quantity: Ask for 10 to 15 lines, then discard the weaker options.
  • Character limit: A hard ceiling with the hook required in the first 30 characters, so the line survives truncation on a phone.

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.

Which ChatGPT subject-line prompts work at a glance?

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:

[@portabletext/react] Unknown block type "table", specify a component for it in the `components.types` prop

What prompt formula should you adapt for every prompt below?

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.

How do you set up a brand voice block to paste before every prompt?

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.

What are the best prompts for cold outreach subject lines?

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.

Cold outreach prompt

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.

What are the best prompts for promotional subject lines?

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.

Promotional prompt

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.

What are the best prompts for newsletter subject lines?

Newsletter lines fail when they describe the format (“Issue #47: this week in product”) instead of the single most specific thing inside the issue.

Newsletter prompt

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.

What are the best prompts for welcome email subject lines?

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]!”

Welcome prompt

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.

What are the best prompts for re-engagement subject lines?

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.

Re-engagement prompt

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.

How do you prompt by psychological angle?

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 gap

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

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

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

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

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.

What length and preview-text constraints should you write into every prompt?

Use two constraints for subject-line length:

  • Display constraint: Write “under 50 characters, hook in the first 30” into every prompt, because the open decision often happens on a phone, where much of the line may not render. Mobile clients show roughly 25 to 30 characters, and the published studies on optimal length conflict with each other. Treat length as a display constraint rather than a performance lever. Readers still see a front-loaded hook after truncation on every client, and a 20-character line can lose to a 48-character one if the first 25 characters of the longer line are the better 25.
  • Treat a 20-to-40-character target as a short-lines-do-not-hurt rule, not as a proven winner. Open-rate correlation on MPP-inflated metrics is not a causal test.

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.

How do I prompt ChatGPT for A/B test variants?

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.

How do I keep AI subject lines out of spam and clickbait?

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.

How does a weak prompt compare to a strong prompt on the same brief?

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.

Which five AI tells should you edit out before you send?

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:

  • Weak second-half hinge: “Your data, protected, we leveled up” becomes “Your data review got shorter.” Rewrite the weak second half instead of swapping the punctuation.
  • Abstract framing: “Compliance and peace of mind” becomes “SOC 2 Type II, ready for your reviewer.” State the concrete outcome.
  • Inflation verbs: “Unlock enterprise-grade analytics” becomes “Funnels without a data engineer.” Replace the verb with the outcome the brief named.
  • Rule of three: “Faster, smarter, simpler analytics” becomes “Retention charts in one afternoon.” Three abstract adjectives signal that the model had no fact to use.
  • Title Case Everything: “Your First Funnel Is Five Minutes Away” becomes “Your first funnel is five minutes away.” Sentence case reads more like a person typed it.

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.

Which prompt should you use?

Pick the prompt by what the email has to make happen, and let the angle follow from the goal rather than from taste.

  • You need a reply from a stranger: Run the cold outreach prompt with the benefit angle and an observed trigger. Switch to the question angle only if the trigger is weak.
  • You need revenue from an existing list: Run the promotional prompt with the benefit angle, and add the urgency add-on only when a printed end date exists.
  • You need an open habit: Run the newsletter prompt with the curiosity gap angle and require the payoff sentence for every line.
  • You need a first action after signup: Run the welcome prompt with the benefit angle and name the single action in the brief.
  • You need to know who is still alive on the list: Run the re-engagement prompt with the question angle and a one-click answer in the body.
  • You have a sourced number or a named customer: Run the social proof add-on on top of whichever type you are sending, and put the proof point in the brand block so the model cannot swap it for an invented one.

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.

Frequently Asked Questions

Related Content