> ## Documentation Index
> Fetch the complete documentation index at: https://docs.wegive.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Deal (Recurring Donation)

> Field mapping between WeGive recurring plans and HubSpot Deals in the Recurring Donations pipeline

Recurring plans push as Deals in the Recurring Donations pipeline that WeGive provisions during setup. Each gift generated by the plan is a Deal in the Donations pipeline, linked to the recurring deal through the Recurring Plan association label.

<Warning>
  **Not all fields here are push-only.** `wegive_frequency`, `wegive_recurring_start_date`, and `wegive_recurring_end_date` are genuinely read on pull too (see the Schedule section below) — a recurring deal pulled from HubSpot for the first time uses these to seed the plan. This mirrors the same fund-designation pull behavior already documented on [Deal (Donation)](/external/onboarding/hubspot/data-mapping/deal-donation#linkage-and-context); `wegive_fund_id`/`wegive_fund_code`/`wegive_fund_name` apply identically to recurring deals.
</Warning>

## Core fields

| WeGive field | HubSpot property | Type | Sync | Notes |
| - | - | - | - | - |
| (generated) | `dealname` | string | → | `{Donor Name} – ${Amount}/{Frequency} – {Fund Name}` (en dash, not hyphen) |
| `amount` | `amount` | number (dollars) | → | Base recurring amount |
| `frequency` | `wegive_frequency` | enum | ↔ | See frequency mapping. Pull throws rather than guessing if this is missing/unrecognized on an existing HubSpot-sourced plan. |
| `status` | `dealstage` | stage ID | → | See [stage mapping](/external/onboarding/hubspot/integration-nuances#pipeline-stage-mapping). Unlike Donation deals, **any terminal stage the customer moves the deal to wins outright** — the Recurring pipeline provisions 9 stages customers genuinely manage by hand, so WeGive doesn't apply the "Failed always wins" override used on the 3-stage Donations pipeline. |
| (derived) | `wegive_status` | string | → | Carries the plan's real WeGive status as a stable string, independent of whatever `dealstage` the board shows — useful for building HubSpot workflows/filters, since not every WeGive status maps to a visually distinct stage. |

## Schedule

| WeGive field | HubSpot property | Type | Sync | Notes |
| - | - | - | - | - |
| `created_at` (push) / `start_date` (pull, create-only) | `wegive_recurring_start_date` | date | ↔ | **Asymmetric**: push writes the plan's real creation date (`created_at`); pull reads this same property back into `start_date` (next-billing date), but only when creating a brand-new plan from a HubSpot-sourced deal — falls back to `closedate` if absent, and never touches `start_date` on a later re-pull of an existing plan. |
| `start_date` (next charge, ongoing) | `wegive_recurring_next_date` | date | → | WeGive doesn't have a separate "next donation" column — `start_date` is pushed here as the live next-billing date, distinct from the `wegive_recurring_start_date` row above which carries `created_at`. |
| `ends_at` | `wegive_recurring_end_date` | date | ↔ | |
| `paused_at` | `wegive_recurring_paused_at` | datetime | → | |
| `paused_reason` | `wegive_recurring_paused_reason` | string | → | |

## Frequency mapping

| WeGive frequency | `wegive_frequency` |
| - | - |
| weekly | Weekly |
| biweekly | Biweekly |
| monthly | Monthly |
| quarterly | Quarterly |
| semi-annual | Semi-Annually |
| annual | Annually |

## Linkage

| WeGive field | HubSpot property | Sync |
| - | - | - |
| `id` | `wegive_id` | → |
| `source_id` | `wegive_donor_id` | → |
| `fund_id` | `wegive_fund_id` | ↔ |
| `fund.code` | `wegive_fund_code` | ↔ |
| `fund.name` | `wegive_fund_name` | ↔ |
| `campaign.name` | `wegive_campaign_name` | → |

## Associations

* The recurring deal associates to the supporter's Contact, Company, or Household.
* Each generated one-time gift Deal links back to the recurring deal through the Recurring Plan association label, so HubSpot users can navigate from any gift to its parent plan.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.