The key is yours
DataRunner bundles no model and resells no tokens. Under Settings → Integrations you connect your own Anthropic (Claude), OpenAI (GPT) or Google (Gemini) account, and usage is billed to you by them directly. The key is encrypted at rest like any database credential.
- More than one provider can be connected; the card says which one is answering, because three "connected" badges would read as three independent facts and they are not — the assistant calls exactly one.
- The model field takes a specific id. Left empty, the catalogue default applies — swapping the id is how you follow a new model without waiting for a release of ours.
- The "Test" button makes a real call to the provider and shows what it said. A revoked key fails here rather than halfway through a request.
- With no key connected the whole product works the same — the assistant is the only thing that stays off.
What leaves here
Your request and the structure of the chosen connection: table names, column names, types, and any descriptions you wrote in the catalogue. Rows from your data are not sent. The call goes from our server to the provider with your key, and the reply is not retained beyond the query you choose to save.
The quality of the SQL rests almost entirely on that structure. PostgreSQL, MySQL, SQL Server and SQLite connections have introspection, so the model can see the schema; on the other engines it writes blind, and the query is worth reading line by line before you schedule it.
Asking for a query
In the workbench, open Tools → AI and describe what you want to see. "Generate SQL" streams the query back as it is written, with an explanation and warnings when the output contains a destructive verb. "Replace editor SQL" moves the result into the editor, where it is yours to review, run and save like any other.
Read the database: weekly revenue by region,
with the change against the week before.
Every Tuesday at 10am, São Paulo time.The five things that sentence carries are the five that come back: the data, the cut, the comparison, the cadence and the timezone. It works the other way too — drop the Tuesday and no cron comes back, drop "São Paulo time" and no timezone does. The model does not invent a schedule nobody asked for, and when the timezone is missing the card says so: the workspace default applies, never UTC.
Asking for the schedule too
With the flag on, the same request comes back with more than SQL: the cron expression, the timezone for that schedule, the model’s own plain-language reading of the cron, and a name for the report. None of it is applied — the screen shows a proposal and a button. Wrong SQL shows a wrong number on one screen and somebody notices; a wrong cron delivers to real recipients on a timetable nobody chose, and the first to find out is a recipient.
- 01Settings → Feature flags → turn on "ai_autoconfigure". It starts off in every workspace on purpose: widening what a model’s output may touch is the tenant’s call, not ours.
- 02In the workbench, write the request and use "Propose schedule too".
- 03Check the cron against the plain-language reading beside it — that reading is what lets a human validate the expression without parsing cron.
- 04"Apply and schedule" creates the schedule and, when none exists yet, the report that will deliver it. The notice says so rather than letting you find a report you never asked for.
The things that are not SQL
Ctrl/⌘ I opens the assistant from any screen. There the request is not about data but about the workspace — and the answer is a plan of actions, each with the reason it is there and a checkbox that decides whether it happens. The catalogue is closed: the model cannot even describe an action the product does not know how to execute.
| Action | What for |
|---|---|
| Monitor | something reachable or not — a URL, a port, a certificate, a database, or a job that should have checked in |
| Alert route | where an alert goes once it fires: which channel, in what order, after what delay |
| Broadcast list | the audience for a communication |
| Schedule | a query that starts running on its own |
| Open screen | when the request already has an answer on a screen that exists, and creating anything would be wrong |
Every action carries the permission it requires, checked against your workspace role before it is applied. A viewer gets the plan and cannot apply it — the same limit as everywhere else, not a second path around it.
Where else it shows up
- Dashboards: describe the board and the model picks the widgets, the chart for each and which of your saved queries feeds them — saying so when none fits.
- Metrics: several at once, because what people actually ask for is a set ("funnel health") whose value lies in the definitions being consistent with each other.
- Connection context: the model reads the schema and writes what that database is — the domain, the tables that matter, how they join. It is the only AI output in the product that can be saved without field-by-field approval, because the worst case is a bad paragraph somebody fixes. It stays editable: the model reads structure, not intent.
- Email: subject and body for a campaign, a template or a report, from a description.