Dashboards

Generate a dashboard from your datasets, add and edit widgets by describing them, drill from an overview into row detail, and share the result.

A dashboard is a grid of widgets, each answering one question of one or more datasets: a metric, a chart, a table, a map or a list of insights. Widgets are written from a description and recompute whenever a new dataset version lands, so a dashboard stays current without anyone editing it.

The Analytics page

Analytics in the sidebar opens one list of every dashboard and newsletter in the workspace.

The All Analytics page listing dashboard and newsletter cards with the New Dashboard button
All Analytics. Dashboards and newsletters share one list; the badge on each card says which is which.
  • Cards. A bar-chart icon for dashboards, an envelope for newsletters; the name; “14 widgets” for a dashboard or the brief for a newsletter; a Dashboard or Newsletter badge; and when it was last updated. Click a card to open it.
  • Search (placeholder “Search dashboards & newsletters…”) matches names. Sort by Last Updated (default) or Name.
  • View. Large grid, small grid or list, remembered per page.
  • Folders. New folder, drag cards into folders, Move to folder on a selection. Dashboards created by the wizard are filed automatically in a folder named after their main dataset.
  • Delete. From a card’s menu, or select several and use Delete. Deleting a dashboard is permanent; deleting a newsletter also deletes its issues.
  • New Dashboard. The primary button; it opens the wizard below. There is no “New Newsletter” button: newsletters are created by asking Jason. See Newsletters.

Hovering Analytics in the sidebar lists every dashboard and newsletter for quick switching, and the last breadcrumb on any dashboard is a dropdown of the same list.

Creating a dashboard: the wizard

New Dashboard opens a six-step dialog. The first three ask you questions; the fourth and sixth are waiting steps; the fifth is a preview you can edit.

The New Dashboard wizard on its first step, Choose Datasets, with ready datasets ticked
Step 1. Every ready dataset is ticked by default.
  1. Choose Datasets. Tick the datasets the dashboard may read. Only datasets with data are listed, each with its row count; all are ticked by default and you need at least one. Press Next (it reads “Finding relationships…” while Jsonify scans the datasets for columns that link them).
  2. Confirm Relationships. Shown only when links were found, such as offers/main.product_id → products/main.id, each with a reason, the kind of link (many to one, one to one) and how many values match. Tick the ones that are real; ones you confirmed in an earlier wizard run are pre-ticked and labelled “previously confirmed”. Confirmed relationships are remembered by the workspace and let widgets join across datasets. Press Next.
  3. Describe Goal. Optional. Say what you want to learn, for example “find which retailers change prices most and where we are undercut”. Left blank, the workspace goal is used. Press Design.
  4. Designing dashboards… Ten to thirty seconds. Jsonify proposes a small set of linked dashboards rather than one big one.
  5. Preview. A tree of the proposed dashboards: an Overview, and under it Row Detail dashboards (one per entity, reached by clicking a row) and Filter dashboards (one per category column). Each shows its widget count. Click a name to rename it; the cross removes a dashboard (its children move up a level). Press Create N dashboards.
  6. Generating widgets… Ten to thirty seconds again while each widget’s query is written and tested and the drill-down links are wired. You land on the overview dashboard.
Step Option Values Default What it does
1 Dataset checkboxes Any ready dataset All ticked Which datasets the dashboards may read.
2 Relationship checkboxes Each proposed link Previously confirmed ones ticked Which links to store and use for cross-dataset widgets.
3 Goal Free text Blank (workspace goal) Steers which widgets are proposed.
5 Dashboard names and the remove cross Free text Proposed names What gets created.

The wizard reads your data to design the dashboards but writes nothing to the datasets. Confirmed relationships are the only thing kept from steps 1 to 3, and they are reused by every later dashboard and by Jason.

You can also ask Jason for a dashboard in chat, for example “make me a dashboard of price changes by retailer over the last 30 days”. Jason creates it and it appears in the list.

The dashboard page

The Competitive Market Pulse dashboard with metric tiles, charts, a donut and a table
A dashboard. Metrics across the top, charts in the middle, tables at the bottom.
  • Title. Click to rename. There is no description field.
  • Widget count and source button. “14 widgets” and a database-icon button naming the first linked dataset with “(+1)” if there are more. Click it to open Sources.
  • Add widget. The primary button; see below. Its menu holds Recalculate layout.
  • The grid. Twelve columns wide on a desktop. Drag a widget by its title to move it; drag its corner to resize. Changes save on their own. On narrower screens the grid re-flows to eight columns or a single stack and cannot be rearranged.

Widgets load one by one after the page opens; each shows a spinner until its data arrives. Reload the page to refresh the data, or wait: a new dataset version recomputes every widget.

Deleting a dashboard, and sharing it, are not done from this page: delete from the Analytics list, share from the share icon in the top bar.

Sources

The Sources dialog lists the datasets the dashboard can query, with their columns. Edit sources switches to a checklist of every ready dataset with All / None shortcuts. After Save, every existing widget is tested against the new set:

  • All Widgets OK. Nothing else to do.
  • Broken Widgets. Widgets whose query no longer works are listed with the error. Tick the ones to rebuild and press Regenerate (N), or Skip. Regeneration keeps each widget’s title and type and writes a new query against the new sources.

Widget types

Eleven kinds of widget. When you describe a widget without naming a type, one is chosen for you; name the type (“as a donut”, “as a table”) to be sure.

