Fund Data Mapping
This document details the field-level mappings between WeGive fund records and Blackbaud Raiser’s Edge NXT fund records.Object Overview
WeGive Fund Object
- Purpose: Represents giving categories and designations in the WeGive platform
- API Endpoint:
/funds/{fund} - Unique Identifier: WeGive fund ID
- Management: Controls donation categorization and reporting
Blackbaud Fund Object
- Purpose: Represents funds, designations, and giving categories in Raiser’s Edge NXT
- API Endpoint:
fundraising/v1/funds/{fund_id} - Unique Identifier: Blackbaud fund ID
- Financial Management: Controls gift designations and financial reporting
Core Fund Mapping
Basic Fund Information
| WeGive Field | Blackbaud Field | Data Type | Direction | Required | Notes |
|---|---|---|---|---|---|
id | Correlation ID storage | String | Both | No | Stored in custom field or external reference |
name | description | String | Both | Yes | Fund display name |
code | fund_code | String | Both | No | Short fund identifier |
type | type | String | Both | No | Fund category classification |
status | status | String | Both | No | Active, Inactive, or Restricted |
goal | goal.value | Decimal | Both | No | Fundraising goal amount |
description | long_description | Text | Both | No | Detailed fund description |
Fund Classification
| WeGive Field | Blackbaud Field | Data Type | Direction | Required | Notes |
|---|---|---|---|---|---|
category | category | String | Both | No | Operating, Capital, Endowment, etc. |
subcategory | subcategory | String | Both | No | Detailed classification |
restricted | is_restricted | Boolean | Both | No | Whether fund has donor restrictions |
endowment | is_endowment | Boolean | Both | No | Endowment fund designation |
appeal_code | appeal_id | String | Both | No | Associated appeal or campaign |
Financial Information
| WeGive Field | Blackbaud Field | Data Type | Direction | Required | Notes |
|---|---|---|---|---|---|
target_amount | goal.value | Decimal | Both | No | Fundraising target |
raised_amount | Calculated field | Decimal | Pull Only | No | Total raised to date |
balance | current_balance | Decimal | Pull Only | No | Current fund balance |
spent_amount | Calculated field | Decimal | Pull Only | No | Total expenditures |
Fund Status and Lifecycle
| WeGive Field | Blackbaud Field | Data Type | Direction | Required | Notes |
|---|---|---|---|---|---|
active | status = “Active” | Boolean | Both | No | Fund accepting donations |
start_date | start_date | Date | Both | No | Fund activation date |
end_date | end_date | Date | Both | No | Fund closure date |
created_at | date_added | DateTime | Both | No | Fund creation timestamp |
updated_at | date_modified | DateTime | Both | No | Last modification timestamp |
Fund Type Mapping
Standard Fund Types
| WeGive Type | Blackbaud Type | Description |
|---|---|---|
general | Unrestricted | General operating funds |
restricted | Restricted | Donor-restricted funds |
capital | Capital | Building and capital campaigns |
endowment | Endowment | Permanent endowment funds |
scholarship | Scholarship | Educational scholarships |
program | Program | Specific program funding |
emergency | Emergency | Emergency or disaster relief |
memorial | Memorial | Memorial and tribute funds |
Fund Status Values
| WeGive Status | Blackbaud Status | Description |
|---|---|---|
active | Active | Currently accepting donations |
inactive | Inactive | Not accepting new donations |
suspended | Suspended | Temporarily unavailable |
closed | Closed | Permanently closed |
merged | Merged | Merged into another fund |
Campaign and Appeal Integration
Campaign Linkage
| WeGive Field | Blackbaud Field | Data Type | Direction | Required | Notes |
|---|---|---|---|---|---|
campaign_id | default_campaign_id | String | Both | No | Associated campaign |
campaign_name | Derived from campaign | String | Both | No | Campaign display name |
appeal_id | default_appeal_id | String | Both | No | Default appeal for fund |
appeal_name | Derived from appeal | String | Both | No | Appeal display name |
Marketing and Attribution
| WeGive Field | Blackbaud Field | Data Type | Direction | Required | Notes |
|---|---|---|---|---|---|
source_code | source_code | String | Both | No | Marketing source tracking |
package_code | package_id | String | Both | No | Direct mail package |
segment_code | segment_id | String | Both | No | Donor segment targeting |
Financial Reporting Configuration
Accounting Integration
| WeGive Field | Blackbaud Field | Data Type | Direction | Required | Notes |
|---|---|---|---|---|---|
gl_account | gl_account_number | String | Both | No | General ledger account |
cost_center | cost_center | String | Both | No | Cost center allocation |
department | department_code | String | Both | No | Department attribution |
project_code | project_id | String | Both | No | Project tracking code |
Tax and Compliance
| WeGive Field | Blackbaud Field | Data Type | Direction | Required | Notes |
|---|---|---|---|---|---|
tax_deductible | is_tax_deductible | Boolean | Both | No | Tax deductibility status |
grant_eligible | grant_eligible | Boolean | Both | No | Foundation grant eligibility |
irs_classification | irs_code | String | Both | No | IRS charitable classification |
Custom Fields and Attributes
Extended Fund Information
| WeGive Field | Blackbaud Field | Data Type | Direction | Required | Notes |
|---|---|---|---|---|---|
custom_fields | attributes | Object | Both | No | Organization-specific fields |
tags | fund_codes | Array | Both | No | Fund categorization tags |
keywords | search_keywords | Array | Both | No | Search and filtering keywords |
display_order | sort_order | Integer | Both | No | Display ordering preference |
Stewardship and Recognition
| WeGive Field | Blackbaud Field | Data Type | Direction | Required | Notes |
|---|---|---|---|---|---|
recognition_name | recognition_name | String | Both | No | Name for donor recognition |
public_description | public_description | Text | Both | No | Public-facing description |
internal_notes | internal_notes | Text | Both | No | Staff-only notes |
donor_benefits | benefits | Text | Both | No | Donor benefit description |
Data Transformation Rules
Name and Description Handling
Fund Names- Preserve original formatting and capitalization
- Maximum length: 255 characters
- Special characters allowed and preserved
- Duplicate name detection across systems
- HTML markup removed for compatibility
- Maximum length: 4000 characters
- Line breaks preserved where possible
- Rich text formatting converted to plain text
Amount and Financial Data
Currency Handling- All amounts stored in organization’s base currency
- Multi-currency support for international organizations
- Exchange rates captured at time of creation
- Historical rate preservation for reporting
- Goals rounded to nearest dollar
- Percentage completion calculated automatically
- Progress tracking updated with each gift
- Historical goal changes maintained
Date and Time Processing
Fund Lifecycle Dates- Start dates cannot be in the past when creating new funds
- End dates must be after start dates
- Timezone conversion for international organizations
- Date validation ensures logical sequence
- Status change history maintained
- Automatic timestamp recording
- User attribution for manual changes
- Audit trail for compliance
Sync Behavior
Create Operations
New WeGive Fund → Blackbaud Fund- Validate fund data and requirements
- Check for duplicate fund names or codes
- Create fund record in Blackbaud
- Set initial status and configuration
- Store correlation ID for future updates
- Configure default campaign/appeal linkage
- Extract fund information and attributes
- Map to WeGive fund format
- Preserve fund classification and status
- Create WeGive fund record
- Store correlation ID and external references
Update Operations
Bidirectional Updates- Fund name and description changes
- Status updates (active/inactive)
- Goal and target modifications
- Campaign and appeal associations
- Custom field and attribute updates
- Fund codes typically immutable after creation
- Status changes may require administrative approval
- Goal reductions may require audit justification
- Major description changes logged for review
Archive and Closure Operations
Fund Closure Process- Status change to “Closed” or “Archived”
- Final gift acceptance date recording
- Balance transfer to successor fund (if applicable)
- Historical data preservation
- Donor notification of fund closure
API Examples
Create Fund Record
WeGive to Blackbaud Fund CreationUpdate Fund Status
Blackbaud to WeGive Fund Status SyncFund with Campaign Integration
Complex Fund with Campaign LinkageError Handling and Validation
Required Field Validation
Critical Fields- Fund name/description must not be empty
- Fund code must be unique within organization
- Status must be valid enumerated value
- Goal amount must be positive if specified
- Date ranges must be logical (start before end)
- Name length validation (max 255 characters)
- Code format validation (alphanumeric plus hyphens)
- Amount precision validation (2 decimal places)
- Date format validation (ISO 8601)
- Status transition validation
Common Error Scenarios
Duplicate Fund Names- Error: Fund name already exists
- Resolution: Append identifier or modify name
- Action: Queue for administrative review
- Error: Fund code format invalid or duplicate
- Resolution: Generate alternative code or modify
- Action: Log warning and use system-generated code
- Error: End date before start date
- Resolution: Adjust dates or use open-ended range
- Action: Log error and notify administrators
Retry and Recovery Logic
Temporary Failures- Network timeouts: Retry with exponential backoff
- Rate limiting: Respect retry-after headers
- Server errors: Retry up to 3 times with delays
- Validation errors: Log and skip record
- Authorization errors: Alert system administrators
- Data conflicts: Queue for manual resolution
Performance Optimization
Batch Processing
Fund Creation Batches- Process up to 50 funds per API call
- Validate all fund data before batch submission
- Handle partial batch failures gracefully
- Progress tracking and status reporting
- Delta sync for changed records only
- Timestamp-based change detection
- Bulk update operations where supported
- Minimized API calls through intelligent batching
Caching Strategies
Reference Data Caching- Fund information cached for 30 minutes
- Campaign and appeal data cached for 15 minutes
- Status and type lookups cached for 2 hours
- GL account mappings cached for 1 hour
- Average fund sync time tracking
- API response time monitoring
- Error rate alerting by fund type
- Cache hit ratio optimization
Reporting and Analytics
Fund Performance Metrics
Sync Statistics- Total funds synchronized per period
- Success/failure rates by fund type
- Average sync time per fund
- Peak processing periods
- Validation error rates by field
- Missing required field frequency
- Duplicate detection accuracy
- Status transition compliance
Financial Analytics
Fund Performance Tracking- Goal achievement rates by fund type
- Average time to reach funding goals
- Donation frequency by fund
- Donor retention by fund category
- Fund performance across systems
- Discrepancy identification and resolution
- ROI analysis by fund type
- Cost-per-dollar-raised calculations
Fund Hierarchy and Relationships
Parent-Child Fund Relationships
| WeGive Field | Blackbaud Field | Data Type | Direction | Required | Notes |
|---|---|---|---|---|---|
parent_fund_id | parent_fund_id | String | Both | No | Parent fund relationship |
child_funds | sub_funds | Array | Both | No | Child fund listings |
hierarchy_level | Calculated | Integer | Both | No | Fund hierarchy depth |
rollup_totals | include_in_rollup | Boolean | Both | No | Include in parent totals |
Fund Groupings and Categories
| WeGive Field | Blackbaud Field | Data Type | Direction | Required | Notes |
|---|---|---|---|---|---|
fund_group | fund_group_id | String | Both | No | Fund grouping classification |
reporting_group | reporting_category | String | Both | No | Financial reporting group |
display_group | display_category | String | Both | No | Public display grouping |
Best Practices
Fund Management
- Consistent Naming: Use standardized fund naming conventions
- Clear Descriptions: Provide detailed fund purposes and restrictions
- Regular Review: Periodically review fund performance and status
- Proper Classification: Use appropriate fund types and categories
Data Quality
- Validation Rules: Implement comprehensive validation before sync
- Duplicate Prevention: Check for existing funds before creation
- Regular Audits: Compare fund data between systems regularly
- Cleanup Procedures: Maintain procedures for fund merging and closure
Performance Optimization
- Batch Operations: Use batch processing for bulk fund operations
- Selective Sync: Only sync changed fund records
- Caching Strategy: Cache frequently accessed fund data
- Monitoring: Track fund sync performance and errors
Compliance and Security
- Access Control: Limit fund modification permissions
- Audit Trail: Maintain complete change history
- Approval Workflows: Require approval for significant changes
- Backup Strategy: Regular backups of fund configuration
Troubleshooting Guide
Common Sync Issues
Fund Creation Failures- Verify fund name uniqueness
- Check fund code format and availability
- Validate goal amounts and date ranges
- Confirm user permissions for fund creation
- Review status transition rules
- Check for active donations preventing closure
- Verify user authorization for status changes
- Validate date constraints for status changes
- Compare calculation methods between systems
- Check for currency conversion issues
- Verify gift allocation and rollup logic
- Review date range filters for calculations
Data Quality Issues
Missing Fund Information- Check field mapping completeness
- Verify data availability in source system
- Review sync scope and filtering rules
- Validate required field population
- Review fund type and category mappings
- Check for custom field configuration differences
- Validate enumerated value consistency
- Confirm hierarchy relationship accuracy
Performance Problems
Slow Fund Processing- Optimize batch sizes for fund volume
- Review API response times and bottlenecks
- Check network connectivity and latency
- Monitor system resource utilization
- Analyze error patterns and common causes
- Review data validation rule effectiveness
- Check system capacity and rate limits
- Validate integration configuration settings
Support Resources
Documentation References
- Blackbaud Fund API Documentation
- WeGive Fund API Documentation
- Campaign Mapping Documentation
- Gift Mapping Documentation
Support Contacts
- WeGive Support: [email protected]
- Blackbaud Developer Support: Developer Community
- Financial Systems Integration: Available for complex fund management scenarios