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").
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 |
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.