Back to Blog

Build a Shopify revenue dashboard from one sentence

2026-05-23 · Tablize Team

If you sell on Shopify and you’ve ever spent a Saturday wiring up a custom dashboard — Google Sheets formulas, copy-pasted exports, that one Looker Studio template that almost works — this post is going to be uncomfortable for you in a good way.

We’re going to skip all of it. Connect Shopify to Tablize, type one sentence, get a working dashboard with shareable link. Total time: about 4 minutes.

What we’re building

A revenue dashboard with the four numbers every Shopify operator wants to see:

  • MTD revenue with a comparison to last month at the same point.
  • Top 10 SKUs by revenue and units sold this month.
  • Channel split — Online Store vs Amazon vs TikTok Shop (if you have them), with month-over-month deltas.
  • Refund spike alert area — a live list of any SKU whose 7-day refund rate exceeded 3%.

This is the dashboard you’d ask for if you were briefing a designer. We’re going to get there without one.

Step 1: Connect Shopify (90 seconds)

In Tablize, open Integrations and pick Shopify. You’ll be redirected to Shopify’s OAuth flow — sign in, pick the store you want to connect, and grant read-only scopes for orders, products, customers, and refunds.

Tablize triggers an initial sync right after the OAuth. The historical backfill pulls everything: every order, every line item, every customer, every refund event. For a small store (under 10K lifetime orders), this is done in under a minute. For a store with 1M+ orders, more like 15-20 minutes. You can leave the tab open and grab a coffee, or just start the next step — Tablize will work with whatever data is available, and finish backfilling in the background.

The data lands in your workspace’s Postgres under a dedicated shopify schema, with tables for orders, order_line_items, customers, products, refunds, and a few more. You can browse them in the Tables view if you’re curious, but you don’t have to — the agent already knows the layout.

Step 2: Type one sentence

Open a new chat and type:

"Build me a dashboard for my Shopify store with MTD revenue
 vs last month, top 10 SKUs this month, revenue by channel
 month-over-month, and a live list of any SKU whose 7-day
 refund rate exceeded 3%."

That’s it. That’s the prompt.

What happens next, in roughly 60 seconds:

  1. The agent picks an artifact type. For a request with multiple metrics + a public-share feel, it picks “Dashboard” (a generated single-page app), not “Report” (a markdown document).
  2. The agent drafts the layout. It groups your four asks into 4 panels: a hero KPI tile, a table, a stacked bar chart, an alert list.
  3. The agent writes the queries. Four SQL queries against the shopify schema, plus one Python aggregation for the refund-rate logic.
  4. The agent writes the HTML/CSS/JS. The dashboard is a single self-contained HTML page that ships with the queries embedded as a Data Contract.
  5. The agent shows you a preview. You scroll through, the live data is already populated.

You see the chart with your real numbers. Not Lorem ipsum, not fake data, not “your data would appear here.” Real Tuesday-morning revenue, real top SKUs, real channel split.

Step 3: Look at it and ask for changes

The first cut is rarely perfect. The agent will probably get something slightly off — maybe the channel split is showing the last 30 days when you wanted month-over-month. The fix is to keep asking. You don’t have to start over.

"Change the channel split to a side-by-side bar chart showing
 this month vs last month, not a stacked bar."

The agent updates the chart in place. It doesn’t rebuild the dashboard from scratch — it modifies the one query and the one chart spec. Refresh, done.

A few more useful iterations:

"Add a 4th tile in the KPI row: average order value MTD vs last month."
"For the top 10 SKUs, also show the change in units sold vs last month
 in a small percentage badge next to each row."
"The refund spike list is too long — only show SKUs that had
 at least 10 orders in the last 7 days, so we don't show
 noise from low-volume SKUs."

Each iteration is 10-30 seconds. After 5-10 iterations, the dashboard looks like what you’d brief a designer to build, except a designer would still need a developer to wire it up, and that loop usually takes a week.

Step 4: Share it

Once you’re happy with the dashboard, click Publish public link in the top-right of the artifact view. You get a URL like https://app.tablize.com/d/abcd-1234 that you can send to anyone — your cofounder, your bookkeeper, your investor — and they can see the dashboard without a Tablize account. The dashboard refreshes automatically (you pick the cadence: hourly, daily, nightly).

If you want auth on the public link, that’s available too: passcode-protected or restricted by email domain.

What’s actually under the hood

This is the bit that matters when you’re evaluating whether to trust Tablize with your business data. The dashboard is not magic and it’s not a black box — it’s:

  • A small HTML/CSS/JS file generated by the agent, served from a CDN.
  • A Data Contract — a JSON spec saying “this dashboard’s first panel runs this SQL query against the shopify.orders table; refresh nightly.”
  • Tablize’s runtime — runs the queries, fills in the data, serves the dashboard.

You can read the generated code (there’s a “View source” tab in the artifact view). You can edit the queries directly if you want. You can export the entire artifact as a Git-clonable thing if you want to host it yourself. The agent built it; you own it.

What this dashboard does not do

Worth being honest about:

  • It doesn’t replace your finance dashboard. This is an operator’s dashboard, not a CFO’s. If you need GAAP-style revenue recognition with deferred revenue and accruals, that’s not what one sentence builds.
  • It doesn’t enforce a shared “what is revenue” definition across multiple dashboards. If you build another dashboard tomorrow with a different definition of revenue, you’ll have inconsistency. That’s the BI problem Looker solves; Tablize doesn’t try to.
  • It doesn’t have row-level security. The public link sees everything the dashboard renders. If some data should be restricted, don’t put it on a publicly-shared dashboard.

For most small Shopify operators, none of this matters — you want a fast, accurate, shareable view of last month vs this month, and that’s exactly what one sentence gets you.

What to ask next

Some natural follow-ups, each of which extends the dashboard:

  • “Add a cohort retention chart by signup month for the last 12 cohorts of customers.” — Tests if the agent can reach into the customers table and compute cohort retention.
  • “Ping me on Slack if MTD revenue is more than 15% behind last month at the same point.” — Turns the dashboard’s first KPI into a live Watch.
  • “Generate a weekly email summary of the same numbers, sent every Monday at 9 AM.” — Turns the dashboard into a recurring brief.

Each of these is one sentence. Each spawns a new artifact (a chart, a watch, a scheduled report) that joins your workspace.

What it costs

The dashboard above used about 2,000 tokens for the agent run and roughly 200ms of query time. On the Plus tier ($20/month), this fits inside your token budget with room to spare for dozens of iterations and follow-ups per day. On Free, it’d use a noticeable chunk of your one-real-conversation allowance, but you’d still finish.

Where to go from here

Once you have one dashboard working, the next move is almost always either (a) build a second one for a different question, or (b) wire up a Watch off the first dashboard so you don’t have to look at it every day. Tablize is built around the assumption that good dashboards are starting points, not endpoints.

Try Tablize free with your Shopify store →


Related reading: