Slack alerts for risky Cloudflare changes
Every 15 minutes, scan your Cloudflare audit log for high-risk activity and post a clear, severity-tagged alert to your security Slack channel.
Every 15 minutes, watch our Cloudflare account audit log for risky changes and post severity-tagged alerts to a Slack channel for security.
Trigger: cron, every 15 minutes.
Each run, call Cloudflare's List Audit Logs operation with a since-timestamp filter that pulls every entry created since the previous run finished (store and reuse that timestamp between runs; on the first run, look back 15 minutes). Page through results until the audit log is fully drained for the window.
Then reason over the entries and classify each one as high-risk or low-risk. Treat the following as high-risk by default:
- DNS record deletions, and any create/update/delete that touches an apex (root) record - Firewall and ruleset changes: Create/Update/Delete IP Access Rule, Create/Update Ruleset, Update Bot Management Settings, Lockdown rule changes - DNSSEC enable/disable or key changes - Zone deletion or transfer - API token creation - Account member added, role changed, or 2FA disabled
Treat low-noise items like DNS proxy toggles, analytics views, login events, and read-only API calls as low-risk.
For each high-risk entry, draft a short, human-readable summary that includes: the actor (email or token name), the action, the resource (zone, record, ruleset, token name), before/after values when the audit entry carries them, the timestamp, and a deep link back to the Cloudflare dashboard for that resource. Tag each one with a severity emoji: 🚨 for destructive or auth-changing actions (deletions, DNSSEC off, new API token, member added), ⚠️ for edits to firewall/WAF/bot management.
Post the alerts to the #cloudflare-audit Slack channel using Slack's Send a Message operation. Use Slack mrkdwn formatting (single asterisks for bold, <url|text> for links). Send one Slack message per run that contains all the high-risk entries as a list. If there were also low-risk entries in the same window, append a single trailing line at the bottom: 'and N other low-risk changes' so the channel stays signal-heavy. If there were zero high-risk entries and zero low-risk entries, do not post anything.
This addresses the recurring community ask for Slack notifications on Cloudflare audit log activity, which Cloudflare does not ship natively. The agent's judgement on what counts as high-risk vs noise is the key piece, so keep that classification step explicit and easy to tweak.
What does this prompt do?
- Checks your Cloudflare audit log every 15 minutes for everything that happened since the last run.
- Flags high-risk changes such as DNS record deletions, firewall and WAF rule edits, DNSSEC updates, zone deletions, and new API tokens.
- Posts a short, severity-tagged summary to your security Slack channel with the actor, the action, the resource, and a link back to the Cloudflare dashboard.
- Rolls routine, low-risk activity into a single trailing line so the channel stays focused on what matters.
What do I need to use this?
- A Cloudflare account with permission to read audit logs.
- A Slack workspace and a channel (for example #cloudflare-audit) where the alerts should land.
How can I customize it?
- Change how often it runs. Every 5 minutes for tighter monitoring, hourly for less noise, or only during business hours.
- Adjust the high-risk list. Add things like Workers script changes, or downgrade items you do not care about.
- Send the alerts somewhere else. A different Slack channel, a private DM to your on-call, or both.
FAQs
Does Cloudflare not already send Slack notifications for audit log activity?
What counts as a risky change?
Will the Slack channel get spammed with routine noise?
Can I send the alerts somewhere other than Slack?
Does this need a paid Cloudflare plan?
Related templates
Every weekday at 10am, an AI voice agent phones your most overdue Xero accounts, logs what each customer promised, and reports back to finance in Slack.
Every couple of hours we find the chats your team never answered, email those visitors a real reply, and hand the sensitive ones to a support lead.
Score last week's finished live chats against one rubric, let an AI grader draft the notes with quotes, and send coaching straight to the agent.
Every weekday morning, every appointment that fell through yesterday gets a personal text or email inviting them to rebook, plus a task for the right rep.
Pick any date range up to 120 days and see return volume, refund versus exchange mix, and the products behind every number, recalculated each time you open it.
Every newsletter gets read, checked and signed off in one place, so nothing goes out with a broken link or a half-filled greeting.
Catch risky Cloudflare changes the moment they happen.
Connect Cloudflare and Slack once, and Geni watches your audit log every 15 minutes for the changes that actually matter.