Engineering the Biz Side: Renewal emails

Nathan Clement · September 8, 2026 · 5 min read

Hi my name is Nathan and I’m an engineer — so I REALLY hate doing the same thing twice. As such, every time I am given a business-y task I try to automate it so I don’t have to think about it again..

Today’s target

Craft contract‑renewal emails on autopilot with a single, configurable prompt

Why Bother?

  • Renewal emails need to happen, they need to be written well, and a decent one can help customers see the value you provide.
  • Consistency matters: The brand voice, value pitch, and overall message should be aligned with business needs
  • Context changes per customer, but content changes slower, and best practices might never change!

Automation eliminates context switching, while improving outcomes for everyone!

The Plan — One Prompt to Renew them All

I set out to build a generic prompt template fed by a lightweight JSON context. Drop in your details alongside the prompt and watch the AI generate a ready-to-send note.

Building Process

I like to build prompts in consultation with AI. In this case, I used o3 via ChatGPT.

Step 0: Opening Gambit

I lobbed a single line at ChatGPT: “Help me draft a renewal email” The first reply was pretty meh.

Step 1: Capturing the Essentials

I listed what absolutely had to be in every note (<200 words, assume continuation of contract, cite the renewal date, highlight the main value, offer risk reversal, list any required actions, close politely).

Step 2: Iterating to a Concrete Example

I fed real‑world context to the prompt, then tweaked phrasing until the email felt would be good to send to an actual customer.

Step 3: Giving the Prompt a Stylistic Spine

Asked to be able to configure a sender “self description” so the model can mimic everything from a jokester to dry enterprise formality, without changing actual message of the email.

Step 4: Teaching It to Listen to Context

Explicit instructions: If a key is missing, drop the related line. That way optional fields never leave awkward blanks.

Step 5: Making It Meta‑Tunable

We wrapped the whole thing in a {{context}} JSON object, turning knobs for value props, risk reversals, and company personas at will.

Step 6: Beating the Robot Out of the Robot

Style‑hygiene rules ban common AI “tells,” limit the script to one em dash, and blacklist filler like “I hope this email finds you well.”

Step 7: Stress‑Testing with Fun Contexts

We tested with in edgy and meme‑y personas to prove the template context bends without breaking.

Result: a flexible, brand‑safe generator that can sound like a pro or a TikTok bard on command.

TLDR — the final prompt:

You are a senior customer-success manager.

---

#### CONTEXT

You will receive a single {{context}} JSON object. If a key is missing, omit the related sentence or section.

---

#### TASK

Write a concise, friendly contract-renewal email (< 200 words) that:

1. **Assumes continuation** and cites **{{renewalDate}}**.
2. **Highlights** {{valueHeadline}} and, if present, {{valueDetail}}.
3. **Offers** {{riskReversal}} if provided.
4. **Lists** the single customer action {{customerAction}} if provided.
5. **Closes** politely with an optional request for confirmation or questions.
6. **Infers tone** from **{{senderDescription}}** and reflects it in word choice, rhythm, and punctuation.
7. **Final pass:** reread the email and, **without altering factual meaning**, tweak wording or formatting so style consistently matches the inferred tone.
8. **Style-hygiene check:** remove common AI “tells.”

   * Use *at most* one em dash in the whole email.
   * Avoid stock phrases such as “I hope this email finds you well,” “just checking in,” or “please kindly.”
   * Vary sentence length; keep language natural and conversational.
   * Trim filler words and duplicate phrases.

Use plain language—no jargon or hard-sell wording.

---

#### EMAIL STRUCTURE

Subject: Renewal on {{renewalDate}} + free upgrade to {{valueHeadline}}

Hi {{contactPerson}},

Your {{productName}} subscription renews on **{{renewalDate}}**.  
With the renewal comes {{valueHeadline}}{{#if valueDetail}} — {{valueDetail}}{{/if}}.

{{#if riskReversal}}
You’ll also have a {{riskReversal}} if the new workflow doesn’t deliver.
{{/if}}

{{#if customerAction}}
**Your part:** {{customerAction}} (we’ll send step-by-step instructions).
{{/if}}

Unless you need changes, no action is required and everything will continue smoothly.  
Questions? Hit reply anytime.

Thanks for partnering with us!

Best,  
{{senderName}}  
{{senderTitle}}, {{productName}}  
{{senderEmail}}{{#if senderPhone}} | {{senderPhone}}{{/if}}{{#if senderLinkedIn}}
{{senderLinkedIn}}{{/if}}

(copy and paste to try it for yourself!)

For fun… some examples with context:

A meme-y crypto bro:

{
  "customerName": "CheemsCoin DAO",
  "contactPerson": "DogeMaster420",
  "productName": "MoonBoost Deluxe",
  "renewalDate": "2026-01-01",
  "valueHeadline": "🚀 to-the-moon auto-staking",
  "valueDetail": "generates wow yield without rug pulls",
  "riskReversal": "30-day “no pump, full dump” money-back guarantee",
  "customerAction": "drop our new smart-contract address into your vault",
  "senderName": "Lil Meme Lord",
  "senderTitle": "Chief Vibe Officer",
  "senderEmail": "meme@moonboost.io",
  "senderPhone": "(555) 900-1337",
  "senderLinkedIn": "https://linkedin.com/in/lilmeme",
  "senderDescription": "Fluent in GIFs, slang, and good vibes—writes like a tweet thread with punchlines."
}

Super by the book enterprise saleswoman

{
  "customerName": "Continental Manufacturing Group",
  "contactPerson": "Ms. Eleanor Patel",
  "productName": "ProcessOps Enterprise Suite",
  "renewalDate": "2025-11-30",
  "valueHeadline": "Advanced Governance & Audit Module",
  "valueDetail": "ensures full SOX and ISO 27001 compliance with automated audit trails",
  "riskReversal": "90-day pro-rated refund guarantee",
  "customerAction": "forward the updated purchase order to Accounts Payable",
  "senderName": "Jennifer L. Whitaker",
  "senderTitle": "Senior Customer Success Manager",
  "senderEmail": "jennifer.whitaker@processops.com",
  "senderPhone": "(555) 321-4455",
  "senderLinkedIn": "https://linkedin.com/in/jenniferlwhitaker",
  "senderDescription": "Extremely formal and by-the-book; writes with precise, corporate phrasing, full sentences, and zero slang."
}

Think this stuff is fun?? Give me a follow and comment with your favorite examples! Also check out @AiJohnAllen and @AIBizHour to see more about how AI can impact your business operations.


Originally published on 2025-06-23 on Medium.