1. Docs
  2. Integrations
  3. Data warehouses & BI (BigQuery, Snowflake, PowerBI, Sigma)
Sign upOpen Brev (opens in a new tab)
Back to Brev
Docs
  • Connecting an integration
  • Calendar (Google, Outlook)
  • Chat & notifications (Slack, Microsoft Teams)
  • CRM (HubSpot, Salesforce)
  • Work trackers (Linear, Jira, Asana)
  • Data warehouses & BI (BigQuery, Snowflake, PowerBI, Sigma)
  • Docs & spreadsheets (Google Sheets, Excel, Google Drive)
  • Notion Meeting Notes
  • Granola

Release notes

What's new
  • The meeting agent stays off when you turn it off
  • Invitation links work, and recaps reach only the people invited
  • Cadence meeting pages read cleanly again
  • Undo any artifact edit with one keystroke
What's new

Last updated Oct 16, 2026

Data warehouses & BI (BigQuery, Snowflake, PowerBI, Sigma)

Anchor KPI goals on live SQL or BI tool data. The value on the goal is always whatever your warehouse says right now.

Open in app
integration
advanced
core
Settings > Integrations with connected and available integration cards.

When a goal's value lives in your warehouse (ARR, MAU, churn, anything you'd usually report on from a dashboard), connect the warehouse and point a goal at the query or report. The displayed number stays in sync without anyone having to hand-update it.

Supported warehouses & BI tools #

Warehouses (run SQL directly)
BigQuery and Snowflake. Brev runs queries against your warehouse and stores only the result, not the underlying rows.
BI tools (pin a saved view)
PowerBI and Sigma. Brev pulls a value from a dataset or report you've already built in the BI tool, the same number you'd see if you opened it.

Looker, Metabase and Tableau are in the catalog but can't be connected yet. Their cards show Request access, so you can tell the Brev team you want them.

