DonorPerfect Integration Nuances

Understanding the specific behaviors and limitations of the DonorPerfect integration will help you optimize your setup and avoid common issues. This guide covers platform-specific considerations and best practices.

Platform-Specific Behaviors

DonorPerfect API Characteristics

Legacy API FormatDonorPerfect uses XML-based API communication:
  • All data is exchanged in XML format
  • Automatic conversion to/from JSON happens behind the scenes
  • Some data type limitations due to XML parsing
  • Requires specific date and number formatting
Direct Database AccessThe integration uses SQL queries for data retrieval:
  • Supports complex filtering and sorting
  • Allows efficient incremental synchronization
  • Requires understanding of DonorPerfect database structure
  • Limited by DonorPerfect’s query security restrictions
API Usage LimitsDonorPerfect enforces API usage limits:
  • Request throttling prevents system overload
  • Automatic retry logic handles rate limit responses
  • Large data sets may require extended sync times
  • Peak usage times may affect sync performance

Data Format Requirements

Date Formatting

Critical: DonorPerfect requires dates in MM/DD/YYYY format. Other formats will cause sync failures.
Data TypeWeGive FormatDonorPerfect FormatNotes
Transaction DateISO 8601MM/DD/YYYYAutomatic conversion
Donor Birth DateYYYY-MM-DDMM/DD/YYYYOptional field
Pledge Start DateTimestampMM/DD/YYYYRequired for pledges

Currency Handling

WeGive to DonorPerfect
  • WeGive stores amounts in cents (integer)
  • DonorPerfect uses dollars (decimal)
  • Automatic conversion: amount / 100
  • Fee deduction applied before conversion
Multi-Currency Considerations
  • DonorPerfect supports USD by default
  • Other currencies sync as-is with currency field
  • Exchange rate conversion not automatic
  • Consider manual currency handling for international gifts

Text Field Limitations

Field TypeCharacter LimitHandling
Gift Narrative255 charactersAutomatic truncation
Donor Notes8,000 charactersFull text support
Address Lines50 characters eachLine splitting for long addresses

Synchronization Behaviors

Incremental Sync Logic

Import Process
  • Uses created_date and modified_date for filtering
  • Processes records in ID order for consistency
  • Pagination prevents timeout issues
  • Only syncs donors with valid email addresses
Export Process
  • Triggered by new transactions in WeGive
  • Creates DonorPerfect records if they don’t exist
  • Updates existing records when matches found
  • Uses WeGive system as user_id for tracking

Duplicate Handling

Duplicate Prevention: The integration prevents duplicates by checking existing DonorPerfect IDs, but initial setup requires clean data to avoid issues.
Duplicate Detection Methods:
  • Email address matching for donors
  • DonorPerfect ID tracking for existing records
  • Transaction ID correlation for gifts
  • Manual review recommended for initial sync

Field Mapping Limitations

Hardcoded Values

Some values are hardcoded due to DonorPerfect requirements:
FieldWeGive ValueDonorPerfect ValueReason
CountryVarious”US”System limitation
Record TypeN/A”G” (Gift)Required classification
FrequencyVarious”M” (Monthly)Simplified mapping
User IDSystem”WeGive”Integration tracking

Missing Field Support

Fields that don’t sync to DonorPerfect:
  • Custom donor profile fields
  • Advanced tribute information
  • Detailed payment method data
  • WeGive-specific metadata
DonorPerfect fields not imported to WeGive:
  • Volunteer tracking data
  • Detailed relationship information
  • Custom code tables
  • Historical gift modifications

Performance Considerations

Large Database Handling

First-Time SetupOrganizations with large databases should expect:
  • Extended initial sync times (hours for 10k+ records)
  • Potential temporary performance impacts
  • Recommendation to schedule during off-peak hours
  • Progress monitoring through dashboard
Regular OperationsAfter initial setup:
  • Incremental syncs complete quickly (minutes)
  • Real-time donation processing
  • Minimal system impact during normal operations
  • Automatic optimization of query performance

Memory and Processing

  • Batch Processing: Large datasets processed in manageable chunks
  • Memory Management: Automatic cleanup prevents memory issues
  • Error Recovery: Failed batches retry automatically
  • Progress Tracking: Real-time status updates in dashboard

Best Practices

Data Preparation

1

Clean Existing Data

Remove duplicate donors and standardize formats before integration
2

Validate Email Addresses

Ensure all donors have valid, unique email addresses
3

Organize Fund Structure

Set up clear GL code organization in DonorPerfect
4

Test with Sample Data

Use a subset of data for initial testing and validation

Ongoing Management

Regular Monitoring

Check sync status weekly and address any errors promptly

Data Quality Maintenance

Maintain clean data in both systems to prevent sync issues

Performance Optimization

Monitor sync times and adjust batch sizes if needed

Error Resolution

Address sync errors quickly to maintain data consistency

Common Limitations

Technical Limitations

These limitations are inherent to the DonorPerfect API and cannot be modified:
  • XML Format: All data must be XML-compatible
  • Date Format: Strict MM/DD/YYYY requirement
  • Field Length: Character limits vary by field type
  • Query Complexity: Some complex queries not supported

Business Logic Limitations

  • Single Currency: Primary support for USD transactions
  • Simplified Recurring: Monthly frequency assumption
  • Anonymous Handling: Limited anonymous gift customization
  • Tribute Information: Basic tribute/memorial support only

Troubleshooting Common Issues

Sync Failures

Symptoms: “Invalid API key” or “Unauthorized” errorsSolutions:
  • Verify API key is correct and active
  • Check API key permissions in DonorPerfect
  • Ensure account has integration access enabled
Symptoms: “Invalid date format” or “Field validation” errorsSolutions:
  • Check date formats meet MM/DD/YYYY requirement
  • Verify required fields are populated
  • Review character limits for text fields
Symptoms: “Duplicate donor” or “Record already exists” errorsSolutions:
  • Clean duplicate records before initial sync
  • Verify email addresses are unique
  • Review donor matching logic

Next Steps

Understanding these nuances will help you successfully implement and maintain your DonorPerfect integration. For additional support or questions about specific behaviors, contact our support team at [email protected].