Donor Data Mapping

This document provides comprehensive field mapping details for donor profiles between WeGive and DonorPerfect. The integration supports both individual donors and organizational donors with automatic type detection.

DonorPerfect Table Reference

Primary Table: dp (Donor Profile)
WeGive Model: DonorProfile
Sync Direction: Bidirectional (WeGive ↔ DonorPerfect)

Core Identity Fields

Primary Keys and Identification

WeGive FieldDonorPerfect FieldTypeNotes
dp_id@donor_idIntegerAuto-generated DonorPerfect ID
email_1@emailStringPrimary matching field for imports
iduser_idStringAlways set to “WeGive” for tracking
Email Requirement: Donors must have valid email addresses to sync. Records without emails are skipped during import.

Personal Information

Name Fields

For donors with donor_type = 'individual':
WeGive FieldDonorPerfect FieldTypeMax LengthRequired
first_name@first_nameString50Yes
last_name@last_nameString50Yes
middle_nameNot mappedString-No
DonorPerfect Type: Set to 'IN' (Individual)
For donors with donor_type = 'organization':
WeGive FieldDonorPerfect FieldTypeMax LengthRequired
organization_name@last_nameString50Yes
first_name@first_nameString50No
DonorPerfect Type: Set to 'CO' (Company/Organization)

Contact Information

Phone Numbers

WeGive FieldDonorPerfect FieldTypeFormatNotes
mobile_phone@mobile_phoneStringDigits onlyPrimary mobile number
home_phone@home_phoneStringDigits onlyResidential phone
office_phone@business_phoneStringDigits onlyWork/business phone
fax@fax_phoneStringDigits onlyFax number
Automatic Formatting:
  • Strips all non-digit characters
  • Validates US phone number format
  • Handles international numbers as-is
  • Empty fields sync as null/empty

Email Addresses

WeGive FieldDonorPerfect FieldTypeValidationNotes
email_1@emailStringEmail formatPrimary email, required for sync
email_2Not mappedString-Secondary emails not synced

Address Information

Mailing Address Mapping

The integration maps the primary mailing address from WeGive to DonorPerfect:
WeGive FieldDonorPerfect FieldTypeMax LengthNotes
mailingAddress.address_1@addressString50Primary address line
mailingAddress.address_2@address2String50Secondary address line
mailingAddress.city@cityString30City name
mailingAddress.state@stateString2State/province code
mailingAddress.zip@zipString20Postal/ZIP code
mailingAddress.country@countryString3Always set to “US”
Country Limitation: The integration currently hardcodes country as “US” due to DonorPerfect configuration. International addresses sync with country field as “US” but retain original address information.

Address Validation

Automatic Handling:
  • Long address lines are truncated to field limits
  • Empty address components sync as null
  • Address standardization applied where possible
  • Full address required for complete sync
Partial Address Sync:
  • Donors without complete addresses still sync
  • Available address components are mapped
  • Missing fields left empty in DonorPerfect
  • No validation errors for incomplete addresses

Data Flow Patterns

WeGive to DonorPerfect (Export)

1

Donor Creation

New WeGive donors automatically create DonorPerfect records
2

Profile Updates

Changes to WeGive donor profiles sync to DonorPerfect
3

Type Detection

Donor type (individual vs. organization) automatically mapped
4

ID Assignment

DonorPerfect assigns new donor ID, stored back in WeGive

DonorPerfect to WeGive (Import)

1

Email Matching

Existing DonorPerfect donors matched by email address
2

Profile Import

Contact and address information imported to WeGive
3

Type Mapping

DonorPerfect donor types converted to WeGive format
4

Relationship Linking

DonorPerfect ID stored for future synchronization

API Operations

DonorPerfect API Actions

Action: dp_savedonorRequired Parameters:
  • @donor_id (for updates, empty for new)
  • @first_name and @last_name (individuals)
  • @last_name (organizations)
  • @email (required)
  • @donor_type (‘IN’ or ‘CO’)
  • @user_id (set to “WeGive”)
SQL Query Example:
SELECT donor_id, first_name, last_name, email, 
       address, city, state, zip, mobile_phone, home_phone
FROM dp 
WHERE email IS NOT NULL 
  AND email != ''
  AND created_date >= 'YYYY-MM-DD'
ORDER BY donor_id

Error Handling

Common Error Scenarios:
Error TypeCauseResolution
Missing EmailDonor has no email addressSkip record, log warning
Invalid EmailEmail format validation failsCorrect format and retry
Duplicate EmailEmail already exists in DonorPerfectUpdate existing record
Field Too LongText exceeds DonorPerfect limitsTruncate and sync
API TimeoutLarge batch processingReduce batch size, retry

Data Quality Considerations

Best Practices

Before Sync

  • Validate all email addresses
  • Standardize name formatting
  • Clean duplicate records
  • Review address information

Ongoing Maintenance

  • Monitor sync error logs
  • Update invalid email addresses
  • Resolve duplicate conflicts
  • Maintain address accuracy

Data Validation Rules

Before Sync Checks:
  • Email address format and uniqueness
  • Name fields populated appropriately
  • Donor type correctly identified
  • Required fields not empty
Automatic Corrections:
  • Email format standardization
  • Phone number cleaning
  • Name case correction
  • Address standardization

Sync Status and Monitoring

Integration Status Fields

WeGive FieldPurposeValues
dp_idDonorPerfect donor IDInteger or null
synced_atLast sync timestampDateTime or null
sync_statusCurrent sync state’pending’, ‘synced’, ‘error’

Monitoring Dashboard

The WeGive Dashboard provides real-time sync status:
  • Sync Success Rate: Percentage of successful donor syncs
  • Error Summary: Common error types and counts
  • Last Sync Time: Most recent successful synchronization
  • Pending Records: Number of donors awaiting sync

Advanced Configuration

Custom Field Mapping

Custom Fields: Standard integration includes core fields. Contact [email protected] to configure custom field mappings specific to your DonorPerfect setup.

Selective Sync Options

Configure which donor data synchronizes:
  • New Donors Only: Sync only newly created donors
  • All Updates: Sync all donor profile changes
  • Contact Info Only: Sync contact details, skip address
  • Custom Filter: Define specific sync criteria

Troubleshooting

Common Issues

Possible Causes:
  • Missing or invalid email addresses
  • Donor sync disabled in configuration
  • API authentication issues
  • DonorPerfect permissions problems
Solutions:
  • Verify email address validity
  • Check integration configuration
  • Test API credentials
  • Review DonorPerfect user permissions
Possible Causes:
  • Multiple donors with same email
  • Case sensitivity in email matching
  • Previous sync interruptions
Solutions:
  • Clean duplicate emails before sync
  • Review email standardization
  • Re-sync with cleaned data
Possible Causes:
  • Incomplete address data in WeGive
  • Field length limitations in DonorPerfect
  • Address validation failures
Solutions:
  • Complete address information
  • Review field length limits
  • Manually correct problematic addresses
For additional help with donor data mapping, contact our support team at [email protected].