Planning Center Data Architecture
Overview
Parable integrates with 8 Planning Center modules, each representing a different aspect of church management. This page provides a high-level view of how these modules connect and share data.Module Overview
Module Interconnections
People as the Central Hub
The People module is the foundation of the entire system. Nearly every other module references people in various roles:- Giving: People as donors, joint givers, and batch creators
- Groups: People as group members, leaders, and owners
- Check-ins: People checking in to events
- Services: People as team members, leaders, and plan assignees
- Calendar: People as event creators and resource bookers
- Registrations: People as registrants and attendees
- Publishing: People as speakers and content creators
- Sequential Processing: Workflows execute sequentially to respect dependencies (People before Giving, etc.)
- Bulk Operations: Data is collected and inserted in batches for performance
- Multi-tenant Isolation: Row-level security ensures tenant data separation
- Heartbeat Pattern: Long-running activities send heartbeats to prevent timeouts
Database Schema Organization
All Planning Center data is stored in theplanning_center schema with prefixed table names:
Examples
planning_center.people_people- People entitiesplanning_center.people_households- Household entitiesplanning_center.giving_donations- Donation entitiesplanning_center.groups_groups- Group entitiesplanning_center.services_plans- Service plan entities
Common Patterns Across All Modules
Every table follows these patterns:System Fields
All tables include:system_status- All tables have asystem_statuscolumn that filters to only showactiverecordssystem_created_at- When record was first createdsystem_updated_at- Last modification timestamptenant_organization_id- All tables have atenant_organization_idcolumn that filters to only show records for the current organization
Entity ID Pattern
All entities store their Planning Center ID:{entity}_id- Original Planning Center identifier (e.g.,people_id,donation_id)
Row Level Security (RLS)
All tables have RLS policies that automatically:- Filter data by current database role
- Ensure tenant isolation
- Restrict access to
system_status = 'active'records
Module Details
People Module (84 tables)
Core Entities:- People, Households, Household Memberships
- Addresses, Emails, Phone Numbers
- Campuses, Organizations
- Forms, Form Submissions
- Workflows, Workflow Cards
- Lists, Notes, Messages
Giving Module (24 tables)
Core Entities:- Donations, Batches, Batch Groups
- Pledges, Pledge Campaigns
- Recurring Donations, Refunds
- Designations, Funds
- Payment Methods, Payment Sources
Groups Module (25 tables)
Core Entities:- Groups, Group Types
- Memberships, Enrollments
- Events, Event Notes, Attendance
- Locations, Resources, Tags
Check-ins Module (26 tables)
Core Entities:- Check-ins, Check-in Groups
- Events, Event Times, Event Periods
- Locations, Location Labels
- Person Events, Attendance Types
- Stations, Passes, Themes
Services Module (55+ tables)
Core Entities:- Service Types, Plans, Plan Times
- Teams, Team Positions
- Songs, Arrangements, Keys
- Items, Media, Schedules
- Blockouts, Signup Sheets
Calendar Module (27 tables)
Core Entities:- Events, Event Instances, Event Times
- Resources, Resource Bookings
- Room Setups, Resource Questions
- Conflicts, Attachments, Feeds
Registrations Module (14 tables)
Core Entities:- Registrations, Signups
- Attendees, Emergency Contacts
- Categories, Selection Types
- Locations, Campuses
Publishing Module (15 tables)
Core Entities:- Channels, Channel Times
- Episodes, Episode Times, Episode Resources
- Series, Speakers, Speakerships
- Note Templates
Performance Characteristics
Table Sizes (Approximate)
Based on typical church databases:| Module | Tables | Est. Rows (Small Church) | Est. Rows (Large Church) |
|---|---|---|---|
| People | 84 | 10K - 50K | 500K - 2M |
| Giving | 24 | 5K - 20K | 200K - 1M |
| Groups | 25 | 1K - 5K | 50K - 200K |
| Check-ins | 26 | 5K - 20K | 100K - 500K |
| Services | 55+ | 2K - 10K | 50K - 200K |
| Calendar | 27 | 1K - 5K | 20K - 100K |
| Registrations | 14 | 500 - 2K | 10K - 50K |
| Publishing | 15 | 100 - 1K | 5K - 20K |
Sync Performance
- Full sync time: 5 minutes - 2 hours (depends on data size)
- Typical interval: Every 24 hours
- Bulk insert performance: 1K-10K rows/second per table
Multi-Tenant Architecture
Tenant Isolation
- Role-based access: Each tenant has a dedicated database role
- Automatic filtering: Views filter by
CURRENT_ROLEto show only tenant’s data - No cross-tenant queries: Impossible to access other tenants’ data
- Schema-level isolation: All Planning Center data in dedicated schema
Common Query Patterns
Cross-Module Queries
Example: Find all donations from a specific group’s membersNext Steps
Explore specific module data models:People Data Model
Core identity and household management
Giving Data Model
Donations, pledges, and financial tracking
Groups Data Model
Small groups and community organization
Check-ins Data Model
Event attendance and check-in tracking
Services Data Model
Worship service planning and teams
Calendar Data Model
Event scheduling and resource booking
Registrations Data Model
Event registration and signups
Publishing Data Model
Sermon and content publishing
Additional Resources
API Reference
Query the Planning Center data via API