Option 1: The Built-In SQL Editor
The fastest path — nothing to install or configure. Open SQL Editor from the sidebar. It includes:- Schema browsing and autocomplete across every synced table
- Query history and saved queries
- CSV export, including background export for large result sets
- Query cancellation for long-running work
Option 2: Your Own Database Client or BI Tool
Getting Your Connection String
1
Open Settings → Database
Select Create Connection and give it a name you’ll recognize
(for example, “Power BI” or “Michael’s laptop”).
2
Copy the credentials
Parable generates and displays the username, password, host, database name,
and a complete connection string.
The password is stored encrypted, and you can reopen it later — press
Connect on the connection under Settings → Database to see the
password and full connection string again. You can hold several
connections at once and revoke them individually.
You don’t supply a database — Parable hosts the warehouse and provisions a
dedicated role scoped to your organization.
What the Connection Can Do
The role Parable creates is deliberately narrow:
You cannot create tables, views, materialized views, or indexes through this
connection, and you cannot write to any table.
INSERT, UPDATE, DELETE, and
DDL will all be rejected. This is by design — your Planning Center data stays
authoritative and unmodified.
A “permission denied” error on a write or
CREATE statement is not a
misconfiguration. It’s the guardrail working.Connecting a Database Client
- TablePlus
- PGAdmin
- DataGrip
- psql
- Click + to create a new connection and choose PostgreSQL
- Fill in Host, Port (5432), User, Password, and Database from your Parable credentials
- Set SSL mode to Require
- Test, then Connect
Connecting a BI Tool
- Power BI
- Tableau
- Metabase
Get Data → PostgreSQL database. Enter the host and database name, choose
DirectQuery for live data or Import for a cached extract, then supply
the username and password when prompted.Import mode is usually the better choice — it keeps report interactions fast
and reduces load on the warehouse.
Understanding the Schema
All synced Planning Center data lives in theplanning_center schema, named
{app}_{entity}:
Relationships Live in Their Own Tables
This is the single most important thing to know before writing queries. Entity tables carry no foreign-key columns. Every link between records lives in a matching*_relationships table:
donation_id), relationship_type
(what kind of record it points at), and relationship_id (the ID of that
record).
See Planning Center Overview for the full model, and
each module’s data-model page for its relationship types.
First Queries
Best Practices
Let Row-Level Security Do Its Job
Every query is automatically scoped to your organization and toactive
records. Adding these filters yourself is redundant and can slow queries down:
- ❌
WHERE tenant_organization_id = 1 - ❌
WHERE system_status = 'active'
Understand the Two Kinds of Timestamp
created_at/updated_at— when the record changed in Planning Center. Use these for ministry metrics.system_created_at/system_updated_at— when Parable synced the record. Use these to debug sync behavior, not to measure ministry.
Query Performance
- Filter by date range before joining relationship tables
- Add
LIMITwhile exploring - Select the columns you need rather than
SELECT *on large tables - Cache heavy summaries in your BI tool — you can’t create materialized views through this connection
Security
- Treat the connection string like a password; never commit it or share it publicly
- Create a separate connection per tool or person so you can revoke one without disrupting the others
- Delete connections you no longer use from Settings → Database
Troubleshooting
“Could not connect to server” Confirm the host and port (5432) are exactly as shown in Settings → Database, and that SSL is enabled in your client. “Authentication failed” Passwords can’t be recovered after creation. If you don’t have it saved, delete the connection and create a new one. “Permission denied” on a write orCREATE
Expected. The connection is read-only by design.
A table looks empty
Check that the corresponding Planning Center app is connected and has finished
its first sync under Settings → Sync.
Getting Help
- Ask in the community Slack
- Email michael@getparable.io
- Browse module-specific query examples under Planning Center