HubSpot Integration: Donations
Last updated: April 23, 2026
Every successful, pending, or failed one time donation in WeGive becomes a HubSpot deal in the Donations pipeline. Recurring donations are covered in Article 4. This article explains how transactions map to deals, how WeGive statuses translate into deal stages, which payment methods are recognized, and what context (fund, campaign, fees, associations) gets attached to the deal in HubSpot.
How Transactions Become Deals
When a WeGive transaction is created or updated, the integration pushes a deal to HubSpot's Donations pipeline. The sync is bi-directional in theory, but in practice WeGive is always the source of truth for donation activity. Pulls from HubSpot are update only; a deal created directly in HubSpot will not create a new transaction in WeGive.
Matching Logic
Deals are matched by the wegive_id custom property on the HubSpot deal and the hubspot_id stored on the WeGive transaction. An existing deal is updated rather than duplicated.
Core Fields (Mapping Rules)
Core transaction to deal field mapping:
WeGive Field | HubSpot Property | Direction | Notes |
|
| Bi-directional | WeGive stores amounts in cents. HubSpot stores in dollars. Divided by 100 on push, multiplied by 100 on pull. |
|
| Bi-directional | Controlled by the Close date mapping setting. |
|
| Bi-directional | Free text description of the gift. |
Deal Name Format
WeGive auto-generates a human readable deal name so deals are easy to scan in HubSpot's pipeline view. The format is:
{Supporter Name} ${Amount} {Fund Name}
For example: Jane Smith $100 General Fund
Pipeline and Stage
The integration always writes to the Donations pipeline. The deal stage is resolved from the WeGive transaction status.
WeGive transaction status to HubSpot deal stage:
WeGive Status | HubSpot Stage | Direction | Notes |
| Success | Both | |
| Attempted | Both | Can be mapped to Success if Send processing ACH as success is on. |
| Attempted | Both | |
| Failed | Both | |
| Failed | Push only | There is no separate Refund stage. |
| Failed | Push only | |
| Failed | Push only |
ACH behavior: ACH donations sit in processing for several business days before settling. By default they show in HubSpot as Attempted. If your team treats processing ACH as collected revenue, turn on Send processing ACH as success so the deal stage reflects that.
WeGive Deal Properties (23 Total)
Every donation pushed to HubSpot carries a set of wegive_* custom properties. These are the workhorses for any HubSpot dashboards, lists, or workflows you want to build on top of donation data.
Identity
Deal identity properties:
WeGive Data | HubSpot Property |
|
|
|
|
Fund and Campaign Attribution
Fund and campaign attribution carried on the deal:
WeGive Data | HubSpot Property |
|
|
Fund name |
|
|
|
Campaign name |
|
Transaction Details
Transaction detail properties on the deal (payment method, processor, fees, tax):
WeGive Data | HubSpot Property |
|
|
Gift type |
|
Frequency |
|
|
|
Processor |
|
Tax deductible flag |
|
Processing fee |
|
Fee covered by donor |
|
Net amount |
|
Recurring Linkage
Recurring plan linkage properties:
WeGive Data | HubSpot Property |
Recurring flag |
|
Parent recurring plan |
|
Net revenue: Use wegive_net_amount (the amount after processing fees) rather than amount for true net revenue reporting in HubSpot. Combined with wegive_fee_covered, you can report on how much of your gross receipts came from donors who covered fees.
Payment Method Mapping
The wegive_payment_method property is populated from the WeGive transaction's source_type. Use this to build pipeline reports, workflows, or lists segmented by how supporters paid.
WeGive source type to HubSpot payment method label:
WeGive source_type | HubSpot Value |
| Credit Card |
| ACH |
| Cash |
| Check |
| PayPal |
| Venmo |
| Cryptocurrency |
| In-Kind |
| Stock |
| Wire |
Associations
When a transaction is pushed, the integration creates HubSpot associations automatically. These let HubSpot correctly connect the deal to the person or organization that gave, and to the parent recurring plan if the gift is part of one.
Associations the integration creates when pushing a deal:
Association | When it is created |
Deal to Contact | Individual supporter donations. |
Deal to Company | Company supporter donations. |
Deal to Deal (Recurring Plan label) | Transaction is a payment from a scheduled donation. Links the transaction deal to its parent recurring plan deal. |
The Recurring Plan label is a custom association WeGive provisions during setup. It lets you navigate from a single donation deal straight to the parent recurring plan, or list all transaction deals that came from a given plan.
Fund Attribution
Funds do not exist as separate HubSpot records. They are carried on the deal as wegive_fund_id and wegive_fund_name text properties. This means you can filter and report on deals by fund, but you cannot build a separate HubSpot object or dashboard around "the Fund itself."
If a WeGive donation is split across multiple funds, only the primary fund is carried to the deal. The multi-fund split detail is preserved in WeGive.
Campaign Attribution
Like funds, campaigns are not separate HubSpot records. They live on each deal as wegive_campaign_id and wegive_campaign_name. To slice donation revenue by campaign in HubSpot, report on those properties directly.
Refunds
When a transaction is refunded in WeGive, the existing deal's stage is updated to Failed. A separate refund deal is not created. The refund amount and any refund metadata stay in WeGive.
If your team needs a clearer view of refunds in HubSpot, build a HubSpot list of deals where wegive_id is known and stage is Failed, then segment from there.
Transactions Coming from HubSpot
If you create a deal directly in HubSpot's Donations pipeline, the integration will attempt to link it to an existing WeGive transaction using wegive_id. This is rare, because most orgs create donations in WeGive (through checkouts, APIs, or imports), and those flow outward to HubSpot.
Deals that do not match an existing WeGive transaction will sit unlinked in HubSpot. They will not create a new transaction in WeGive. To record a gift, process it in WeGive and let the push flow do the work.
Common Questions
Why is a donation in the Attempted stage when it succeeded?
The most common cause is an ACH donation still in processing. Wait for the ACH to settle, or turn on Send processing ACH as success to mark processing ACH as Success immediately.
Why does a donation show the wrong fund in HubSpot?
HubSpot only sees the primary fund. If the gift was split, the split detail lives in WeGive.
The deal amount does not match the WeGive amount. What is happening?
Most often this is a cents-to-dollars issue caused by a manual HubSpot edit. WeGive divides by 100 on push. If someone edits the amount in HubSpot to a cents value, the next pull may look off. Restore the correct value in WeGive and let the push overwrite HubSpot.
How do I see all donations from a specific recurring plan?
Open the parent recurring plan deal in the Recurring Donations pipeline. Associated transaction deals appear under the Recurring Plan association label.