Trigger · 1 of 17Every 60 seconds
The refresh runs once when the dashboard starts, then every 60 seconds.
- Tool
- Ops dashboard
- Hands on
- A refresh to run
Step · 2 of 17Read the build pipeline
The current pipeline is read from Postgres, the record of every build's schedule, production and finance fields.
- Tool
- Postgres
- Hands on
- A pipeline snapshot
Parallel · 3 of 17Fetch in parallel
Two independent reads start at once, so a slow one never holds up the other.
- Tool
- Ops dashboard
- Hands on
- Two reads under way
- At once
- Read attendance · Read shop problems
Step · 4 of 17Read attendance
Who is in today comes from BambooHR.
- Tool
- BambooHR
- Hands on
- An attendance summary
Step · 5 of 17Read shop problems
Each refresh re-reads up to eight watched channels, the ones read longest ago first, and reuses the last read for the rest, so every channel is fresh every few minutes. If Slack asks it to slow down, it waits as long as Slack says and shows the last reads meanwhile.
- Tool
- Slack
- Hands on
- Problem messages and counts
Step · 6 of 17Collect both reads
The refresh waits for both reads to finish before it goes on.
- Tool
- Ops dashboard
- Hands on
- Both reads together
Decision · 7 of 17Problems to summarize?
After a restart the summary waits until every watched channel has been read once, so it never rests on the first few alone.
- Tool
- Ops dashboard
- Hands on
- Summarize, or go on without
- Ways out
- Yes: Summary under a day old? · No: Go on without a summary
Decision · 8 of 17Summary under a day old?
A summary made in the last 24 hours is shown again rather than asked for again.
- Tool
- Ops dashboard
- Hands on
- Reuse it, or make a new one
- Ways out
- No: AI available? · Yes: Reuse the last summary
Decision · 9 of 17AI available?
An AI summary is asked for only when AI access is set up.
- Tool
- Ops dashboard
- Hands on
- Ask AI, or count instead
- Ways out
- Yes: Ask AI for a summary · No: Count the problems
Step · 10 of 17Go on without a summary
With nothing to report, the dashboard is built without a shop summary.
- Tool
- Ops dashboard
- Hands on
- No summary
Step · 11 of 17Ask AI for a summary
OpenAI is asked to sum up the problems the shop raised in Slack.
- Tool
- OpenAI
- Hands on
- A summary, or an error
Step · 12 of 17Reuse the last summary
The summary already cached is shown again.
- Tool
- Ops dashboard
- Hands on
- The cached summary
Decision · 13 of 17Usable answer?
An empty or failed answer is never shown; the dashboard counts the problems instead.
- Tool
- OpenAI
- Hands on
- Keep it, or fall back
- Ways out
- Yes: Cache the new summary · No: Count the problems
Step · 14 of 17Count the problems
Without AI, the summary is the count of problems raised.
- Tool
- Ops dashboard
- Hands on
- A count-based summary
Step · 15 of 17Cache the new summary
The new summary is kept, so the refreshes after it reuse it.
- Tool
- Ops dashboard
- Hands on
- A summary cached for reuse
Step · 16 of 17Load prices and gates
Vehicle prices, quality gates and the rest of the dashboard's data are loaded. A read that fails keeps its last values or comes back empty, so one bad read never stops the refresh.
- Tool
- Postgres
- Hands on
- The dashboard's data
End · 17 of 17Rebuild the dashboard
The pipeline and everything gathered are built into the operations dashboard and cached, so every open screen gets the new view, and the public build pages in Shopify are sent their update.
- Tool
- Ops dashboard
- Leaves
- A fresh operations dashboard