HubSpot Integration: Overview & Setup
Last updated: April 23, 2026
The WeGive HubSpot integration keeps supporter records, one time donations, and recurring donations aligned between WeGive and HubSpot CRM. Supporters become HubSpot contacts and companies, donations become deals in a Donations pipeline, and recurring plans become deals in a Recurring Donations pipeline. This article covers what syncs, how often, and how to connect the two systems.
What Syncs
At a glance, here is how each WeGive object maps to HubSpot:
WeGive | HubSpot |
Supporter (individual) | Contact |
Supporter (company) | Company |
Household | Company (distinguished by a WeGive property) |
Transaction | Deal (Donations pipeline) |
Scheduled Donation | Deal (Recurring Donations pipeline) |
Campaign | Deal property on related deals (not a separate HubSpot record) |
Fund | Deal property on related deals (not a separate HubSpot record) |
Full field-level mappings are covered in later articles:
Article 2: Contacts & Companies
Article 3: Donations
Article 4: Recurring Donations
Article 5: Supporting Records & What Is Not Mapped
Sync Timing
The integration runs in two directions.
Push (WeGive to HubSpot) happens in near real time. When a supporter is created, a donation is completed, or a recurring plan changes state in WeGive, the update is pushed to HubSpot within seconds.
Pull (HubSpot to WeGive) runs on a scheduled interval, every 15 minutes by default. Contact and company edits made in HubSpot flow back into WeGive on that cadence.
Deletion sync flows one direction only, from HubSpot to WeGive. When a contact, company, or deal is deleted in HubSpot, WeGive receives a secure webhook notification and soft-deletes the matching record. Deletion sync can be toggled on or off in the integration settings. See Article 6 (coming soon) for the full deletion behavior.
For the first sync after connecting, an initial backfill runs on the background job queue. Depending on the size of the HubSpot portal, the first full sync can take anywhere from a few minutes to a few hours.
Prerequisites
On the HubSpot side
HubSpot requirements and supported tiers:
Requirement | Detail |
HubSpot subscription | Any tier that includes the CRM. Free, Starter, Professional, and Enterprise are all supported. |
API access | Enabled on the HubSpot account. |
User permissions | The person completing the connection must have admin access in HubSpot. |
Pipeline capacity | Free HubSpot accounts have a single pipeline. The integration handles this by adding stages to the default pipeline instead of creating two new ones. Starter allows 15 pipelines and Professional or higher allows 50, so paid tiers get two dedicated pipelines. |
Testing the integration before you go live: HubSpot sandboxes are an Enterprise-only feature. If you are on Free, Starter, or Professional and want a safe space to validate the connection before pointing it at your production data, create a free HubSpot developer test account at developers.hubspot.com and connect it to a WeGive test organization. The integration behaves identically on a developer test account, so anything you see there will match production.
On the WeGive side
WeGive requirements for enabling the integration:
Requirement | Detail |
WeGive plan | The HubSpot integration must be enabled for the organization. |
User permissions | Admin access in WeGive is required to authorize the connection and configure sync settings. |
Organization setup | Funds and campaigns should be created before enabling sync so attribution flows to HubSpot correctly. |
Authentication
The integration uses OAuth 2.0 with a WeGive-managed HubSpot app. You do not need to generate an API key, create a private app in HubSpot, or configure any credentials. WeGive handles token exchange, storage, and refresh automatically. Access tokens are valid for 30 minutes and are refreshed automatically before expiry.
Connection Steps
Follow these steps in order. Most customers can complete the connection in under ten minutes.
Step 1: Open the integration
Sign in to your WeGive dashboard as an admin.
Go to Data > Integrations.
Click HubSpot from the list of available integrations.
Step 2: Start the OAuth flow
Click Connect to HubSpot.
You are redirected to HubSpot's sign in page. Sign in with a HubSpot admin account.
HubSpot asks you to approve the permissions WeGive needs. Click Choose Account and then Connect app.
If you see an OAuth error, the most common cause is that your HubSpot user is not an admin in the portal. Switch to a user with admin rights and try again.
Step 3: Provision HubSpot
After the OAuth handshake is complete, click Provision HubSpot in the integration settings. This creates everything WeGive needs in your HubSpot portal. Provisioning is idempotent, so if you click it a second time, existing items are safely skipped.
Provisioning creates three categories of items.
Deal pipelines. On paid tiers, two separate pipelines are created. On Free tier, stages are added to the existing default pipeline instead.
Pipelines and their stages:
Pipeline | Stages |
Donations | Success, Attempted, Failed |
Recurring Donations | Active, Paused, Cancelled, Ended, In Arrears, Missing, Archived, Expiring Soon, Ending Soon |
Custom properties (54 total). A wegive_* namespaced property is created on Contacts, Companies, and Deals so donation data can be reported on and segmented inside HubSpot.
Custom property counts by HubSpot object:
Object | Count | Examples |
Contact | 22 |
|
Company | 9 |
|
Deal | 23 |
|
The full field lists are in Articles 2, 3, and 4.
Custom association labels. Two HubSpot association labels are provisioned so relationships between records can be modeled accurately.
Association labels WeGive creates during provisioning:
Label | Association | Used For |
Household | Contact to Company | Marking household members on their household Company record, so household relationships do not get confused with employer relationships. |
Recurring Plan | Deal to Deal | Linking an individual transaction deal to its parent recurring plan deal in the Recurring Donations pipeline. |
Step 4: Configure sync settings
Back in WeGive, review each toggle and set it based on how your team uses HubSpot.
Push settings (WeGive to HubSpot):
Setting | What it does |
Push supporters as contacts | Individual supporters are created or updated as HubSpot contacts. |
Push households as companies | WeGive households are created or updated as HubSpot companies. |
Push transactions as deals | Completed and attempted transactions create deals in the Donations pipeline. |
Push scheduled donations as deals | Recurring plans create deals in the Recurring Donations pipeline. |
Pull settings (HubSpot to WeGive):
Setting | What it does |
Pull contacts as supporters | HubSpot contacts are created or updated as WeGive supporters. |
Pull companies as company supporters | HubSpot companies are created or updated as WeGive company supporters. |
Pull companies as households | HubSpot companies where |
Pull deals as transactions | Deals in the Donations pipeline update existing WeGive transactions. |
Pull recurring deals as scheduled donations | Deals in the Recurring pipeline link to existing WeGive scheduled donations. |
Sync options and defaults:
Option | Default | Notes |
Address sync source | Billing | Choose billing or mailing as the source for the contact's |
Close date mapping | Initiated at | Controls whether the deal |
Contacts with emails only | Off | When on, supporters without an email address are skipped during push. Recommended to keep HubSpot clean. |
Send processing ACH as success | Off | If on, ACH transactions in the |
Pull frequency | 15 minutes | How often WeGive polls HubSpot for changes. |
Deletion sync | Off | Enable to allow HubSpot deletions to soft-delete the matching record in WeGive. |
Step 5: Enable the integration
Toggle Enabled on the integration card.
The initial backfill begins immediately. You can continue working in WeGive while it runs.
Verifying the Connection
Once the connection is live, verify it end to end before relying on the data.
In HubSpot, confirm both pipelines exist with the stages listed above (or that the default pipeline contains the stages on Free tier).
In HubSpot, open a contact and confirm the
wegive_*custom properties are present (they may be empty until the first supporter syncs).In WeGive, process a small test donation (a $1 gift from a test donor works well).
Within a couple of minutes, confirm a deal appears in HubSpot's Donations pipeline at the Success stage.
Edit the test contact's first name in HubSpot, wait for the next pull interval, and confirm the change appears on the supporter in WeGive.
If any step fails, jump to the FAQ article or reach out to WeGive Support.
Common Setup Issues
Symptoms, likely causes, and how to resolve them:
Symptom | Likely Cause | Resolution |
OAuth callback fails | User lacks HubSpot admin permissions | Re-run the flow with a HubSpot admin user. |
Pipelines not created | API access disabled in the HubSpot portal, or Free tier limit hit | Enable API access in HubSpot account settings, or accept stages on the default pipeline if on Free. |
Duplicate contacts in HubSpot | Supporters without email addresses being pushed | Turn on Contacts with emails only, or clean supporter records in WeGive. |
Deals missing stage | The provisioned pipeline was edited after setup | Re-run Provision HubSpot so WeGive can remap stage IDs. |
Next Steps
Once the connection is live, read these articles in order to understand exactly what flows between the two systems:
Article 2: Contacts & Companies
Article 3: Donations
Article 4: Recurring Donations
Article 5: Supporting Records & What Is Not Mapped