Data Stores
Data stores give workflows durable, organization-scoped state. Use them for lookup tables, synchronization state, deduplication, queues, counters, and the records behind dashboards.
How data is organized
Section titled “How data is organized”| Concept | Meaning |
|---|---|
| Table | A named collection shared by workflows in the organization |
| Key | The unique identifier for one record |
| Value | JSON data: a string, number, boolean, object, or array |
Tables are created when a workflow first writes to them. You can also create and inspect them from Data Store in the QuickFlo sidebar.
Choose the guide
Section titled “Choose the guide”| You need to | Read |
|---|---|
| Get, set, list, query, delete, browse, edit, import, or export records | Work with records |
| Prevent races, process an event once, rate-limit work, hold a lease, or drain a queue | Coordinate concurrent workflows |
| Give another organization read-only access to a table | Share a data store |
| Turn stored records into charts and tables | Dashboards |
The ordinary path
Section titled “The ordinary path”Most workflows need only three operations:
- Set writes a value under a stable key.
- Get retrieves that value later.
- Query finds records by fields inside their values.
Use an atomic operation when two executions might update or claim the same record at the same time. The atomic step makes the decision and the write together.
A small example
Section titled “A small example”Store a synchronization checkpoint:
| Field | Value |
|---|---|
| Table | sync_state |
| Key | salesforce-contacts |
| Value | {"cursor": "{{ fetch-page.nextCursor }}", "updatedAt": "{{ $util.now }}"} |
The next execution can read sync_state / salesforce-contacts and continue from the saved cursor.