Skip to main content

Data Mapping Overview

This section documents how data flows between WeGive and Blackbaud Raiser’s Edge NXT, object by object.

Synchronization Model

Authentication
  • OAuth2 with PKCE
  • Automatic token refresh
API Integration
  • Blackbaud Sky API REST endpoints
  • Rate limiting and automatic retry on transient failures
Data Flow
  • Pull runs on a fixed platform-wide schedule (every 15 minutes) — there’s no webhook-based real-time pull
  • Push happens in real time for most objects, with an opt-in daily batch mode for transactions
See Configuration Options for the full picture of what’s configurable vs. fixed platform behavior.

Core Object Relationships

Household constituents and communication lists/segments aren’t part of this integration in either direction. See Configuration Options for details.

Detailed Object Mappings

Constituent Mapping

Field mappings for donor and company records — note that WeGive’s multiple email/phone/address fields map down to a single selected value per constituent, not a parallel multi-field sync.

Gift Mapping

Transaction and payment mappings.

Fund Mapping

Fund mappings — pull only.

Campaign Mapping

Campaign mappings — pull only.

Recurring Gift Mapping

Recurring donation mappings.

Duplicate Prevention

Matching is strictly by Raiser’s Edge ID — there’s no email or name-based fuzzy matching. A record created directly in Raiser’s Edge outside this integration has no shared identifier and won’t be recognized on a later sync.

Troubleshooting Common Issues

Sync Failures

Authentication Errors
  • Verify OAuth2 credentials
  • Check token expiration and refresh
Rate Limiting
  • The integration retries automatically on rate-limit responses, honoring Blackbaud’s Retry-After header

Data Quality Issues

Records not matching between systems
  • Confirm the record’s Raiser’s Edge ID is actually set on the WeGive side — matching only works via that ID
  • A record created outside the WeGive integration (directly in Raiser’s Edge, or via manual import) won’t have this ID and will sync as a new record

Support Resources