Skip to content

PostgreSQL + Querri

PostgreSQL reporting,without waiting on an engineer.

Your product's accounts, users and events already live in Postgres. Querri lets ops, finance and customer teams ask about them in plain language, alongside billing and the CRM, without anyone writing a query against production.

Querri only reads your PostgreSQL data and never changes a row. Your password goes into a secure form the agent never sees. SOC 2 Type II, HIPAA and ISO 27001:2022 certified.

Why PostgreSQL reporting gets hard

Postgres is built to run your product. Answering business questions from it is a different job.

Engineering teams and the people who depend on them describe the same friction. Postgres does its own job well. The friction sits between the database and the person with the question.

01

Every question becomes an engineering ticket

Only people who know SQL and the schema can get answers, and they're the ones shipping the product. Customer success and finance wait in line for a query, and the answer gets pasted into a spreadsheet.

02

Reporting competes with the app

A heavy reporting query against the production database shares CPU, memory and locks with customer traffic. Nobody wants to be the person whose dashboard slowed down checkout.

03

Read replicas can cancel long queries

On a hot standby, a query that conflicts with replication is canceled once replay has waited longer than max_standby_streaming_delay, which defaults to 30 seconds. A big analytical read can fail halfway through.

04

The schema was designed for the app, not for people

Statuses stored as integers, settings packed into JSONB, soft-deleted rows, test accounts mixed in with customers. Reading the tables correctly takes knowledge that lives in the codebase.

05

Rows show today, and half the story lives elsewhere

An update overwrites the old value, so last month's plan or status is gone unless someone built history tables. Billing, CRM and support data sit in other systems the database can't join to.

What you can finally answer

Eight questions your app database can answer, once someone can ask it

Each is a request ops, finance and customer teams send to engineering every week, why it stalls, and how Querri handles it.

Which accounts are paying for seats nobody uses?

Why it's hard

Seats paid sit on the subscription row, logins sit in an events table with millions of rows, and "active" means something different to every team that asks.

With Querri

Say once what counts as an active user and Querri keeps that definition in the Library. Track seat use per plan as a KPI, and it refreshes with every sync.

How many days pass between signup and the first real use?

Why it's hard

The answer needs the signup date, the first meaningful event and a definition of "meaningful" that product and growth actually agree on.

With Querri

Write the milestone down once in Facts & rules, and Querri measures time to reach it by week, plan and channel. The signup-to-first-value playbook walks through the setup.

Which active trials has no one in sales contacted?

Why it's hard

Trial activity is in Postgres and the deal is in the CRM. Matching a workspace to a company is a manual lookup sales never has time for.

With Querri

Connect HubSpot or Salesforce next to Postgres. Ask Querri to match workspaces to companies by email domain. The answer says how the match was made and lists the busy trials with no open deal.

Which customers are using the product less as renewal gets close?

Why it's hard

A drop in usage looks normal in a total. It only stands out when each account is compared with its own past, and nobody runs that query for every customer every day.

With Querri

Keep account activity as a KPI, and nightly monitors check it against its own history and leave the slipping accounts in your Inbox. The at-risk renewals playbook adds renewal dates from the CRM.

Can finance count customers and churn without decoding status codes?

Why it's hard

Status 3 means canceled, deleted_at means gone, and internal test accounts look like customers. Get one of those wrong and the churn rate is off.

With Querri

Tell Querri the rules in plain words, such as "leave out accounts with our own email domain." Every answer after that follows them, and Querri checks the data first for duplicates and blanks before it counts.

Can the weekly product numbers land in Excel without anyone exporting them?

Why it's hard

Someone runs a saved query on Monday, copies the result into last week's workbook and fixes the formatting by hand.

With Querri

Build the numbers once as a project. A schedule reruns it on the latest sync and emails a formatted workbook. See reports and automation.

Can each customer see their own usage, inside our product?

Why it's hard

Customer-facing reporting usually means an engineering project: a charting library, an API, and careful filtering so no customer sees another's rows.

With Querri

Build the dashboard by asking, then put it in your app with Embed. A row filter per customer, set once in Workspaces & access, keeps each one to their own data.

Can I ask Claude or ChatGPT about our Postgres data without handing it a database login?

Why it's hard

Giving an assistant a connection string means it guesses at your schema, and a credential ends up somewhere it shouldn't.

With Querri

