Automate a weekly DMARC report summary from your report mailbox
DMARC aggregate reports arrive as compressed XML that nobody reads. A scheduled agent opens the week's reports from your report mailbox, lists sending sources that failed alignment, and drafts a short summary that its department head reviews and you approve.
What you’ll set up
Connections
Report mailbox (read) · Required
The team requests access when you add the job.
Upgrades
Report delivery (channel or inbox)
Delivers the approved report to your channel or inbox.
Inputs
Domains to report on · Required
List, no default
Flag sources failing more than (%) · Optional
Number, default 5
Ready by · Required
Time, default 08:00
Brief · Required
Text, prefilled and editable during setup.
Runs
Runs every Monday at 08:00
Done by Research analyst
You approve before anything goes out.
You approve every report · Free to start
How it runs
One agent does the work. Its department head reviews it, then you approve.
- 1Research analyst
Runs every Monday at 08:00 and prepares the report from your connected sources.
- 2CTO · Review
The department head reviews the report before it reaches you.
- 3You
You approve before anything goes out.
What you get
Sample, not live data. The domain, sources and counts are invented.
DMARC summary for example.com, week of 3 Nov (sample)
4 reports, 1,820 messages, 94.5% aligned.
| Source | Messages | SPF | DKIM | Disposition |
|---|---|---|---|---|
| Newsletter service | 1,240 | pass | pass | none |
| Support desk | 480 | pass | fail | none |
| Unknown host | 100 | fail | fail | none |
For your decision
- Check DKIM signing for the support desk.
- Review the unknown host before tightening policy.
Why the reports go unread
When you publish a DMARC record with a rua tag, receivers send aggregate reports about mail that claims to come from your domain. RFC 7489 section 7.2 says the aggregate data must be an XML file that should be gzip compressed. The ri tag in section 6.3 sets the interval requested between reports, with a default of 86400 seconds, which is 24 hours. Each receiving provider sends its own files, so they add up quickly. Every file is accurate and almost unreadable by eye, so most teams leave the mailbox alone until something breaks. The useful questions are simple: who is sending as us, which of those senders pass SPF and DKIM, and which are failing quietly. A weekly summary answers them while there is still time to fix a sender, and it gives you a dated record to compare against next week.
How the scheduled job works
You add the job and give read access to the mailbox that receives reports. Each week a scheduled agent opens the new attachments, unzips them, and reads the records: sending source, message count, the SPF and DKIM results, whether each was aligned, and the disposition the receiver applied. It groups by source, flags those that fail alignment, and compares the week with the one before. It does not guess intent. An unknown source stays marked unknown until you say whether it is yours.
Review and approval
The CTO agent, as department head, reviews the summary before it goes out: do the counts add up across reports, is a failing source really failing both checks, is any suggested step safe to try. Then you approve, edit or skip it, and nothing is sent until you do. The usual path is to keep the policy at none while the summary shows every legitimate sender passing, fix the stragglers one by one, and then consider a stricter policy yourself.
Questions
Related jobs
Works from public sources: Public status pages and their JSON incident feeds (for example a Statuspage-hosted page's incidents.json)
Automate a weekly uptime and incident report from status pages
A weekly list of incidents on the status pages you depend on, with impact, duration and affected components.
Connects to: GitHub repository (read Actions) (required)
Automate a daily CI failure digest from GitHub Actions
One daily digest of yesterday's failed Actions runs, grouped by workflow and failing step.
Works from files you share
Automate monthly API key and secret rotation reminders
A monthly list of keys past your rotation limit, with owner and age. It holds names and dates; no secret values are shared.