Skip to Content
Growth Lab GUIWorkspace

Growth Lab workspace

The GUI is organized around two grower tabs (Flows / Create) so you do not hop between Sources, Alerts, and Reports to finish a flow. Settings → Contacts is any signed-in session. Settings → Adapters appears only when you sign in as the tenant.

Available

  • Two-tab shell (Flows, Create) with unsaved-change confirmation
  • Flows: browse, edit, upload, delete, duplicate, export, simulate, inspect
  • Create wizard: Flow, Sources, Alerts, Reports
  • Tile pipeline grid with the palette built from GET /v1/tiles and per-tile settings dialogs generated from each tile’s spec
  • Sources catalog grouped by hint: add, edit, disable, delete from the wizard step
  • Alerts step: pick contact lists, trigger / reset / cooldown / aggregate, verified badges, send verification
  • Reports step: schedules in settings.reports, history, send now; public report page (/report/{token}) with PDF download
  • Run with live analysis, run history, an Also send alerts confirm, and the Run results chart
  • Flow settings on Create and Edit: colours, units, report branding
  • Settings: Contacts, Account Settings (users with canOverrideBranding), Adapters on a tenant session (register, edit, test, targets sync)

Planned

  • AIVA verify
  • Import validation against /v1/flows

Flows

The Flows tab lists the signed-in user’s flows (sign in first; a tenant session sees every user’s flows). Search and filter by status, then select one to see its latest analysis (triggered / not triggered, probability, colour, last run), run history, and how it is targeted (sources, alerts, reports).

From this tab you can:

  • Status: Active / Paused / Draft. The scheduler only fires while Active; Paused keeps the interval.
  • Run: evaluate the flow now from the selected flow’s Run button. Runs are queued and the targets execute in parallel; the GUI polls until the run finishes, then the result appears in Latest analysis with a per-target, per-tile breakdown (value, on/off, any tile error). Run results opens the results chart: per-tile trigger bands and values, the combined flow trigger, and (for area targets) the sensors that were averaged. Zoom with the wheel or Shift+drag. Pick a history row first to chart that run. If a run of this flow is still going, Run is disabled and a 409 is explained in a toast (the GUI watches that run when it can). A queued/running chip shows while a run is in flight. Data tiles use generated demo data unless their Data source is switched to an adapter (see Adapters).
  • More Actions (three dots): Export Flow downloads the definition as JSON (tiles, sources, alerts, reports, appearance). Simulate runs as-of a date and time (POST /run { now }); alerts are not sent. Inspect lists past runs (filter by source and date), charts tile outputs (raw weather/sensor series are not stored), and exports runs or chart CSV. Duplicate and Delete stay in the same menu.
  • Edit: reopen the same setup wizard (flow, sources, alerts, reports) without leaving the tab. Unsaved changes ask before you leave.
  • Upload: import an exported flow JSON (or a classic Growth Lab {name, model} export) as a draft. Re-bind sources if you brought the file from another tenant. Engine-side import validation is still planned.

Create

The Create tab is the full new-flow workflow on one page:

  1. Flow: name, status (draft / active / paused), notes, and the tile pipeline. The palette is built from this tenant’s tile catalog (GET /v1/tiles: icon, colour, order, short name). Drag a tile onto a step (tap a step on mobile). Use the pencil on a placed tile to open its settings. The dialog is generated from that tile’s spec (GET /v1/tiles/{id}/spec: groups, ranges, units, choices, dependent fields), so new or tenant tiles get a dialog with no GUI change. The pencil is orange while a tile still uses its defaults. Saving the flow validates every tile’s parameters in the Engine; errors point at the field (tiles[0].params.threshold: …) and the GUI jumps to that cell. At least one tile is required.
  2. Sources: bind the flow to your Sources (yours, or synced for you by a targets adapter), or add one here. Every Source is the same kind of record with a hint (areas, sensors, weather stations, or anything you define). Add opens a dialog: name, hint, optional sensorType on non-area sources (same-type sensors inside an area are averaged), timezone / tenant key, and geometry (none, click a point, or click a boundary ring). Edit, disable, or delete from the row menu. Disabled sources stay in the catalog but cannot be bound. The step groups by hint and maps boundaries/locations when present. Hover a row to light up its polygon or marker; selected markers get a red ring. Click a shape or row to select it.
  3. Alerts: check the contact lists that should receive this flow’s alerts (create people and lists in Settings → Contacts). Trigger settings (threshold crossing vs every run, return-to-normal, cooldowns, aggregate). Unverified addresses show a badge; the Engine will not send until they are verified. Sign in as tenant to send the email link or SMS code from Settings → Contacts (grower sessions wait on an Engine user-gate). Run on the flow is silent unless you check Also send alerts; scheduled runs always send.
  4. Reports: per-flow schedules (time-driven or on flow trigger), target filter, and contact lists, stored as settings.reports. History lists Engine send attempts; Send now emails a 7-day link from the latest succeeded run. The public /report/{token} page renders the payload and offers Download PDF. History and Send now need a saved flow.

Finish with Create flow. The new flow appears on the Flows tab so you can inspect it and edit it later.

Adapters

Settings → Adapters is tenant-only (Sign in as tenant). A grower session never sees that pane and never calls /v1/adapters. From it you can register one script per facet (series, weather, events, targets, comms), edit the script and egress allow-list, replace write-only env secrets (values are never shown again), Test with a sample request, and Sync sources on a targets adapter. See Adapters.

The toolbar keeps Settings (gear), theme, sign-in, and Help. Create / save / run live on the Flows and Create tabs. Help is a short workspace map plus a link to these docs. Settings opens Contacts, Account Settings, and (tenant session) Adapters. Per-flow colours, temperature units, and report branding are Flow settings on Create and Edit (next to Draft / Active / Paused). Colours are stored as settings.colors and used on the next run. Temperature units convert tile fields, summaries, and run values in the GUI; stored params stay °C. Tenant GUI chrome is the skin, not this dialog.