Link Querri with Claude or ChatGPT. Answers come from your Library, using the definitions your team set, limited to what each person may see in Querri. No database credential leaves Querri.

PostgreSQL plus the rest

Product data tells half the story

Postgres knows who signed up and what they did. The CRM knows who sales is talking to, accounting knows who paid, and support knows who's stuck. With all four connected to one Library, a single question about an account can draw on each of them.

PostgreSQL pairs well with

Answers you can stand behind

Churn has more than one honest count. Querri names the one behind its answer.

"How many customers churned in September?" can count cancellations made in September or plans that actually ended then, after a paid period ran out. Each is defensible, and they rarely match. Querri gives one, says which, and shows the other, so finance and product argue about customers rather than queries. See how answers work.

Wake up to what changed

Querri notices the account that went quiet

Overnight, Querri compares each KPI with its own track record and goes looking for movement nobody asked about. By morning the results are in your Inbox, and Querri acts on none of them without your approval.

Custom PostgreSQL dashboards

PostgreSQL dashboards nobody has to code

Say what the dashboard should show, or begin from a screenshot of one your team already relies on. Charts read from the same Library as the chat, so product usage can sit beside revenue and support data, and each team or customer can be limited to the rows they should see.

  • Made and edited in plain sentences
  • App data next to billing, CRM and support
  • Each customer or team limited to its own rows
Want a change? Type it. Here one sentence turns the dashboard dark, and undo is a click away.

Reports you can stop rebuilding

Six PostgreSQL reports, built once

What comes over

The schema you choose, copied off the hot path

On the schedule you set, Querri copies the chosen tables and views into its own storage. Every question is answered from that copy, so none of them run against your database. It can only sync what the Postgres user you connect with can read.

What you can sync

  • Tables
  • Views
  • Materialized views
  • Foreign tables
  • All tables in one schema
  • A chosen set of tables
  • Custom SQL queries
  • One schema per connection; the picker only lists schemas your user has USAGE rights on.

Full or incremental

Full refresh by default. On an incremental schedule, name a cursor column such as updated_at and Querri pulls only rows past the last run's high-water mark, as often as hourly. Deleted rows drop out on a full refresh.

Easy on the database

Rows stream to Parquet in chunks, a full sync that's cut off resumes where it stopped, and there's no row cap unless you set one. Reads use a handful of connections per table and are tuned to stay light, on a primary or a read replica.

Read only

Querri attaches your database in read-only mode, so it can't insert, update or delete anything. It never changes a row or a table.

Credentials kept out of sight

You type the username and password into a secure form; they're stored encrypted and the Connector Agent never sees them. SSL is required by default.

How to connect PostgreSQL

A host, a login and an approval

  1. 1

    Ask the Connector Agent

    Open Connect and say "connect our Postgres database," or pick PostgreSQL from the catalog.

  2. 2

    Enter the connection details

    Host, database and username, plus port and password, in a secure form the agent never reads. A read-only user, ideally on a replica, is a good choice.

  3. 3

    Reach a private network if needed

    For a database behind a firewall, add your own OpenVPN profile and certificates in the VPN tunnel panel. They're stored encrypted.

  4. 4

    Choose a schema, then approve

    Pick a schema and take every table or just a few, add custom SQL if you need it, and set a schedule. The agent loads nothing before you say yes.

  5. 5

    Ask your first question

    When the first sync lands in your Library, anyone with access can ask, chart or schedule from it.

The Querri Connect page, where the Connector Agent asks for approval before it starts a connection, next to connector cards for Google Drive, NetSuite, Salesforce, Square, ShipStation and Snowflake
The agent asks first. Until you approve, nothing connects and nothing loads.

PostgreSQL FAQ

Questions about PostgreSQL and Querri

How do I connect PostgreSQL to Querri?

Ask the Connector Agent on the Connect page for PostgreSQL, or select it in the catalog. Enter the host, database, username and password in the secure form (the port defaults to 5432 and SSL is on), pick a schema and tables, then approve the load and a schedule.

What PostgreSQL data does Querri sync?

You choose one schema per connection, then take every table in it or select specific ones. Base tables, views, materialized views and foreign tables are all listed, and you can add your own SQL queries as extra sources. Querri only sees what the connected Postgres user is allowed to read.

How often does PostgreSQL data sync?

Full refreshes run on a daily, weekly or monthly schedule. An incremental schedule can run as often as hourly and pulls only rows whose cursor column, such as updated_at, is newer than the last run. A sync you start by hand is a full sync. Incremental runs don't see deleted rows; a full refresh does.

