Meerkats AI

Data warehouse

Connect BigQuery, Snowflake or Postgres so Meerkats can read your own tables as business context, and write results back.

If you already keep data in a warehouse, for example a product master, cost sheet, CRM export or offline sales, connect it so agents can use those tables alongside everything else. Meerkats reads the tables you grant, defines metrics on top of them in the metric catalog, and can write result tables back if you give it a schema.

How it connectsAPI key
ReadsChosen tables and views, Schema
Can changeWrite a result table (for example daily corrected ROAS by campaign); Update rows in your tables
RefreshOn your plan's schedule, plus Resync anytime

Before you start#

  • A read-only database user or service account scoped to the tables you want to share. Create a separate user for Meerkats so you can revoke it.
  • For writes, a schema Meerkats owns (for example meerkats) where the user has create and write rights.
  • Network access: Meerkats connects from a fixed set of IP addresses, listed on the connection page, for your firewall allow-list.

Permissions#

What Meerkats needs, and why.

PermissionWhy Meerkats needs it
BigQuery: service account JSONroles/bigquery.dataViewer on the datasets to read; roles/bigquery.jobUser to run queries; dataEditor on the Meerkats dataset for writes
Snowflake: user, role, warehouseUSAGE on the database and schemas, SELECT on tables; a role with CREATE TABLE on the Meerkats schema for writes. Key-pair auth supported
Postgres: user and passwordCONNECT on the database, SELECT on the tables; CREATE on the Meerkats schema for writes. SSL required

Connect#

1. Connect a warehouse#

  1. Create the user

    Create the read-only user or service account with the grants above.

  2. Open Integrations

    In Meerkats, select Integrations, find Data warehouse and select Connect. Pick BigQuery, Snowflake or Postgres.

  3. Enter the connection details

    Paste the service account JSON (BigQuery), or host, database, user and credentials (Snowflake, Postgres). Meerkats tests the connection before saving and stores secrets encrypted.

  4. Choose tables

    Tick the tables or views Meerkats may read. For each, say what it is in one line, for example "product master, one row per SKU". That line becomes context.

  5. Resync

    Go to Data Hub › Bronze Layer, pick Warehouse and select Resync.

What syncs#

Data warehouseIn Meerkats
Chosen tables and viewsRows and schema, refreshed on schedule; large tables sync incrementally by a timestamp column you choose
SchemaColumn names and types, so metrics can be defined on them

Raw data lands in Data Hub › Bronze Layer. Modelled tables, with metrics defined once, are in Data Hub › Gold Layer. Every number in a report or an agent’s answer comes from a query on these tables, never from the model’s own arithmetic.

How often it syncs#

Meerkats syncs on your plan's schedule: daily on Free, hourly on the $49 plan, every 30 minutes on $149 and every 15 minutes on $399. You can run a sync at any time with Resync in Data Hub › Bronze Layer.

  • Tables refresh on your plan's schedule. Pick an updated-at column for incremental sync; without one, Meerkats re-reads the table each time.

What Meerkats can change#

In every connected tool, Meerkats can create, read, update and delete records, within the permissions you grant and the permissions the tool allows. These are the changes it proposes for Data warehouse, and the limit that applies to each.

ChangeLimit
Write a result table (for example daily corrected ROAS by campaign)Only into the Meerkats schema; proposed the first time, then runs on schedule
Update rows in your tablesOnly if the user has write rights and you approve each change

How every change is governed

Every change starts as a proposal in your Inbox. Nothing changes in the connected tool until a person approves it, unless you set that rule to act on its own.

Before it runs an approved change, Meerkats re-reads the live value. If the value moved since the proposal, it asks again instead of acting on stale data.

Meerkats stores the value it replaced, so every change can be undone from Agents run history.

Anything Meerkats creates starts paused. Switching it on is a second, separate approval.

Troubleshooting#

Connection test fails

Check the allow-list includes the Meerkats IPs shown on the connection page, that SSL is on, and that the user has CONNECT and SELECT.

A table is empty in Meerkats

The user may lack SELECT on that table, or the incremental column has no recent values. Check grants, then Resync.

Last updated October 1, 2026