Planning Center People Data Model - Complete Documentation

This document provides complete documentation of ALL tables in the Planning Center People data model in Parable, including all 84 entity tables and 25+ relationship tables with full field definitions.

Overview

The People module is the most comprehensive in Planning Center, containing:
  • 84 entity tables - All person, household, workflow, form, messaging, and configuration data
  • 25+ relationship tables - Linking entities together following Parable’s relationship architecture

Query Requirements

Schema Prefix

IMPORTANT: All tables in the Planning Center People module are in the planning_center schema. You MUST prefix all table names with planning_center. in your queries. ✅ CORRECT: SELECT * FROM planning_center.people_people ❌ INCORRECT: SELECT * FROM people_people

Row Level Security (RLS)

This database uses Row Level Security (RLS) to automatically filter data based on:
  • tenant_organization_id: You only see data for your current organization
  • system_status: You only see ‘active’ records by default
DO NOT add these filters to your WHERE clause - they are applied automatically:
  • WHERE tenant_organization_id = 1 (unnecessary)
  • WHERE system_status = 'active' (unnecessary)
The RLS policies ensure you only access data you’re authorized to see, making these filters redundant and potentially causing performance issues.

Complete Table Inventory

Entity Tables (84 total)

Core Person & Contact Tables (11)

  1. people_people - Core person records
  2. people_addresses - Physical addresses
  3. people_emails - Email addresses
  4. people_phone_numbers - Phone numbers
  5. people_households - Family units
  6. people_household_memberships - Links people to households
  7. people_campuses - Church campus locations
  8. people_connected_persons - Connected person records
  9. people_person_apps - App permissions per person
  10. people_social_profiles - Social media profiles
  11. people_spam_email_addresses - Email filtering

Workflow System Tables (10)

  1. people_workflows - Workflow definitions
  2. people_workflow_cards - Workflow instances
  3. people_workflow_steps - Workflow step definitions
  4. people_workflow_card_activities - Workflow activity logs
  5. people_workflow_card_notes - Notes on workflow cards
  6. people_workflow_categories - Workflow categorization
  7. people_workflow_shares - Workflow sharing settings
  8. people_workflow_step_assignee_summaries - Assignee summaries

Forms System Tables (8)

  1. people_forms - Form definitions
  2. people_form_submissions - Submitted form data
  3. people_form_fields - Form field definitions
  4. people_form_field_options - Field option definitions
  5. people_form_submission_values - Submitted field values
  6. people_form_categories - Form categorization

Custom Fields Tables (5)

  1. people_field_definitions - Custom field schemas
  2. people_field_datum - Custom field values
  3. people_field_options - Custom field options
  4. people_tabs - UI tab organization
  5. people_conditions - Conditional logic
  6. people_rules - Business rules

Lists & Segmentation Tables (7)

  1. people_lists - Smart lists and segments
  2. people_list_categories - List categorization
  3. people_list_results - People in lists
  4. people_list_shares - List sharing permissions
  5. people_list_stars - Favorited lists
  6. people_mailchimp_sync_status - Email marketing sync

Notes & Documentation Tables (4)

  1. people_notes - Pastoral care notes
  2. people_note_categories - Note categorization
  3. people_note_category_shares - Note sharing
  4. people_note_category_subscriptions - Note subscriptions

Messaging System Tables (4)

  1. people_messages - Individual messages
  2. people_message_groups - Message groupings
  3. people_custom_senders - Custom email senders
  4. people_carriers - Phone carriers

Import & Data Management Tables (5)

  1. people_people_imports - Import jobs
  2. people_people_import_conflicts - Import conflicts
  3. people_people_import_history - Import audit trail
  4. people_person_mergers - Person merge records

Administrative & Reference Tables (11)

  1. people_apps - Application integrations
  2. people_background_checks - Background check records
  3. people_inactive_reasons - Inactivation reasons
  4. people_marital_statuses - Marital status options
  5. people_name_prefixes - Title prefixes
  6. people_name_suffixes - Name suffixes
  7. people_organizations - Organization settings
  8. people_reports - Report definitions
  9. people_school_options - School affiliations
  10. people_service_times - Service schedules

Relationship Tables (25 total)

  1. people_people_relationships
  2. people_household_relationships
  3. people_email_relationships
  4. people_phone_number_relationships
  5. people_campus_relationships
  6. people_background_check_relationships
  7. people_field_data_relationships
  8. people_field_definition_relationships
  9. people_form_relationships
  10. people_form_field_relationships
  11. people_form_submission_relationships
  12. people_list_relationships
  13. people_list_category_relationships
  14. people_message_relationships
  15. people_message_group_relationships
  16. people_note_relationships
  17. people_note_category_relationships
  18. people_people_import_relationships
  19. people_person_merger_relationships
  20. people_report_relationships
  21. people_social_profile_relationships
  22. people_workflow_relationships
  23. people_workflow_card_relationships
  24. people_workflow_card_activity_relationships
  25. people_workflow_card_note_relationships

