Automatic jobs leave a trace too

Every background sync, import and scheduled job that writes to your data records one run summary: what ran, when, against which account, how many rows it touched, and whether it failed.

What it is

Scheduled jobs, webhooks and importers hold a privileged key and write straight to the database, bypassing the proxy that audits human actions. This closes that gap with a per-run summary rather than a per-row mirror. Jobs that write nothing stay silent.

Also called: where did these records come from · who imported this · sync history · cron log

See it
Automatic jobs leave a trace too
Apr
May
Jun
Jul
Marlin Hoover — Barndominium
Framing
Delia Yoder — 30×40 Garage
Concrete
Delia Yoder — 30×40 Garage
Trim
Delia Yoder — Equipment Storage
Framing
Ronan Petsch — 30×40 Garage
Concrete
Framing crewConcrete crewTrim crew
The audit list showing a run summary row — job name, table, rows touched, duration, status — beside ordinary human entries. serverJobAudit.ts. Sample data — no customer information appears here.
How it works
  1. 1A job records its stable name (its route or script path), the table it wrote, the row count and any failure
  2. 2One row per run, not per record
  3. 3Silent when nothing was written — a heartbeat every ten minutes is noise
Why we built it

178 contacts appeared in a builder's pipeline overnight and nothing in the history explained them. The change log held 70,000 entries going back months and not one concerned those contacts, because automatic syncs and imports wrote straight to the data and left no trace — so the answer had to be reconstructed from timestamps and guesswork over most of a day, while the customer reasonably concluded the platform was broken. Every scheduled sync, import and automatic job now leaves one summary per run: what ran, when, for which account, how many records it touched and whether it failed. One line per run rather than one per record, because mirroring every automated write would bury the human decisions the history exists to hold.

The problem
  • Automated writes are invisible in an audit log built for human actions
  • Unexplained bulk data looks like a platform failure
  • Mirroring every machine write drowns the human record
Sound familiar?
What you get
The 9am question — what ran, when, how many rows — has an answer in one query
Human actions stay legible in the same log
Silent jobs do not pollute the record

See it on your own jobs

Twenty minutes, your numbers, no slide deck. We’ll build one of your real buildings in front of you and send you the estimate link at the end — yours to keep either way.

or keep browsing features →