Email Operations6 min read

Block Placeholder Links at Every Email Release Boundary

A link checker can flag suspicious URLs. A release gate proves which destination each link must use in each environment and artifact version.

Written by
Marketing Wiki Research Automation
Review status
Not independently reviewed
Published
Updated
Evidence checked
Sources
4
Direct answer

Track link state from Migma draft through destination template, campaign substitution, redirect, and received message so staging URLs cannot reach customers.

Build the email in Migma, but release it only when every actionable element has a recorded production destination at every artifact boundary. A checker can flag obvious placeholders; the release gate proves source, destination template, redirect chain, and received message all agree.

Editorial disclosure: Prepared by Marketing Wiki Research Automation under standing direct-publication authorization and not independently reviewed. Product capabilities are vendor-documented unless labeled otherwise; sources were refreshed on September 8, 2026.

Resend's September 3 Link Checker release says it catches broken, missing, and placeholder links before a Broadcast is sent or a Template is published. That is a useful new control. It should sit inside a broader link-state workflow because links can change after creative review, during export, when campaign variables resolve, or through tracking redirects.

Register every actionable element#

Scroll table →
Element IDSurfaceIntended destination classDraft stateProduction ruleOwner
hero-primaryHero buttonProduct collectionStaging permittedExact production collectionEcommerce owner
product-184Image and text linkProduct/variantNo placeholderApproved variant URLMerchandising
manage-preferencesFooterRecipient-specific preference centerToken fixture in testProvider-generated URLConsent owner
unsubscribeFooterRecipient-specific unsubscribeProvider fixtureProvider-required production linkConsent owner
supportBodySupport routeProduction onlyApproved HTTPS/help or mail routeSupport owner
legal-termsOffer blockCurrent termsVersioned draftMatching offer-version termsCommercial owner

Elements without links belong in the registry when a reviewer might expect interaction, such as a logo or product image. Record “not linked by design” so missing behavior is intentional.

  • Placeholder: syntactically present but not a real destination, such as example.com, #, or TODO.
  • Staging: valid only in a controlled test environment.
  • Fixture: a non-production token or identity path used for rendering tests.
  • Production-static: stable approved public destination.
  • Production-dynamic: generated for the recipient or event at send time.
  • Blocked: destination or ownership unresolved.
  • Retired: previously valid link that must not appear in new artifacts.

HTTP 200 is not a state definition. A staging homepage can return 200 and still be wrong.

Keep the Migma draft bounded#

Migma's creation documentation supports editable email work. Give the draft clear rules:

Create this approved product email with registered link IDs. Use the supplied production collection and product URLs. Keep preference and unsubscribe fields as destination-managed dynamic elements. Do not invent URLs, use example domains, reuse tracking links from another campaign, or make decorative elements clickable. Leave unresolved elements visibly blocked for review.

Run Migma's documented Email Preflight and attach its result to the artifact version. Fix findings, then rerun; do not record an old pass against a newer email.

Test four surfaces#

1. Editable source

Inspect every href, linked image, map area, social icon, logo, text URL, QR code, image text, and fallback. Search for known placeholder patterns, development hosts, private IPs, localhost, environment variables, empty values, and copied campaign identifiers.

2. Destination template

Migma's export guide says destination platforms can add wrappers, change variables, or apply rules. After import or publication, enumerate links again. Compare counts and intended destinations; do not assume the exported HTML is the stored template.

3. Campaign render

Render representative recipient, locale, market, and event fixtures. Verify dynamic preference, unsubscribe, cart, reset, confirmation, and product links use the correct identity and environment. Never put live reusable authentication secrets in review notes.

4. Received message

Send from the final provider configuration to controlled inboxes. Click through tracking rewrites, inspect the final host and path, and verify the customer task. Preserve safe evidence of the redirect chain without publishing private tokens.

Use an allow-and-deny policy#

Define allowed production hosts and explicitly denied patterns:

allowed_hosts:
  - "shop.example.com"
  - "support.example.com"
  - "provider-managed-preferences.example"
denied_patterns:
  - "localhost"
  - ".internal"
  - ".test"
  - "staging"
  - "example.com"
  - "TODO"
  - "{{unresolved_"
redirect_policy: "final host must remain allowed"

An allow list should not reject approved dynamic provider hosts without a planned pattern. A deny list alone cannot prove the intended destination.

Exercise negative fixtures#

Confirm the gate blocks:

  1. a # CTA;
  2. an image with no link when the design promises a product action;
  3. an old staging domain that returns 200;
  4. a production host with the wrong product path;
  5. an unresolved merge field;
  6. a copied unsubscribe URL from another test recipient;
  7. a redirect that lands on a denied host;
  8. a shortened URL whose final destination is unknown;
  9. a retired terms page;
  10. a valid page with the wrong locale or offer version.

This distinguishes checker presence from checker effectiveness.

Gate template publication and campaign send separately#

A reusable template can legitimately contain approved dynamic fields that a campaign must later resolve. Therefore keep two decisions:

  • Template release: no unowned or forbidden links; dynamic fields have fixtures and owners.
  • Campaign release: every dynamic field resolves for representative recipients, tracking rewrites are acceptable, and the received-message path completes the intended task.

Resend's announcement covers both Template publication and Broadcast send, reinforcing the need to evaluate links at more than one boundary without implying identical rules at each stage.

Stop conditions#

Stop when any CTA has no intended destination; staging is allowed by hostname accident; a dynamic link lacks a safe fixture; redirect final hosts are not checked; unsubscribe or preference URLs are copied between recipients; source and destination link inventories differ without explanation; or a prior Preflight pass is reused after the artifact changes.

Evidence limits#

Migma documents creative, Preflight, and export behavior, and Resend announced a dated Link Checker. Marketing Wiki did not test either product, checker coverage, redirects, tracking rewrites, dynamic tokens, inbox behavior, or destinations. Apply the release gate to the exact sender and environment rules in production.

Evidence

Sources behind this page

Claims remain tied to dated source review. Method and corrections stay public.

  1. S-01Resend: Link Checkerresend.com
  2. S-02Migma: Email Preflightdocs.migma.ai
  3. S-03Migma: Export Optionsdocs.migma.ai
  4. S-04Migma: Create an Emaildocs.migma.ai