# Dynamic Content Personalizer

Use when the user asks to "personalize the email", "add merge tags / dynamic content"...

- Repository: https://github.com/aaron-he-zhu/aaron-marketing-skills (3046 stars)
- Category: Writing
- License: Apache-2.0
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add aaron-he-zhu/aaron-marketing-skills --skill dynamic-content-personalizer -g -a claude-code -y`
Codex: `npx skills add aaron-he-zhu/aaron-marketing-skills --skill dynamic-content-personalizer -g -a codex -y`
Cursor: `npx skills add aaron-he-zhu/aaron-marketing-skills --skill dynamic-content-personalizer -g -a cursor -y`
Gemini CLI: `npx skills add aaron-he-zhu/aaron-marketing-skills --skill dynamic-content-personalizer -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add aaron-he-zhu/aaron-marketing-skills`

## Description

Use when the user asks to "personalize the email", "add merge tags / dynamic content", "set up conditional blocks per segment", or "make first-name and product-recommendation fields fall back safely"; produces a merge-tag map with per-tag fallbacks, conditional-block rules with per-segment variations, a fallback-safety audit, and a PII guard on what may render, informing the SEND E (Engagement/personalization) dimension. Not for building the segments, use list-segment-builder; not for writing the base copy, use email-creative-builder; not for scoring EQS or running vetoes, use email-quality-auditor. 邮件个性化/合并标签/条件内容块/兜底默认值

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Dynamic Content Personalizer

Takes an already-written email creative plus the segment map (or the raw export columns) and specifies the **personalization layer**: a merge-tag map where every tag has a stated fallback, conditional-content blocks with per-segment variations, a fallback-safety audit that no empty field or dead conditional can render, and a PII guard on which fields are even allowed into the body. This is the SEND **E (Engagement/personalization)** lever. It does not build segments, write the base copy, or score the program.

**Scope guard**: this skill wires personalization onto existing copy for existing segments only. It does **not** define WHO the segments are ([list-segment-builder](../../setup/list-segment-builder/SKILL.md)), does **not** write the subject/body/CTA ([email-creative-builder](../email-creative-builder/SKILL.md)), and does **not** score, roll up the EQS, or run the S1/S2/N1/D1 vetoes ([email-quality-auditor](../../deliver/email-quality-auditor/SKILL.md) owns those).

## Quick Start

```
Add merge tags with fallbacks to this email [paste creative]; export columns are first_name, city, last_product. Promo mode.
```

```
Set up conditional blocks: champions get the loyalty offer, at-risk get the win-back offer, everyone else the base offer. Segment map attached.
```

```
Audit this template for fallback safety and PII exposure before we send. [paste template with {{merge_tags}}]
```

## Skill Contract

The rest: https://github.com/aaron-he-zhu/aaron-marketing-skills/blob/HEAD/email/engage/dynamic-content-personalizer/SKILL.md
