# Create safer personalized email content

Email teams can send broken greetings, empty offers, or unnecessary personal data when personalization fields are incomplete. This skill creates a merge-tag and conditional-content specification with fallbacks, catch-all branches, and PII controls.

## Install

```bash
npx skillstore add aaron-he-zhu/dynamic-content-personalizer
```

## Metadata

- Status: approved
- Slug: aaron-he-zhu-dynamic-content-personalizer
- Version: 19.0.0
- Author version: 19.0.0
- Skillstore revision: r2
- Version status: valid
- Tree hash: 461d22cadc3dba2474995b3dc876552ad5127f6fbfcafbc4c904d1ecfe15c38f
- Author: aaron-he-zhu
- GitHub username: aaron-he-zhu
- License: Apache-2.0
- Repository: https://github.com/aaron-he-zhu/aaron-marketing-skills/tree/main/email/engage/dynamic-content-personalizer
- Ref: adcb3549b15782055d0beb6d29f113d20de08f92
- Supported tools: Claude, Codex, Claude Code
- Audit status: complete
- Agent install advisory: allowed
- Manual install advisory: allowed
- Artifact signature: available
- Audit attestation: unavailable
- Human verification: not\_verified
- Risk factors: external\_commands, network, filesystem
- Quality score: 81
- Quality tier: silver
- Public page: https://skillstore.pages.dev/skills/aaron-he-zhu-dynamic-content-personalizer
- Manifest: https://skillstore.pages.dev/api/skills/aaron-he-zhu-dynamic-content-personalizer/manifest

## Capabilities

- Maps each requested merge tag to a supplied export column.
- Defines a readable fallback for every merge tag.
- Creates if, elseif, and else content rules for named segments.
- Audits worst-case rendering when fields are empty.
- Identifies fields that should not appear in visible email content.
- Flags promotional wording that needs approved claim support.

## Use Cases

- Prepare a lifecycle campaign: Add safe first-name and product-category personalization to an existing retention email.
- Review a B2B outreach template: Define grounded conditional lines for named account segments and safe defaults for missing fields.
- Audit a newsletter module: Check dynamic modules for empty fields, missing branches, and visible PII before rendering.

## Prompt Templates

### Add simple fallbacks

```
Add merge tags with safe fallbacks to this email. Available columns are first_name and city. Use promo mode.
```

### Create segment variations

```
Create conditional blocks for champions, at-risk customers, and everyone else. Use this email and segment map.
```

### Run a safety audit

```
Audit this personalized email template for empty-field renders, missing conditional defaults, and visible PII. Use these columns and fill rates.
```

### Build a full personalization specification

```
Create a complete personalization specification for this newsletter. Include tag mappings, rendered fallbacks, conditional rules, PII decisions, worst-case renders, and claim flags.
```

## Limitations

- It does not create segments or write the base email copy.
- It needs column names, segment definitions, and fill rates from the user.
- It does not connect to an ESP or deploy a template.
- It cannot verify claims without an approved claims source.

## Best Practices

- Provide real column names and fill rates before requesting personalization.
- Use a catch-all else branch for every conditional content block.
- Use aggregate data only and keep sensitive PII out of visible copy.

## Anti Patterns

- Do not use a merge tag without a natural fallback.
- Do not create conditional rules for undefined or stale segments.
- Do not paste subscriber rows or use email addresses, phone numbers, or order IDs in examples.

## Security Audit

- Audited at: 2026-07-26T10:12:28.685\+00:00
- Summary: All 45 static detections are false positives caused by Markdown code fences, inline literals, relative documentation links, and metadata URLs. The skill does not execute commands, perform network requests, or resolve user-controlled filesystem paths. It explicitly treats exported data as untrusted and prohibits raw PII in generated output.

## Stats

- Views: 2
- Downloads: 6
- Favorites: 0
- Popularity score: 0
