nodes / builtin / core
Data Store
Remember values between workflow runs
Remember values from one run of a workflow to the next.
Try it
Section titled “Try it”Price On Page Watch: a workflow with 6 steps, starting with When the price changes and ending with Remember this price.
What it does
Section titled “What it does”Every other node starts each run knowing nothing. Data Store keeps named values (keys) that survive between runs, so “only tell me what changed”, “carry on from the page I stopped at” and “stop after N calls” become possible. Pick one of six Operation choices:
- Get: read a key.
- Set: store Value under a key, replacing what was there.
- Delete: remove a key.
- Increment: add Increment By to a number. A key that does not exist yet starts at
0, so a counter needs no setup step. - List keys: return every key in the current scope.
- Clear all: remove every key in the current scope.
Scope decides who sees the keys. This workflow only (the default) keeps them private to this workflow. Shared with all workflows lets every workflow you own read and overwrite them.
Values are stored in this browser profile and work without an account. Nothing is sent anywhere: the same workflow on another device has its own separate store, and clearing the extension’s data clears these entries too.
When to use it
Section titled “When to use it”- Keep the last-seen ID or timestamp so a watcher only reports new items.
- Save a page cursor to resume a paginated source on the next run.
- Count calls across runs, for example to stop after 100 requests a day.
- Share one setting between several workflows with the shared scope.
To remove duplicates across runs without building it yourself, Remove Duplicates already uses the Data Store. For values that only matter during one run, use Set Variable.
Inputs and settings
Section titled “Inputs and settings”| Setting | Type | What it does |
|---|---|---|
| Operation | Choice | What to do to the store. Options: Get, Set, Delete, Increment, List keys, Clear all. Default: Get |
| Scope | Choice | Which keys this node can see. Options: This workflow only, Shared with all workflows. Default: This workflow only |
| Key | Text | Name of the value to store or read. |
| Value | Value | The value to store. Used by Set. |
| Value Format | Choice | How to read text typed into Value. Options: Text, Number, True / false, JSON. Default: Text |
| Increment By | Number | How much to add. Use a negative number to count down. Default: 1 |
- Key is needed by every operation except List keys and Clear all. Up to 512 characters.
- Value Format only applies to text typed into Value. A value that comes from an expression, such as
{{ $input.id }}, is stored as it already is (a number stays a number, an object stays an object). - Limits per scope: 500 keys, 128 KB per value, 5 MB in total. Nothing is ever removed to make room; the node fails with a message instead.
Outputs
Section titled “Outputs”-
Output
The output depends on the operation:
- Get:
{ key, found, value }.foundtells a missing key apart from a storednull; branch onfound, not onvalue. - Set:
{ key, value }with the stored value. - Delete:
{ key, deleted }, wheredeletedsays whether there was a value to remove. - Increment:
{ key, value }with the new total. - List keys: one item per key, each
{ key, value, lastModified }. - Clear all:
{ cleared }, the number of keys removed.
Seeing stored values from the canvas
Section titled “Seeing stored values from the canvas”Open the Stored data tab in the canvas side panel, with the database button in the canvas controls or View stored values in a Data Store node’s settings. It lists every key this workflow stored, with its value, type and last change, and lets you Delete one key or Clear all (useful to make a watcher alert again). It refreshes after each run and has a refresh button for background runs. It appears once the workflow is saved and has a Data Store node, or still has stored keys.
Keys in the shared scope are managed in Settings → Preferences → Data store, where you can also view and clear all stored values.
Dependencies and credentials
Section titled “Dependencies and credentials”None. This node needs no connection and has no slots for other nodes.
Example workflow
Section titled “Example workflow”Get notified only when an API returns a new latest item:
- Schedule trigger, every hour.
- Http Request, GET
https://api.example.com/latest. - Data Store, Operation Get, Key
last-seen-id. - IF:
{{ $('Http Request').data.id }}is not equal to{{ $input.value }}. - On true: Browser Notification, then Data Store, Operation Set, Key
last-seen-id, Value{{ $('Http Request').data.id }}.
Common issues
Section titled “Common issues”- “The get operation needs a key.” (or set, delete, increment). Key is empty or only spaces. Fill it in.
- “This node is scoped to the current workflow but no workflow is running.” You tested the node on its own. Run the whole workflow, or switch Scope to Shared with all workflows.
- “Value “…” is not a number. Change the value, or the value format.“ Value Format is Number (or True / false, or JSON) but the typed text does not match. Fix the text or pick Text.
- “This store already holds 500 keys, the maximum allowed.” or a byte-limit message. Delete keys you no longer need, from the Stored data tab or with Delete.
- An imported or copied workflow does not see the old keys. Keys in This workflow only belong to the original workflow. Use the shared scope for values several workflows must read.
Recipes with this node
Section titled “Recipes with this node”Related nodes
Section titled “Related nodes”- Remove Duplicates: skip items already seen in earlier runs.
- Set Variable: keep a value for the current run only.
- IF: branch on what you read back.
- Execution Data: read details about the current run.