Complete Table Definitions

Core Person & Contact Tables

people_people

The main person table containing all individual records.
ColumnTypeDescription
idUUIDInternal unique identifier
person_idVARCHAR(64)Planning Center person ID
avatarTEXTProfile image URL
demographic_avatar_urlVARCHAR(2048)Demographic avatar URL
first_nameVARCHAR(255)First/given name
nameVARCHAR(255)Full display name
statusVARCHAR(50)Membership status (active, inactive, etc.)
remote_idVARCHAR(64)External system ID
accounting_administratorBOOLEANFinance access
anniversaryDATEWedding anniversary
birthdateDATEDate of birth
childBOOLEANIs a child
given_nameVARCHAR(255)Legal first name
gradeINTEGERCurrent school grade
graduation_yearINTEGERExpected graduation year
last_nameVARCHAR(255)Family/surname
middle_nameVARCHAR(255)Middle name
nicknameVARCHAR(255)Preferred name
people_permissionsVARCHAR(255)People app permissions
site_administratorBOOLEANAdmin access
genderVARCHAR(50)Gender
inactivated_atTIMESTAMPWhen marked inactive
medical_notesTEXTMedical information
membershipVARCHAR(255)Membership level
created_atTIMESTAMPWhen person was created
updated_atTIMESTAMPLast update time
can_create_formsBOOLEANForm creation permission
can_email_listsBOOLEANEmail list permission
directory_shared_infoJSONBDirectory sharing settings
directory_statusVARCHAR(50)Directory visibility
passed_background_checkBOOLEANBackground check status
resource_permission_flagsJSONBResource permissions
school_typeVARCHAR(255)School type
mfa_configuredBOOLEANTwo-factor auth enabled
inactive_reason_idVARCHAR(64)Why marked inactive (direct reference)
marital_status_idVARCHAR(64)Marital status (direct reference)
name_prefix_idVARCHAR(64)Title (direct reference)
name_suffix_idVARCHAR(64)Suffix (direct reference)
organization_idVARCHAR(64)Organization ID (direct reference)
school_idVARCHAR(64)School affiliation (direct reference)
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_addresses

Physical addresses for people.
ColumnTypeDescription
idUUIDInternal unique identifier
address_idVARCHAR(64)Planning Center address ID
cityVARCHAR(255)City
country_codeVARCHAR(2)Country code
country_nameVARCHAR(255)Country name
created_atTIMESTAMPWhen created
updated_atTIMESTAMPLast update
locationVARCHAR(255)Address type (home, work, etc.)
is_primaryBOOLEANPrimary address flag
stateVARCHAR(255)State/Province
street_line_1VARCHAR(1024)Street address line 1
street_line_2VARCHAR(1024)Street address line 2
zipVARCHAR(255)Postal code
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_emails

Email addresses for people.
ColumnTypeDescription
idUUIDInternal unique identifier
email_idVARCHAR(64)Planning Center email ID
addressVARCHAR(255)Email address
blockedBOOLEANEmail blocked/unsubscribed
created_atTIMESTAMPWhen created
locationVARCHAR(50)Email type (home, work, etc.)
is_primaryBOOLEANPrimary email flag
updated_atTIMESTAMPLast update
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_phone_numbers

Phone numbers with carrier information.
ColumnTypeDescription
idUUIDInternal unique identifier
phone_number_idVARCHAR(64)Planning Center phone ID
carrierVARCHAR(255)Phone carrier
country_codeVARCHAR(2)Country code
e164VARCHAR(255)E164 formatted number
internationalVARCHAR(255)International format
locationVARCHAR(255)Phone type (mobile, home, etc.)
nationalVARCHAR(255)National format
numberVARCHAR(255)Phone number
is_primaryBOOLEANPrimary phone flag
updated_atTIMESTAMPLast update
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_households

Family units for grouping related people.
ColumnTypeDescription
idUUIDInternal unique identifier
household_idVARCHAR(64)Planning Center household ID
avatarTEXTHousehold avatar URL
created_atTIMESTAMPWhen created
updated_atTIMESTAMPLast update
member_countINTEGERNumber of members
nameVARCHAR(255)Household name
primary_contact_idVARCHAR(64)Main contact person ID
primary_contact_nameVARCHAR(255)Main contact name
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_household_memberships

