Donation Object Mapping
This document details the comprehensive mapping between Neon CRM donation objects and WeGive transaction records, including payment processing, field mappings, and synchronization behavior.
Object Overview
Neon Donation Object
Represents financial transactions in Neon CRM including gifts, payments, and related processing information.
WeGive Transaction Object
Represents donation transactions in WeGive including payment methods, fees, and donor attribution.
Core Donation Mapping
WeGive Transaction to Neon Donation
WeGive Field Neon Field Data Type Direction Required Transformation idCorrelation ID UUID/String - No Stored for tracking amountamountDecimal Bidirectional Yes Cents to dollars (÷100) fee_amountdonorCoveredFeeDecimal Bidirectional No Cents to dollars (÷100) cover_feesFee calculation Boolean Export No Used to calculate donorCoveredFee currencyCurrency String Export No Default USD
WeGive Field Neon Field Data Type Direction Required Transformation created_atdateDateTime Bidirectional Yes ISO 8601 format payout.paid_atreceivedDateDate Export Only No Date formatting
Attribution
WeGive Field Neon Field Data Type Direction Required Transformation owner (donor)accountIdInteger Bidirectional Yes Donor correlation donor_namedonorNameString Bidirectional Yes Computed from donor campaigncampaign.idInteger Bidirectional No Campaign reference anonymousanonymousTypeString Bidirectional No Boolean to string
WeGive Field Neon Field Data Type Direction Required Transformation tribute_nametribute.nameString Bidirectional No Direct mapping tribute_typetribute.typeString Export No Default “Honor”
Integration Fields
WeGive Field Neon Field Data Type Direction Required Transformation neon_ididInteger Correlation No Donation reference neon_payment_idpayments[0].idInteger Correlation No Payment reference
Payment Processing
Payment Method Mapping
Tender Type Mapping
WeGive Source Type Neon Tender Type Neon Code Description cardCredit Card Offline 2 Credit/debit card payments bankCheck 3 ACH and bank transfers donorCheck 3 Donor-funded payments cashCash 1 Cash donations checkCheck 3 Physical check payments otherOther 10 Other payment methods
Credit Card Processing
For credit card payments (source_type = 'card'):
WeGive Field Neon Field Data Type Transformation source.last_fourcreditCardOffline.cardNumberLastFourString Padded to 4 digits source.issuercreditCardOffline.cardTypeCodeString Card type mapping source.expirationcreditCardOffline.expirationMonth/YearString Split MM/YY format owner.email_1creditCardOffline.cardHolderEmailEmail Cardholder email owner.namecreditCardOffline.cardHolderNameString Cardholder name
Card Type Mapping
WeGive Card Type Neon Card Code Full Name visaV Visa mastercardM MasterCard amexA American Express discoverD Discover
Bank Transfer Processing
For bank transfers (source_type = 'bank'):
WeGive Field Neon Field Data Type Transformation source.last_fourcheck.accountNumberString Account number (last 4) source.namecheck.institutionString Bank/institution name owner.namecheck.accountOwnerString Account owner name check.accountTypeFixed String Set to “Checking”
Payment Object Structure
Credit Card Payment
"cardHolderName" : " John Smith " ,
"cardHolderEmail" : " john.smith@example.com " ,
"cardNumberLastFour" : " 1234 " ,
"note" : " https://dashboard.wegive.com/payments/donations/12345 "
Bank Transfer Payment
"accountType" : " Checking " ,
"institution" : " First National Bank " ,
"accountOwner" : " Jane Doe "
"note" : " https://dashboard.wegive.com/payments/donations/12346 "
Campaign Integration
Campaign Reference
When transactions are associated with campaigns:
WeGive Field Neon Field Data Type Required Transformation campaign.idcampaign.idInteger No Campaign correlation campaign.namecampaign.nameString No Campaign name campaign.statuscampaign.statusString No Default “ACTIVE”
Campaign Object Structure
"name" : " Annual Fundraiser 2024 " ,
Complete Donation Structure
Full Neon Donation Object
"donorName" : " John Smith " ,
"date" : " 2024-01-15T10:30:00Z " ,
"name" : " Annual Fundraiser 2024 " ,
"name" : " In memory of Sarah Johnson " ,
"anonymousType" : " NOT_ANONYMOUS " ,
"sendAcknowledgeEmail" : false ,
"cardHolderName" : " John Smith " ,
"cardHolderEmail" : " john.smith@example.com " ,
"cardNumberLastFour" : " 1234 " ,
"note" : " https://dashboard.wegive.com/payments/donations/12345 "
Amount Conversion
WeGive Storage : Amounts stored in cents (integer)
Neon Format : Amounts in dollars (decimal)
Conversion : WeGive amount ÷ 100 = Neon amount
Example : WeGive 10000 cents = Neon $100.00
WeGive Format : ISO 8601 datetime
Neon Format : ISO 8601 date or datetime
Timezone : UTC conversion applied
Example : “2024-01-15T10:30:00Z”
Anonymous Type Mapping
WeGive Anonymous Neon Anonymous Type Description true”ANONYMOUS” Fully anonymous donation false”NOT_ANONYMOUS” Named donation null”NOT_ANONYMOUS” Default to named
Fee Calculation
// Donor-covered fee calculation
if ( transaction . cover_fees && transaction . fee_amount ) {
donorCoveredFee = transaction . fee_amount / 100 ;
Custom Field Mapping
Default Donation Mappings
The integration includes pre-configured mappings:
Integration Path WeGive Path Purpose Level donorNamedonor_nameDonor name display Bidirectional amountamountDonation amount Bidirectional datecreated_atTransaction date Bidirectional receivedDatepayout.paid_atPayout date Export only anonymousTypeanonymousAnonymous flag Bidirectional donorCoveredFeefee_amountFee amount Bidirectional tribute.nametribute_nameTribute name Bidirectional
Adding Custom Mappings
Organizations can add custom donation field mappings:
"integration" : " DONATION " ,
"integration_path" : " customField.value " ,
"wegive_path" : " custom_field_name " ,
Synchronization Behavior
Donation Creation
Account Verification : Ensures donor account exists in Neon CRM
Campaign Sync : Syncs associated campaign if not already present
Payment Processing : Creates payment record with donation
Correlation Tracking : Stores Neon donation and payment IDs
Donation Updates
Existing Check : Uses neon_id to identify existing donations
Payment Handling : Updates existing payments or creates new ones
Field Updates : Updates modifiable fields only
Immutable Fields : Respects Neon CRM restrictions on changes
Import from Neon CRM
Donation Search : Uses search API with date filters
Account Matching : Matches Neon accounts to WeGive donors
Transaction Creation : Creates new WeGive transactions
Status Setting : Sets appropriate transaction status
Error Handling
Validation Errors
Missing Account : Clear errors when donor account not found
Invalid Amount : Amount validation with minimum/maximum checks
Payment Method : Validation of payment method data
Date Format : Date validation and format correction
Resolution Strategies
Account Creation : Automatic donor account creation when missing
Data Correction : Tools for correcting invalid payment data
Retry Logic : Automatic retry for transient failures
Manual Review : Administrative interface for complex errors
Batch Processing
Large Imports : Efficient processing of large donation datasets
Payment Optimization : Optimized payment creation and updates
Campaign Batching : Batch campaign synchronization before donations
Error Handling : Graceful handling of partial batch failures
API Optimization
Rate Limiting : Respectful API usage with throttling
Parallel Processing : Concurrent processing where possible
Memory Management : Efficient memory usage for large datasets
Caching : Smart caching of frequently accessed data
API Examples
Creating Donation
"date" : " 2024-01-20T14:30:00Z " ,
"name" : " Annual Fundraiser 2024 " ,
"anonymousType" : " NOT_ANONYMOUS " ,
"sendAcknowledgeEmail" : false ,
"accountType" : " Checking " ,
"institution" : " Community Bank " ,
"accountOwner" : " Jane Doe "
"note" : " https://dashboard.wegive.com/payments/donations/12347 "
Searching Donations
POST /v2/donations/search
"field" : " Donation Created Date " ,
"operator" : " GREATER_THAN " ,
Updating Donation
"name" : " Updated tribute name " ,
Best Practices
Data Quality
Amount Validation : Ensure amounts are positive and realistic
Payment Verification : Verify payment method details before sync
Date Consistency : Maintain consistent date formats and timezones
Campaign Validation : Ensure campaigns exist before donation creation
Integration Management
Regular Monitoring : Monitor donation sync performance and errors
Fee Tracking : Track and validate fee calculations
Payment Security : Ensure secure handling of payment information
Reconciliation : Regular reconciliation between platforms
Batch Operations : Use batch operations for large donation imports
Incremental Sync : Sync only new or modified donations
Error Recovery : Implement robust error recovery mechanisms
Monitoring : Monitor API usage and performance metrics
This comprehensive donation mapping ensures accurate financial transaction synchronization between WeGive and Neon CRM while maintaining payment security and data integrity.