Email Template Generator
Instructions
When a user requests an email template or needs help writing business emails:
Stage S — Suppression Gate
If generating templates for a BDR prospect list, check each contact before templating:
- EXCLUDE if
bdr_suppression_until IS SET AND bdr_suppression_until > TODAY
- INCLUDE if
bdr_suppression_until IS NOT SET (never suppressed)
- INCLUDE if
bdr_suppression_until < TODAY (cooling period expired)
HubSpot filter: propertyName: "bdr_suppression_until", operator: "NOT_HAS_PROPERTY" OR operator: "LT", value: TODAY_ISO
Reference: lead-suppression-spec (bdr_suppressed, bdr_suppression_reason, bdr_suppression_until)
Identify Email Type:
- Sales/Cold outreach
- Customer support response
- Follow-up email
- Apology/service recovery
- Internal team communication
- Meeting request
- Thank you note
- Rejection/decline
Gather Context:
- What is the purpose of this email?
- Who is the recipient (role, relationship)?
- What action do you want them to take?
- What tone is appropriate (formal, casual, friendly, apologetic)?
- Any specific details or information to include?
Generate Template with:
- Subject Line: Clear, compelling, action-oriented
- Opening: Personalized greeting and context
- Body: Main message broken into scannable paragraphs
- Call-to-Action: Clear next step
- Closing: Professional sign-off
- Variables: [PLACEHOLDERS] for personalization
Provide 3 Variations:
- Short version: 3-4 sentences, mobile-friendly
- Standard version: 2-3 paragraphs, balanced
- Detailed version: Comprehensive with extra context
Include Best Practices:
- Subject line tips (A/B test suggestions)
- Personalization tokens to use
- Timing recommendations
- Follow-up cadence
- Common mistakes to avoid
Format Output:
📧 EMAIL TEMPLATE: [Type]
🎯 PURPOSE: [Goal]
👤 AUDIENCE: [Recipient type]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
VERSION 1: SHORT (Mobile-Friendly)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Subject: [Subject line]
[Email content]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
VERSION 2: STANDARD (Recommended)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Subject: [Subject line]
[Email content]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
VERSION 3: DETAILED (Comprehensive)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Subject: [Subject line]
[Email content]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
💡 OPTIMIZATION TIPS
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ Subject Line:
• [Tip 1]
• [Tip 2]
✅ Personalization:
• [Token 1]
• [Token 2]
✅ Timing:
• Best send time: [Time]
• Follow-up: [Cadence]
✅ A/B Testing:
• Test subject lines: [Option A] vs [Option B]
⚠️ Common Mistakes:
• [Mistake 1]
• [Mistake 2]
Special Scenarios:
- Cold outreach: Focus on value proposition, social proof
- Apology emails: Acknowledge issue, take responsibility, offer solution
- Follow-ups: Reference previous conversation, add new value
- Sales: Problem → Solution → Proof → CTA structure
Example Triggers
- "Write a cold email for B2B SaaS sales"
- "Generate a customer apology email template"
- "Create a meeting request email"
- "Help me write a follow-up email after a sales call"
- "Professional email to decline a proposal"
Output Quality
Ensure all templates:
- Have clear, actionable subject lines
- Use conversational but professional tone
- Include specific personalization opportunities
- Have one clear call-to-action
- Are mobile-friendly (short paragraphs, scannable)
- Follow email best practices (under 200 words for cold outreach)
- Avoid spam trigger words
- Include unsubscribe for cold outreach
Generate effective, conversion-optimized email templates that users can immediately customize and send.
Emit Outcome Sidecar
As the final step, write to ~/.claude/skill-analytics/last-outcome-email-template-generator.json:
{"ts":"[UTC ISO8601]","skill":"email-template-generator","version":"1.0.0","variant":"default",
"status":"[success|partial|error]","runtime_ms":[estimated ms from start],
"metrics":{"templates_generated":[n],"email_types":[n],"personalization_tokens":[n]},
"error":null,"session_id":"[YYYY-MM-DD]"}
Use status "partial" if some stages failed but results were produced. Use "error" only if no output was generated.
1---2name: email-template-generator-skill3description: Generate professional email templates for various business scenarios including sales outreach, customer support, internal communications, follow-ups, and apologies. Creates personalized, tone-appropriate templates with subject lines and formatting. Use when users need to write business emails, cold outreach, or professional communications.4---5
6# Email Template Generator
7
8<objective>
9Generate professional, tone-appropriate email templates for any business scenario including sales outreach, customer support, follow-ups, apologies, meeting requests, and internal communications. Produces 3 length variations (short/standard/detailed) with subject lines, personalization tokens, A/B test suggestions, and timing recommendations.
10</objective>
11
12<quick_start>
13**Trigger:** "Write a cold email for [scenario]" or "Create a [type] email template"
14**Input:** Email type, recipient/audience, purpose, desired tone, specific details to include
15**Output:** 3 template variations (short, standard, detailed) with subject lines, personalization tokens, and optimization tips
16</quick_start>
17
18<success_criteria>
19- [ ] Email type and audience identified
20- [ ] 3 variations provided (short/mobile, standard, detailed)
21- [ ] Each has clear subject line and single CTA
22- [ ] Personalization tokens marked with [PLACEHOLDERS]
23- [ ] A/B test suggestions for subject lines included
24- [ ] Timing and follow-up cadence recommended
25- [ ] Under 200 words for cold outreach templates
26</success_criteria>
27
28<workflow>
29
30## Instructions
31
32When a user requests an email template or needs help writing business emails:
33
34### Stage S — Suppression Gate
35
36If generating templates for a BDR prospect list, check each contact before templating:
37- **EXCLUDE** if `bdr_suppression_until` IS SET AND `bdr_suppression_until` > TODAY
38- **INCLUDE** if `bdr_suppression_until` IS NOT SET (never suppressed)
39- **INCLUDE** if `bdr_suppression_until` < TODAY (cooling period expired)
40
41HubSpot filter: `propertyName: "bdr_suppression_until", operator: "NOT_HAS_PROPERTY"` OR `operator: "LT", value: TODAY_ISO`
42Reference: `lead-suppression-spec` (bdr_suppressed, bdr_suppression_reason, bdr_suppression_until)
43
44---
45
461. **Identify Email Type**:
47 - Sales/Cold outreach
48 - Customer support response
49 - Follow-up email
50 - Apology/service recovery
51 - Internal team communication
52 - Meeting request
53 - Thank you note
54 - Rejection/decline
55
562. **Gather Context**:
57 - What is the purpose of this email?
58 - Who is the recipient (role, relationship)?
59 - What action do you want them to take?
60 - What tone is appropriate (formal, casual, friendly, apologetic)?
61 - Any specific details or information to include?
62
633. **Generate Template** with:
64 - **Subject Line**: Clear, compelling, action-oriented
65 - **Opening**: Personalized greeting and context
66 - **Body**: Main message broken into scannable paragraphs
67 - **Call-to-Action**: Clear next step
68 - **Closing**: Professional sign-off
69 - **Variables**: [PLACEHOLDERS] for personalization
70
714. **Provide 3 Variations**:
72 - **Short version**: 3-4 sentences, mobile-friendly
73 - **Standard version**: 2-3 paragraphs, balanced
74 - **Detailed version**: Comprehensive with extra context
75
765. **Include Best Practices**:
77 - Subject line tips (A/B test suggestions)
78 - Personalization tokens to use
79 - Timing recommendations
80 - Follow-up cadence
81 - Common mistakes to avoid
82
836. **Format Output**:
84 ```
85 📧 EMAIL TEMPLATE: [Type]
86
87 🎯 PURPOSE: [Goal]
88 👤 AUDIENCE: [Recipient type]
89
90 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
91 VERSION 1: SHORT (Mobile-Friendly)
92 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
93
94 Subject: [Subject line]
95
96 [Email content]
97
98 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
99 VERSION 2: STANDARD (Recommended)
100 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
101
102 Subject: [Subject line]
103
104 [Email content]
105
106 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
107 VERSION 3: DETAILED (Comprehensive)
108 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
109
110 Subject: [Subject line]
111
112 [Email content]
113
114 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
115 💡 OPTIMIZATION TIPS
116 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
117
118 ✅ Subject Line:
119 • [Tip 1]
120 • [Tip 2]
121
122 ✅ Personalization:
123 • [Token 1]
124 • [Token 2]
125
126 ✅ Timing:
127 • Best send time: [Time]
128 • Follow-up: [Cadence]
129
130 ✅ A/B Testing:
131 • Test subject lines: [Option A] vs [Option B]
132
133 ⚠️ Common Mistakes:
134 • [Mistake 1]
135 • [Mistake 2]
136 ```
137
1387. **Special Scenarios**:
139 - **Cold outreach**: Focus on value proposition, social proof
140 - **Apology emails**: Acknowledge issue, take responsibility, offer solution
141 - **Follow-ups**: Reference previous conversation, add new value
142 - **Sales**: Problem → Solution → Proof → CTA structure
143
144## Example Triggers
145
146- "Write a cold email for B2B SaaS sales"
147- "Generate a customer apology email template"
148- "Create a meeting request email"
149- "Help me write a follow-up email after a sales call"
150- "Professional email to decline a proposal"
151
152## Output Quality
153
154Ensure all templates:
155- Have clear, actionable subject lines
156- Use conversational but professional tone
157- Include specific personalization opportunities
158- Have one clear call-to-action
159- Are mobile-friendly (short paragraphs, scannable)
160- Follow email best practices (under 200 words for cold outreach)
161- Avoid spam trigger words
162- Include unsubscribe for cold outreach
163
164Generate effective, conversion-optimized email templates that users can immediately customize and send.
165
166## Emit Outcome Sidecar
167
168As the final step, write to `~/.claude/skill-analytics/last-outcome-email-template-generator.json`:
169```json
170{"ts":"[UTC ISO8601]","skill":"email-template-generator","version":"1.0.0","variant":"default",
171 "status":"[success|partial|error]","runtime_ms":[estimated ms from start],
172 "metrics":{"templates_generated":[n],"email_types":[n],"personalization_tokens":[n]},
173 "error":null,"session_id":"[YYYY-MM-DD]"}
174```
175Use status "partial" if some stages failed but results were produced. Use "error" only if no output was generated.
176
177</workflow>