Links people to households with their roles.
ColumnTypeDescription
idUUIDInternal unique identifier
household_membership_idVARCHAR(64)Planning Center membership ID
pendingBOOLEANPending approval
person_nameVARCHAR(255)Person name
person_idVARCHAR(64)Person ID (direct reference)
household_idVARCHAR(64)Household ID (direct reference)
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_campuses

Church campus locations.
ColumnTypeDescription
idUUIDInternal unique identifier
campus_idVARCHAR(64)Planning Center campus ID
avatar_urlVARCHAR(2048)Campus image
church_center_enabledBOOLEANChurch Center enabled
cityVARCHAR(255)City
contact_email_addressVARCHAR(255)Contact email
countryVARCHAR(255)Country
created_atTIMESTAMPWhen created
date_formatBOOLEANDate format setting
descriptionTEXTCampus description
geolocation_set_manuallyBOOLEANManual geolocation flag
latitudeDOUBLE PRECISIONGPS latitude
longitudeDOUBLE PRECISIONGPS longitude
nameVARCHAR(255)Campus name
phone_numberVARCHAR(255)Contact phone
stateVARCHAR(255)State
streetVARCHAR(255)Street address
time_zoneVARCHAR(255)Time zone
time_zone_rawVARCHAR(255)Raw time zone data
twenty_four_hour_timeBOOLEAN24-hour time format
updated_atTIMESTAMPLast update
websiteVARCHAR(255)Campus website
zipVARCHAR(255)Postal code
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_connected_persons

Connected person records from external systems.
ColumnTypeDescription
idUUIDInternal unique identifier
connected_person_idVARCHAR(64)Planning Center connected person ID
first_nameVARCHAR(255)First name
genderVARCHAR(50)Gender
given_nameVARCHAR(255)Legal first name
last_nameVARCHAR(255)Last name
middle_nameVARCHAR(255)Middle name
nicknameVARCHAR(255)Nickname
organization_idVARCHAR(64)Organization ID
organization_nameVARCHAR(255)Organization name
person_idVARCHAR(64)Associated person ID
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_person_apps

Application permissions per person.
ColumnTypeDescription
idUUIDInternal unique identifier
person_app_idVARCHAR(64)Planning Center person app ID
allow_pco_loginBOOLEANCan login to PCO
people_permissionsVARCHAR(255)Permission level
person_idVARCHAR(64)Person ID (direct reference)
app_idVARCHAR(64)App ID (direct reference)
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_social_profiles

Social media profiles for people.
ColumnTypeDescription
idUUIDInternal unique identifier
social_profile_idVARCHAR(64)Planning Center social profile ID
created_atTIMESTAMPWhen created
siteVARCHAR(255)Social media platform
updated_atTIMESTAMPLast update
urlTEXTProfile URL
verifiedBOOLEANVerified account
person_idVARCHAR(64)Person ID (direct reference)
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_spam_email_addresses

Email addresses marked as spam or blocked.
ColumnTypeDescription
idUUIDInternal unique identifier
spam_email_address_idVARCHAR(64)Planning Center spam email ID
addressVARCHAR(255)Email address
created_atTIMESTAMPWhen created
updated_atTIMESTAMPLast update
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

Workflow System Tables

people_workflows

Process workflow definitions for managing people through various church processes.
ColumnTypeDescription
idUUIDInternal unique identifier
workflow_idVARCHAR(64)Planning Center workflow ID
campus_idVARCHAR(64)Associated campus
completed_card_countINTEGERCompleted cards count
created_atTIMESTAMPWhen created
deleted_atTIMESTAMPSoft deletion
my_due_soon_card_countINTEGERDue soon cards for current user
my_overdue_card_countINTEGEROverdue cards for current user
my_ready_card_countINTEGERReady cards for current user
nameVARCHAR(255)Workflow name
recently_viewedBOOLEANRecently accessed flag
total_cards_countINTEGERTotal cards in workflow
total_ready_and_snoozed_card_countINTEGERReady and snoozed count
total_ready_card_countINTEGERTotal ready cards
updated_atTIMESTAMPLast update
workflow_category_idVARCHAR(64)Workflow category
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_workflow_cards

Individual workflow instances tracking people through processes.
ColumnTypeDescription
idUUIDInternal unique identifier
workflow_card_idVARCHAR(64)Planning Center card ID
assignee_idVARCHAR(64)Assigned person
calculated_due_at_in_days_agoINTEGERDue date calculation
completed_atTIMESTAMPCompletion time
created_atTIMESTAMPWhen created
updated_atTIMESTAMPLast update
flagged_for_notification_atTIMESTAMPNotification flag
moved_to_step_atTIMESTAMPLast step transition
overdueBOOLEANOverdue status
person_idVARCHAR(64)Subject person
removed_atTIMESTAMPRemoval time
snooze_untilTIMESTAMPSnooze end time
stageVARCHAR(255)Current stage
sticky_assignmentBOOLEANAssignment persistence
workflow_idVARCHAR(64)Parent workflow
workflow_step_idVARCHAR(64)Current step
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_workflow_steps

