Create Record

TinyTables node
Database: Create Record in TinyTables

The Create Record node inserts a new row into a database table. Use it to log data, store workflow results, create CRM entries, or persist any structured information.

Type: Create Record / CREATE_RECORD_V2 Color: Green (#22C55E) Tabs: Initialise → Configure → Test Test module: Yes (required)

Initialise tab: Templates

TemplateWhat it pre-fillsUse case
Insert Username, email, created_at fieldsUser registration flow
Create Orderorder_id, customer_id, total, status fieldsE-commerce order processing
Log Entrymessage, level, timestamp fieldsWorkflow logging and audit

Configure tab: Fields

FieldTypeRequiredDescription
ConnectionSelectYesWhich database to write to. Choose from App Authorizations.
TableSelectYesTarget table. Populated from the selected connection.
RecordKey-value pairsYesColumn → value mappings. Each value is an FX formula supporting workflow variables.

Mapping fields

For each column you want to populate, add a row:

ColumnValue (FX formula)
name{{trigger.body.name}}
email{{trigger.body.email}}
source"workflow" (literal string)
created_at{{now}}
score{{analyzer.result.score}}

You don't need to map every column; unmapped columns use their database defaults (NULL, DEFAULT values, auto-increment).

Test tab

  1. Click Test to execute the INSERT
  2. The node shows the inserted row with all values including auto-generated fields (ID, timestamps)
  3. The output schema populates; downstream nodes can reference the new row's fields
Warning

Test runs insert real data into your database. Use a test table or clean up after testing.

Output variables

VariableWhat it contains
{{create_record.id}}Auto-generated ID of the new row (if the table has an auto-increment/serial primary key)
{{create_record.row}}The full inserted row as a JSON object
{{create_record.row.fieldName}}A specific field from the inserted row
{{create_record.affectedRows}}Number of rows inserted (always 1)

Common patterns

Log every webhook

Webhook Trigger → Create Record (log payload to audit_log table)

Store form submissions

Form Submission → Create Record (insert into leads table) → Send Email (confirmation)

Enrich then store

Webhook → Person Enrichment → Create Record (save enriched contact with all fields)

Upsert pattern

If the record might already exist:

Trigger → Find One (check if exists) → If-Else → 
  If found: Update Record
  If not found: Create Record

Database support

DatabaseConnection fields
PostgreSQLHost, port, database, schema (default: public), username, password
MySQLHost, port, database, username, password

The node auto-detects which database type you're using from the connection.

Tip

Use the Log Entry template for quick debugging: insert a row with the current node's data at any point in your workflow to trace what's happening.

Note

If your table has required columns without defaults, the Create Record node will fail if you don't map those columns. Check your table schema if you get constraint violation errors.