Self-serve data freshness status page for business teams

Give marketing, sales, and finance one page that says whether each dataset is current, with buttons to request a refresh or flag a problem.

App
AirbyteLinearOperationsEngineeringData SyncResearch & Monitoring
PromptCreate

Build me a data freshness status page that my business teams can open themselves, so marketing, sales, and finance stop asking the data team whether a dashboard is current. It reads pipeline status from Airbyte and files problem reports into Linear. The audience is non-technical, so it should read like a status page rather than pipeline tooling.

Main view: a single Data status page listing one row per published dataset. Each row shows the friendly business name an admin configured (for example "Salesforce opportunities" rather than the raw connector name), a green, amber, or red badge, and a plain relative timestamp like "Updated 2 hours ago". Sort red first, then amber, then green, so anything broken is at the top. Load the rows from Airbyte List Connections, use Get Connection Details for the connection the admin mapped to each dataset, and find the last successful update with List Jobs filtered to that connection with a succeeded status, using Get Job Details when you need the finish time or run detail for a specific job.

Badge logic: compare the time since the last successful sync against the per dataset freshness target the admin set, stored by the app rather than read from Airbyte. Green when the dataset is inside its target. Amber when it is past the target but under twice the target. Red when it is past twice the target, when the most recent run did not succeed, or when there has never been a successful run. Show the reason in one plain sentence under the badge, such as "Last update did not finish" or "Expected every 24 hours, last updated 40 hours ago".

Request a refresh button on every row: start a sync for that dataset with Airbyte Trigger Sync or Reset Job. Rate limit this to one request per dataset per hour, enforced in the server handler and not only in the UI, so a stakeholder cannot spam syncs. Record who requested each refresh and when, and show it on the row as "Refresh requested by Priya, 12 minutes ago". While a refresh is running, disable the button and show "Refresh in progress", polling Get Job Details for that job until it finishes. Once the hour limit is hit, disable the button with "Next refresh available in 43 minutes" rather than hiding it.

Report a problem button on every row: opens a small dialog with a note field. On submit, file a Linear issue with Create Issue into the team the admin chose, with a title naming the dataset and a description prefilled with the friendly dataset name, the time it last updated successfully, the reporter's name, and the note they typed. Confirm inline with "Thanks, the data team has been notified" and show the most recent report on the row so two people do not file the same thing twice.

Admin settings view, visible only to admins: pick which Airbyte connections to publish, give each one a friendly business name, and set its freshness target in hours. This is the only screen where raw connection names may appear, since it is where the mapping is made. Also let the admin choose the Linear team that receives problem reports, using Linear List Teams to populate the picker, and let them hide a dataset from the status page without deleting its configuration. Friendly names, freshness targets, refresh request history, and the chosen Linear team are all app-stored configuration.

Keep all Airbyte jargon off the main status page: no connection ids, job ids, connector versions, stream names, or row counts. Do not build any pause, resume, or schedule editing controls anywhere in the app. The only two write actions in the whole app are starting a sync and creating the Linear issue.

What does this prompt do?

  • Lists every dataset you choose to publish under a friendly business name like "Salesforce opportunities", each with a green, amber, or red badge and a plain "Updated 2 hours ago" timestamp.
  • Judges each dataset against its own freshness target, so a nightly finance export and a near-live sales feed are not held to the same standard.
  • Gives anyone a Request a refresh button that starts a fresh update, capped at one request per dataset per hour and stamped with the name of whoever asked.
  • Adds a Report a problem button that files a Linear issue prefilled with the dataset name, when it last updated, and the note the person typed.

What do I need to use this?

  • An Airbyte Cloud account with the pipelines you want to publish already running
  • A Linear workspace, and the team that should receive data quality reports
  • Ten minutes for an admin to give each dataset a business name and set how fresh it needs to be
  • Your business teams only need access to the app itself, not to Airbyte or Linear

How can I customize it?

  • Set a different freshness target per dataset, such as 26 hours for a nightly export and 2 hours for a near-live feed.
  • Loosen or tighten the refresh limit if one request per dataset per hour is not the right pace for your team.
  • Choose which Linear team receives problem reports, and hide any dataset that business teams do not need to see.

FAQs

Do the people using this page need an Airbyte login?
No. You connect Airbyte once when you set the app up. Everyone else just opens the page and reads it, so marketing, sales, and finance never need an account or a seat.
What do the green, amber, and red badges actually mean?
Green means the dataset updated within the target you set for it. Amber means it has slipped past that target but not by much. Red means it is well overdue or its last update did not finish successfully.
Can someone break a pipeline by clicking Request a refresh?
No. The button asks for the same update that normally runs on schedule, nothing more. The page has no way to pause a pipeline or change its schedule, and each dataset accepts only one refresh request per hour.
Will business teams see technical details like connector names or job numbers?
No. The page shows only the business name you give each dataset, a status badge, and a plain-English timestamp. All the underlying identifiers stay on the admin screen.
What happens when someone reports a problem?
An issue is created in the Linear team you choose, prefilled with the dataset name, the time it last updated successfully, who reported it, and the note they typed. Your data team picks it up from their normal queue.
How do I decide the freshness target for a dataset?
Use the promise the business already relies on. If a dashboard is expected to be current each morning, a target of about 26 hours gives the overnight run some slack. Hourly feeds usually sit at 2 to 3 hours.

Related templates

Voice agent QA review board for your Hume EVI calls

Open one board each morning, see which voice calls went badly, replay the exact moment the caller got frustrated, and file the fix.

Hume
Linear
Slack Bot
App
Close the loop between Front tickets and Linear bug fixes

See every customer waiting on a bug fix, file the ticket without creating a duplicate, and tell them the moment engineering ships it.

Front
Linear
App
Open a Heroku release war room the moment production looks wrong

See every recent deploy across all your Heroku apps in one timeline, then roll back, restart, or file an incident without leaving the screen.

Heroku
GitHub
Linear
App
Find the themes Help Scout tags miss and file them in Linear

Pick a date range, see which support topics are climbing fastest, read the real customer threads behind them, and file the worst ones as tickets.

Help Scout
Linear
App
A Hacker News mention inbox your team actually works through

See every Hacker News story and comment that mentions your product or your competitors, mark each one new, needs reply or handled, and stop losing threads.

Hacker News
Slack Bot
Linear
+1
App
Morning data freshness board for your BigQuery tables

One grid of every table you track, when it last landed, and what broke, with stale tables pinned to the top and an agent that explains why.

Google BigQuery
Linear
Slack Bot
App

Stop fielding "is this dashboard current?"

Publish a status page your business teams can check themselves, and let them ask for a refresh without opening a ticket.