Workflow step definitions.
ColumnTypeDescription
idUUIDInternal unique identifier
workflow_step_idVARCHAR(64)Planning Center step ID
auto_snooze_daysINTEGERAuto-snooze duration
auto_snooze_valueINTEGERSnooze value
auto_snooze_intervalVARCHAR(50)Snooze interval type
created_atTIMESTAMPWhen created
default_assignee_idVARCHAR(64)Default assignee
descriptionTEXTStep description
nameVARCHAR(255)Step name
sequenceINTEGERStep order
updated_atTIMESTAMPLast update
workflow_idVARCHAR(64)Parent workflow
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_workflow_card_activities

Activity logs for workflow cards.
ColumnTypeDescription
idUUIDInternal unique identifier
workflow_card_activity_idVARCHAR(64)Planning Center activity ID
commentTEXTActivity comment
created_atTIMESTAMPWhen created
person_avatar_urlVARCHAR(2048)Person avatar
person_nameVARCHAR(255)Person name
reassigned_to_avatar_urlVARCHAR(2048)Reassigned person avatar
reassigned_to_nameVARCHAR(255)Reassigned person name
subjectVARCHAR(255)Activity subject
typeVARCHAR(100)Activity type
updated_atTIMESTAMPLast update
workflow_card_idVARCHAR(64)Parent card
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_workflow_card_notes

Notes attached to workflow cards.
ColumnTypeDescription
idUUIDInternal unique identifier
workflow_card_note_idVARCHAR(64)Planning Center note ID
created_atTIMESTAMPWhen created
noteTEXTNote content
updated_atTIMESTAMPLast update
workflow_card_idVARCHAR(64)Parent card
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_workflow_categories

Categories for organizing workflows.
ColumnTypeDescription
idUUIDInternal unique identifier
workflow_category_idVARCHAR(64)Planning Center category ID
created_atTIMESTAMPWhen created
nameVARCHAR(255)Category name
updated_atTIMESTAMPLast update
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_workflow_shares

Workflow sharing permissions.
ColumnTypeDescription
idUUIDInternal unique identifier
workflow_share_idVARCHAR(64)Planning Center share ID
created_atTIMESTAMPWhen created
groupVARCHAR(255)Share group
permissionVARCHAR(100)Permission level
person_idVARCHAR(64)Person with access
workflow_idVARCHAR(64)Shared workflow
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_workflow_step_assignee_summaries

Summary of workflow step assignments.
ColumnTypeDescription
idUUIDInternal unique identifier
workflow_step_assignee_summary_idVARCHAR(64)Planning Center summary ID
overdue_cardsINTEGERNumber of overdue cards
ready_and_snoozed_cardsINTEGERNumber of ready/snoozed cards
ready_cardsINTEGERNumber of ready cards
total_cardsINTEGERTotal cards assigned
person_idVARCHAR(64)Assignee person
workflow_step_idVARCHAR(64)Workflow step
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

Forms System Tables

people_forms

Form definitions for data collection.
ColumnTypeDescription
idUUIDInternal unique identifier
form_idVARCHAR(64)Planning Center form ID
activeBOOLEANActive status
archivedBOOLEANArchived status
archived_atTIMESTAMPArchive timestamp
created_atTIMESTAMPWhen created
deleted_atTIMESTAMPSoft deletion
descriptionTEXTForm description
login_requiredBOOLEANLogin required to submit
nameVARCHAR(255)Form name
public_urlVARCHAR(255)Public form URL
recently_viewedBOOLEANRecently accessed
send_submission_notification_to_submitterBOOLEANEmail notification to submitter
submission_countINTEGERNumber of submissions
updated_atTIMESTAMPLast update
campus_idVARCHAR(64)Associated campus
form_category_idVARCHAR(64)Form category
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_form_submissions

Submitted form data.
ColumnTypeDescription
idUUIDInternal unique identifier
form_submission_idVARCHAR(64)Planning Center submission ID
created_atTIMESTAMPWhen submitted
person_idVARCHAR(64)Submitter person
form_idVARCHAR(64)Parent form
verifiedBOOLEANVerification status
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_form_fields

Form field definitions.
ColumnTypeDescription
idUUIDInternal unique identifier
form_field_idVARCHAR(64)Planning Center field ID
created_atTIMESTAMPWhen created
descriptionTEXTField description
labelVARCHAR(255)Field label
requiredBOOLEANRequired field
sequenceINTEGERField order
settingsJSONBField settings
typeVARCHAR(100)Field type
updated_atTIMESTAMPLast update
form_idVARCHAR(64)Parent form
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_form_field_options

