Nightly audit log of Airbyte sync jobs in Google Sheets
Get a pivot-ready audit trail of every Airbyte sync run appended to a Google Sheet at 1am, so anyone can chart pipeline health without opening Airbyte.
Every night at 1am, log yesterday's Airbyte sync jobs to a Google Sheet so we have an audit trail we can pivot on outside of Airbyte's UI.
Trigger: cron, daily at 1am in the workspace time zone.
At the top of the run, call Airbyte's List Connections once and keep the results in memory as a map from connection id to connection name. This is the cheap lookup for stamping a human-readable connection name on every row we append.
Then call Airbyte's List Jobs, paging through all results, filtered to jobs whose end time falls in the previous 24-hour window (the 24 hours ending at the trigger fire time). Include both sync and reset job types. Skip any job that is still pending or running; only log terminal states (succeeded, failed, cancelled, incomplete).
For each qualifying job, build a single row with these columns in this order: job id, connection id, connection name (from the cached lookup, falling back to an empty string if the connection is no longer listed), job type, status, start time (ISO 8601), end time (ISO 8601), duration in seconds (end minus start, rounded to a whole number), records extracted, records loaded, and bytes synced. Pull the record and byte counts from the job payload; if List Jobs doesn't include them, call Get Job Details for the id and read them from there.
Append every row for the night in a single Google Sheets Append Values call to the configured spreadsheet and tab. Use USER_ENTERED as the value input option so timestamps and numbers land as real sheet types rather than strings, and rely on the sheet's existing header row to define column meaning (do not re-append a header).
This is deterministic logging with no reasoning required. Just enumerate jobs and append rows in a stable schema so finance, ops, and data leadership can build their own pivot tables and charts on top of the sheet. If Airbyte returns zero qualifying jobs, the run should complete cleanly without appending anything.
Configuration inputs the workflow should expose: the Google Sheet spreadsheet id, the tab name, and (optionally) an Airbyte workspace id to scope the job list to a single workspace. Everything else is fixed by the schema above.
Additional information
What does this prompt do?
- Every night at 1am, pulls every Airbyte sync job that finished in the previous 24 hours.
- Appends one row per job to a Google Sheet with job id, connection, status, start and end time, duration, and record/byte counts.
- Gives finance, ops, and data leadership a stable log they can pivot and chart on top of without touching Airbyte.
- Runs automatically forever, so no one has to remember to export sync history by hand.
What do I need to use this?
- An Airbyte Cloud account with at least one connection running syncs.
- A Google account with edit access to the destination spreadsheet.
- A Google Sheet with a header row that matches the columns you want logged.
How can I customize it?
- Shift the schedule if 1am doesn't fit your reporting window, or run it more than once a day.
- Point it at a different spreadsheet or tab, or split failed and successful jobs into separate tabs.
- Add or remove columns (source name, destination name, error message, bytes per record) to match how your team pivots the data.
Frequently asked questions
Does this replace Airbyte's own job history?
Will old rows ever be overwritten?
What happens if a sync is still running at 1am?
Do finance or ops teammates need an Airbyte login to read the log?
Can I pivot on this like any other spreadsheet?
Related templates
Stop exporting Airbyte job history by hand.
Point this at a Google Sheet and wake up to a clean, pivot-ready audit trail every morning.