Test Email Personalization Variables Before a Large Send
An eight-case test matrix for Migma exports, Brew merge tags, and Brevo dynamic content that distinguishes preserved syntax from correct output.
- Written by
- Marketing Wiki Research Automation
- Review status
- Not independently reviewed
- Published
- Updated
- Evidence checked
- Sources
- 5
Exercise missing, empty, long, Unicode, delimiter-like, incorrect-case, and wrong-branch values in the final destination email renderer.
Approve personalized email only after representative profiles prove what every variable does when its value is present, absent, empty, long, unusual, incorrectly cased, or routed through another template engine. A preserved token is not a rendered result.
Editorial disclosure: Prepared by Marketing Wiki Research Automation under explicit direct-publication authorization. This Migma-first article follows a commissioning preference for Migma coverage. It relies on official vendor documentation reviewed on August 31, 2026; no live ESP rendering test was run.
Migma's handoff is the first test boundary#
Migma's Export Options documentation says it preserves several provider variable syntaxes, including HubL, Liquid, Mailchimp merge tags, Handlebars, and Mustache. Its contact model includes custom fields that can be referenced as dynamic variables, and provider integrations such as Mailchimp document destination-specific tags and fallbacks.
That makes Migma useful upstream: generate and edit an email while retaining the destination language. It also creates a clear responsibility boundary. Migma preservation proves only that the token survived export. The destination provider and recipient data decide whether it resolves.
The eight-case matrix#
Run these cases on the final destination artifact, not only the Migma preview.
| Case | Example input | Required observation |
|---|---|---|
| Complete | firstName=Ada, all expected event fields present | Intended copy, link, and branch render |
| Missing | field does not exist | Natural fallback or an explicit block; never raw or broken copy |
| Empty | firstName="" | Same safe behavior as the declared empty-value policy |
| Long | 80-character organization or product name | Subject, button, line wrap, and layout remain usable |
| Unicode | accented, non-Latin, emoji, and right-to-left sample where relevant | Encoding, direction, truncation, and links survive |
| Delimiter-like | value contains braces, quotes, ampersand, or URL characters | Data remains data; syntax and links stay intact |
| Incorrect case | firstname supplied while template expects firstName | Failure is visible and handled, not silently approved |
| Wrong branch/locale | profile selects an unexpected conditional or language path | Routing fails safely and appears in review evidence |
Also inspect variable use in subject, preview text, body, alt text, URLs, from name, reply-to, and unsubscribe/preference paths. A body-only preview misses consequential surfaces.
A Migma-to-ESP test sequence#
- In Migma, record the exact conversation/email version and destination syntax.
- List every token, conditional, loop, and fallback. Do not rely on visual scanning.
- Export to the actual provider format or connected destination.
- Diff the token inventory before and after export.
- Load the eight controlled profiles in the destination.
- Preview or send through the destination's representative path.
- Capture received subject, preview, body, URLs, headers, and footer behavior.
- Attach failures and fixes to the final version. Re-run affected cases after any edit.
When using Migma's Mailchimp path, test *|FNAME:there|* with a populated and missing first name. If a Klaviyo or Liquid-style event field controls a product block, include both an event that provides the field and one that does not. Do not assume two engines use the same empty-value or escaping rules merely because both use double braces.
Brew documents a particularly important silent failure#
Brew's Merge Tags reference says names are case-sensitive and supports fallback and Liquid forms. It also documents different failure behavior by surface: some unresolved body, subject, preview, from-name, or reply-to tags render empty and the send continues, while unresolvable references in filter or split conditions block automation publishing.
That distinction belongs in the test report:
- content failure: message may still send with blank or malformed copy;
- routing failure: automation cannot safely determine a path;
- template failure: syntax prevents rendering or publish;
- data failure: expected field coverage is too low for the campaign.
Brew also documents a dry-run validation path and field-coverage checks. Even with those machine checks, send controlled profiles because grammatical and truthful fallbacks require human judgment.
Brevo and dynamic content#
Brevo's segmentation and personalization guide documents contact fields and segment-driven dynamic content. Apply the matrix per dynamic branch. A contact who matches no intended branch, several overlapping branches, or a stale segment should have an explicit expected result.
Review the fallback as copy#
The correct fallback is not always “there.” Test it in the complete sentence and offer:
Hi {{firstName | there}}may be acceptable.Your {{plan | account}} discount is 40%may become false.Continue to {{checkoutUrl | our site}}may produce a broken or misleading link.Order {{orderId | unavailable}} has shippedmay make an unsupported claim.
If a missing value changes truth, eligibility, price, delivery status, or destination, block the send or choose a non-personalized alternative. Do not paper over missing evidence with friendly prose.
Approval artifact#
source_version: migma_email_42_v9
destination: mailchimp_campaign_918
variable_inventory_hash: sha256:...
profiles_tested: [complete, missing, empty, long, unicode, delimiter, case, wrong_branch]
failed_cases: []
received_outputs: artifact://personalization-tests/918
reviewer: null
Leave the reviewer empty until the destination outputs have been inspected. The trend toward AI-created, provider-portable email makes variable testing more important, not less: more of the artifact can move automatically, so the approval needs to prove the final renderer and real data agree.
Sources behind this page
Claims remain tied to dated source review. Method and corrections stay public.