Options for form fields.
ColumnTypeDescription
idUUIDInternal unique identifier
form_field_option_idVARCHAR(64)Planning Center option ID
labelVARCHAR(255)Option label
sequenceINTEGEROption order
form_field_idVARCHAR(64)Parent field
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_form_submission_values

Values submitted for form fields.
ColumnTypeDescription
idUUIDInternal unique identifier
form_submission_value_idVARCHAR(64)Planning Center value ID
display_valueTEXTDisplay value
form_field_idVARCHAR(64)Field ID
form_submission_idVARCHAR(64)Submission ID
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_form_categories

Categories for organizing forms.
ColumnTypeDescription
idUUIDInternal unique identifier
form_category_idVARCHAR(64)Planning Center category ID
nameVARCHAR(255)Category name
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

Custom Fields Tables

people_field_definitions

Custom field schemas.
ColumnTypeDescription
idUUIDInternal unique identifier
field_definition_idVARCHAR(64)Planning Center field definition ID
configJSONBField configuration
data_typeVARCHAR(50)Data type
deleted_atTIMESTAMPSoft deletion
nameVARCHAR(255)Field name
sequenceINTEGERField order
slugVARCHAR(255)URL slug
tab_idVARCHAR(64)Associated tab
field_optionsJSONBField options configuration
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_field_datum

Custom field values for people.
ColumnTypeDescription
idUUIDInternal unique identifier
field_datum_idVARCHAR(64)Planning Center field data ID
person_idVARCHAR(64)Associated person ID
fileTEXTFile attachment URL
file_content_typeVARCHAR(255)File MIME type
file_nameTEXTFile name
file_sizeINTEGERFile size in bytes
valueTEXTField value
field_definition_idVARCHAR(64)Field definition (direct reference)
customizable_idVARCHAR(64)Associated entity (direct reference)
field_option_idVARCHAR(64)Selected field option
tab_idVARCHAR(64)Associated tab
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_field_options

Options for custom fields.
ColumnTypeDescription
idUUIDInternal unique identifier
field_option_idVARCHAR(64)Planning Center option ID
sequenceINTEGEROption order
valueVARCHAR(255)Option value
field_definition_idVARCHAR(64)Parent field definition
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_tabs

UI tab organization for custom fields.
ColumnTypeDescription
idUUIDInternal unique identifier
tab_idVARCHAR(64)Planning Center tab ID
nameVARCHAR(255)Tab name
slugVARCHAR(255)URL slug
sequenceINTEGERTab order
field_definitionsJSONBField definitions in tab
field_optionsJSONBField options
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_conditions

Conditional logic for fields and workflows.
ColumnTypeDescription
idUUIDInternal unique identifier
condition_idVARCHAR(64)Planning Center condition ID
applicationVARCHAR(255)Application context
comparisonVARCHAR(255)Comparison operator
created_atTIMESTAMPWhen created
definition_classVARCHAR(255)Definition class
definition_identifierVARCHAR(255)Definition identifier
descriptionVARCHAR(255)Condition description
settingsJSONBCondition settings
updated_atTIMESTAMPLast update
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_rules

Business rules for data processing.
ColumnTypeDescription
idUUIDInternal unique identifier
rule_idVARCHAR(64)Planning Center rule ID
created_atTIMESTAMPWhen created
subsetVARCHAR(255)Rule subset
updated_atTIMESTAMPLast update
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

Lists & Segmentation Tables

people_lists

Smart lists for segmenting people.
ColumnTypeDescription
idUUIDInternal unique identifier
list_idVARCHAR(64)Planning Center list ID
automatic_runBOOLEANAuto-refresh enabled
automations_activeBOOLEANAutomations enabled
automations_countINTEGERNumber of automations
batch_completed_atTIMESTAMPLast batch completion
created_atTIMESTAMPWhen created
updated_atTIMESTAMPLast update
descriptionTEXTList description
has_inactiveBOOLEANIncludes inactive people
include_archivedBOOLEANIncludes archived
invalidBOOLEANList has errors
mailchimp_sync_statusVARCHAR(100)Mailchimp sync status
nameVARCHAR(255)List name
name_or_descriptionTEXTCombined name/description
paused_automations_countINTEGERPaused automation count
recently_viewedBOOLEANRecently accessed
refreshed_atTIMESTAMPLast refresh
returnsVARCHAR(100)Return type
starredBOOLEANIs favorited
statusVARCHAR(50)List status
subsetVARCHAR(100)List subset
total_peopleINTEGERPeople count
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_list_categories

