Individual skill
n8n-data-tables-official
Use when working with n8n's built-in Data Tables, designing schemas, inserting/updating/upserting rows, deduping, or querying. Triggers on "Data Table", "data table", `n8n-nodes-base.dataTable`, "dedup", "idempotency", "lookup", "persistent state", "store across executions", or any schema design discussion inside n8n.
skills/n8n-data-tables-official/SKILL.md
Source commit 27b6b9f429ac0be90cae764512dbc579d7107e95
What was checked
- Matches the observed repository HEAD
- Yes
- Scanner rules are current
- No
- Repository scan complete
- No
- Skill scan complete
- No
- Observed behavior
- Not checked yet
- Last checked
- Nov 6, 2026
These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.
Install this skill
Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.
An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.
Repository context
- Repository stars (not skill ratings)
- 580
- Repository last updated
- Oct 30, 2026
- License
- Apache-2.0
Observed agent integration: No specific integration evidence. Standard SKILL.md installation does not imply verified compatibility.
Files and excerpt
File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.
Browse files
SKILL.mdcore · 11,383 bytesSKILL.mdcore · 11,383 bytesSKILL.mdcore · 11,383 bytesSKILL.mdcore · 11,383 bytesSKILL.mdcore · 11,383 bytesSKILL.mdcore · 11,383 bytesSKILL.mdcore · 11,383 bytesSKILL.mdcore · 11,383 bytesSKILL.mdcore · 11,383 bytesSKILL.mdcore · 11,383 bytesSKILL.mdcore · 11,383 bytesSKILL.mdcore · 11,383 bytesSKILL.mdcore · 11,383 bytesSKILL.mdcore · 11,383 bytesSKILL.mdcore · 11,383 bytesSKILL.mdcore · 11,383 bytesSKILL.mdcore · 11,383 bytesSKILL.mdcore · 11,383 bytesreferences/DEDUP_PATTERNS.mddoc · 5,307 bytesreferences/OPERATIONS.mddoc · 5,759 bytesreferences/SCHEMA_DESIGN.mddoc · 11,130 bytes
Read excerpt
# n8n Data Tables
Data Tables are n8n's **built-in tabular storage**: real tables inside the n8n instance with columns, types, rows, and CRUD via the `dataTable` node and data-table MCP tools.
Use them for local persistent state: lookup tables, recent events, per-session inventories, counters, idempotency tracking, dedup state when there's row-level logic or external visibility (plain "have I seen this value?" dedup belongs in the `Remove Duplicates` node). Small-to-moderate volume (tens of thousands of rows fine, millions belong in a real DB).
## Non-negotiables
1. **System-managed columns + external IDs.** Three columns auto-exist on every table: `id` (bigserial), `createdAt`, `updatedAt`. Don't declare them in `create_data_table` (errors or shadows the system column). Don't write them on insert. For domain identifiers from outside (arxivId, stripeCustomerId, requestId), add a separate column and key dedup/lookup on that.
2. **Only primitives in columns, nested data uses `string` + `_object` postfix.** No JSON/object/array column types exist. For nested data (arrays, parsed objects), use a `string` column with `JSON.stringify(...)` on write and `JSON.parse(...)` on read. Mark the column with `_object` (e.g., `keyInsights_object`). The postfix is the contract that tells readers to parse. See `references/SCHEMA_DESIGN.md`.
## Strong defaults
- **Don't add a Set node before a Data Table node to modify fields.** The Data Table node's per-column expression slots are just as powerful as Set fields, so the Set node is doing zero work the Data Table node can't do itself. (Same Set-node antipattern called out in `n8n-expressions-official`.)