Documentation

Learn how to integrate and use DDMARC.

Docs/Policy Rollouts
Automation

Policy Rollouts

Automated DMARC policy progression with safety gates — pause on breach, resume when healthy. A rollout walks a domain from p=none to your target policy one stage at a time, and refuses to advance while your authentication numbers say it is unsafe.

In the dashboard: Rollouts, under Analysis & Actions.

The Policy Rollouts page showing four summary tiles (Total Rollouts, Active, Paused, Completed), a Rollout Schedule timeline spanning six months, expandable rollout rows with progress and pass rate, a Recent Activity feed and a Rollout Playbooks card.
The Rollouts page: schedule timeline, per-domain rollout cards, recent stage activity and reusable playbooks.

Why a rollout instead of just switching to reject

Going straight to p=reject is only safe once every legitimate sender is aligned. In practice there is always one forgotten invoicing system, one marketing tool, one team using a personal relay. Enforce too early and that mail is silently discarded by the receiver.

A rollout replaces "flip it and hope" with a ladder of stages plus an automatic check between each one. The check runs on your real aggregate report data. If the numbers are healthy the rollout moves up a rung; if they are not, it stops and tells you.

How the safety gate works

A scheduled job checks each active rollout once its stage wait period has elapsed. Two conditions are evaluated against the last 7 days of aggregate report data for the domain:

Minimum pass rate

The share of mail where both SPF and DKIM passed. Default 95%, adjustable from 50% to 100% when you create the rollout. Fall below it and the rollout is blocked with Pass rate X% below threshold Y%.

Minimum email volume

How many messages must be observed before the pass rate is trusted at all. Default 100, adjustable from 10 to 500. Too little data and the rollout is blocked with Insufficient email volume rather than advancing on a sample of three emails.

Consecutive checks, not a single lucky reading

Passing the gate once is not enough. Each passing check increments a counter, and the rollout only advances once it has accumulated the required number of consecutive passing checks (two by default). A failing check resets progress and blocks the rollout.

Blocked is a stop, not a rollback

When a gate fails, the rollout stops at its current stage and an alert is raised. The policy already published stays published — nothing is reverted automatically. Fix the failing sender, then move the rollout forward yourself.

Pausing, resuming and recovering

Pause

Available on active and blocked rollouts. Freezes progression. The remaining wait time is preserved — resuming pushes the next transition out by however long you were paused.

Resume

Only valid on a paused rollout. Returns it to active and re-arms the gate checks.

Skip stage

Advances to the next stage immediately, bypassing the gate. Use when you know why the gate failed and have already fixed it.

Rollback

Steps back to the previous stage and returns the rollout to active. Use when enforcement started hurting real mail.

A blocked rollout is brought back to life in one of three ways: Skip stage to move on, Rollback to step down, or Pause and then Resume once the underlying problem is fixed — resume alone does not apply to a blocked rollout, only to a paused one.

Rollout statuses

pending

Created but not started yet.

active

Healthy and advancing on schedule.

paused

Manually held. Resume when you are ready.

blocked

A safety gate failed. Needs your attention.

completed

Reached the target policy.

cancelled

Abandoned before reaching the target.

The page's Pausedtile and filter tab count paused and blocked together — both mean "this rollout is not moving without you".

Reading the page

Total Rollouts

Everything ever created, split into how many are in progress and how many are archived.

Active

Healthy and advancing.

Paused

Paused plus blocked. The hint tells you how many are blocked by a gate.

Completed

Domains sitting at their target policy.

Rollout Schedule

Every rollout drawn on one timeline, in a six-month window centred on today. It is the fastest way to see when domains are due to reach enforcement and whether they are bunched onto the same week. The timeline is read-only — you change dates by acting on a rollout, not by dragging it.

Rollout rows

