Show prompt
Build a live artifact: a Finance Operations Dashboard for a UK firm running a property portfolio plus a cafe operating business. This is a persistent dashboard intended to live in the Live Artifacts tab and refresh from connected data sources each time I reopen it.
Single-page Artifact with four tabs.
TAB 1 — Invoices (manual + Gmail-augmented)
Editable table. Columns: party, direction (in/out), amount £, issued date, due date, status (open/paid/overdue), reference, notes. Auto-calculate overdue flag from due date vs today. On reopen, scan Gmail for the last 14 days for emails with subjects matching invoice patterns; add candidate rows below the manual rows in a separate section "Suggested from inbox" for me to promote with one click. Do not auto-modify any row I have already edited.
Footer row: total open £ in, total open £ out, net position.
TAB 2 — Bank reconciliation (manual)
Editable table per account. Columns: account name, last reconciled date, transactions reconciled count, transactions outstanding count, status (current/lagging), assigned to, notes. Status auto-derives: current if reconciled within 7 days, lagging if older. Manual entry only.
TAB 3 — Cashflow (12-week rolling, manual inputs, computed view)
Inputs: opening balance, weekly property rental inflow, weekly cafe net takings, weekly operating costs. Computed: running balance per week, minimum balance across 12 weeks, alert banner if any week dips below zero. Plus a section for one-off outflows (table: week, description, amount, add/remove rows). No MCP refresh.
TAB 4 — Email-sourced tasks (live from Gmail)
The live tab. On every reopen, refresh from Gmail. Editable table. Columns: task description, owner, source (sender name), received date, due date, status (open/chased/done), last chased date, notes.
Refresh logic on open:
- Pull unread Gmail messages received in the last 7 days
- Identify ones containing a request, ask, or deadline directed at me. Skip newsletters and automated mail.
- For each, add a row with task, owner (me by default), source, received date, due date if stated, status (open).
- Do not overwrite rows where status is chased or done.
- De-duplicate by source+task.
Quick actions per row: mark chased, mark done, copy chase template.
GLOBAL FEATURES
- Tabs at top with count badges showing open items per tab
- Inline editing on every cell
- Add/remove rows on every table
- Export current state as JSON button in footer
- Refresh from Gmail now button in tab 4 header
- Last-refreshed timestamp shown bottom-right
STYLE
- British English. No emoji. No marketing language.
- Buttercream #F5F0E8 background, near-black #131314 text, deeper orange #B54A1F accent
- Headings in Fraunces serif (Google Fonts), body in Inter, mono in JetBrains Mono
- Status chips: open = neutral, chased = orange tint, done = muted green, overdue = red tint
- Mobile-responsive: tabs become a horizontal scroll under 720px
PRE-POPULATE on first build with realistic demo data:
- Invoices: 6 rows mixing in/out, 2 overdue, 2 due this week, amounts £1,500 to £18,000
- Bank reconciliation: 3 accounts, one lagging
- Cashflow: opening £215,000, property weekly inflow £45,000, cafe weekly net £12,500, operating costs £40,000 weekly, one £150,000 VAT outflow in week 6
- Email-sourced tasks: 5 sample rows that get replaced or merged on first Gmail refresh
After building, confirm which MCP connectors this Artifact uses so I can verify Gmail is authorised.