2.8 KiB
2.8 KiB
AI Content Policy
Requirements
All warmup email subjects and bodies must be:
- Professional B2B tone
- Contextually appropriate to
industry(Childcare, SaaS, Finance, etc.) - Free of spam trigger words (see blocklist)
- Free of placeholders — no
[Name],[Your company],{{variable}}, etc. - Plain text only (MVP) — no HTML, images, tracking pixels, or links in warmup mail
- Unique enough across sends — no identical consecutive bodies
Forbidden patterns (auto-reject)
Regex / validation pass after generation:
\[.*?\] # bracket placeholders
\{\{.*?\}\} # mustache
<.*?@.*?> # angle email placeholders in body
\[Your .*?\]
\[Director .*?\]
\[Company .*?\]
INSERT .* HERE
TODO
lorem ipsum
click here
act now
limited time
free money
guarantee
Spam trigger word tiers
Tier 1 — hard block (regenerate)
free, winner, cash, viagra, casino, lottery, act now, 100% free, risk-free
Tier 2 — soft warning (regenerate once, then flag for review)
urgent, limited, offer, discount, sale, promotion, buy now
Generation pipeline
flowchart LR
A[AI Generate] --> B[JSON Parse]
B --> C[Placeholder scan]
C --> D[Spam word scan]
D --> E[Length check]
E --> F{Pass?}
F -->|No| G[Regenerate max 3]
F -->|Yes| H[Store + Send]
G --> A
Prompt guidelines (system)
Initial email
- 80–150 words
- Specific but generic business topic (scheduling, follow-up, intro)
- Realistic subject ≤60 chars
- No signatures with fake phone numbers
- Sign off with first name only if name provided in mailbox profile (future)
Reply
- 40–100 words
- Reference specific points from incoming body (quote or paraphrase)
- Natural continuation, not sales pitch
Re:subject handling
Content diversity
| Technique | Purpose |
|---|---|
| Temperature 0.8–0.9 | Variation |
| Industry rotation | Context diversity |
| Thread memory (last 3 bodies) | Avoid repetition in replies |
| Optional spintax-free rewriting | Structural variation (phase 2) |
Mailbox profile (future)
{
"senderName": "Jon",
"companyName": "FillCare",
"title": "Co-founder"
}
AI uses real values instead of inventing or placeholdering.
Failure handling
| Failure | Action |
|---|---|
| 3 validation failures | Skip send slot; log ai_validation_failed |
| API down | Retry with backoff; don't send template fallback |
| JSON parse error | Retry once with stricter prompt |
Audit
Store contentVersion and validationResult on WarmupLog for debugging disputes.
Why no links in warmup
Tracking links and URLs are strong spam signals during reputation building. Warmup content should be link-free until placement stabilizes (phase 2: optional benign links).