Fund Data Mapping

This document details how WeGive funds are mapped to DonorPerfect GL codes, enabling proper fund designation and financial reporting across both systems.

DonorPerfect Table Reference

Primary Table: dpcode (Code Tables)
WeGive Model: Fund
Sync Direction: WeGive → DonorPerfect (Push Only)

Fund Integration Overview

GL Code Management

Mapping Strategy:
  • Each WeGive fund can have an associated DonorPerfect GL code
  • GL codes are automatically created in DonorPerfect for new funds
  • Existing GL codes are updated when fund information changes
  • Fund descriptions sync to GL code descriptions
DonorPerfect Code Types:
  • Field Name: ‘GL_CODE’ (General Ledger codes)
  • Code Value: WeGive fund ID or custom code
  • Description: WeGive fund name/description
  • User ID: ‘WeGive’ for tracking integration records

Core Fund Fields

Primary Identifiers

WeGive FieldDonorPerfect FieldTypeNotes
id@codeStringWeGive fund ID used as GL code
name@descriptionStringFund name/description
N/A@field_nameStringAlways set to ‘GL_CODE’
N/A@user_idStringAlways set to ‘WeGive’
Alternative Mapping:
  • Some funds may have custom DonorPerfect GL codes
  • Custom codes stored in dp_gl_code field on WeGive fund
  • Integration uses custom code if available, otherwise uses fund ID
  • Enables alignment with existing DonorPerfect chart of accounts

Fund Information

WeGive FieldDonorPerfect FieldTypeMax LengthNotes
name@descriptionString50Fund display name
descriptionNot mappedString-Extended description not synced
categoryNot mappedString-Fund categories not synced
Truncation Rules:
  • Fund names longer than 50 characters are automatically truncated
  • Truncation preserves word boundaries where possible
  • Ellipsis (…) added to indicate truncated names
  • Full names maintained in WeGive system

GL Code Creation Process

Automatic GL Code Generation

1

Fund Created in WeGive

New fund established in WeGive system
2

GL Code Check

Integration checks if GL code exists in DonorPerfect
3

Code Creation

Creates new GL code if it doesn’t exist
4

Description Sync

Updates GL code description with fund name
5

Validation

Confirms GL code is available for transaction use

GL Code Update Process

Update Workflow:
  • WeGive fund name change triggers GL code update
  • DonorPerfect GL code description updated automatically
  • Historical transactions retain original descriptions
  • New transactions use updated fund names
Active/Inactive Status:
  • WeGive fund deactivation doesn’t delete GL codes
  • GL codes remain available for historical reporting
  • New transactions prevented for inactive funds
  • Reactivation restores full functionality

Data Flow Patterns

Fund Synchronization

Creation Sequence:
  1. WeGive fund created by administrator
  2. Integration detects new fund
  3. GL code created in DonorPerfect dpcode table
  4. Success confirmation stored in WeGive
  5. Fund available for transaction designation
Modification Handling:
  • Fund name changes sync to GL code descriptions
  • Fund category changes don’t sync (not supported)
  • Fund deactivation preserves GL code but prevents new use
  • Fund reactivation restores full GL code functionality

Transaction Integration

Usage Pattern:
  • Donations specify WeGive fund for designation
  • Integration maps fund to appropriate GL code
  • Transaction syncs to DonorPerfect with GL code
  • Fund reporting available in both systems
Pre-Transaction Checks:
  • Verify GL code exists before transaction sync
  • Create GL code if missing (automatic)
  • Validate fund is active and available
  • Ensure proper permissions for GL code use

API Operations

DonorPerfect GL Code Management

Required Parameters:
@field_name = 'GL_CODE'
@code (fund ID or custom GL code)
@description (fund name)
@user_id = 'WeGive'
SQL Query Example:
SELECT field_name, code, description
FROM dpcode 
WHERE field_name = 'GL_CODE'
  AND user_id = 'WeGive'
ORDER BY code

Error Handling

GL Code Errors: Invalid or duplicate GL codes can prevent transaction processing.
Error TypeCauseResolution
Duplicate CodeGL code already existsUse existing code or create variant
Invalid CharactersGL code contains invalid charactersClean code format and retry
Code Too LongGL code exceeds DonorPerfect limitsTruncate or use alternative code
Permission ErrorInsufficient rights to create codesVerify API permissions
API TimeoutDonorPerfect API unavailableRetry with backoff delay

Fund Configuration

WeGive Fund Setup

Required Fields:
  • Fund name (required, becomes GL code description)
  • Fund status (active/inactive)
  • Organization assignment
Optional Fields:
  • Custom DonorPerfect GL code (dp_gl_code)
  • Fund description (extended, doesn’t sync)
  • Fund category (internal use only)