Type Shows What the query must return
metric One big number with an optional caption and a change pill One row: value, and optionally subtitle and change. The change pill means “versus the average or peers”, not “since last period”.
bar Vertical bars, up to 7 categories (8 when grouped, up to 4 series) Labels and values, or labels with several series. A tall narrow card flips to horizontal automatically.
horizontal_bar Horizontal bars, up to 8 rows Labels and values.
pie A pie with a legend of up to 6 entries plus “+N more” Labels and values.
donut The same with a hollow centre Labels and values.
line Up to 3 smoothed lines over time or an ordered axis Labels and one to three series.
area Lines with a filled area beneath Labels and one to three series.
scatter Labelled points on two axes Points with label, x, y, and axis names.
table A paged, sortable, searchable table Any columns. Rows can link to a drill-down dashboard.
insights Three to five written observations about the data Any rows; the sentences are written from them and cached until the data changes.
map Markers on a map, zoomed to fit Rows with lat/latitude and lng/lon/longitude, and optionally name or label. Markers can drill down.

Charts use a single purple ramp so a dashboard reads as one piece; a grey bucket is reserved for “other”.

Table widgets

Tables page on the server: 50 rows per page (25 or 100 selectable), a Search… box, and a click-to-sort header. With six rows or fewer a table switches to a Records view that stacks each row as label/value pairs; toggle between Table and Records at the top. Click a row to open it in a dialog with Prev / Next (Left and Right arrow keys). Column headers are humanised: avg_price becomes “Avg Price”.

Adding a widget

Press Add widget.

  1. Pick a suggestion or describe the widget. Four suggestions that complement what is already on the dashboard appear under “Suggested widgets”; clicking one adds it straight away. Or type in the box under “Or describe what you want” (for example “Show top 5 retailers by average discount, as a horizontal bar”) and press Add Widget or Enter.
  2. Wait a few seconds. A title and query are written, the query is run once to prove it works, and the widget is sized and placed in the first free slot. The toast reads “Widget added”.

If a query cannot be written or returns nothing useful, the dialog says “Could not generate a valid query…” — name the columns you mean and try again.

Show the share of products in each availability state, as a donut, for the Live product offers dataset

Editing, explaining and deleting a widget

Hover a widget and open its three-dot menu.

  • Edit. Shows the current title and asks “What should this widget show?” Describe the change (“only products under $100”, “group by category instead of brand”) and press Regenerate. The widget keeps its type, gets a new title and query, and reloads. Toast: “Widget updated”.
  • Explain. Shows the exact SQL the widget runs and the raw rows it returned, so you can check what a number means.
  • Delete. Removes the widget. Toast: “Widget deleted”.

Delete has no confirmation. The widget and its place in the layout are removed the moment you click. If you delete one by mistake, add it again by describing it; Explain on a neighbouring widget is a handy reminder of the column names.

Recalculate layout

From the Add widget menu. Re-packs every widget from scratch: metrics in a row at the top (three, four or six abreast depending on how many), charts and maps next, insights, then tables full width at the bottom. Use it after deleting several widgets or when a hand-arranged layout has become untidy. Your manual positions are replaced; toast “Layout recalculated”.

Only the desktop layout is stored. Tablet and phone layouts are derived from it.

Parameters, filters and drill-down

The wizard builds a small graph of dashboards rather than one page: an overview, plus Row Detail dashboards that take one entity (a product, a retailer) as a parameter, and Filter dashboards that take one category value.

  • Following a link. In a table widget, cells with a drill-down render as links; on a map, markers are clickable. Clicking opens the target dashboard with the parameter in the address, for example /dashboards/{id}?product_id=MR-100001. The breadcrumb shows the parent dashboard and the current entity’s name.
  • Picking a value. Opening a parameterised dashboard without a value shows a Pick a product dialog listing up to 200 values from the source dataset with a search box. Choose one or close the dialog to go back to the parent.
  • Stepping through. On a Row Detail dashboard a bar above the grid reads “Prev · 3 of 120 · AirPods Pro · Next” so you can step through every entity, or click the middle to pick.

Parameters are set up by the wizard; there is no editor for adding them to a dashboard by hand. Ask Jason if you want a new drill-down.

Sharing a dashboard

Use the share icon in the top bar to add the dashboard to the workspace share. Viewers see the same grid, read-only, with every widget computed at the time they open the page. A dashboard with more than 50 widgets cannot be shared; split it. Parameterised dashboards have no picker on the public page, so share the overview. See Sharing.

Home page analytics

The Analytics section of the workspace home page is not a dashboard: it shows pipeline run metrics (rows processed, runs, failures, success rate) for a chosen pipeline and period. Dashboards are about your data; the home tiles are about your pipelines.

What’s next

Connect your data assistant

Build datasets and work with your data in ChatGPT, Claude, Copilot or another assistant.

Connect in ChatGPT

  1. Open Settings → Security and login and enable Developer mode.
  2. Open Plugins and select + to create a connection. Name it Jsonify, add a short description, and paste the URL below.
  3. Use OAuth for authentication, select Create, and sign in to your Jsonify account when prompted.
  4. Start a new chat and select Jsonify from + → More, then describe your dataset.
Server URLhttps://factory.jsonify.com/mcp

If Developer mode is unavailable, your plan or workspace settings may restrict custom connections.

Official ChatGPT setup guide ↗

Then say: “build me a dataset of competitor product prices and availability, refreshed daily”. Full instructions per client on /connect.