Constituent Data Mapping
This document details the field-level mappings between WeGive donor records and Blackbaud Raiser’s Edge NXT constituent records.Object Overview
WeGive Donor Object
- Purpose: Represents individual donors and organizations in the WeGive platform
- Types: Individual donors and organization donors
- API Endpoint:
/donors/{donor} - Unique Identifier: WeGive donor ID
Blackbaud Constituent Object
- Purpose: Represents individuals, organizations, and households in Raiser’s Edge NXT
- Types: Individual, Organization, Household
- API Endpoint:
constituent/v1/constituents/{constituent_id} - Unique Identifier: Blackbaud constituent ID
Individual Constituent Mapping
Basic Information
Professional Information
Contact Information
Email Addresses
Email Address Object Structure (Blackbaud)
Phone Numbers
Phone Object Structure (Blackbaud)
Addresses
Address Object Structure (Blackbaud)
Communication Preferences
Custom Fields
Organization Constituent Mapping
Basic Information
Contact Information
Organization contacts use the same email, phone, and address mapping as individuals, with primary contacts designated.Industry Information
Household Constituent Mapping
WeGive Integration Note
WeGive primarily uses individual donor records. Household information from Blackbaud is preserved but not actively managed in WeGive.Household Information (Read-Only from Blackbaud)
Data Transformation Rules
Name Handling
Individual Names- Empty First Name: Default to “FNU” (First Name Unknown)
- Empty Last Name: Default to “LNU” (Last Name Unknown)
- Name Formatting: Preserve capitalization and spacing
- Special Characters: Handle apostrophes, hyphens, and accents
- Required Field: Organization name must not be empty
- Legal Suffixes: Preserve Inc., LLC, Corp., etc.
- DBA Names: Store “doing business as” names in alternate name field
Contact Information Validation
Email Validation- Must be valid email format
- Maximum 255 characters
- Duplicate email checking across constituents
- Case-insensitive matching
- Flexible input format acceptance
- Standardized storage format
- International number support
- Extension handling
- USPS address validation (where applicable)
- International address support
- PO Box detection and handling
- Geocoding for mapping applications
Data Quality Controls
Duplicate Detection- Email address matching (primary method)
- Name + address combination matching
- Phone number matching as secondary
- Manual merge queue for potential duplicates
- Default values for missing required fields
- Data validation before sync
- Error reporting for invalid data
- Skip records with critical missing data
Sync Behavior
Create Operations
New WeGive Donor → Blackbaud Constituent- Validate required fields
- Check for existing constituent (email match)
- Create new constituent record
- Store correlation ID
- Create associated contact records (address, phone, email)
- Apply communication preferences
- Determine constituent type (individual/organization)
- Extract contact information
- Create WeGive donor record
- Store correlation ID
- Apply communication preferences
Update Operations
Bidirectional Updates- Last-modified timestamp comparison
- Field-level change detection
- Selective field updates
- Conflict resolution logging
- Contact information: Most recent update wins
- Communication preferences: Preserve opt-out status
- Custom fields: Configurable precedence rules
- Names: Manual review for significant changes
Delete Operations
Soft Delete Handling- WeGive: Mark donor as inactive
- Blackbaud: Mark constituent as inactive
- Preserve historical transaction data
- Maintain audit trail
API Examples
Create Individual Constituent
WeGive to Blackbaud RequestUpdate Constituent
Blackbaud to WeGive SyncError Handling
Common Validation Errors
Missing Required Fields- Error: First name or last name missing
- Resolution: Use default values (FNU/LNU)
- Action: Log warning and continue
- Error: Email address format invalid
- Resolution: Skip email field
- Action: Log error and continue without email
- Error: Email address already exists
- Resolution: Update existing record instead
- Action: Link to existing constituent
Retry Logic
Temporary Failures- Network timeouts: Retry with exponential backoff
- Rate limiting: Respect retry-after headers
- Server errors: Retry up to 3 times
- Validation errors: Log and skip record
- Authorization errors: Alert administrators
- Data conflicts: Queue for manual review
Monitoring and Reporting
Sync Metrics
Success Rates- Constituent creation success rate
- Update operation success rate
- Data validation pass rate
- Duplicate detection accuracy
- Average sync time per record
- API response time monitoring
- Batch processing efficiency
- Error resolution time
Data Quality Reports
Regular Audits- Orphaned correlation IDs
- Incomplete contact information
- Communication preference mismatches
- Custom field mapping accuracy
- Failed sync operations
- Data validation failures
- Duplicate detection results
- Manual review queue status
Best Practices
Data Management
- Clean Source Data: Ensure quality before sync
- Regular Audits: Monitor data consistency
- Backup Strategy: Maintain data backups
- Documentation: Keep field mapping records current
Performance Optimization
- Batch Processing: Use appropriate batch sizes
- Rate Limiting: Respect API limits
- Caching: Cache frequently accessed data
- Monitoring: Track performance metrics
Security Considerations
- Data Encryption: Encrypt sensitive data in transit and at rest
- Access Control: Limit sync permissions
- Audit Logging: Maintain complete audit trails
- Compliance: Follow data protection regulations
Troubleshooting Guide
Common Issues
Sync Failures- Check network connectivity
- Verify API credentials
- Review rate limiting status
- Validate data format
- Compare field mappings
- Check transformation rules
- Review conflict resolution
- Validate correlation IDs
- Monitor batch sizes
- Check API response times
- Review error rates
- Optimize sync timing
Support Resources
- WeGive Support: support@wegive.com
- Integration Documentation: Data Mapping Overview
- Blackbaud Documentation: Sky API Constituent Documentation