Data Storage


The "Data Storage" connector on Tray allows you to get and set data. It works using a key-value store, which means that you can set any type of value you like, using a key to retrieve it.  At its core, Data Storage is how we create local variables in Tray.


Operation Description
Set Value "Set a value in the chosen scope, under a specified key."
Ex. A: Initialize a counter to zero.
Ex. B: Update the value of a counter you initialized earlier in the workflow.
Get Value "Get a value set earlier in the chosen scope, under a specified key."
Example: Retrieve the current value of a counter you are using in your workflow.
Add to Collection (advanced) "Add a value to a collection in a specified scope."
Overview: Think of a collection as an array.  We wish to store a 'collection' of items under a single alias.
Example: In combination with boolean logic, store a list of users who are inactive in a Collection 'Key: inactive'.
Shift Collection (advanced) "Get and delete a subset of values from a collection."
Overview: Think of this as the Javascript operation 'array.shift()'.  Remove the first item from a collection of items, and return it.
Example: In combination with the 'Loop Collection' node, return the first 5 items from the Collection 'Key: inactive' by shifting the Collection 5 times (a single element is returned each time).


Unique identifier to reference the location data is stored.  Use a unique key for each Data Storage element you wish to use.  You may use a single key up to 3 times, as long as each instance is in a different scope.

We recommend using ' snake_case' when creating your key.


Data element to pair with a given key.

For example, you might want to save the last time you ran a "sync" between two systems, like this:

Key: last_sync_time, Value: 017-02-22T22:29:22+00:00


The namespace and closure convention for Data Storage.  You may use a single key once in each scope.

Value Description
Current Run Accessible during a single iteration of a workflow.  
Example: You wish to create a local variable to store a count of items recorded while iterating through a loop.
Workflow Accessible during all iterations of a single workflow.  
Example: You wish to record the number of users who have submitted a form using your workflow.
Account Accessible during all iterations of all workflows associated with a single user account.   
Example: You wish to assess the volume of API calls that are running through Tray for your organization.  You create a single Data Storage element to capture this information for all of your workflows combined


Field Description
Shift Collection.Amount Specify the number of data elements you wish to remove from the front of the collection.  

Getting and Setting

To initialize a data storage key, Set it to a specific value. (Note: By default, data storage keys will initialize to NULL.  Therefore, performing a get operation on a key that has not yet been declared will return a NULL value.)

To access the value that you have set, you must perform a Get operation.  

Think of this as performing a database query.  You must first insert the row.  Once the row is inserted, you may grab the row and access the data from that row.

Last updated 11th May 2017