Standard/Best Practices
Use Cases
Connecting to on-prem systems

The Basic Tools

The Tray platform is built with ultimate flexibility in mind. It can initially be quite daunting to get your head around what you can actually do with it! So here we will talk you through the basic principles of using Tray and what you can do with the tools at your disposal. There are essentially four stages to working with Tray:

  1. Set your workflow 'trigger'

  2. Pull data from the trigger and any other services (Intercom, Salesforce, Trello, Zendesk, Hubspot, Marketo, Shopify etc.) you add to your Workflow

  3. (Optionally) Use our Tray core and helper to work with the data in any way you need

  4. Push that data into other services

Below we will walk you through the most common tools at your disposal and some example approaches.

The Workflow Trigger

Every workflow you build must have a way to start! Examples of events that you may wish to trigger your workflow are:

The above screenshot shows how you select your trigger when creating a new workflow. You may also wish to use one of our core Tray Triggers:

  • Our Manual Trigger can be used if you only want the workflow to be run when you need it, by clicking the 'Run Workflow' button. This trigger is particularly useful for testing purposes

  • Our Scheduled Trigger can be used, perhaps if you want to run daily, weekly or monthly checks for key changes to accounts, customer information etc. (e.g. has a Salesforce prospect become a customer?)

  • Our Form Trigger can be used to collect data entered by End Users into a webform

  • You can even use our Callable Trigger if you want one workflow to call another (a great way to simplify your workflows!)

Our list of core Tray Triggers can be found here. Documentation for individual service connectors can be found in the individual service page listed here.


Not all available service Triggers are documented as yet

- please login to the Tray appand create a new workflow to see what service Triggers are available.

Pulling in Data from Triggers and other Services

This is the key to unlocking your Workflows and getting your services to talk to each other!

Once your workflow is kicked off you can pull data from the trigger using a 'jsonpath' such as $ or $

Pulling data from other service steps in your workflow can be done with jsonpaths such as $.steps.salesforce-1.records.contract_id

A very typical example of using data from a trigger or another service would be - in a situation where you are storing and syncing customer data in a payment system such as Stripe and a CRM such as Salesforce - to pull an email address from Stripe and use that email to locate a contract in Salesforce:

The exact format of the jsonpath you have to use will depend on the connector. One connector may return an email address as simply email while another will return email_address and another might return something like company_email.

Please see our section on Moving Data between Connectors for a guide on how to use our 'Connector Snake' to automatically get data paths from connectors, and how to work the paths out manually when required.

The Boolean connector

Once you've pulled data from your trigger or from other connectors, one of the most powerful connectors in Tray is the Boolean connector.

This could be better called the 'True/False' connector:

It allows you to ask crucial questions before deciding what action to take in your workflow:

  1. Did the new customer opt-in to marketing? If so tag them as 'opt-in' in our CRM

  2. Does this company have annual revenue above a certain amount? If so add them as a prospect and collect all the data we have on them

  3. Does this person have missing payment information? If so pull it from our database and update

  4. Is it more than 3 months since we last contacted this person? If so then change their status in Salesforce/Marketo and send a reminder to contact them via Slack

  5. Is it less than a month before this person's subscription runs out? If so then send them an email reminder, update their status in Salesforce and alert their account manager

  6. Is this person's order status 'unfulfilled'? If so add it to a priority processing queue

While the Boolean connector is often your best friend in Tray, it is important to note that some operations have filter options built-in which negate the need for the Boolean connector. For example the Shopify 'List Orders' operation can filter by Status, Financial Status (paid/unpaid), Fulfillment Status (order completed/not completed):

Note: If you want to create multiple paths in your workflow, depending on multiple different outcomes, please see our Branch connector

The Date & Time Helpers

The Date & Time Helpers can be used to assist in the above examples given for the boolean condition.

So if you wanted to check how many days there are to someone's subscription expiry date you could do the following:

  1. Get a user's subscription details (including expiry date) from your subscription management service (such as Recurly)

  2. Use the Date Time Helper to get today's date

  3. Use the Date Time Helper Get days between operation to calculate the number of days left on their subscription

  4. Use the Boolean Condition connector to check if the days left is less than 30

The Loop connector

The Loop connector is a definite contender for the most important connector in the Tray platform.

Certain actions will involve dealing with lists of results that need to be dealt with one-by-one.

In the above examples given for the Boolean and Date / Time Helper it is very unlikely that you will be making these checks for only one person or company. You will probably be working through dozens, hundreds or thousands of records to make these checks for each one.

The following workflow gives a good graphical overview of how a loop connector can be used to implement the above steps on each record being dealt with:

Our Loop connector documentation gives an introduction to correct use of the Loop connector.

The List Helpers connector

The List Helpers connector allows you to treat the data you are pulling in from your project management tool, CRM etc. as a list which can be managed and even combined with other lists. Some useful example operations:

'Delete items from list' - you might want to delete items from the list which match certain criteria. For example you might want to delete any items from the list if their 'name' field is equal to 'not given' or if their 'project title' field contains 'test'

'Sort Objects' - can specify that a list of items is sorted by e.g. the created date. This could be useful if you want to send a message which lists tasks in order

'Intersection' - check two lists and return only the items that exist in both lists

'Remove Duplicates' - make sure that an item only appears once in a list

You can follow our List Helpers Tutorial to see an example of using List Helpers to pull information, sort it by date and create a batch list of messages to be sent to a Slack channel.

The Data Storage connector

The Data Storage connector allows you to store and retrieve data that can be shared between connectors.

An example of this is that you might want to regularly check if something important has changed, such as an Account type has changed from 'Prospect' to 'Customer' in Salesforce. In this case you would store the Account Type each time you make the check, and then compare it to the type when the next check is made.

When storing a piece of data, you can also choose to make it available for any of your other workflows. This can save having to repeat the work carried out to get that data, and help simplify your workflow structure.

Math Helpers

This could be used to find the difference between two numbers - e.g. what is the difference in the number of subscribers you have since the end of last quarter? Or what is the increase in somebody's follower count since the last time you checked?

An example of this can be seen in our Lead enrichment Tutorial