Guide · 5 min read
Building dashboards with AI
Hanomina dashboards are built through a chat conversation with the AI. You type what you want in plain English; the AI writes the SQL, builds the chart, and renders it in your dashboard. This guide is about getting good results out of that loop.
The basic workflow
- Create a new dashboard. The page starts empty.
- Type a request in the chat drawer at the bottom: "show me total sales by month".
- The AI writes a SQL query, runs it against your data, writes the HTML/Chart.js to render the result, and drops it into the dashboard above.
- Iterate by replying: "make it a line chart instead", "add a YoY comparison", "split by region".
What makes a good prompt
The AI is good at:
- Aggregate questions — "count by region", "sum by month", "average order value by customer".
- Ranking — "top 10 customers", "which products had the worst margin".
- Time series — daily, weekly, monthly trends. It'll pick the right granularity based on the data range.
- Joins — "total sales by product category" (joining orders → products), "split by customer region" (joining orders → customers).
- Layout judgment — KPI tile vs. bar chart vs. table. You can override but the defaults are usually reasonable.
It needs more help with:
- Ambiguous terms — "active user" could mean many things. Pin definitions in the data source's Notes for the AI field.
- Unit conventions — if amounts are stored in cents but you think in dollars, say so in the Notes field. Otherwise the AI displays raw values.
- Multi-step analysis — "find customers who churned then came back" might need two or three follow-up clarifications. Iterate.
Asking questions without editing the page
You can ask the AI factual questions about your data without it touching the dashboard. Just ask: "which date had the highest sales?" The AI will run a one-off query, see the actual answer, and reply with the real number. Useful when you want information but don't need a permanent chart for it.
If you do want it on the page, just say "add that as a chart" on the next turn.
The AI cites its work
Every chart links to the SQL that produced it. If a number looks wrong, click through to see the query, the raw results, and the error message (if any). Three things to check when a chart looks off:
- The SQL. Did the AI pick the right columns and the right join keys?
- The results. Did the query return actual rows? Empty results usually mean a too-restrictive WHERE clause.
- The render code. The HTML/Chart.js reads the SQL results from
window.__data["queryName"]. If the data's there but the chart is empty, the chart code is referencing the wrong field name.
Tell the AI which layer is wrong and it'll narrow its fix to the right place rather than rewriting from scratch.
Version history
Every AI edit creates a version snapshot. From the dashboard's history panel you can scrub back to any prior state — useful when an edit broke something or you changed your mind. Snapshots are kept on every plan today, up to the 50 most recent per dashboard — older ones are pruned. Retention controls are on the roadmap and are not included in any plan yet — see the pricing page, where roadmap items are listed separately from what each tier includes.
Sharing a dashboard by link
Owners and admins can hand a dashboard to someone outside Hanomina without giving them a seat. Open the dashboard, press Share, then Create share link. Anyone with that URL sees the dashboard — numbers included — without signing in, and with no way to edit it, ask the AI anything, or reach the data source behind it. It's on every plan, free included.
What they load is a saved copy of the page, not a live query. So a link pasted into a company channel and opened by two hundred people costs nothing on your warehouse bill — the number of viewers has no effect on how often your source is queried.
That copy keeps itself reasonably current: whenever a member of your org opens the dashboard and the saved copy is more than a few minutes old, it's re-saved in the background from that view — unless one of the dashboard's queries failed on it, so a half-broken render never replaces a good copy. If nobody has opened it in a while and you need the link current right now, press Update now.
Two things to know about taking it back, because the link is the only credential — there is no password on it and no list of who you sent it to: New link issues a fresh URL and the old one stops working immediately, which is how you cut off a link that reached the wrong inbox. Stop sharing stops it working and deletes the saved copy from our servers. Editors and viewers can see that a dashboard is shared, but are never shown the link itself.
Bring your own AI key
By default, AI generation uses Hanomina's platform API key (Google Gemini 3 Flash) with a per-org monthly cap. If you have your own OpenAI, Anthropic, or Google API key, you can drop it into Settings → AI Integration to switch the underlying model and bypass the cap entirely (you pay your provider directly). Three providers supported: OpenAI (GPT-5), Anthropic (Claude Sonnet 4.5), Google (Gemini).
When the AI gets it wrong
Two specific failure modes worth knowing about:
- It makes up numbers. Should never happen on a populated dashboard (the AI is shown the actual query results before replying), but on a brand- new empty dashboard it might guess from context. If you see a number you didn't expect, push back —"run that as a query and confirm".
- It claims to have fixed something it didn't. Usually because the underlying data source is broken (revoked credentials, missing grants). Check the data source page for a status pill that isn't green.