A drafting assistant for dashboards, map symbology and data item descriptions. Only the schema leaves the platform — field names and types, never your rows.
Open Hyz AIHyz AI drafts what you would otherwise assemble by hand: a map's symbology and its popups, a dashboard, a printed report, a data item's description.
Everything it produces arrives as a proposal: you preview it, then Apply or Discard. Applying goes through the ordinary save path, so your plan, your role and every validation still hold. A bad answer costs you a run and nothing else.
The model receives a digest of the shape of your data, never the data itself.
| It receives | It does not receive |
|---|---|
| Field names | Rows and values |
| The inferred type (number, text, date, boolean) | Geometries |
| How full each field is | File contents and attachments |
| How many distinct values a text field holds | Member names, emails, access logs |
| The lowest and highest value of a number or date field | The range of identifier-like columns |
| Geometry type and feature count | |
| The bounding box of the sampled geometries |
The digest comes from a bounded sample of the source — the same one the field picker reads — so the assistant and the builder agree about which fields exist. A layer's current style travels too, with its value-bearing parts (category colours, class ranges, a popup template) replaced by counts.
Every Hyz AI panel carries a switch labelled Share 3 sample rows, and it is off by default. Turned on, three real rows per source travel alongside the digest, so the model can read units, codes and naming: that capacity is in MW, that status uses A and M.
The rows are taken from the start, middle and end of the sample, so a sorted file does not send three near-identical records. Columns whose names look like identifiers — id, phone, mobile, iqama, national id, passport, IBAN, plate, contract, anything ending in _id — are masked, long text is clipped, and geometry is never included. The panel then says rows were shared.
Turn it on when the model keeps guessing wrong about a column. Leave it off for anything you would not paste into an email.
The Extra context box is free text, sent verbatim as its own section of the prompt, with the instruction to trust it over guesses about the data. It is the right place for "these are 5G towers; status A means active; the latest reading is 2026-08-28" — and the wrong place for anything confidential, because nothing you type there is filtered.
Hyz AI is a verb on the object. /workbench/ai is a launcher for when you are not on an object yet; it runs the same panels.
| Job | Where it starts | What you need |
|---|---|---|
| Symbology, icons, labels, clustering, animated lines, popups | a map ▸ Layers ▸ Hyz AI | editor or owner |
| Report / print layout | a map ▸ the export layout designer ▸ Hyz AI | editor or owner |
| Build a dashboard | /dashboards/new ▸ Hyz AI | you can read the sources you pick |
| Revise a dashboard | the builder ▸ Hyz AI | edit rights on the dashboard |
| Describe a data item | a data item ▸ Describe with Hyz AI | you can view the item |
Symbology never leaves its object: the proposal is previewed on the live map, so running it elsewhere would show a result you cannot see.
Hyz AI project (Projects → New with Hyz AI, or the Platform menu) is the assistant working at the level of a task rather than one object. Describe what you want — "upload my two network files, group them into a data room, build a map, style it, create a dashboard and save it as a project" — and the first message becomes a plan: an ordered list of steps on a board beside the conversation. Each step is a card you can edit (title, prompt, which data items, which room or preset or template), skip, run on its own or run all in order. A step needing something from you — files to add, a source to pick — waits with its control open. Everything a step creates is an ordinary object you own, opened from the card; the last step files them into a project marked AI project. A follow-up message revises the plan without touching steps that already ran, and Replay runs the same plan again with the same inputs. The planner sees only the titles of what you own (under short aliases) and the step vocabulary — never ids, fields or rows.
| Job | The proposal | Applying it |
|---|---|---|
| Map style | Per layer: the style keys that change, a rename, a visibility change, an opening view or basemap | One save to the map |
| Report layout | Pages of blocks in millimetres, including the written analysis text | Loaded into the designer; you still press Save layout |
| Dashboard (create) | An import bundle: pages, widgets and their bindings | The builder opens with it laid out, unsaved |
| Dashboard (revise) | A change to the layout you are editing, not a replacement | Applied to the canvas, unsaved |
| Data item description | A title, a description, an alias for every field, a few ideas | Copied out by hand |
Anything not allowed is named, not dropped in silence: style keys above your plan read "Not on your plan", widgets referencing a field that does not exist are listed as diagnostics, and report blocks that would not fit are counted.
Under every result sit up to three follow-up chips — next requests the model suggests. Clicking one fills the prompt box.
Each generation costs one run against a daily budget for your account. The counter shows wherever Hyz AI does: a chip on the button, a meter on /workbench/ai. It resets each day; the budget size is on Plans & limits.
Two things cost more than you expect: when an answer references fields that do not exist, Hyz AI repairs it with a second request — a second run; and a request that fails after reaching the model is still charged.
A refusal is a state, not a crash — the panel names which one.
| The panel says | It means | What to do |
|---|---|---|
| Not available on this instance | Switched off, or no model is configured here | Ask your operator |
| You have used today's allowance | The daily budget is spent | Wait for the reset |
| Too many requests | The short-window rate limit tripped | Wait a few minutes |
| Could not complete the request | The model call failed or timed out | Try again; the run is spent |
| An answer we could not use | It did not fit the schema, even after the repair round | Rephrase, more concretely |