Does Querri write to or change my PostgreSQL database?

No. Querri only reads your data. It attaches the database in read-only mode, so it can't insert, update or delete a row or alter a table. For extra assurance, connect with a Postgres user that only has SELECT rights.

Will Querri slow down my production database?

Questions never run against your database; they run on the copy Querri syncs. The sync itself is tuned to go easy, with a handful of connections per table, and you choose when it runs. You can also point it at a read replica so the primary isn't touched at all.

Can I connect a PostgreSQL read replica?

Yes. Enter the replica's host instead of the primary's. Keep in mind that a hot standby cancels queries that conflict with replication after max_standby_streaming_delay, 30 seconds by default, so a sync of a large table may need that limit raised. Turning on hot_standby_feedback prevents the cancellations caused by vacuum cleanup, at the cost of some bloat on the primary.

How do PostgreSQL permissions carry over to Querri?

Querri can only sync the schemas and tables the connected Postgres user can read, and the schema picker only shows schemas that user has USAGE on. Once data is in Querri, row-level access and sharing settings in Querri decide what each person sees; Postgres roles don't carry over per person.

How do I connect a PostgreSQL database in a private network?

Use the VPN tunnel panel in the connection form and upload your own OpenVPN profile, CA certificate, client certificate and private key. All four are stored encrypted. SSH tunnels aren't supported for PostgreSQL today, so the VPN is the route for databases that aren't reachable from the internet.

How do I combine PostgreSQL and Salesforce data?

Connect both, and Querri joins them in the Library on a shared key such as an account ID or email domain. You can then put product usage next to renewal dates, account owners and pipeline, and when a match is uncertain the answer says so instead of guessing quietly.

How do I combine PostgreSQL and HubSpot data?

Connect Postgres and HubSpot, and Querri matches app workspaces or users to HubSpot contacts and companies. That lets you see which active trials have no deal, which leads ever activated, and which marketing sources bring users who stick around.

How do I combine PostgreSQL and Intercom data?

Connect both, and Querri lines up support conversations with what each account does in your product. Ask which features drive the most conversations, or whether accounts that contact support early activate faster or slower than the rest.

How do I get a signup-to-first-value report from PostgreSQL?

Tell Querri which event counts as first value, and it measures the time from each account's signup to that event, by week, plan or channel. The signup-to-first-value playbook walks through the steps, and the result can run as a KPI that keeps its history.

How do I get churn and active customer counts from PostgreSQL?

Teach Querri the rules once: which status means canceled, which rows are soft-deleted, which accounts are internal. Every count after that follows them. When churn could mean cancellations or ended plans, Querri says which reading it used and shows the other.

How do I export PostgreSQL to Excel automatically?

Build the analysis once as a project in Querri, then schedule it. Each run uses the latest synced data and sends a formatted Excel workbook by email, or one version per team or customer, so nobody runs a query and pastes results by hand.

Can I build PostgreSQL dashboards without writing SQL?

Yes. Describe the dashboard you want, or start from a screenshot of one you already have, and change it by asking. It can mix Postgres with billing, CRM and support data, and each person or customer can be limited to their own rows.

Can I ask ChatGPT or Claude about my PostgreSQL data?

Yes. Link Querri with Claude or ChatGPT one time. The assistant answers from your Querri Library with your team's definitions, under each person's own access, and never gets a database login. It works from the same definitions your dashboards use.

What can't the PostgreSQL connector do?

Each connection reads one schema, so several schemas mean several connections. Custom SQL can't sync incrementally, incremental runs only on a schedule, and it doesn't detect deleted rows. There's no SSH tunnel, no SSL certificate verification beyond require, and no change-data-capture streaming; data arrives on a schedule.

Does it work with a database user that has limited permissions?

Yes. If the user can't read Postgres's system catalogs, Querri falls back to a simpler listing. In that mode materialized views aren't listed and custom SQL queries are refused, so select the tables and views you need directly.

Is my PostgreSQL data secure in Querri?

Querri is SOC 2 Type II, HIPAA and ISO 27001:2022 certified, and your data is never used to train a model. Connections require SSL by default, passwords and VPN files are stored encrypted, the Connector Agent never sees them, and the database is attached read-only.

Give the rest of the company a way into Postgres.

Setup takes a few minutes. Querri only reads your data and never changes a row.