Categories for organizing lists.
ColumnTypeDescription
idUUIDInternal unique identifier
list_category_idVARCHAR(64)Planning Center category ID
created_atTIMESTAMPWhen created
nameVARCHAR(255)Category name
organization_idVARCHAR(64)Organization ID
updated_atTIMESTAMPLast update
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_list_results

People included in lists.
ColumnTypeDescription
idUUIDInternal unique identifier
list_result_idVARCHAR(64)Planning Center result ID
created_atTIMESTAMPWhen added to list
list_idVARCHAR(64)Parent list
person_idVARCHAR(64)Person in list
updated_atTIMESTAMPLast update
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_list_shares

List sharing permissions.
ColumnTypeDescription
idUUIDInternal unique identifier
list_share_idVARCHAR(64)Planning Center share ID
created_atTIMESTAMPWhen shared
groupVARCHAR(255)Share group
nameVARCHAR(255)Share name
permissionVARCHAR(100)Permission level
list_idVARCHAR(64)Shared list
person_idVARCHAR(64)Person with access
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_list_stars

Favorited lists per user.
ColumnTypeDescription
idUUIDInternal unique identifier
list_star_idVARCHAR(64)Planning Center star ID
created_atTIMESTAMPWhen favorited
list_idVARCHAR(64)Favorited list
person_idVARCHAR(64)Person who favorited
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_mailchimp_sync_status

Email marketing synchronization status.
ColumnTypeDescription
idUUIDInternal unique identifier
mailchimp_sync_status_idVARCHAR(64)Planning Center sync ID
completed_atTIMESTAMPWhen sync completed
errorTEXTError message
error_countINTEGERNumber of errors
segment_idVARCHAR(255)Mailchimp segment
statusVARCHAR(100)Sync status
list_idVARCHAR(64)Synced list
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

Notes & Documentation Tables

people_notes

Pastoral care notes and follow-ups.
ColumnTypeDescription
idUUIDInternal unique identifier
note_idVARCHAR(64)Planning Center note ID
created_atTIMESTAMPWhen created
updated_atTIMESTAMPLast update
noteTEXTNote content
note_category_idVARCHAR(64)Note category (direct reference)
organization_idVARCHAR(64)Organization (direct reference)
person_idVARCHAR(64)Associated person (direct reference)
created_by_idVARCHAR(64)Author (direct reference)
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_note_categories

Categories for organizing notes.
ColumnTypeDescription
idUUIDInternal unique identifier
note_category_idVARCHAR(64)Planning Center category ID
created_atTIMESTAMPWhen created
lockedBOOLEANCategory locked
nameVARCHAR(255)Category name
organization_idVARCHAR(64)Organization ID
sort_orderVARCHAR(100)Sort order
updated_atTIMESTAMPLast update
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_note_category_shares

Note category sharing permissions.
ColumnTypeDescription
idUUIDInternal unique identifier
note_category_share_idVARCHAR(64)Planning Center share ID
created_atTIMESTAMPWhen shared
groupVARCHAR(255)Share group
note_category_idVARCHAR(64)Shared category
person_idVARCHAR(64)Person with access
permissionVARCHAR(100)Permission level
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_note_category_subscriptions

Subscriptions to note categories.
ColumnTypeDescription
idUUIDInternal unique identifier
note_category_subscription_idVARCHAR(64)Planning Center subscription ID
created_atTIMESTAMPWhen subscribed
note_category_idVARCHAR(64)Subscribed category
person_idVARCHAR(64)Subscriber
updated_atTIMESTAMPLast update
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

Messaging System Tables

people_messages

Individual messages sent through the system.
ColumnTypeDescription
idUUIDInternal unique identifier
message_idVARCHAR(64)Planning Center message ID
app_nameVARCHAR(255)Originating app
bounce_countINTEGERNumber of bounces
created_atTIMESTAMPWhen created
delivery_statusVARCHAR(100)Delivery status
from_addressesJSONBSender addresses
message_typeVARCHAR(100)Message type
read_countINTEGERRead count
reject_reasonTEXTRejection reason
rejection_notification_sent_atTIMESTAMPRejection notification time
sent_atTIMESTAMPWhen sent
subjectTEXTMessage subject
to_addressesJSONBRecipient addresses
updated_atTIMESTAMPLast update
message_group_idVARCHAR(64)Parent message group
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_message_groups

Groupings of related messages.
ColumnTypeDescription
idUUIDInternal unique identifier
message_group_idVARCHAR(64)Planning Center group ID
created_atTIMESTAMPWhen created
from_addressVARCHAR(255)Sender address
message_countINTEGERNumber of messages
message_typeVARCHAR(100)Message type
subjectTEXTGroup subject
system_emailBOOLEANSystem email flag
uuidVARCHAR(255)External UUID
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_custom_senders

