When to Use It
- Saving form submissions or API responses for later reference
- Looking up records to enrich data in your flow
- Maintaining a running log of events or transactions
- Building a simple database for your workflows without an external service
- Tracking state across multiple flow executions (e.g., “last synced at”)
Operations
The Table node supports several operations depending on what you need:- Insert
- Update
- Query
- Delete
Add a new record to a table.Configuration:
Example data:
| Field | Description |
|---|---|
| Table Name | The table to insert into. Created automatically if it doesn’t exist. |
| Record Key | Optional. A string key for looking up this record later. |
| Data | The data to store, as a JSON object. Supports template syntax. |
Table Schemas
Tables in Zygo are schema-optional. You can insert any JSON object without defining columns first. However, defining a schema gives you:- A structured view in the data tables UI
- Column names and types visible when browsing records
- Validation when editing records manually
Output
The Table node’s output varies by operation:| Operation | Output |
|---|---|
| Insert | { "success": true, "action": "insert", "table": "...", "id": "...", "key": "...", "data": {...} } |
| Update | { "ok": true, "record": {...} } |
| Query | { "table": "...", "total": 5, "records": [...] } |
| Delete | { "ok": true } |
Common Patterns
Log every form submission
Log every form submission
Connect a Table node after a Web Form to persist every submission:
- Operation: Insert
- Table Name:
form_submissions - Record Key:
{{1_Form.form_data.email}} - Data:
{{1_Form.form_data}}
Deduplication check
Deduplication check
Before processing a webhook payload, check if you’ve already seen this event:
- Table node (Query) — Look up by record key (e.g., the event’s unique ID)
- Condition node — Check if
recordsis empty - True (new) → Process the event, then insert a record
- False (duplicate) → Skip
Store and retrieve configuration
Store and retrieve configuration
Use a table as a simple config store:
- Table:
config - Key:
email_settings - Data:
{ "from": "noreply@acme.com", "footer": "..." }
Running counter or state
Running counter or state
Track cumulative state across flow runs:
- Query the current counter record by key
- Python node — Increment the value
- Update the record with the new value
Data tables are scoped to your tenant. Different tenants have completely separate tables, even if the table names are the same.