Rename the Instance AI workflow tools to snake_case names. Workflow building tools get the `workflow_` prefix (`workflow_build`, `workflow_executions`, `workflow_create_tasks`, and so on). Other tools change only their separators (`ask_user`, `data_tables`, `mcp_servers`). - Add `WORKFLOW_BUILDER_TOOL_NAMES` and the former names to `LEGACY_BUILDER_TOOL_NAMES` in `@n8n/api-types`. - Register the former names on each tool with `.legacyNames()`, so stored checkpoints and replayed recordings still resolve. - Resolve former names in the frontend labels and icons, the trace categories, the trace replay index, conversation history search, and the eval harness. - Update the i18n keys, the skills, the prompts, and the docs. Co-authored-by: Cursor <cursoragent@cursor.com>
1.4 KiB
Per-trigger inputData shape
Used by workflow_verify_built, workflow_executions(action="run"), and checkpoint
verification. The pin-data adapter spreads or wraps based on trigger type —
passing the wrong shape gives null downstream values that look like an
expression bug.
Form Trigger (n8n-nodes-base.formTrigger)
Flat field map, e.g. {name: "Alice", email: "a@b.c"}. The production Form
Trigger emits each field directly on $json, so the builder's $json.<field>
expressions are correct. Do NOT wrap in formFields — the adapter will
reject the call.
Webhook (n8n-nodes-base.webhook)
The body payload, e.g. {event: "signup", userId: "..."}. The adapter wraps it
under body, so downstream nodes reference $json.body.<field>.
Chat Trigger (@n8n/n8n-nodes-langchain.chatTrigger)
{chatInput: "user message"}.
Schedule Trigger (n8n-nodes-base.scheduleTrigger)
Omit inputData; the adapter emits synthetic timestamp fields.
Other event triggers
Linear, GitHub, Slack, MCP, and similar triggers: pass inputData matching the
trigger's expected payload shape from the node type definition.
Debugging wrong null values
Do not patch a workflow first when verify returns null downstream values.
Re-run verify with the corrected inputData shape. Only patch the workflow if
the expression is wrong against the production trigger output shape (consult
node descriptions), not the instanceAi pin data path.