core / transform / schema v1
Memory
Remember information for future runs, or use information that was saved earlier
Prerequisites
No connection prerequisite is declared for this node.
Parameters
| Parameter | Type | Description |
|---|---|---|
What do you want to do?operation | select Required | Most workflows only need Remember or Use. Extra actions stay available under More memory actions. Options: Use saved information (get), Use one saved value (get_field), Remember information (upsert_fields), Change a saved number (increment_field), Add to a saved list (append_unique), Remove from a saved list (remove_from_array), Change only if it matches (compare_and_set), Forget saved information (delete) |
Which memory?key | store_key Required | Reuse the same memory to find the same information later. Noria can automatically keep a separate memory for each member, channel or server. |
What should Noria remember?fields | key_value Conditionally required | For example: status = ready, winner = a member from a previous step, or points = 10. Information you do not mention stays unchanged.Field conditions{
"visible": {
"key": "operation",
"values": [
"upsert_fields"
]
},
"required": {
"key": "operation",
"values": [
"upsert_fields"
]
}
} |
Which saved value?field | text Conditionally required | Enter the simple name used when this information was saved, such as status, points or participants.Field conditions{
"visible": {
"key": "operation",
"values": [
"get_field",
"increment_field",
"append_unique",
"remove_from_array",
"compare_and_set"
]
},
"required": {
"key": "operation",
"values": [
"get_field",
"increment_field",
"append_unique",
"remove_from_array",
"compare_and_set"
]
}
} |
How much should it change?amount | text Optional | Use a positive number to increase it or a negative number to decrease it. Empty means 1.Field conditions{
"visible": {
"key": "operation",
"values": [
"increment_field"
]
}
} |
What should be added or removed?value | text Conditionally required | Each row becomes a property of the same object. Values can use variables. The complete object is returned as item, and the updated list as value.Field conditions{
"visible": {
"key": "operation",
"values": [
"append_unique",
"remove_from_array"
]
},
"required": {
"key": "operation",
"values": [
"append_unique",
"remove_from_array"
]
}
} |
Only change it when it isexpected | text Optional | The field changes only when its current value matches this value. This safely prevents the same operation from succeeding twice.Field conditions{
"visible": {
"key": "operation",
"values": [
"compare_and_set"
]
}
} |
Then replace it withnewValue | text Optional | The new value to save when the current value matched. {{updated}} tells you whether the change happened.Field conditions{
"visible": {
"key": "operation",
"values": [
"compare_and_set"
]
}
} |
Auto-delete after (seconds)ttlSeconds | text Optional | Optional. The saved data is deleted after this delay. Leave empty to keep it until you delete it.Field conditions{
"visible": {
"key": "operation",
"values": [
"upsert_fields",
"increment_field",
"append_unique",
"remove_from_array"
]
}
} |
Also publish asoutputAs | text Optional | Give this node's {{value}} output a name of your own (e.g. "winners"), so downstream nodes can reference {{winners}} directly. Handy when another node also publishes {{value}}, Noria would otherwise silently use whichever one ran last. {{value}} keeps working unchanged either way. |
Inputs and outputs
Inputs
execute- Execute (input)
Outputs
done- Done (output)value- Value (output)error- Error (output)record- Data (output)item- List item (output)exists- Exists? (output)created- Created? (output)updated- Updated? (output)previous_value- Previous value (output)
Output data schema
[
{
"key": "record",
"type": "object",
"label": "Data",
"description": "Read all / Save fields: every saved field, restored with its original type.",
"optional": true,
"operations": [
"get",
"upsert_fields"
]
},
{
"key": "item",
"type": "any",
"label": "List item",
"description": "Add/Remove from a list: the resolved value or multi-field object used by this run.",
"optional": true,
"operations": [
"append_unique",
"remove_from_array"
]
},
{
"key": "value",
"type": "any",
"label": "Value",
"description": "Get field / Increment / Append / Remove / Compare-and-set: the single field this operation targets.",
"optional": true,
"operations": [
"get_field",
"increment_field",
"append_unique",
"remove_from_array",
"compare_and_set"
]
},
{
"key": "exists",
"type": "boolean",
"label": "Exists?",
"description": "Get / Get field: true when the record (or field) was already there.",
"optional": true,
"operations": [
"get",
"get_field"
]
},
{
"key": "created",
"type": "boolean",
"label": "Created?",
"description": "Set fields: true when this call is what brought the record into existence.",
"optional": true,
"operations": [
"upsert_fields"
]
},
{
"key": "updated",
"type": "boolean",
"label": "Updated?",
"description": "True when this call actually changed something, for Compare and set, this IS the \"did it succeed\" signal.",
"optional": true,
"operations": [
"upsert_fields",
"increment_field",
"append_unique",
"remove_from_array",
"compare_and_set",
"delete"
]
},
{
"key": "previous_value",
"type": "any",
"label": "Previous value",
"description": "Compare and set: the value that was actually there before (lets you see why it did or didn’t match).",
"optional": true,
"operations": [
"compare_and_set"
]
},
{
"key": "storage_key",
"type": "storage.object.key",
"label": "Saved item key",
"bindingRole": "selected_target",
"description": "The exact resolved key used by this step, in the current account. Reuse it to read, update or delete the same saved item."
},
{
"key": "storage_kind",
"type": "string",
"label": "Storage structure",
"bindingRole": "current_context",
"description": "The storage structure expected by this step: value, object, list or zset.",
"example": "object"
}
]Examples and troubleshooting have not yet been reviewed for this contract.
Version and compatibility
This reference follows the current authoring contract. Existing workflows retain their saved node revisions.
Contract identifier
ad87270a07f7cea47a6453ce3017be1abef3cf6dee743331be7849daffff0537