Email Drafting
/install email-response-drafting
Email Response Drafting
This skill covers drafting email replies that sound human, thread correctly, and render properly across email clients. It is scoped to response drafting — not marketing campaigns or mass outreach.
Draft-First: The Non-Negotiable Rule
Never send an email without the user's explicit approval. The workflow:
- Compose the draft (in markdown, in the agent's chat, or in a file)
- Present recipients, subject, and body to the user for review
- Save as draft to Outlook (or the user's email client) if available
- Wait for the user to say "send," "send now," "reply now," or equivalent
- Send only after explicit approval
If intent is ambiguous ("looks good" could mean "I approve the draft" or "I'll send it myself"), ask for one-line confirmation before sending.
Voice and Tone Matching
The cardinal rule: match the sender's register.
| Relationship | Tone | Example opener |
|---|---|---|
| Internal team / contractors | Short, direct, no filler | "Sent the updated file. Let me know if anything looks off." |
| Existing clients (high trust) | Warm but efficient | "Quick update — the document is ready for your review." |
| New contacts / cold replies | Professional, value-first | Lead with what is relevant to them, not your credentials |
| Formal threads | Match their formality | If they write "Dear Steven," reply with "Dear [Name]," not "Hey!" |
Calibration signals
Read the sender's email for cues:
- Length — if they wrote 2 sentences, don't reply with 5 paragraphs
- Greeting style — mirror their "Hi" / "Hello" / "Dear" / no greeting
- Closing — mirror their "Best" / "Thanks" / "Regards" / no closing
- Emoji/exclamation use — match their energy level, don't exceed it
What to avoid
- Over-explaining process — state the outcome, not the journey. "The agreement is ready" beats "I reviewed the agreement, made several updates to sections 3 and 7, cross-referenced with our template library, and..."
- Filler phrases — "I hope this email finds you well" is noise. Start with the point.
- Quoting others on your own product — never attribute your product description to someone else
- Singling out one insight from a rich conversation — if you had a long call, reference the breadth of the discussion, don't cherry-pick
Threading: Get It Right
Broken threading looks unprofessional. Before creating a reply draft:
- Check the subject — if it has "Re:" or "RE:", this is a reply to an existing thread
- Find the original message — search by sender + subject keywords
- Get the message ID — use it as the
in_reply_toorreply_toparameter - Create a threaded reply — not a standalone new message
If the original message cannot be found, tell the user rather than silently creating a standalone draft that will break the thread in the recipient's inbox.
REST API: Use POST /me/messages/{id}/createReply to maintain threading. This preserves conversation ID and In-Reply-To headers.
MCP: reply_to_email handles threading automatically.
Structure: One Ask Per Email
Every email should have exactly one clear action item. If you need multiple things, either:
- Pick the most important one and save the rest for a follow-up
- Use a numbered list where the first item is the ask and the rest are context
Structure template for action-needed replies:
[1-2 sentence context/update]
[The ask — what you need from them, by when]
[Optional: supporting detail they might need to act]
Structure template for informational replies:
[The news — what happened or what's ready]
[Optional: what they should do next, or "no action needed"]
Formatting That Survives Email Clients
Email rendering is a minefield. Markdown that looks perfect in a text editor can break in Outlook, Gmail, or Apple Mail.
Gotchas
| Issue | What breaks | Fix |
|---|---|---|
| Cuddled lists | No blank line before first - item |
Always add a blank line before the first list item |
| Raw markdown in HTML | **bold** renders as literal asterisks in HTML email |
Convert markdown to HTML before sending |
| Missing plain-text body | HTML-only emails get flagged by spam filters | Always include both HTML and plain-text versions |
| Signature placement | Signature appears before the quoted thread | Put signature after reply body, before the quoted thread |
| Long URLs | URLs wrap mid-word and break clickability | Use hyperlink text [click here](url) in markdown; convert to \x3Ca> in HTML |
| Tables | Many email clients don't render markdown tables | Use HTML \x3Ctable> with inline styles for email |
Character encoding
- Curly quotes (
\u201c\u201d) and straight quotes (") should both be handled - Em dashes (
\u2014) render fine in modern clients but may break in plain-text - Non-ASCII characters in subject lines need proper encoding (most APIs handle this)
Draft File Format
When saving drafts to files (for MCP or manual review), use YAML frontmatter:
---
to: [email protected]
subject: Re: Project update
in_reply_to: \x3Cmessage-id-from-original>
---
Body of the email in markdown.
The MCP or send script converts this to HTML + plain text automatically.
Do not pre-populate draft_id or draft_link — these are auto-appended by the MCP after saving to Outlook.
Tone Calibration by Context
Delivering good news
Lead with the news. "The document is signed and filed" — then details if needed.
Delivering bad news
Lead with empathy, then the fact, then the path forward. "I understand the timeline is tight. The review is taking longer than expected — we should have it by Thursday. I will send it as soon as it is ready."
Following up (no response yet)
Soft-remind the agreed action, don't re-ask. "Circling back on the agreement — let me know if you need anything to move forward." Not: "Did you get my last email?"
Declining or redirecting
Be direct and offer an alternative. "I'm not the right person for this, but [Name] at [Company] specializes in exactly this."
Feedback
If this skill helped, star us on GitHub: https://github.com/UseJunior/email-agent-mcp
On ClawHub: clawhub star stevenobiajulu/email-response-drafting
- Make sure OpenClaw is installed (local or Docker)
- Run the install command in chat:
/install email-response-drafting - After installation, invoke the skill by name or use
/email-response-drafting - Provide required inputs per the skill's parameter spec and get structured output
What is Email Drafting?
Draft email replies with tone matching, proper threading, and formatting that survives email clients. Use when user says "draft a reply," "respond to this em... It is an AI Agent Skill for Claude Code / OpenClaw, with 98 downloads so far.
How do I install Email Drafting?
Run "/install email-response-drafting" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.
Is Email Drafting free?
Yes, Email Drafting is completely free, licensed under MIT-0. You can download, install and use it at no cost.
Which platforms does Email Drafting support?
Email Drafting is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).
Who created Email Drafting?
It is built and maintained by Steven Obiajulu (@stevenobiajulu); the current version is v0.1.1.