getWorkflowTable
One Workflow Table with its rows, paged by rowLimit.
One Workflow Table with its rows, paged by rowLimit (default 100, at most 500) and rowOffset: keep reading while a page comes back full (rowCount excludes the DEFAULT row, which pages like any other): each row's key (key, keyLabel, the keyLevel of the fallback chain it sits on, and its keyParts), whether it is the DEFAULT row (used when nothing matches), and its cells by columnId. Rows need an org admin (the Tables editor's gate); null when the table is not in your org. Which row one record gets is previewWorkflowTableLookup's answer, never a key matched by eye.
curl https://server.goliathdata.com/api/v1/call \
-H "Authorization: Bearer $GOLIATH_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"operationId": "getWorkflowTable",
"variables": {
"workflowTableId": "<workflowTableId>"
}
}'import { GoliathClient } from '@goliath-data/sdk'
const goliath = new GoliathClient({
apiKey: process.env.GOLIATH_API_KEY!,
baseUrl: 'https://server.goliathdata.com',
})
const result = await goliath.workflows.getWorkflowTable({
workflowTableId: '<workflowTableId>'
})const res = await fetch('https://server.goliathdata.com/api/v1/call', {
method: 'POST',
headers: {
Authorization: `Bearer ${process.env.GOLIATH_API_KEY}`,
'Content-Type': 'application/json',
},
body: JSON.stringify({
operationId: 'getWorkflowTable',
variables: {
workflowTableId: '<workflowTableId>'
}
}),
})
const { data, errors } = await res.json()Variables
The example sends only what the schema requires. Some operations also need one of several optional variables (one filter or another, say); the description above says which.
Default 100.
Default 0.
Response
What comes back under data: a list shows as one entry, and a value as its type.
{
"data": {
"workflowAutomationsQuery": {
"workflowTable": {
"id": "<ID>",
"name": "…",
"description": "…",
"keyKind": "COUNTY_FIPS",
"keyFieldPath": "…",
"keyShape": {
"levels": [
{
"parts": [
{
"kind": "COUNTY_FIPS",
"fieldPath": "…",
"match": "EXACT"
}
]
}
]
},
"rowCount": 0,
"isProvisioned": true,
"updatedAt": "2026-01-01T00:00:00.000Z",
"columns": [
{
"id": "<ID>",
"name": "…",
"kind": "TEXT",
"displayOrder": 0,
"tokenKey": "…",
"options": [
{
"value": "…",
"label": "…"
}
]
}
],
"rows": [
{
"id": "<ID>",
"key": "…",
"keyLabel": "…",
"keyLevel": 0,
"keyParts": [
{
"match": "EXACT",
"value": "…",
"label": "…",
"rangeStart": "…",
"rangeEnd": "…"
}
],
"isDefault": true,
"displayOrder": 0,
"cells": [
{
"columnId": "<ID>",
"value": "…"
}
]
}
]
}
}
}
}Errors
unknown_variableA variable the operation does not declare. A typo is refused rather than silently dropped.
unauthorizedNo bearer header, or the key is invalid or revoked.
insufficient_scopeThe key lacks the scope the operation requires.
forbiddenA referenced record does not exist, was deleted, or is outside your organization. The gateway cannot tell those apart.
Behaviour
A read. It rejects an Idempotency-Key header with 400 bad_request.