Table Trigger

input.table Input v0.1.0

Starts the workflow when a row changes in a Flowdrome Table — created, updated or deleted (pick the kinds, or react to all). Each change becomes one run carrying { table, rowId, event, row }. Deployed, it polls the table's change feed; in the editor, seed it with a sample change and Test.

Finding it in the library

Search the builder's node library for Table Trigger (it lives under Input). A single click opens the in-editor docs panel shown here — description, ports, and every property, without leaving the canvas. Double-click (or drag) to add it to the workflow.

Library capture pending — regenerate with npm run shots:nodes.

Wired up in the builder

Table Trigger in a real, runnable flow — captured live from the Studio editor, exactly as it looks on your canvas. This is the same workflow used for the example input & output below.

Canvas capture pending — regenerate with npm run shots:nodes.

How it’s configured

The node’s Configure panel as it opens in the builder when you select the step — every setting laid out with real values. Click any field to edit it.

Config capture pending — regenerate with npm run shots:nodes. See the full property reference below.

Ports

This is a trigger — it starts runs and takes no input wire.

Ports are the node’s contract with its neighbours. In the editor a port label renders bold when wired and italic when optional; ports accept attachment carriers rather than data wires.

DirectionPortLabelWhat flows through it
OutputoutputChange

How data flows through it

As a trigger, Table Trigger starts runs — it takes no input wire. What it emits is the request wrapper: the event’s body becomes the payload, and the wrapper carries the event metadata around it (for an HTTP-style trigger that’s headers.*, request.method, request.path and query). Downstream nodes consume the content — the wrapper is unwrapped at each node boundary, and expression roots like {{ headers.x }} still resolve against the wrapper when you need the metadata. See Runs & run data for the envelope model.

Expressions in the config

String-typed properties accept {{ }} expressions evaluated against the incoming item at run time — e.g. {{ $json.customer.email }}. On this node that’s table, baseUrl, token. JSON- and code-typed fields never interpolate — they are passed through literally.

Build it with AI

Every node in this reference is reachable through Flowdrome’s AI Copilot and the MCP tools — say what you want, and the graph surgery happens server-side. Node types resolve fuzzily, so the catalog label (Table Trigger) works as well as the exact type id (input.table).

In the Copilot panel (or any connected AI):

create a workflow that starts with table trigger and logs the result

As a step in a create_chain_workflow call:

{"type":"Table Trigger","config":{}}
Raw MCP call — add this node to a workflow with add_node
curl -s -X POST http://localhost:48170/mcp -H "content-type: application/json" -d '{ "jsonrpc": "2.0", "id": "1", "method": "tools/call", "params": { "name": "add_node", "arguments": { "workflowId": "<id>", "type": "Table Trigger" } } }'

Example input & output

Captured from a real test run of the workflow above — this is what you see in the run data panel after pressing Test workflow.

Input — what the node received

{
  "table": "Leads",
  "tableId": "tbl_91197742d45f",
  "rowId": "row_9706cc8b9320",
  "event": "created",
  "at": "2026-07-20T03:33:23.601+00:00",
  "row": {
    "email": "served2@live.test",
    "score": 2,
    "qualified": true,
    "id": "row_9706cc8b9320",
    "createdAt": "2026-07-20T03:33:23.588+00:00",
    "updatedAt": "2026-07-20T03:33:23.588+00:00"
  }
}

Output — what the node produced

{
  "table": "Leads",
  "tableId": "tbl_91197742d45f",
  "rowId": "row_9706cc8b9320",
  "event": "created",
  "at": "2026-07-20T03:33:23.601+00:00",
  "row": {
    "email": "served2@live.test",
    "score": 2,
    "qualified": true,
    "id": "row_9706cc8b9320",
    "createdAt": "2026-07-20T03:33:23.588+00:00",
    "updatedAt": "2026-07-20T03:33:23.588+00:00"
  }
}

Property reference

Every setting, with its type and default — the same fields shown configured in the panel above.

PropertyTypeDefaultDescription
Table
table
string "" Which Flowdrome Table to watch — its name (e.g. Leads) or tbl_ id. Pick from your tables or open one to view/edit its rows. Must be set by run time (the editor badge flags it).
Events
events
multiselect [] Change kinds that start a run. Empty = every kind (created, updated, deleted).
createddeletedupdated
Poll every (s)
pollSeconds
int 5 How often the deployed trigger polls the table's change feed. Each detected change starts one run with { table, rowId, event, row }.
Nucleus URL
baseUrl
string "" Override the Nucleus base URL the poll loop calls. Blank = the FLOWDROME_WORKER_SDK_URL env on the host (automatic on the built-in host).
Nucleus token
token
string "" Override the Nucleus API token for the poll loop (View capability is enough). Blank = FLOWDROME_WORKER_SDK_TOKEN.

Related nodes

The rest of the Input group — the same folder you’d scan in the editor’s library.

This page is generated from the node registry by gen-node-docs.mjs on every site build — ports, properties, defaults and visibility rules cannot drift from the code. The screenshots and example data are captured from a live Flowdrome by npm run shots:nodes and npm run gen:examples.