Ask Runway AI Copilot

Integrating and querying your data

Integrations bring all your data in one place, keeping it updated and in sync with your other financial tools. Runway offers 700+ integrations.

Introduction

Your data is the foundation of your model. In this article, we’ll give an overview of how integration data makes its way into Runway at the right granularity to model so you’re building on a rock-solid foundation.

Setting up integrations

Seeing all supported integrations

In the side nav, click + next to 'Integrations' to browse our 700+ supported integrations.

👀
We offer connecting to some integrations via multiple providers. Outside of HRIS integrations, we generally recommend Fivetran integrations to pull in data at more custom granularity. Feel free to connect multiple options to see which best suits your needs.
Notion image

Out-of-the-box integrations

Some integrations — primarily with HRISs — sync automatically once connected without additional configuration. For these, you'll see a notification that your data is syncing after you authenticate.

 

Configuring integrations

Most Runway integrations require some setup so Runway can get the right data for your modeling needs. There are two main ways you can define what data comes into your model.

  1. Assistant-based setup: Some of our popular integrations like Hubspot have short forms you can provide a bit of information for to start a sync.
  1. Query-based setup:
      • You can use Runway’s custom query editor to pull data using your SQL queries.
 

Query Assistants

We offer several assistants to help you construct your query:

  • Sheets Assistant: For spreadsheet-based data sources, providing a spreadsheet ID and following the parameters here can get you up and running quickly.
  • QBO / NetSuite Assistant: For QuickBooks Online and NetSuite integrations, we have starter queries available that utilize our specialized SQL syntax if you know exactly what granularity you care about.
  • The Runway Crew can help should you have any questions about SQL integrations. We also maintain a library of starter queries that might help you make progress faster, so please reach out!
👀
Coming soon: We're developing "jumpstarts" to help you construct queries faster for popular integrations. Let us know which integrations you'd like to see supported!
 

Construct Your Query using SQL

You can pull data from your source system using SQL queries, and then further configure your model in Runway to fit your needs. If you work with a data team, they likely have some queries that you can start to use straightaway in Runway!

We recommend querying data at a granularity that’s at least as granular as how you expect to model. This might be at the transaction, customer, opportunity, or employee level. Feel free to query aggregated data as well, especially if you have large, granular datasets that benefit from some summarization, like Stripe transactions.

 

By default, queries will be auto-run once per day so that new data from your source pipes automatically into Runway.

⚠️
Keep an eye on schema changes in your original data sources. These can affect your queries but won't impact historical data.
 

Alternatively, you can read more about a specialized SQL syntax you can use to access some legacy Runway features via integrations. This options limits configuration flexibility in Runway.

 

Linking a Runway Database to your query

For more detail on linking data sources to your Runway model, explore this article: Modeling from Data Sources

 

Configuring a Runway Database on top of your integration data is how you’ll turn raw data into drivers and dimensions as part of your Runway model.

To set up your Runway Database:

  1. Click "Configure" to create a new database and link it to your data source.
  1. You can filter your source data to focus on a specific subset (e.g., only expenses).
  1. Set the specific granularity by choosing how to segment your data.
  1. Select your drivers and which column to use as timestamps for your driver data.
  1. Add any additional metadata columns as needed.

Pro Tip: You can create multiple databases from the same source data. For example, from a database of Income Statement transactions, you could create:

  • One database for expenses, segmented by Vendor
  • Another database for revenue, segmented by Customer
  • Or you could just create one database for all of it, segmented by both!

By following these steps, you'll have your integration data set up and ready for modeling. If you need any further assistance, don't hesitate to reach out to your CX Crew member.

 
 
 
 

Appendix

Troubleshooting Google Sheets Integrations

Facing issues bringing in info from Google Sheets? Try these tips.

  • Follow the following format checklist:
    • Ensure columns that hold dates have the correct formatting applied in Sheets: YYYY-MM is the preferred format. A leading zero can also help.
  • If you’re querying Google Sheets using SQL via FiveTran:
    • Try casting columns to their desired types using functions like try_to_date() if you’re having type issues.
    • Ensure the Named Range you integrated via FiveTran matches the desired data you want to pull in.
    • More troubleshooting for FiveTran’s Google Sheets connector is here.
  • If you’re using the Google Sheets input form via Workato, which looks like this:
    • Be mindful to add #runway to the sheet name you want to bring into Runway.
    • You can only bring in one sheet per Sheets file.
  • If you’re using our specialized syntax rules:
    • Name cell A1 dimensional_database_<name> , or alias SQL output columns if you’re using SQL.
    • Identify the segment dimensions for your driver using the key_ prefix, or alias SQL output columns if you’re using SQL.

Other troubleshooting FAQ:

  • Q: My queries won’t run!
    • If your query won't even start running, it's possible there's something wrong with the connection or authentication to your other business tools via our integrations.
    • Make sure you're authenticated and, if it still doesn’t work, contact us.
  • Q: I’m getting SQL errors.
    • There's likely an issue with your query syntax. ChatGPT is often a reliable thought partner to help correct any errors.
  • Q: My database isn’t populating correctly.
    • Remember that integration data will only populate your actuals, so make sure the associated months on your integration data occur before your “Last Close” month in Runway.

Example Format (using our specialized syntax)

Notion image

Example Output

Notion image
 

Specialized Syntax Rules in Runway

You can alternatively create a Runway database without additional configuration step using our specialized syntax.

This option reduces configuration flexibility and is required to populate “Fields” columns.

When using this syntax, both form and query configurations have specific conditions that must be met for integrations to sync properly. Make sure that all of the following criteria are met. To use this option, write a query that fits the below criteria, and then this option will become available on your query page:

Notion image
 

Syntax Details

  1. Exactly one column must be prefixed with dimensional_database_ .
      • The values in this column will be used as identifiers for each database row.
      • You may only have one row per unique value per month.
      • You can set the value of this column as some concatenation of the key_ columns, which uniquely identify the segments in your data.
  1. Columns prefixed with key_ will be used as the dimensions that segment the query’s output, and are required to pull in segmented drivers.
      • Every database requires at least one key_ column to segment driver data.
      • A rule of thumb for which column to use as key_ is to ensure it’s a column that uniquely identifies the data you’re bringing in at the appropriate granularity.
      • For example, if you’re bringing in data for each customer type in each geo, you should use key_customer_type and key_geo in the query output to ensure the data is correctly segmented.
      • A column like country, though, in this example, doesn’t uniquely identify a geography, and therefore doesn’t need the key_ prefix.
  1. The column prefixed with month will determine for which months the data will be assigned.
    1. Often, it makes sense to have these correlate to the date a record was added, or a transaction occurred.
    2. YYYY-MM is the preferred format for time series data.
    3. if no month column is provided, the current real-world date will be used as the ‘month’, which will result in all of your integration data being allocated to the current calendar month.
    4. If you see an error like Date '2024-12-07' is not recognized , try casting the month to a Date type using try_to_date or similar
  1. If you’re using Google Sheets, use "#runway" in the tab name so the integration knows where to look. See the image below for an example.
⚠️
All of the criteria listed above need to be met for data to sync properly.
Notion image

Couldn’t find what you were looking for? Try typing your query in the search bar above, or feel free to get in touch with our support team.

Did this answer your question?
😞
😐
🤩

Last updated on August 27, 2024