Planning Center Groups SQL Queries

Build Stronger Community Through Data-Driven Group Ministry

Your small groups are where life change happens. With Parable’s SQL access to Planning Center Groups data, you can understand participation patterns, identify growth opportunities, and ensure no one falls through the cracks in your community.

Quick Start

Ready to explore your groups data? Here’s your first query to see your active groups and their membership:
-- See your 10 most active groups with member counts
SELECT 
    g.group_id,
    g.name,
    g.description,
    g.memberships_count,
    g.schedule,
    g.location_type_preference,
    g.created_at
FROM planning_center.groups_groups g
WHERE g.archived_at IS NULL  -- Only active groups
ORDER BY g.memberships_count DESC NULLS LAST
LIMIT 10;

What You Can Do With Groups Queries

👥 Understand Group Participation

  • Track membership growth and retention
  • Identify groups that need more members
  • Find people not yet connected to a group
  • Monitor leadership coverage across groups

📊 Measure Engagement

  • Analyze attendance patterns and trends
  • Identify highly engaged vs occasional participants
  • Track event participation rates
  • Measure group meeting consistency

🎯 Strategic Planning

  • Evaluate group types and their effectiveness
  • Plan new groups based on participation gaps
  • Optimize group locations and meeting times
  • Balance group sizes for better community

📈 Generate Leadership Reports

  • Track leader-to-member ratios
  • Identify potential new leaders
  • Monitor group health metrics
  • Create dashboard views for ministry leaders

Available Tables

Your Planning Center Groups data is organized into these main tables:
TableWhat It ContainsKey Use Cases
groups_groupsGroup informationGroup details, schedules, settings
groups_membershipsMember-to-group connectionsWho’s in which group, roles, join dates
groups_peoplePeople in the Groups systemMember profiles, permissions
groups_eventsGroup meetings and eventsMeeting schedules, locations, cancellations
groups_attendancesEvent attendance recordsWho attended what, attendance tracking
groups_group_typesCategories for groupsSmall groups, classes, teams, etc.
groups_locationsPhysical meeting locationsAddress details, venue information
groups_tagsLabels for groupsGroup characteristics, ministries
groups_enrollmentsSign-ups and registrationsFuture group enrollments, waitlists

Understanding Relationships

Parable stores Planning Center relationships in separate tables to maintain data integrity. This means connections between entities are stored in dedicated relationship tables:
  • groups_group_relationships - Links groups to types, locations, tags, etc.
  • groups_membership_relationships - Links memberships to groups and people
  • groups_event_relationships - Links events to groups and locations
  • groups_attendance_relationships - Links attendances to events and people
We’ll show you exactly how to use these relationship tables in our query examples!

Key Concepts

Groups vs Memberships vs People

  • Groups are the small groups, classes, or teams in your church
  • Memberships connect people to groups with specific roles (member, leader)
  • People are individuals who can be members of multiple groups

Events vs Attendances

  • Events are scheduled group meetings or activities
  • Attendances track who actually showed up to each event

Roles in Groups

Members can have different roles:
  • member - Regular participant
  • leader - Group leader with additional permissions

Next Steps

📚 New to SQL? Start with Basic Queries for simple, powerful queries you can use today. 🚀 Ready for More? Check out Advanced Queries for complex analysis and reporting. 📊 Need Reports? See Reporting Examples for complete, production-ready reports. 🔍 Want Details? Review the Data Model for complete table documentation.

Common Questions

Why do some fields show NULL?

NULL values appear when:
  • A group hasn’t been archived (archived_at IS NULL means active)
  • Optional information wasn’t provided (like virtual_location_url)
  • An event hasn’t happened yet (canceled_at IS NULL means not canceled)

How do I filter for active groups only?

WHERE archived_at IS NULL  -- Active groups haven't been archived

What’s the difference between created_at and system_created_at?

  • created_at - When the group was created in Planning Center
  • system_created_at - When the data was synced to Parable
  • Use created_at for ministry metrics

How do I find a person’s groups?

You need to join through the memberships table:
SELECT 
    g.name as group_name,
    m.role,
    m.joined_at
FROM planning_center.groups_memberships m
JOIN planning_center.groups_groups g 
    ON m.group_id = g.group_id
JOIN planning_center.groups_people p 
    ON m.person_id = p.person_id
WHERE p.person_id = 'YOUR_PERSON_ID'
    AND g.archived_at IS NULL;

What does location_type_preference mean?

This indicates where the group typically meets:
  • physical - In-person at a location
  • virtual - Online meetings
  • hybrid - Both in-person and online options

Tips for Success

  1. Start Simple - Begin with basic SELECT queries before adding complexity
  2. Use Comments - Document what your queries do for future reference
  3. Test with LIMIT - Add LIMIT 10 while developing queries
  4. Handle NULLs - Use IS NULL or IS NOT NULL appropriately
  5. Check Relationships - Remember to join through relationship tables

Getting Help

  • 🐛 Found an issue? Report it at github.com/getparable/parable-api/issues
  • 📖 Need more examples? Check our other query guides in this folder
  • 💬 Have questions? Reach out to your Parable support team

Your groups data tells the story of community. Let’s help you understand it better.