How to connect #

  1. 1
    Find your warehouse in the Data section of Integrations
    Each tool has its own card. Click Connect on the one you use.
  2. 2
    Provide credentials
    BigQuery and PowerBI use OAuth: Brev redirects you to sign in with Google or Microsoft. Snowflake offers two methods, picked with the Access Token and Key Pair tabs on the Connect dialog. Access Token: paste your Account URL (the https://….snowflakecomputing.com address) and a Programmatic Access Token (PAT) you generate in Snowsight. Key Pair: paste your Account URL, your Snowflake Username, and your Private Key (PKCS#8 PEM; Private Key Passphrase is optional, for an encrypted key), after registering the matching public key on that Snowflake user. Connect stays disabled until the required fields are filled. An address that isn't an https Snowflake URL, or a key Brev can't read, is turned down before Brev contacts Snowflake. Key pairs don't expire, so they're the better fit when your account disables PATs or you want a long-lived service-account connection. Sigma takes a client ID and secret from Sigma's Developer Access page plus your region (AWS US, GCP, or EU). Brev only talks to Sigma's own https://….sigmacomputing.com API addresses, so a Sigma connection saved with any other address stops refreshing and asks you to reconnect and choose your region. Brev never requires write access; if the credential's role happens to have it, Brev still doesn't use it.
  3. 3
    Choose where the data lives, per goal
    There's no default to set on the Integrations page. When you connect a goal, you pick where its data lives: for BigQuery a project, dataset and table, for Snowflake the warehouse that runs your queries.
  4. 4
    Connect a goal to a query or dashboard tile
    Open a goal that should be data-driven and click 'Connect to integration'. Paste the query (for warehouses) or pick a dashboard tile (for BI tools). Brev runs it once to confirm a number comes back, then schedules it.
PowerBI: what goes in the DAX Query box
Brev runs your DAX against the selected dataset and reads a single value for the KPI. Enter a measure or scalar expression (e.g. SUM(Sales[Amount]), or a measure reference like [Total Sales]) and Brev wraps it in an EVALUATE statement for you. You can also paste a full EVALUATE query if you need to pick a specific row and column. The KPI preview runs the query live and shows PowerBI's own error message inline when the syntax is rejected, so you can correct it before connecting.
Snowflake: let Cortex draft the query
When connecting a Snowflake goal, enter the database and schema your metric lives in, describe the metric in plain language (e.g. 'total closed-won revenue this quarter'), and click 'Suggest query with Cortex AI'. Brev asks Snowflake Cortex to draft the SQL from your description and the schema's structure. Review and edit the result. The live preview confirms it returns a single number before you save.
Use a dedicated read role
For BigQuery and Snowflake in particular, scope access to a read-only role covering just the datasets Brev needs. For Snowflake, generate the PAT (or create the key-pair user) under that role. Don't reuse an admin credential. The auditor in your future self will thank you.
Behind a Snowflake network policy?
If your Snowflake account enforces a network policy (an IP allowlist), it rejects Brev before your token is ever checked. Connect fails with a 401 that looks like a bad token even though the token is valid. Ask your Snowflake admin to add Brev's egress IP addresses to the account's network policy allowlist, then reconnect. Brev shows its current IP addresses right in the Snowflake Connect dialog so you can copy them; the production addresses are 13.219.104.227 and 3.90.172.229.

Where the data appears #

  • KPI values: connected KPIs show live values pulled from the warehouse. The KPI row on every goals view reflects the most recent query result.
  • Goal trajectory: every scheduled refresh writes a data point onto the goal's chart. Over time the trajectory line is built entirely from warehouse data, not manual check-ins.
  • AI Goal Insights: Insights commentary picks up on trends, dips, and acceleration in the connected metric.
  • Suggested check-ins: when a metric crosses a threshold (you set), Brev pre-drafts a check-in for the goal owner.

How often it refreshes #

  • Warehouse and BI tool connections refresh every 30 minutes from 11:00 to 23:59 UTC and every 4 hours overnight.
  • Submitting a check-in on a connected goal triggers an on-demand refresh of that goal's query right then.
  • Click the refresh icon on a goal's connection to re-run its query right away.

What this costs (in your warehouse) #

Each scheduled refresh is one query in your warehouse. For a goal connected to a simple aggregation, this is typically negligible. For a goal connected to an expensive view, multiply that cost by 29 a day (every 30 minutes for 13 hours, plus 3 overnight runs) × number of days you'll track it. If your warehouse is on per-query billing (BigQuery on-demand, Snowflake compute time), factor that in when picking what to anchor goals on. Consider materializing expensive queries into a daily-refreshed table and pointing Brev at the table instead.

Common issues #

Query failed
Open the goal's integration connection. Brev shows the exact error your warehouse returned. Most common: missing permission on a new dataset, query timeout (raise the timeout in your warehouse), or a column that was renamed.
Connect says the token is invalid, but you're sure it's right (Snowflake)
If your Snowflake account has a network policy, it blocks Brev's servers before the token is checked. Snowflake returns the same 401 it uses for a bad token (error code 390422). Add Brev's egress IP addresses (shown in the Connect dialog) to the network policy allowlist, then reconnect. The token itself doesn't need to change.
Result is a row instead of a number
Brev expects a single scalar value per query (one row, one column, one number). If your query returns multiple columns or rows, wrap it in SELECT … FROM (your-query) or pre-aggregate.
The KPI preview says the query doesn't return a number
The query ran, but its value is text (a name, a date, a label) rather than a number, so Connect stays disabled. Change the query to select a numeric column or aggregate, for example COUNT(*) or SUM(amount). The same check applies to a Salesforce field, a Sigma metric or a HubSpot value.
I'm seeing a number that disagrees with my dashboard
Most likely the dashboard and Brev's query are filtering differently (different date window, different segment). Open the dashboard's underlying query and the goal's connected query side by side. If they're identical and still disagree, click the refresh icon on the goal's connection.
PreviousWork trackers (Linear, Jira, Asana)Connect the issue tracker your team lives in so project goals can pull live counts and Operator can summarize what's in flight.
NextDocs & spreadsheets (Google Sheets, Excel, Google Drive)Pull goal values from a Google Sheet or Excel cell, or give Brev's AI context from files you add from Google Drive.
Give feedback

Was this page helpful?

Related

  • Connecting an integration

    How any integration in Brev works: the connect flow, what Brev sees, how often it refreshes, and how to disconnect.

  • Goal detail

    The side panel, full-page view and /goals page for one goal: progress and check-ins, insights, alignment, milestones, actions, and how progress rolls up from sub-goals.

  • CRM (HubSpot, Salesforce)

    Connect your CRM so revenue goals can pull live pipeline data and the AI can spot what's moving (and what's stuck).

  • Integrations

    Calendars, chat, data, meeting notes and other apps Brev syncs with: connect, edit, reconnect or remove them from one grid.

On this page
  • Supported warehouses & BI tools
  • How to connect
  • Where the data appears
  • How often it refreshes
  • What this costs (in your warehouse)
  • Common issues