Configuration Options
The WeGive Planning Center integration has a small, fixed set of dashboard-editable settings — an authentication method, a default fund, and per-object push/pull toggles for donors, funds, and transactions. There is no recurring-donations toggle, no configurable rate-limit/retry/timeout values, and no performance-monitoring or batch-reporting settings — those aren’t implemented.Authentication Configuration
Authentication Methods
OAuth 2.0 Configuration (Recommended)
OAuth Benefits:
- Token-based authentication with automatic refresh (checked and refreshed proactively on every API call, not just on failure)
Legacy Authentication Configuration
Legacy Use Cases:
- Existing implementations using basic authentication
- Simple setup without OAuth flow complexity
Synchronization Controls
Data Type Configuration
There are exactly six push/pull toggles, one pair per object type. There is no separate toggle for recurring/scheduled donations — Planning Center’s integration doesn’t sync a recurring-gift object at all.Donors/People Sync
Push Donors:
- Creates person records in Planning Center from WeGive donors (matched by a stored
planning_center_idonly — no email/name matching) - Syncs contact information (emails, phones, addresses) after create or update
- If an update targets a Planning Center person that no longer exists (404), the integration clears the stale ID and creates a new person rather than failing
- Imports Planning Center people to WeGive
Transactions/Donations Sync
Push Transactions:
- Runs once daily (8:01 AM) as a single batch job — there is no real-time/immediate push path
- Finds or creates a single recurring “WeGive”-named batch and a single “WeGive”-named payment source
- Each transaction gets exactly one fund designation — split/multi-fund gifts aren’t supported
- If any part of the run throws, the whole batch is rolled back: any
planning_center_ids set during that run are cleared and the partial batch is deleted in Planning Center
- Imports Planning Center donations to WeGive
Funds Sync
Fund Sync:
- Push finds-or-creates a Planning Center fund by matching
name; on create it also sendsdescription, a fixedvisibility: everywhere, and a fixedcolor_identifier: 1— but an existing fund is never updated after the initial match/create, so later WeGive-side name/description edits don’t propagate - Pull imports
name,description, andcreated_at; a Planning Center fund withvisibility: hiddenis soft-deleted in WeGive automatically
Advanced Settings
Required Configuration
Important Notes:
- Used when a transaction has no fund set; if there’s still no
default_fund_id, the integration falls back to the destination organization’s oldest fund with aplanning_center_id - If no fund can be resolved at all, that transaction throws
Unknown Fund Sourceand is skipped (reported to Sentry, not a full-batch failure)
Batch Processing
Daily batches run automatically at 8:01 AM and commit automatically on success — there’s no manual/scheduled-time configuration option and no separate “batch commitment” setting; a batch always auto-commits after processing.API Rate Limiting
Planning Center’s own limit is 70 requests per 20 seconds. WeGive’s integration proactively throttles to this internally — it isn’t a dashboard-configurable setting, and there’s no separate configurable retry count or request timeout.Data Flow Configuration
Sync Direction Matrix
Payment Source
All WeGive transactions post to a single Planning Center payment source named “WeGive” — the integration finds it by name or creates it automatically; there’s no configuration option to change this name or use multiple payment sources.Fund Assignment
Fund Assignment Priority (fixed, not configurable):- Use the transaction’s own linked fund (if it has a
planning_center_id) - Fall back to the integration’s
default_fund_id - Fall back to the destination organization’s oldest fund with a
planning_center_id - If none resolve, the transaction throws
Unknown Fund Sourceand is skipped
planning_center_id always looks it up by name in Planning Center and creates it there automatically if no match exists (visibility: everywhere). On the pull side, a Planning Center fund whose visibility is hidden is soft-deleted in WeGive automatically — this happens unconditionally, not via a “Hidden Fund Handling: Skip/Include” setting.
Configuration Best Practices
Initial Setup
- Choose OAuth 2.0: Recommended for new implementations
- Test Thoroughly: Confirm the connection before enabling sync
- Set a Default Fund: Required to avoid
Unknown Fund Sourceskips - Monitor Closely: Watch
integration_logsduring the first week — sync failures aren’t surfaced to the dashboard or the customer
Ongoing Management
- Regular Reviews: Check
enabled/OAuth validity anddefault_fund_idperiodically - Error Analysis: Review
integration_logsforerror-executionrows and Sentry forUnknown Fund Sourceexceptions — neither generates a customer-facing notification
Security Considerations
- Credential Rotation: OAuth tokens refresh automatically; legacy app_id/app_secret should be rotated manually if compromised
- Access Control: Limit who can modify integration settings
Troubleshooting Configuration Issues
Common Problems
Issue: Authentication failures- Check: Verify OAuth credentials or legacy app_id/app_secret are correct
- Check:
integration_logsrows withstatus = 'error-execution'and an OAuth-relateddetails.error
- Check: Verify
default_fund_idis valid and active - Check: Sentry for
Unknown Fund Sourceexceptions on specific transactions (a per-transaction skip, not a full-batch failure)
- Cause: Matching is by
planning_center_idonly — a donor pushed before ever being linked to an existing Planning Center person will create a new one - Solution: Clean duplicates in Planning Center before initial sync; ensure donors are matched/linked before their first push
Configuration Validation
Required Settings Check:- Authentication credentials are valid and tested
default_fund_idexists and is active in Planning Center- Push/pull toggles reflect the intended sync direction per object type