When to Use Custom Codes:
  • Aligning with existing DonorPerfect chart of accounts
  • Meeting specific accounting requirements
  • Maintaining consistent numbering schemes
  • Supporting multi-organization structures
Configuration Process:
  1. Determine appropriate GL code in DonorPerfect
  2. Set dp_gl_code field in WeGive fund
  3. Integration uses custom code instead of fund ID
  4. Verify code availability and permissions

DonorPerfect GL Code Requirements

DonorPerfect Limitations:
  • Maximum length: varies by DonorPerfect configuration
  • Allowed characters: typically alphanumeric and dashes
  • Case sensitivity: depends on DonorPerfect settings
  • Special characters: limited support
Best Practices:
  • Use consistent numbering schemes
  • Group related funds with similar prefixes
  • Maintain alignment with accounting standards
  • Document GL code purposes and usage

Sync Configuration

Fund Sync Settings

Sync Events:
  • New fund created in WeGive
  • Fund name changed
  • Fund status modified (active/inactive)
  • Custom GL code assigned or changed
Processing Schedule:
  • Real-time: New funds and critical changes sync immediately
  • Batch: Name updates and status changes sync every 15 minutes
  • Manual: Force sync available through dashboard
  • Validation: Pre-transaction GL code verification

Performance Considerations

Efficient Processing

  • Batch GL code creation for multiple funds
  • Cached GL code validation for transactions
  • Minimal API calls for existing codes
  • Optimized query performance

Error Recovery

  • Automatic retry for failed GL code creation
  • Alternative code generation for conflicts
  • Manual override options for complex cases
  • Comprehensive error logging and alerts

Data Quality and Validation

Pre-Sync Validation

Quality Checks:
  • Fund name is not empty
  • Fund name length within limits
  • GL code format is valid
  • No duplicate GL codes
  • Proper organization assignment
Format Validation:
  • Alphanumeric characters only
  • Appropriate length for DonorPerfect
  • No conflicting existing codes
  • Consistent with organizational standards

Monitoring and Reporting

Dashboard Metrics:
  • Total funds synced to DonorPerfect
  • GL code creation success rate
  • Recent sync errors and resolutions
  • Fund-to-transaction mapping accuracy
Reporting Consistency:
  • Fund designation accuracy across systems
  • GL code usage in transaction reports
  • Fund performance comparisons
  • Donation attribution verification

Best Practices

Fund Management

1

Plan GL Code Structure

Design consistent numbering scheme before creating funds
2

Use Descriptive Names

Create clear, concise fund names within character limits
3

Maintain Active Status

Regularly review and update fund statuses as needed
4

Monitor Sync Status

Check integration dashboard for GL code sync issues

Integration Optimization

Proactive Management

  • Create funds before launching campaigns
  • Test GL code creation in development
  • Plan for fund lifecycle management
  • Document fund purposes and usage

Error Prevention

  • Validate fund names before creation
  • Check for duplicate GL codes
  • Maintain consistent naming conventions
  • Review DonorPerfect GL code standards

Troubleshooting

Common Fund Sync Issues

Possible Causes:
  • Fund sync disabled in configuration
  • API permission issues
  • Invalid fund name or format
  • DonorPerfect connection problems
Solutions:
  • Verify fund sync settings enabled
  • Check API credentials and permissions
  • Validate fund name format
  • Test DonorPerfect API connectivity
Possible Causes:
  • GL code already exists in DonorPerfect
  • Multiple funds using same custom code
  • Case sensitivity conflicts
Solutions:
  • Check existing GL codes in DonorPerfect
  • Use unique codes for each fund
  • Verify case sensitivity settings
Possible Causes:
  • GL code missing from DonorPerfect
  • Fund inactive or deleted
  • GL code format issues
Solutions:
  • Verify GL code exists and is active
  • Check fund status in WeGive
  • Validate GL code format requirements

Limitations and Considerations

Known Limitations

Important Fund Limitations:
Unsupported Fields:
  • Extended fund descriptions don’t sync
  • Fund categories not mapped to DonorPerfect
  • Fund hierarchies not supported
  • Custom fund attributes don’t sync
DonorPerfect Limitations:
  • Character limits vary by configuration
  • Special character restrictions
  • Case sensitivity depends on settings
  • Deletion restrictions for codes in use

Future Considerations

Potential Improvements:
  • Support for fund hierarchies
  • Extended description mapping
  • Fund category synchronization
  • Custom attribute mapping
Possible Enhancements:
  • Automatic code numbering schemes
  • Fund consolidation capabilities
  • Advanced reporting integration
  • Multi-dimensional fund tracking
For additional help with fund data mapping, contact our support team at [email protected].