Custom email sender configurations.
ColumnTypeDescription
idUUIDInternal unique identifier
custom_sender_idVARCHAR(64)Planning Center sender ID
nameVARCHAR(255)Sender name
email_addressVARCHAR(255)Email address
verified_atTIMESTAMPVerification time
verification_requested_atTIMESTAMPVerification request time
created_atTIMESTAMPWhen created
updated_atTIMESTAMPLast update
verifiedBOOLEANVerification status
expiredBOOLEANExpiration status
verification_statusVARCHAR(255)Verification status
custom_sender_share_idVARCHAR(255)Share ID
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_carriers

Phone carrier information for SMS messaging.
ColumnTypeDescription
idUUIDInternal unique identifier
carrier_idVARCHAR(64)Planning Center carrier ID
internationalBOOLEANInternational carrier
nameVARCHAR(255)Carrier name
valueVARCHAR(255)Carrier value
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

Import & Data Management Tables

people_people_imports

Import job definitions.
ColumnTypeDescription
idUUIDInternal unique identifier
people_import_idVARCHAR(64)Planning Center import ID
attribsJSONBImport attributes
completed_atTIMESTAMPWhen completed
conflicting_changesJSONBConflicting changes
created_atTIMESTAMPWhen created
people_idsJSONBImported people IDs
processed_atTIMESTAMPWhen processed
statusVARCHAR(100)Import status
undone_atTIMESTAMPWhen undone
updated_atTIMESTAMPLast update
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_people_import_conflicts

Conflicts detected during imports.
ColumnTypeDescription
idUUIDInternal unique identifier
people_import_conflict_idVARCHAR(64)Planning Center conflict ID
conflicting_changesJSONBConflicting changes
created_atTIMESTAMPWhen created
dataJSONBConflict data
ignoreBOOLEANIgnore conflict
kindVARCHAR(100)Conflict type
messageTEXTConflict message
nameVARCHAR(255)Conflict name
updated_atTIMESTAMPLast update
people_import_idVARCHAR(64)Parent import
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_people_import_history

Audit trail of import operations.
ColumnTypeDescription
idUUIDInternal unique identifier
people_import_history_idVARCHAR(64)Planning Center history ID
conflicting_changesJSONBConflicting changes
created_atTIMESTAMPWhen created
nameVARCHAR(255)History name
person_idVARCHAR(64)Associated person
people_import_idVARCHAR(64)Parent import
undone_atTIMESTAMPWhen undone
updated_atTIMESTAMPLast update
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_person_mergers

Records of merged person records.
ColumnTypeDescription
idUUIDInternal unique identifier
person_merger_idVARCHAR(64)Planning Center merger ID
created_atTIMESTAMPWhen merged
person_to_keep_idVARCHAR(64)Surviving person record
person_to_remove_idVARCHAR(64)Removed person record
updated_atTIMESTAMPLast update
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

Administrative & Reference Tables

people_apps

Application integrations available.
ColumnTypeDescription
idUUIDInternal unique identifier
app_idVARCHAR(64)Planning Center app ID
nameVARCHAR(255)App name
urlTEXTApp URL
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_background_checks

Background check records for volunteers and staff.
ColumnTypeDescription
idUUIDInternal unique identifier
background_check_idVARCHAR(64)Planning Center check ID
completed_atTIMESTAMPWhen completed
currentBOOLEANCurrent status
expires_onDATEExpiration date
noteTEXTCheck notes
report_urlTEXTReport URL
statusVARCHAR(255)Check status
status_updated_atTIMESTAMPStatus update time
person_idVARCHAR(64)Person checked
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_inactive_reasons

Reasons for marking people inactive.
ColumnTypeDescription
idUUIDInternal unique identifier
inactive_reason_idVARCHAR(64)Planning Center reason ID
valueVARCHAR(255)Reason value
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_marital_statuses

Marital status options.
ColumnTypeDescription
idUUIDInternal unique identifier
marital_status_idVARCHAR(64)Planning Center status ID
valueVARCHAR(255)Status value
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_name_prefixes

Title prefixes (Mr., Mrs., Dr., etc.).
ColumnTypeDescription
idUUIDInternal unique identifier
name_prefix_idVARCHAR(64)Planning Center prefix ID
valueVARCHAR(255)Prefix value
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_name_suffixes

Name suffixes (Jr., Sr., III, etc.).
ColumnTypeDescription
idUUIDInternal unique identifier
name_suffix_idVARCHAR(64)Planning Center suffix ID
valueVARCHAR(255)Suffix value
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_organizations

