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.
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.
- 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.
- 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!
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.
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:
- Click "Configure" to create a new database and link it to your data source.
- You can filter your source data to focus on a specific subset (e.g., only expenses).
- Set the specific granularity by choosing how to segment your data.
- Select your drivers and which column to use as timestamps for your driver data.
- 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)
Example Output
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:
Syntax Details
- 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.
- 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
andkey_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 thekey_
prefix.
- The column prefixed with
month
will determine for which months the data will be assigned. - Often, it makes sense to have these correlate to the date a record was added, or a transaction occurred.
- YYYY-MM is the preferred format for time series data.
- 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. - If you see an error like
Date '2024-12-07' is not recognized
, try casting the month to a Date type usingtry_to_date
or similar
- 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.
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.
Last updated on August 27, 2024