Using Data Across Steps

Getting data from one step to another is an essential part of every workflow. For example, you may want to use an email address from a form submission as the TO address of a new email. Or you may want to use the output of an AI step to add a row to a spreadsheet. In all of these cases, it's really useful to know (a) how triggers and steps and create data that you can use later in the workflow, and (b) how subsequent steps can use that data.

How data is created in a workflow

Re-usable data is created in your workflow when triggers and steps produce data. We call this data that comes from a trigger or step the Step Output.

The most common ways data enters a workflow:

  1. The Step Output of a Trigger - e.g. the From address, To address, Subject, Body, and Attachments from an email in an 'email received' trigger.

  2. The Step Output of a Find Step - e.g. the Contacts from a CRM that match a given copmany.

  3. The Step Output of another Action - e.g. the Row that was just created in a Google Sheet.

  4. The Step Output of an AI Step - e.g. the amount, due date, and vendor name of an invoice that were extracted by AI.

Data in Step Outputs always has a 'type'

Most apps specify the 'type' of a given data field. Example data types are Text, Date, Number, URL, Email or File but they may also be types that are custom to the app, like Contact and Company for a CRM or Subscription and Payment for a payment provider.

Relay.app uses data types to make it easy to connect data across apps, and ensure that the data stays in the correct format. For example, the 'Attachments' input in a Gmail automation will only accept data fields that are of the type File. As another example, a step that requires a URL, like 'Scrape text from website', will encourage you to enter data that has a URL as its type.

Gmail send email step showing attachment field that only accepts File type data from compatible step outputs
An example of an attachments field only accepting data that is a 'File'

Data is Step Outputs is always up to date

Every time data is used in a workflow run, the current and up-to-date value is fetched from the app to use it. For example, if your trigger was Event Created in a Calendar, and later on in the workflow you want to reference the start time of the event, that start time will always reflect the up to date start time of the event, even if the event has moved since the trigger occurred. This is very handy!

Using data from Step Outputs in other steps

Step Outputs show up in data pickers in other steps:

  1. Text inputs: insert data via the [+] or [+ data] entrypoint

  2. Text inputs: insert data via the @ keyboard shortcut while typing

  3. Typed inputs: pick data through a type-specific picker

Text input field with data picker menu opened showing available step outputs and data fields to insert
Inserting data via the [+] menu in Text inputs
Text input field showing @ symbol autocomplete menu with step output suggestions for quick data insertion
Inserting data via the '@' keyboard shortcut in Text inputs
Date picker interface showing available date-type step outputs for selection in a typed input field
Picking data through a typed picker ('Date' in the example above)

How Step Outputs appear later in the workflow

Step Outputs are shown as a "pills", e.g. . Each pill contains:

  • The step number of the step that generated it (step #1 is the Trigger)

  • The logo of the app the data originates from (e.g. Gmail, Google Sheets or HubSpot)

  • The type of the data object in words (e.g. 'Email', 'Row' or 'Contact')

When a specific data field within inside a Step Output is referenced, the name of that field is shown as well:.

When data is referenced from objects that are nested/linked from within the original Step Output, levels of nesting are indicated with a >. For example, this Step Output pill represents the Email address of the Customer that's linked to a Subscription within Paddle:

Anywhere dynamic/variable data is referenced, a Step Output pill is shown. Below is an annotated screenshot of a workflow in the Editor, visually connecting Step Output pills with the steps they originated from.

Relay.app workflow editor showing step output pills connected to their originating steps with visual lines
Step Output pills help you understand where data came from

Common issue: I'm trying to set up an app action, but I'm unable to reference the value I need from a previous step

A common challenge in app actions is that you may find yourself unable to use data from a previous workflow step in the way you expect. For example, let's say you have a Slack trigger from a message body that contains a URL followed by a "scrape text from website" step to scrape that URL. When you click "select URL" you may be frustrated to see no options even though you know there's a URL in the body of a Slack message.

Here's why that is: Relay.app tries to be smart about matching up the types of data between steps so you don't try to do impossible things (like scraping text from a URL that's not actually a URL). So in this case, because the Slack message body is a text field, it won't match the URL type that the next step expects. To be able to use the URL from the Slack message, you need to extract the URL from the text body, for example using a simple AI step. Once you have a URL available, you'll be able to easily plug it into the next step.

Linked data is always accessible

Step Outputs give instant access to infinite levels of linked data for all our integrations. There's no need to add additional complex lookup steps just to use data that's linked or nested.

Whether it's a grabbing a Contact that's associated with a Company that's associated with a Deal in your CRM that triggered the workflow, or simply updating a linked Database Page from Notion.

Data picker showing hierarchical access to nested objects with Contact > Company > Deal structure demonstrating linked data access
Step Ouputs give instant access to infinite levels of linked data for all our integrations

Inspecting what (linked) data is available through a Step Output

To understand what data is available through a specific Step Output, open the step configuration dialog of the step that generated it, and click on the pill in the 'Output' section on the bottom of the dialog.

Animated demonstration of clicking on a step output pill in the step configuration dialog to view available data fields and structure
Click on a Step Output pill on the bottom of the step configuration dialog it originates from, to inspect its structure

Last updated

Was this helpful?