Skip to main content

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

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
idCorrelation ID storageStringBothNoStored in custom field or notes
first_namefirstStringBothYesDefault “FNU” if empty
middle_namemiddleStringBothNoDirect mapping
last_namelastStringBothYesDefault “LNU” if empty
suffixsuffixStringBothNoJr., Sr., III, etc.
titletitleStringBothNoMr., Mrs., Dr., etc.
nicknamenicknameStringBothNoPreferred name
gendergenderStringBothNoMale, Female, Other, Unknown
birthdatebirthdateDateBothNoISO 8601 format
marital_statusmarital_statusStringBothNoSingle, Married, Divorced, etc.

Professional Information

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
job_titlejob_titleStringBothNoProfessional title
employeremployerStringBothNoCompany name
occupationoccupationStringBothNoJob description

Contact Information

Email Addresses

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
email_1Primary Email AddressEmail ObjectBothNoPrimary contact email
email_2Secondary Email AddressEmail ObjectBothNoAlternative email
email_3Work Email AddressEmail ObjectBothNoBusiness email
Email Address Object Structure (Blackbaud)
{
  "address": "[email protected]",
  "type": "Email",
  "primary": true,
  "do_not_email": false
}

Phone Numbers

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
mobile_phonePrimary PhonePhone ObjectBothNoMobile/primary phone
home_phoneHome PhonePhone ObjectBothNoHome phone
work_phoneBusiness PhonePhone ObjectBothNoWork phone
Phone Object Structure (Blackbaud)
{
  "number": "555-123-4567",
  "type": "Mobile",
  "primary": true,
  "do_not_call": false
}

Addresses

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
mailing_addressPrimary AddressAddress ObjectBothNoPreferred mailing address
home_addressHome AddressAddress ObjectBothNoResidential address
work_addressBusiness AddressAddress ObjectBothNoWork address
Address Object Structure (Blackbaud)
{
  "address_lines": "123 Main Street",
  "city": "Anytown",
  "state": "CA",
  "postal_code": "12345",
  "country": "United States",
  "type": "Home",
  "primary": true,
  "do_not_mail": false
}

Communication Preferences

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
email_opt_indo_not_emailBooleanBothNoInverted mapping
sms_opt_indo_not_call (mobile)BooleanBothNoInverted mapping
mail_opt_indo_not_mailBooleanBothNoInverted mapping
phone_opt_indo_not_callBooleanBothNoInverted mapping

Custom Fields

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
custom_fieldsAttribute CategoriesObjectBothNoConfigurable mappings
tagsConstituent CodesArrayBothNoCategory assignments
notesNotesArrayBothNoFree-form text notes

Organization Constituent Mapping

Basic Information

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
idCorrelation ID storageStringBothNoStored in custom field
namenameStringBothYesOrganization name
typeorganization_typeStringBothNoCorporation, Foundation, etc.
tax_idorganization_tax_idStringBothNoEIN or tax identifier
websitewebsiteURLBothNoOrganization website

Contact Information

Organization contacts use the same email, phone, and address mapping as individuals, with primary contacts designated.

Industry Information

WeGive FieldBlackbaud FieldData TypeDirectionRequiredNotes
industryindustryStringBothNoBusiness industry
sic_codesic_codeStringBothNoStandard Industrial Classification
naics_codenaics_codeStringBothNoNorth American Industry Classification

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)

Blackbaud FieldPurposeData TypeNotes
household_idHousehold identifierStringLinks individuals to household
household_nameHousehold nameStringCombined family name
household_addressPrimary household addressAddress ObjectShared address
household_membersFamily membersArrayIndividual constituent IDs

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
Organization Names
  • 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
Phone Formatting
  • Flexible input format acceptance
  • Standardized storage format
  • International number support
  • Extension handling
Address Standardization
  • 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
Required Field Handling
  • 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
  1. Validate required fields
  2. Check for existing constituent (email match)
  3. Create new constituent record
  4. Store correlation ID
  5. Create associated contact records (address, phone, email)
  6. Apply communication preferences
New Blackbaud Constituent → WeGive Donor
  1. Determine constituent type (individual/organization)
  2. Extract contact information
  3. Create WeGive donor record
  4. Store correlation ID
  5. Apply communication preferences

Update Operations

Bidirectional Updates
  • Last-modified timestamp comparison
  • Field-level change detection
  • Selective field updates
  • Conflict resolution logging
Field Priority Rules
  • 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 Request
POST /constituent/v1/constituents
{
  "type": "Individual",
  "first": "John",
  "last": "Smith", 
  "email": {
    "address": "[email protected]",
    "type": "Email",
    "primary": true
  },
  "phone": {
    "number": "555-123-4567",
    "type": "Home",
    "primary": true
  },
  "address": {
    "address_lines": "123 Main Street",
    "city": "Anytown",
    "state": "CA",
    "postal_code": "12345",
    "country": "United States",
    "type": "Home",
    "primary": true
  }
}

Update Constituent

Blackbaud to WeGive Sync
PUT /donors/{donor_id}
{
  "first_name": "John",
  "last_name": "Smith",
  "email_1": "[email protected]",
  "mobile_phone": "555-123-4567",
  "mailing_address": {
    "line_1": "123 Main Street",
    "city": "Anytown",
    "state": "CA",
    "postal_code": "12345",
    "country": "United States"
  },
  "blackbaud_id": "12345678-1234-1234-1234-123456789abc"
}

Error 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
Invalid Email Format
  • Error: Email address format invalid
  • Resolution: Skip email field
  • Action: Log error and continue without email
Duplicate Constituent
  • 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
Permanent Failures
  • 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
Performance Metrics
  • 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
Exception Reports
  • Failed sync operations
  • Data validation failures
  • Duplicate detection results
  • Manual review queue status

Best Practices

Data Management

  1. Clean Source Data: Ensure quality before sync
  2. Regular Audits: Monitor data consistency
  3. Backup Strategy: Maintain data backups
  4. Documentation: Keep field mapping records current

Performance Optimization

  1. Batch Processing: Use appropriate batch sizes
  2. Rate Limiting: Respect API limits
  3. Caching: Cache frequently accessed data
  4. Monitoring: Track performance metrics

Security Considerations

  1. Data Encryption: Encrypt sensitive data in transit and at rest
  2. Access Control: Limit sync permissions
  3. Audit Logging: Maintain complete audit trails
  4. Compliance: Follow data protection regulations

Troubleshooting Guide

Common Issues

Sync Failures
  • Check network connectivity
  • Verify API credentials
  • Review rate limiting status
  • Validate data format
Data Mismatches
  • Compare field mappings
  • Check transformation rules
  • Review conflict resolution
  • Validate correlation IDs
Performance Issues
  • Monitor batch sizes
  • Check API response times
  • Review error rates
  • Optimize sync timing

Support Resources