Each row shows the domain, a status badge, the rollout identifier and target (for example #12 · target p=reject), progress through the stage ladder, the latest pass rate, how long until the next stage, and a pause control. Expand a row for the full stage timeline, the gate-breach reason if there is one, and the skip / rollback / cancel actions.

Recent Activity

Stage transitions and rollout events across your domains — created, started, advanced and the rest, each with the pass rate recorded at that moment. The feed is assembled from the per-rollout history and covers your most recent rollouts rather than the entire archive.

Not available yet — Export schedule

The Export schedule button on the Rollouts page is present but disabled — there is no rollout schedule export today. To get the same data now, read GET /api/v1/rollouts, which returns each rollout with its stage, progress, pass rate and next transition time.

Stage ladders

Three built-in ladders decide how many stages a rollout has and how long it waits at each one. Choosing quarantine as your target instead of reject drops the reject stages from the ladder.

Standard

Standard (4 weeks)

Balanced. Two weeks of observation at each step before enforcement.

p=none (14 days) → p=quarantine (14 days) → p=reject

Gradual

Gradual (6+ weeks)

Conservative. Percentage ramps at both quarantine and reject, for high-volume domains.

p=none (14d) → p=quarantine pct=10 (7d) → pct=50 (7d) → pct=100 (7d) → p=reject pct=50 (7d) → p=reject pct=100

Fast

Fast (2 weeks)

Aggressive. Skips the observation stage — only for domains you already understand.

p=quarantine (7 days) → p=reject

Rollout Playbooks

Playbooks are reusable presets that pre-fill the Create Rollout wizard — pick one, confirm the domain, done. They are shipped presets: there is no custom-playbook store yet, and the + New playbook control is disabled for that reason.

Cautious B2B

template=gradual · 12-week glide · 95% gate · max safety

Standard SaaS

Recommended

template=standard · 4-week glide · balanced for most domains

Fast Cleanup

template=fast · 2-week glide · for low-volume domains

Monitor Only

Not selectable

Stay at p=none, no progression

Monitor-only is the absence of a rollout — leave the domain at p=none and no rollout is needed.

Creating a rollout

New Rollout opens a three-step wizard. A domain can only have one rollout in flight at a time, so domains that already have one are not offered.

1

Pick the domain

Only domains without an active rollout appear here.

2

Choose target policy and speed

Target is quarantine or reject; speed selects the stage ladder — Standard, Gradual or Fast.

3

Set the safety gates

Minimum pass rate (default 95%), minimum email volume (default 100), and whether to auto-publish each stage to DNS. Auto-publish requires the hosted policy delegation described in DNS Policy; leave it off and you publish each stage yourself.

Auto-publish and DNS delegation

With auto-publish on, each stage transition writes the new DMARC record for you. That requires DDMARC to own the record, which is what the CNAME delegation in DNS Policy sets up. Without delegation, keep auto-publish off and use the rollout as a scheduler: GET /api/v1/domains/{domain_id}/rollout/dns returns the exact record the current stage expects.

Getting a clean run

  • Collect reports for a few weeks before starting. A rollout gated on volume will simply sit blocked on a domain with no data.
  • Fix known-failing senders first — check your aggregate reports for sources that are not aligned.
  • Do not lower the pass-rate threshold to unblock a rollout. The gate is telling you real mail would be rejected.
  • Stagger domains across the schedule rather than starting the whole portfolio the same day — one bad week then blocks everything at once.

API endpoints

Rollout verbs are actions on a domain's current rollout, not on a rollout id. All paths use the /api/v1 prefix.

MethodPathPurpose
GET/api/v1/rolloutsList every rollout in the organisation with status counts
GET/api/v1/domains/{domain_id}/rolloutThe current rollout for a domain, including its full stage ladder
POST/api/v1/domains/{domain_id}/rolloutCreate a rollout (template, target policy, gate thresholds, auto-publish)
DELETE/api/v1/domains/{domain_id}/rolloutCancel the active rollout
POST/api/v1/domains/{domain_id}/rollout/startStart a pending rollout
POST/api/v1/domains/{domain_id}/rollout/pausePause an active or blocked rollout
POST/api/v1/domains/{domain_id}/rollout/resumeResume a paused rollout
POST/api/v1/domains/{domain_id}/rollout/skipAdvance to the next stage now, bypassing the gate
POST/api/v1/domains/{domain_id}/rollout/rollbackStep back to the previous stage
POST/api/v1/domains/{domain_id}/rollout/publishPublish the current stage record manually
GET/api/v1/domains/{domain_id}/rollout/historyStage transitions and gate checks for the rollout
GET/api/v1/domains/{domain_id}/rollout/dnsThe DNS record for the current stage

Related Topics