Integrations overview
Last updated: April 30, 2026
Integrations overview
Integrations connect WeGive to the other systems your organization runs on — your CRM, your church management system, e-signature tools, and more — so that data flows between them without manual exports and imports.
This article explains what integrations are, what they can do, and where to find them in your dashboard. If you're ready to set one up, see Setting up an integration. For the current list of supported tools, see Available integrations.
What an integration does
When you connect an integration, WeGive can:
Push data out of WeGive to the connected system — donors, funds, transactions, or other records you create in WeGive flow into your CRM or accounting system.
Pull data into WeGive from the connected system — existing donors, funds, and historical activity in your CRM appear in WeGive so you have one consistent view.
Stay in sync over time — once connected, most integrations sync automatically as new activity happens, with manual sync controls if you ever need to force a refresh.
Each integration controls its own set of toggles, so you can choose exactly which directions of sync you want. For example, you might pull donors from your CRM but only push transactions back, depending on which system you treat as the source of truth.
Where integrations live
You'll find integrations under the Integrations section of the dashboard. The main Integrations page lists every integration WeGive supports, with a tile for each one. From there you click into a specific integration to view its status, configure it, and run syncs.
Each integration has its own settings page where you'll see:
A connection section (the credentials WeGive uses to talk to the other system)
A sync configuration section (which records flow which direction)
Status information (whether it's currently connected, when it last synced)
Manual sync controls
Two ways integrations connect
WeGive integrations use one of two authentication patterns, depending on what the connected system supports.
API key. You generate a key in the other system (for example, Bloomerang) and paste it into WeGive. WeGive stores the key and uses it on every sync. You may also be asked for a default fund ID or similar identifier so WeGive knows where to route records.
OAuth. You provide WeGive with credentials from the other system (typically a Client ID and Client Secret, sometimes a Subscription Key) and then click a button to authorize WeGive. A new tab opens to the other system, you log in there and grant access, then return to WeGive and refresh the status. WeGive doesn't see your password — only the access token the other system issues.
The setup article walks through both patterns in detail.
Permissions
Setting up integrations changes how data flows in and out of your organization, so it's typically restricted to admin-level users. If you don't see the Integrations section in your dashboard, ask the org owner or an admin to grant you access.
For technical users
This appendix is for developers, IT admins, and technical staff who want to understand what's happening behind the scenes.
Architecture
Each integration in WeGive is implemented as a pair: a backend controller (PHP/Laravel) that handles credential storage, OAuth handshakes, and sync jobs, and a frontend Vue component (in wegive-dashboard-v2/src/views/integrations/) that renders the settings page.
Integrations are registered with metadata used by the main Integrations page — id, settingsRouteName, and faviconDomain are the fields the index page uses to render tiles and route users into each integration's own settings page.
Sync model
For CRM integrations, sync configuration is expressed as a set of independent boolean toggles per record type and direction. For example, the Bloomerang integration exposes:
push_donors,pull_donorspush_funds,pull_fundspush_transactions,pull_transactions
Each toggle is independent — you can pull donors without pushing them, or vice versa. When you save the sync configuration, those flags are persisted on the integration record on the WeGive side and respected by the sync jobs.
OAuth flow
OAuth integrations follow a standard pattern:
Admin enters Client ID, Client Secret (and Subscription Key where applicable) on the integration settings page.
Admin clicks the OAuth button. The frontend calls an
initiateendpoint (e.g.,POST /salesforce-integration/oauth/initiate).Backend generates the authorization URL using the stored credentials and returns it.
Frontend opens the URL in a new tab. Admin authorizes on the external service.
External service redirects back to WeGive's callback URL, which exchanges the code for an access token and stores it.
Admin returns to the WeGive tab and refreshes connection status.
Manual sync
Each integration's settings page includes a manual sync action. The pattern is "Sync all" vs "Sync since last update," with a confirmation dialog to prevent accidental large syncs. Manual syncs hit a POST /<integration>/sync endpoint and run as queued background jobs.
Error handling
User-facing errors surface through a snackbar component with messages like "Failed to save [integration] connection settings" or "Failed to initiate OAuth flow." Detailed error context is logged to the integration log, which admins can review on the Integration Logs page.
Disconnecting
OAuth integrations expose a disconnect endpoint (e.g., disconnectOauth) that revokes the stored token. API-key integrations are disconnected by clearing the API key field and saving.