Developers › REST API › Workflows & Automations
REST API · 5 endpoints
dashboards
Conventions for every endpoint. Lists take page (from 1) and per_page (1-100, default 50), and total counts pages, not items. Collection URLs end with /. POST …/run returns 200 when the run is queued; poll GET …/run. Google Sheets use provider: "drive"; column fields take letters ("E"). Error bodies and status codes: api.html#api-errors.
Dashboards turn a workflow's data into shareable visual summaries. Each workflow has a single dashboard; add indicator, table and chart-reference elements to it, read an element's live values, and publish the dashboard to get a viewer URL.
Elements point at a spreadsheet's tabs and charts by id — get those from GET /files/{provider}/{file_id}/structure. Google Sheets on Google Drive only.
Models used on this page
Every request and response model referenced above, including nested ones (8). The full catalogue is on api-models.html.
AuthConfigIn
Access restriction. Only domain restriction is exposed.
specificUsers is deliberately absent: the internal PUT emails every
address in it via SendGrid (dashboard/models.py:190), which would let an
API key mail arbitrary recipients.
| Field | Type | | Description |
|---|
domain | boolean | required | Restrict to the workflow owner's email domain |
Used by: PUT /rest/beta/workflows/{id}/dashboard/publish
DashboardOut
A workflow's single dashboard: its elements and its publication state.
| Field | Type | | Description |
|---|
elements | array of ElementOut | optional | Every element on the dashboard, in stored order. Empty for a workflow whose dashboard has not been built yet. |
publish | PublishOut | required | Whether the dashboard is published, and under what access restrictions. |
Used by: GET /rest/beta/workflows/{id}/dashboard
ElementDataOut
One element's current values.
page/per_page/total are populated for table only; the other types
have nothing to paginate.
| Field | Type | | Description |
|---|
data | any | optional | The element's current values, read live from the spreadsheet. A single value for indicator, a list of rows for table, and the chart's image or reference for chart. |
id | string | required | Id of the element these values belong to. |
page | integer | nullable | Current page of rows, 1-based. Populated for table only. |
per_page | integer | nullable | Rows per page in this response. Populated for table only. |
total | integer | nullable | Total rows, for table elements |
type | ElementType | required | The element's kind, which determines the shape of data. |
Used by: GET /rest/beta/workflows/{id}/dashboard/elements/{element_id}/data
ElementOut
One stored element, in public vocabulary.
| Field | Type | | Description |
|---|
added_by | string | nullable | Email of the user who added the element. |
added_on | string | nullable | When the element was added, ISO 8601. |
chart_id | integer | nullable | Numeric id of the referenced chart. Set for chart elements only; get it from GET /files/{provider}/{file_id}/structure. |
error | string | nullable | Stored render error, when one was persisted. Usually null even for a broken element: errors are written during a build and not saved (workflow/controller.py:759). Read the element's /data to be sure. |
file_id | string | nullable | Id of the Google Sheets file the element reads from. |
id | string | required | Element id. Use it for delete and data reads. |
range | string | nullable | A1 range the element reads, without the tab name (for example B2:D50). Set for indicator and table; null for chart. |
stored_role | string | nullable | Internal role, echoed when type is other |
stored_type | string | nullable | Internal type, echoed when type is other |
tab_id | integer | nullable | Numeric id of the tab the element reads from. Null for chart elements, which point at a chart rather than a tab. |
tab_name | string | nullable | Name of that tab at the time the element was stored. Null for chart elements. Renaming the tab does not update this. |
title | string | nullable | Label shown above the element on the dashboard. |
type | ElementType | required | Element kind: indicator (a single value), table (a range of rows) or chart (a reference to a chart already in the spreadsheet). other means an element the web app created that this API does not model — see stored_type. |
Used by: POST /rest/beta/workflows/{id}/dashboard/elements
ElementType
Type: one of "indicator", "table", "chart", "other"
Used by: POST /rest/beta/workflows/{id}/dashboard/elements
HTTPValidationError
Used by: GET /rest/beta/workflows/, POST /rest/beta/workflows/, POST /rest/beta/workflows/run/{id}, GET /rest/beta/workflows/{id}, PATCH /rest/beta/workflows/{id}, DELETE /rest/beta/workflows/{id}, GET /rest/beta/workflows/{id}/collaborators, POST /rest/beta/workflows/{id}/collaborators, DELETE /rest/beta/workflows/{id}/collaborators, PATCH /rest/beta/workflows/{id}/collaborators/{email}, DELETE /rest/beta/workflows/{id}/collaborators/{email}, GET /rest/beta/workflows/{id}/destinations, GET /rest/beta/workflows/{id}/files, GET /rest/beta/workflows/{id}/general-access, PUT /rest/beta/workflows/{id}/general-access, DELETE /rest/beta/workflows/{id}/general-access, POST /rest/beta/workflows/{id}/leave, POST /rest/beta/workflows/{id}/request-access, GET /rest/beta/workflows/{id}/run, POST /rest/beta/workflows/{id}/run, GET /rest/beta/workflows/{id}/sources, GET /rest/beta/automations/, POST /rest/beta/automations/run/{id}, GET /rest/beta/automations/{id}, DELETE /rest/beta/automations/{id}, GET /rest/beta/automations/{id}/destinations, GET /rest/beta/automations/{id}/files, GET /rest/beta/automations/{id}/run, POST /rest/beta/automations/{id}/run, GET /rest/beta/automations/{id}/sources, GET /rest/beta/workflows/{id}/trigger, DELETE /rest/beta/workflows/{id}/trigger, GET /rest/beta/workflows/{id}/dashboard, DELETE /rest/beta/workflows/{id}/dashboard/elements/{element_id}, GET /rest/beta/workflows/{id}/dashboard/elements/{element_id}/data, PUT /rest/beta/workflows/{id}/dashboard/publish, GET /rest/beta/workflows/{workflow_id}/forms/, POST /rest/beta/workflows/{workflow_id}/forms/, GET /rest/beta/workflows/{workflow_id}/forms/{form_id}, PATCH /rest/beta/workflows/{workflow_id}/forms/{form_id}, DELETE /rest/beta/workflows/{workflow_id}/forms/{form_id}, GET /rest/beta/workflows/{workflow_id}/forms/{form_id}/responses, HEAD /rest/beta/workflows/{workflow_id}/forms/{form_id}/responses, GET /rest/beta/automations/{automation_id}/webhook, GET /rest/beta/workflows/{workflow_id}/webhooks, GET /rest/beta/api-destination/{public_id}, HEAD /rest/beta/api-destination/{public_id}, GET /rest/beta/integrations/{provider}/options, GET /rest/beta/outlook/messages, POST /rest/beta/outlook/messages/batch, GET /rest/beta/outlook/messages/{message_id}, GET /rest/beta/outlook/messages/{message_id}/attachments/{attachment_id}, POST /rest/beta/outlook/send, POST /rest/beta/gmail/send, GET /rest/beta/files/{provider}, GET /rest/beta/files/{provider}/roots, GET /rest/beta/files/{provider}/search, GET /rest/beta/files/{provider}/{file_id}, GET /rest/beta/bigquery/projects, GET /rest/beta/bigquery/projects/{project}/datasets, GET /rest/beta/bigquery/projects/{project}/datasets/{dataset}/tables, GET /rest/beta/bigquery/projects/{project}/datasets/{dataset}/tables/{table}, POST /rest/beta/bigquery/projects/{project}/validate-query, POST /rest/auth/refresh, POST /rest/auth/token
PublishOut
The dashboard's current publication state.
| Field | Type | | Description |
|---|
auth_config | object | nullable | The access restriction applied when require_auth is true — {"domain": true} limits viewers to the owner's email domain. Null when unrestricted. |
public_id | string | nullable | Stable public identifier minted at first publish; it forms the url. Null until the dashboard has been published once. |
require_auth | boolean | optional | Whether a viewer must be signed in to open the dashboard. Only meaningful while shared is public. Default: false |
shared | string | required | public if the dashboard is published and reachable at url, private if it is not. |
url | string | nullable | Viewer URL; null while private and never published |
Used by: PUT /rest/beta/workflows/{id}/dashboard/publish
ValidationError
| Field | Type | | Description |
|---|
loc | array of string or integer | required | |
msg | string | required | |
type | string | required | |