Guide / Data tables (sdb)

Data tables (sdb)

A data table is any server-side table that the app's automations write to using sdb.tableName[key]. You can view and edit it directly, live, from the "Data" page in the dashboard.

Scope: private vs. shared

  • Global / shared by all visitors - a single row everyone sees and edits (e.g. inventory, a leaderboard).
  • Private to this visitor - every visitor gets their own rows in the same table, without seeing anyone else's (e.g. "my orders").
Watch out - an important difference

A Data Loop element always reads in global scope, regardless of the scope you wrote with using dbSet. If you wrote a row with "private" scope and it's not showing up in the loop - that's why.

Actions that expose tables to automation

Action What it does Main fields
Save to server storage (dbSet) Writes a single row. If you fill in a "Fields" list (name/value) instead of a single value - the action merges into the existing row instead of overwriting it, so you can update a single field (e.g. a "read" flag) without wiping out other fields. collection required
key required
value / fields
scope
Read from server storage (dbGet) Reads a single row into a variable. collection required
key required
scope
target (variable)
Refresh Data Loop Forces a specific Data Loop element to re-read from the server immediately (in addition to the automatic refresh via WebSocket). target element required
Export table to CSV Downloads all of the table's rows as a file. collection required
Advanced tip

Both collection and key in dbSet/dbGet can take a {{variable}} - for example a computed table name like contacts_{{myPhone}} gives every visitor their own table.

Incoming webhook

Every table also has its own webhook URL: an external system can send a POST with JSON shaped like {"key": "...", "value": {...}} and an X-Api-Secret header - the write always lands in the shared/global scope. You can regenerate the secret at any time from the "Data" page.

Storage limits

  • Up to 8,000 characters per value stored in a row.
  • Up to 20,000 rows per app.
  • Every write also counts against the user's overall storage quota.