IT OPS

Daily Cloudflare DNS Snapshot to Postgres History

Each day it snapshots the entire live Cloudflare zone into a Postgres history table and flags records that changed since the previous snapshot.

CategoryIT Ops
Enginesim
Difficultyintermediate
Triggerschedule
Steps6
Setup~15 min

How it runs

The automated pipeline, trigger to output.

  • TriggerDaily schedule fires
  • ActionFetch full live DNS zone from CloudflareCloudflareCloudflare
  • ActionLoad latest prior snapshot from PostgresPostgreSQLPostgres
  • LogicDiff current vs prior, tag each record's change type
  • ActionWrite timestamped snapshot + change tags to PostgresPostgreSQLPostgres
  • OutputSend daily change summary to SlackSlack

What it does

This workflow builds a durable, queryable history of your DNS. Daily it captures the full live Cloudflare zone, stores it as a timestamped snapshot in Postgres, and diffs it against the most recent prior snapshot to record exactly what changed and when.

When to use it

Use it when you need an audit trail for compliance or incident forensics: answering "what did this record point to last Tuesday" or "who changed this and when" after an outage. Unlike a manifest comparison, this captures drift even when there is no source-of-truth file, giving you a self-recording change log of the zone itself.

How it works

  1. 1A daily schedule starts the snapshot run.
  2. 2The flow fetches all live DNS records from the Cloudflare zone.
  3. 3It loads the latest prior snapshot rows from Postgres for comparison.
  4. 4A logic step diffs current versus prior and tags each record as unchanged, new, modified, or deleted.
  5. 5An action writes the new snapshot plus the per-record change tags into the Postgres history table.
  6. 6The diff summary is delivered to Slack so the team sees the day's churn at a glance.

Set it up

What you configure once, before turning it on.

  1. 1
    Connect CloudflareWorkers, Pages, R2, KV — the edge stack.
  2. 2
    Connect PostgresAny Postgres URL — query, write, migrate.
  3. 3
    Connect SlackChannels, DMs, threads, mentions.
  4. 4
    Set each agent's modelWe leave models unset so you pick the tier — fast + cheap, or top-quality.
  5. 5
    Tune it to your dataEdit the prompts, filters, and field mappings so it matches how your team works.
  6. 6
    Test, then turn it onRun once against a sample, confirm the output, then enable the trigger.

Run this workflow in your colony.

14-day trial. No DevOps. No Sales call. Provisioned in under a minute.