Recurring Donation Data Mapping
This document details how recurring donations and pledges are mapped between WeGive and DonorPerfect, including pledge creation, payment tracking, and schedule management.DonorPerfect Table Reference
Primary Table:dppledge (Pledge Records)WeGive Model:
ScheduledDonationSync Direction: WeGive → DonorPerfect (Push Only)
Recurring Donation Overview
Integration Approach
Pledge vs. Scheduled Donation
Pledge vs. Scheduled Donation
ScheduledDonation: Recurring giving setup- Individual
Transactionrecords for each payment - Flexible frequency options (monthly, quarterly, annual)
dppledge: Pledge commitment recorddpgift: Individual payment records linked to pledge- Simplified frequency mapping (defaults to monthly)
Data Flow Pattern
Data Flow Pattern
- WeGive scheduled donation creates DonorPerfect pledge
- Individual payments create linked gift records
- Pledge status updates based on payment activity
- Schedule modifications sync to pledge record
Core Pledge Fields
Primary Identifiers
Pledge Identification
Pledge Identification
| WeGive Field | DonorPerfect Field | Type | Notes |
|---|---|---|---|
dp_id | @pledge_id | Integer | Auto-generated DonorPerfect pledge ID |
source.dp_id | @donor_id | Integer | Links to donor record |
| N/A | @user_id | String | Always set to ‘WeGive’ |
Relationship Linking
Relationship Linking
- Each WeGive scheduled donation creates one DonorPerfect pledge
- Individual payments reference the pledge ID
- Donor must exist in DonorPerfect before creating pledge
- Pledge ID stored back in WeGive for payment linking
Financial Information
Amount and Payment Details
| WeGive Field | DonorPerfect Field | Calculation | Notes |
|---|---|---|---|
amount + fees | @bill | (amount + fees) / 100 | Total pledge amount in dollars |
created_at | @gift_date | MM/DD/YYYY | Pledge creation date |
created_at | @start_date | MM/DD/YYYY | First payment date |
Amount Calculation Examples
Standard Recurring Gift
Standard Recurring Gift
- Amount: $50.00 (5000 cents)
- Processing Fee: $1.75 (175 cents)
- Bill Amount: $51.75 ((5000 + 175) / 100)
- Reflects total amount charged to donor
Fee-Covered Recurring Gift
Fee-Covered Recurring Gift
- Amount: $50.00 (5000 cents)
- Processing Fee: $0.00 (donor covers separately)
- Bill Amount: $50.00 ((5000 + 0) / 100)
Schedule and Frequency
Frequency Mapping
Frequency Mapping
| WeGive Frequency | DonorPerfect Field | Value | Notes |
|---|---|---|---|
| Any frequency | @frequency | ’M’ | Hardcoded to Monthly |
Schedule Details
Schedule Details
- Start Date: Set to scheduled donation creation date
- Gift Date: Also set to creation date
- Actual payment dates handled by individual gift records
- Schedule modifications require pledge updates
Gift Narrative and Description
Automatic Description Generation
Standard Pledge Narrative
Standard Pledge Narrative
| WeGive Field | DonorPerfect Field | Value | Notes |
|---|---|---|---|
| Generated | @gift_narrative | ”Online gift through WeGive” | Standard description |
- Regular pledge: “Online gift through WeGive”
- Anonymous pledge: “Online gift through WeGive (Anonymous)”
Description Consistency
Description Consistency
- Pledge narrative matches individual payment narratives
- Consistent branding across all related records
- Anonymous handling applies to both pledge and payments
Payment Processing Integration
Individual Payment Tracking
Payment-to-Pledge Linking
Payment-to-Pledge Linking
- Each scheduled payment creates a
dpgiftrecord - Gift record includes
@pledge_payment = 'Y' - Links back to original pledge via donor ID and dates
- Payment status tracked in both systems
Payment Sequence
Payment Sequence
- Pledge created in DonorPerfect from scheduled donation
- First payment processes and creates linked gift record
- Subsequent payments automatically link to pledge
- Failed payments update pledge status accordingly
Status Management
Pledge Status Tracking
Pledge Status Tracking
- Active pledges with regular payments
- Paused pledges with temporary holds
- Cancelled pledges with stopped payments
- Completed pledges with fulfilled commitments
Automatic Updates
Automatic Updates
- Payment success/failure updates pledge status
- Schedule modifications sync to DonorPerfect
- Cancellations properly close pledge records
- Reactivations update pledge accordingly
Data Flow Process
Pledge Creation Workflow
Schedule Modification Handling
Amount Changes
Amount Changes
- Update pledge amount in DonorPerfect
- Future payments reflect new amount
- Historical payments remain unchanged
- Status updated to reflect modification
Frequency Changes
Frequency Changes
- DonorPerfect frequency remains ‘M’ (Monthly)
- Actual schedule managed by WeGive system
- Payment timing controlled by WeGive processing
- No frequency sync to DonorPerfect
Cancellation Handling
Cancellation Handling
- Pledge status updated to cancelled
- No new payment records created
- Historical data preserved
- Donor communication handled separately
API Operations
DonorPerfect Pledge Creation
dp_savepledge Action
dp_savepledge Action
Optional Parameters
Optional Parameters
Query Operations
Pledge Lookup
Pledge Lookup
Error Handling
Common Pledge Sync Issues
| Error Type | Cause | Resolution |
|---|---|---|
| Invalid Donor | Donor doesn’t exist in DonorPerfect | Auto-create donor, retry pledge |
| Invalid Amount | Negative or zero pledge amount | Skip creation, log error |
| Date Format | Invalid start/gift date format | Correct format, retry |
| Duplicate Pledge | Pledge already exists for donor | Update existing pledge |
| API Timeout | DonorPerfect API unavailable | Retry with backoff delay |
Payment Processing Errors
Failed Payment Handling
Failed Payment Handling
- Payment processing failures
- Expired payment methods
- Insufficient funds
- Bank declines
- Retry payment according to schedule
- Update pledge status if multiple failures
- Notify donor of payment issues
- Maintain pledge record for future attempts
Sync Configuration
Recurring Donation Settings
Sync Triggers
Sync Triggers
- New scheduled donation created
- Recurring payment processed
- Schedule modifications (amount, frequency)
- Donation cancellation or pause
- Donor profile updates
Sync Timing
Sync Timing
- Real-time: New pledges sync immediately
- Payment Processing: Individual payments sync as processed
- Status Updates: Schedule changes sync within minutes
- Error Recovery: Failed syncs retry automatically
Performance Considerations
Pledge Management
- Efficient pledge creation and updates
- Batch processing for multiple changes
- Automatic status synchronization
- Optimized query performance
Payment Integration
- Real-time payment-to-pledge linking
- Automatic gift record creation
- Status updates for payment outcomes
- Comprehensive error handling
Data Quality and Validation
Pre-Sync Validation
Pledge Requirements
Pledge Requirements
- Donor must exist in DonorPerfect
- Pledge amount must be positive
- Start date must be valid
- Frequency must be supported
- Fund designation must be valid
Payment Validation
Payment Validation
- Valid payment method on file
- Sufficient account balance
- Active pledge record exists
- Proper payment amount calculation
Monitoring and Reporting
Pledge Performance
Pledge Performance
- Active pledge count and total value
- Payment success rates
- Pledge completion rates
- Average pledge duration
Financial Reconciliation
Financial Reconciliation
- Pledge amount vs. payment totals
- Fee inclusion verification
- Payment frequency accuracy
- Status consistency checks
Limitations and Considerations
Known Limitations
Frequency Mapping
Frequency Mapping
- DonorPerfect reports may not reflect actual payment schedule
- Actual timing controlled by WeGive system
- Payment dates may not align with monthly expectation
Schedule Modifications
Schedule Modifications
- Frequency changes don’t sync to DonorPerfect
- Amount changes require pledge updates
- Pause/resume functionality may not reflect perfectly
Best Practices
Troubleshooting
Common Recurring Donation Issues
Pledges Not Creating
Pledges Not Creating
- Recurring donation sync disabled
- Donor missing from DonorPerfect
- Invalid pledge amount
- API authentication issues
- Enable recurring donation tracking
- Verify donor sync status
- Check amount calculation logic
- Test API credentials
Payments Not Linking to Pledges
Payments Not Linking to Pledges
- Pledge record missing
- Donor ID mismatch
- Date formatting issues
- Verify pledge creation success
- Check donor ID consistency
- Review date format requirements
Incorrect Pledge Amounts
Incorrect Pledge Amounts
- Fee calculation errors
- Amount conversion issues
- Currency problems
- Review fee inclusion logic
- Check amount calculation
- Verify currency settings