Organization configuration and settings.
ColumnTypeDescription
idUUIDInternal unique identifier
organization_idVARCHAR(64)Planning Center org ID
nameVARCHAR(255)Organization name
country_codeVARCHAR(10)Country code
date_formatVARCHAR(50)Date format preference
time_zoneVARCHAR(100)Time zone
contact_websiteVARCHAR(255)Contact website
created_atTIMESTAMPWhen created
updated_atTIMESTAMPLast update
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_reports

Report definitions for data analysis.
ColumnTypeDescription
idUUIDInternal unique identifier
report_idVARCHAR(64)Planning Center report ID
bodyTEXTReport body
created_atTIMESTAMPWhen created
nameVARCHAR(255)Report name
updated_atTIMESTAMPLast update
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_school_options

School affiliations and options.
ColumnTypeDescription
idUUIDInternal unique identifier
school_option_idVARCHAR(64)Planning Center school ID
beginning_gradeVARCHAR(50)Starting grade
ending_gradeVARCHAR(50)Ending grade
school_typesJSONBSchool types
sequenceINTEGERSort order
valueVARCHAR(255)School name
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

people_service_times

Service schedule information.
ColumnTypeDescription
idUUIDInternal unique identifier
service_time_idVARCHAR(64)Planning Center service time ID
dayVARCHAR(255)Day of week
descriptionTEXTService description
start_timeINTEGERStart time (minutes from midnight)
organization_idVARCHAR(64)Organization ID
campus_idVARCHAR(64)Campus ID
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created in Parable
system_updated_atTIMESTAMPWhen updated in Parable

Relationship Tables

All relationship tables follow a similar pattern for linking entities:

Standard Relationship Table Structure

ColumnTypeDescription
idUUIDInternal unique identifier
{entity}_idVARCHAR(64)Parent entity ID
relationship_typeVARCHAR(50)Type of relationship
relationship_idVARCHAR(64)ID of related entity
tenant_organization_idINTEGEROrganization identifier
system_statusVARCHAR(50)Data status
system_created_atTIMESTAMPWhen created
system_updated_atTIMESTAMPLast update

Key Relationship Tables

people_people_relationships

Links people to campuses, lists, inactive reasons, marital statuses, organizations, etc.

people_household_relationships

Links households to people and campuses.

people_email_relationships

Links emails to people.

people_phone_number_relationships

Links phone numbers to people.

people_field_data_relationships

Links custom field data to people and other entities.

people_form_relationships

Links forms to campuses and categories.

people_workflow_relationships

Links workflows to campuses and categories.

people_message_relationships

Links messages to people and message groups.

people_note_relationships

Links notes to people and note categories.

System Fields

All tables include these system fields for data management:
  • tenant_organization_id - Multi-tenant organization identifier
  • system_status - Data lifecycle status:
    • transferring - Being imported from Planning Center
    • active - Current active data
    • stale - Marked for removal
  • system_created_at - When record was created in Parable
  • system_updated_at - When record was last updated in Parable

Data Integrity Rules

  1. Schema Qualification: Always use planning_center. prefix for all table references
  2. Row Level Security: RLS automatically handles multi-tenancy and status filtering - do not add manual filters
  3. Monetary Values: People tables that include contribution amounts store them in cents - divide by 100.0 for display
  4. Contact Status Flags: Use fields like status, primary, and inactive_reason_id to interpret person records instead of relying on system_status
  5. Direct ID Columns: Core tables such as people_people, people_households, and people_lists expose direct IDs for performance-sensitive joins

Common Mistakes to Avoid

  1. Missing Schema Prefix
    • FROM people_people
    • FROM planning_center.people_people
  2. Adding Redundant RLS Filters
    • WHERE tenant_organization_id = 1 AND system_status = 'active'
    • ✅ Trust RLS to handle this automatically
  3. Joining Without Schema
    • JOIN people_households h ON ...
    • JOIN planning_center.people_households h ON ...
  4. Skipping Currency Conversion
    • SELECT amount_cents as amount
    • SELECT amount_cents / 100.0 as amount

Performance Considerations

  1. Indexes: All tables have optimized indexes on:
    • Primary keys and entity IDs
    • Join columns and foreign keys
    • Date columns for time-based queries
  2. Query Optimization:
    • Always use the planning_center. schema prefix
    • RLS handles tenant and status filtering automatically
    • Filter person status or inactivity flags when relevant
    • Consider CTEs for complex multi-join queries
    • Use direct ID columns when available instead of relationship tables

Verification Summary

Total Tables Documented: 84 entity tables + 25 relationship tablesAll tables include system columnsComprehensive field definitions providedConsistent formatting with other modules This document represents the COMPLETE Planning Center People data model implementation in Parable.