Skip to main content

DonorPerfect Integration Configuration

Configure your DonorPerfect integration settings to control how data synchronizes between WeGive and DonorPerfect.
Most of the “sync preference” toggles below are currently non-functional. crm_sync, two_way_sync, track_donations, track_donors, track_recurring_donations, and track_campaigns are all saved and audit-logged when you change them, but none of them are read anywhere in the integration’s actual sync code — the only setting that controls whether sync happens at all is Enabled. This is a known product defect and known issue. Don’t rely on any toggle below except Enabled to actually change sync behavior.

Access Configuration Settings

  1. Log into your WeGive Dashboard
  2. Navigate to Settings > Integrations
  3. Select DonorPerfect Integration
  4. Configure your API credentials (the only settings that currently have real effect, along with Enabled)

Basic Configuration

API Credentials

api_key · string · required Your DonorPerfect API key for authentication instance_url · string Custom DonorPerfect server URL (optional — defaults to production endpoint)

Integration Status

enabled · boolean · default: false Master switch to enable or disable the entire integration. This is the only setting that actually gates sync activity — there’s no way to sync some object types but not others.

What Actually Syncs (unconditional once enabled)

Non-Functional Settings (see warning above)

These fields exist in the dashboard, are saved, and are audit-logged — but currently have no effect on sync behavior:
  • crm_sync
  • two_way_sync
  • track_donations
  • track_donors
  • track_recurring_donations
  • track_campaigns (doubly so — there’s no Campaign sync to gate even if this were wired up)

Field Mapping

There is no customer-configurable field-mapping mechanism for this integration — fields sync via a fixed, hardcoded correspondence built directly into exportDonor()/syncGift()/syncScheduledDonation(). There’s no “Mapping Rules” UI (the legacy dashboard’s tab for this is commented out in source) and no custom-field support. See Data Mapping for the exact field list.

Sync Timing

  • Push: Donor, transaction, fund, and scheduled-donation pushes happen as each WeGive record is created or updated — this part genuinely is real-time
  • Pull: Donors and gifts are pulled once daily via a two-pass incremental query (created_date then modified_date)
  • There’s no way to force an immediate pull or manually trigger a full resync from the dashboard

Error Handling and Monitoring

  • Retry Logic: There is none — every DonorPerfect API call is a single unretried request. A failed call is not automatically retried.
  • Error Logging: Failures are reported to Sentry; there’s no customer-facing error surface on the dashboard
  • Status Monitoring: There’s no real-time sync-status indicator in the dashboard for this integration

Data Validation Rules

Donor Requirements

  • A pulled DonorPerfect donor row without a present, non-empty, filter_var-valid email address is skipped entirely — not partially imported
  • On push, a blank first/last name is not itself a hard requirement — DonorPerfect’s API records what’s sent

Transaction Validation

  • A zero-amount gift is skipped on import
  • Fund resolution depends on a fund already having a dp_id (from a prior syncFund() call) — GL codes must exist and be linked before a transaction can carry fund attribution

Testing and Validation

Configuration Testing

Before enabling the integration:
  1. Verify API Credentials: Confirm the API key is valid via DonorPerfect’s own testing tools
  2. Test with a small dataset: There’s no WeGive-side sandbox/test-sync mode — any push while enabled is a real push to DonorPerfect
  3. Confirm GL code setup: Fund GL codes should exist in DonorPerfect before enabling, since fund push failures aren’t customer-visible

Troubleshooting Common Issues

API Connection Problems

  • Invalid API Key: Verify the key is correct and active
  • Permission Issues: Ensure the API key has permissions for donor, gift, and code (GL code) management

Data Sync Issues

  • Missing Donors: Check the donor’s email address in DonorPerfect — an invalid/missing email silently skips that donor on pull
  • Fund/GL Code Errors: Verify the GL code exists and is linked before pushing a gift referencing that fund
  • Sync toggles not working as expected: See the warning at the top of this page — this is expected, not a misconfiguration, until a known issue ships a fix

Next Steps

Data Mapping Guide

Learn how data is mapped between WeGive and DonorPerfect

Integration Nuances

Understand platform-specific behaviors and limitations

Support

Need help with configuration? Contact our support team at [email protected] for assistance with setup and troubleshooting.