Skip to main content

Email checks

Email checks are automated quality gates that run on every email revision — from simple things like unrendered merge tags and oversized images to AI-powered review of spelling, tone, and the rendered layout. As an admin, you decide which checks run and how strict they are: a check can be off, show a warning, or block export entirely.

This page covers configuration. For how checks look and behave while building an email, see Pre-flight checks.

note

Only users with the Admin role can change email check settings. Everyone on the email workspace sees the results.

Configure checks

Go to Settings → Organization → Email Checks. Every check has a three-way control:

  • Off — the check doesn't run.
  • Warn — failures show as a pre-flight warning. Reviewers see it, but it doesn't stop anything.
  • Block — failures prevent syncing to your ESP until the issue is fixed or overridden.

Email Checks settings page with Off/Warn/Block controls per check

Changes save immediately and apply to the whole organization. A Reset action on each check returns it to the built-in default.

Checks re-run automatically: if you tighten a setting, existing emails are re-evaluated against the new configuration the next time someone opens them — nobody ships against stale rules.

The check catalogue

Checks are grouped into six categories. Checks marked AI and Visual are powered by Betty and have a configurable pass threshold (see below); the rest are deterministic.

Subject & preheader

Keep subject lines and preheaders present and the right length.

CheckDefaultNotes
Subject line presentWarn
Subject line lengthWarnMax characters configurable (default 60)
Preheader presentWarn
Preheader lengthWarnMin/max configurable (default 40–100)
Subject alignment (AI)OffDoes the subject match the email content?

Content & brand

Catch copy problems and keep messaging on brand.

CheckDefaultNotes
No placeholder textBlockLorem ipsum, "TODO", and similar
Spelling and grammar (AI)WarnSupports a custom vocabulary so brand terms aren't flagged
Placeholder copy (AI)WarnCatches placeholder-ish copy the static check can't
Tone of voice (AI)OffJudges copy against your Betty tone of voice — configure that first
CTA clarity (AI)Off

Make sure links and images are safe, reachable, and not too heavy.

CheckDefaultNotes
Images load over HTTPSBlock
Link hygieneWarn
UTM parametersOffConfigure required parameters, tracked domains, and exempt domains
Links resolveWarnActually requests every link
Images resolveWarn
Image weightWarnDefaults: 200 KB per image, 1024 KB total, 1024 KB per GIF

Accessibility

Help every recipient read the email, whatever their setup.

CheckDefaultNotes
Image alt textWarnDecorative images with empty alt allowed by default
HTML languageWarn
Minimum font sizeOffDefault 13 px
Color contrastOffWCAG AA (4.5:1)
Link accessible nameWarn
Heading structureWarn
Descriptive link text (AI)WarnFlags "click here"-style links
Alt text quality (AI)WarnAlt text that exists but says "image1.png" isn't accessible
Reflow at 200% zoomOff
Layout table semanticsOff

HTML & size

Keep the HTML lean and free of anything mail clients choke on.

CheckDefaultNotes
Email sizeWarnWarns at 95 KB, blocks at 102 KB (Gmail's clipping limit); both configurable
No unrendered merge tagsBlock
No script tagsBlock
External CSSWarn

Visual review

One AI pass over a screenshot of the rendered email, judging it as a picture rather than as code.

CheckDefault
Layout integrityWarn
Text legibilityWarn
Imagery matches copyWarn
CTA prominenceWarn
Images render correctlyWarn

AI checks and thresholds

AI and visual checks score the email between 0 and 1, and every one has a Pass at ≥ threshold you can adjust. Raise the threshold to make a check stricter; lower it to reduce noise. Findings from a passing check stay silent — the threshold is your noise dial.

If an AI check can't run (for example while it's still processing), it never blocks export on its own — only a definitive failure of a Block-level check gates.

Custom AI rules

Beyond the built-in catalogue, you can write your own instructions for Betty to check on every email — brand rules, legal requirements, anything you can phrase as an instruction.

On the Email Checks page, find the Custom AI rules card and click Add rule:

  • Name — a short label, e.g. "No competitor mentions".
  • Instruction — what Betty should enforce, e.g. "Never mention competitor brands. All prices must include VAT."
  • When it fails — Off, Warn, or Block, like any other check.
  • Pass at ≥ — the pass threshold.

You can have up to 10 custom rules. Deleting a rule stops Betty checking against it immediately.

Skipping a check for part of an email

Sometimes a check is right in general but wrong for one specific element — a deliberately tiny legal footer, say. Template authors can exempt an element by adding an HTML comment inside it, using the check's id (shown in grey on the settings page):

<!-- check-ignore: min_font_size -->

List several ids separated by commas, or use all. The comment exempts the element that contains it and everything inside it.

Approvals policy

The approvals gate is configured on its own page: Settings → Organization → Approvals. The single control, When approvals are missing, uses the same three levels:

  • Off — approvals are advisory only.
  • Warn — unmet required approvals show a pre-flight warning but don't stop export.
  • Block — the email can't sync until every required approver has approved the latest revision.

See Feedback and approvals for how approvers are added and how sign-off works day to day.