Engineering the Biz Side: Renewal emails
Nathan Clement · September 8, 2026 · 5 min read
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..

Craft contract‑renewal emails on autopilot with a single, configurable prompt
Automation eliminates context switching, while improving outcomes for everyone!
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.
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.
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!)
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.