HubSpot Integration: Recurring Donations

Last updated: April 23, 2026

Recurring donation plans (called Scheduled Donations in WeGive) sync to HubSpot as deals in the Recurring Donations pipeline. This article covers the field mapping, how WeGive statuses map to the nine stages in the pipeline, frequency labels, and an important limitation on the pull direction.

How Scheduled Donations Become Deals

When a supporter sets up a recurring gift in WeGive, the scheduled donation plan is pushed to HubSpot as a deal in the Recurring Donations pipeline. The individual payments that come out of that plan sync as separate one time deals in the Donations pipeline (see Article 3).

Matching Logic

Deals are matched using wegive_id on the HubSpot deal and hubspot_id on the WeGive scheduled donation.

Core Fields

Scheduled donation to recurring deal field mapping:

WeGive Field

HubSpot Property

Notes

amount

amount

Converted from cents to dollars (divided by 100).

Auto-generated

dealname

Format: "{Supporter} {Amount}/{Frequency} {Fund}"

id

wegive_id

WeGive scheduled donation ID.

id

wegive_recurring_plan_id

Mirror of wegive_id for reporting.

source_id

wegive_donor_id

Supporter ID.

fund_id

wegive_fund_id

Primary fund.

fund.name

wegive_fund_name

Fund name.

campaign_id

wegive_campaign_id

Campaign attribution.

campaign.name

wegive_campaign_name

frequency

wegive_frequency

Human-readable label (see below).

status

wegive_recurring_status

Raw WeGive status.

next_donation_at

wegive_recurring_next_date

Y-m-d format.

created_at

wegive_recurring_start_date

Y-m-d format.

end_at

wegive_recurring_end_date

Y-m-d format.

paused_at

wegive_recurring_paused_at

ISO 8601 timestamp.

paused_reason

wegive_recurring_paused_reason

Reason the plan was paused.

last_successful_date or created_at

closedate

ISO 8601.

Constant

wegive_gift_type

Always "Recurring".

Constant

wegive_is_recurring

Always true.

Deal Name Format

Recurring deal names include the frequency so they are easy to scan:

{Supporter Name} ${Amount}/{Frequency} {Fund Name}

For example: Jane Smith $50/Monthly General Fund

Status to Stage Mapping

WeGive scheduled donation status drives the HubSpot deal stage. The Recurring Donations pipeline includes nine stages so that at-risk and lifecycle states (In Arrears, Expiring Soon, Ending Soon) surface clearly in HubSpot.

WeGive scheduled donation status to HubSpot stage:

WeGive Status

HubSpot Stage

Typical Meaning

active

Active

Plan is running and billing on schedule.

paused

Paused

Plan has been paused by the donor or an admin.

cancelled

Cancelled

Plan was cancelled.

ended

Ended

Plan completed its natural end date.

in_arrears

In Arrears

A recent payment failed and the plan has not recovered.

missing

Missing

Expected payment did not occur.

archived

Archived

Plan was archived from active reporting.

expiring_soon

Expiring Soon

Payment method on file is about to expire.

ending_soon

Ending Soon

Plan end date is approaching.

Retention workflow idea: Build a HubSpot workflow that triggers when a deal enters the In Arrears, Expiring Soon, or Ending Soon stage. Route those contacts to a donor retention sequence or a CS follow-up task.

Frequency Mapping

The wegive_frequency property carries a human readable label you can use in lists, dashboards, and workflows.

WeGive frequency value to HubSpot label:

WeGive Value

HubSpot Label

weekly

Weekly

biweekly

Biweekly

monthly

Monthly

quarterly

Quarterly

semiannually

Semi-Annually

annually

Annually

Pause and End Dates

  • Paused plans surface the pause reason in wegive_recurring_paused_reason and the timestamp in wegive_recurring_paused_at. If the reason is blank, the plan was paused manually without a selected reason.

  • Ending plans carry an end_at date in wegive_recurring_end_date. Plans with an end_at within a configurable window will appear in the Ending Soon stage.

  • Payment methods about to expire move the plan into the Expiring Soon stage so your team can reach out before billing fails.

Important Limitation: HubSpot to WeGive

The integration does not create new scheduled donations in WeGive from HubSpot deals. This is intentional, so that a HubSpot user cannot accidentally create a billing commitment by dropping a deal into the Recurring pipeline.

Here is what the pull direction does and does not do:

What the HubSpot to WeGive pull does (and does not) do for recurring:

Behavior

Supported?

Link an existing WeGive scheduled donation to its HubSpot deal (via hubspot_id)

Yes

Update an existing scheduled donation's status or amount from HubSpot

No

Create a new scheduled donation in WeGive from a HubSpot deal

No

Skip HubSpot deals that sit in a Donations (one-time) stage

Yes

To create or edit a recurring plan, always use WeGive. The change will push to HubSpot within seconds.

Reporting on Recurring in HubSpot

A few practical ways to put the recurring sync to work inside HubSpot:

  • Active MRR: Filter deals where stage is Active in the Recurring Donations pipeline and sum amount.

  • At risk MRR: Filter deals where stage is In Arrears, Expiring Soon, or Ending Soon and sum amount.

  • Recurring donor list: Build a contact list where wegive_is_recurring_donor is true.

  • Recurring by campaign: Group Recurring deals by wegive_campaign_name to see which campaigns drive the most recurring revenue.

Common Questions

A donor cancelled in WeGive but the deal is still Active in HubSpot. Why?
Cancels are pushed in near real time, but if there is a sync queue backlog or a temporary HubSpot outage, updates may take a few minutes to appear. Check the integration logs in WeGive.

Can I move a deal from Cancelled back to Active in HubSpot?
Yes, but it will not reactivate the plan in WeGive. Reactivating a recurring plan must be done in WeGive (which often involves the donor re-entering payment information).

What happens when a recurring payment succeeds?
The scheduled donation deal in the Recurring pipeline updates its wegive_recurring_next_date and related rollup properties. A separate one time deal is also created in the Donations pipeline for the individual payment, with the Success stage.