Setting Up Peer-to-Peer Fundraising
Last updated: April 29, 2026
A complete guide for nonprofit admins on configuring peer-to-peer (P2P) fundraising in WeGive — from creating your first preset to wiring up automated communications.
Overview
WeGive's peer-to-peer fundraising lets your supporters create their own personal fundraising pages that roll up to a campaign you control. Instead of one branded campaign page, you get dozens (or hundreds) of supporter-led pages, each tracking individual goals, donations, and donors — all reporting back to your organization.
The system is built around three concepts:
P2P Presets — the template that defines what a fundraiser page looks like and which fields supporters can customize.
Campaign Fundraisers — the parent "team" container that individual fundraisers roll up into. Useful for team fundraising and aggregated reporting.
Fundraisers — the individual supporter-led pages created from a preset.
A fundraiser inherits its donation experience (checkout, fund/designation options, branding) from the preset it was created from, falling back to the parent campaign fundraiser if the preset doesn't specify one.
Before You Begin
Have these ready before you start:
The campaign the fundraisers will roll up to (create one under Campaigns → All Campaigns if you don't have it yet).
A checkout configured with the funds/designations you want P2P donations to flow to (under Checkouts). Without a checkout attached, the fundraiser will fall back to the parent campaign fundraiser's checkout, and if that's also missing, donation processing may be limited.
A fund (designation) if all P2P donations should route to the same designation by default.
Any branding assets you want on the preset (background/banner image, logo).
Step 1: Create a P2P Preset
The preset is the template every supporter fundraiser is built from. Get this right and supporters can spin up on-brand pages in seconds.
Navigate to Elements → P2P Presets in the dashboard, then click the blue + button to create a new preset.
Core Fields
Fill in the basics that describe the preset and act as defaults for new fundraiser pages:
Name — internal name for your team (donors don't see this).
Slug — the external URL slug for the preset's public link.
Default Name — the pre-filled fundraiser name a supporter sees when they create their page.
Description — default story/blurb that pre-fills on the fundraiser page.
Goal — default fundraising goal amount. Supporters can change this unless you fix it (see below).
Start Date / End Date — default fundraising window.
Background — banner image displayed at the top of every fundraiser page created from this preset.
Display Options
Show Leaderboard — display top fundraisers/donors on the page.
Show Activity — show a feed of recent donations.
Hide Fundraise Button — controls whether visitors can spin off their own sub-fundraiser from this page.
Hide Allow Donations Button — controls whether the page accepts donations directly.
Lock Down What Supporters Can Edit
Every major field has a corresponding Fixed toggle that locks the value so supporters can't override it on their own page. Use these to enforce brand consistency or campaign rules. Available locks:
Fixed Start Date, Fixed End Date
Fixed Goal
Fixed Name, Fixed Description, Fixed Background
Fixed Leaderboard, Fixed Activity
Fixed Fund (locks the designation)
Fixed Hide Fundraise Button, Fixed Hide Allow Donations Button
A common pattern: lock the dates, fund, and background (so every page looks consistent and routes money correctly), but leave the name, description, and goal editable so supporters can personalize.
Step 2: Wire Up the Donation Flow (Checkout & Fund)
This is the step that decides where the money goes.
Attach a Checkout
On the preset, set the Checkout field. The checkout you attach controls:
Available fund/designation options shown to donors
Branding and form styling
Which custom questions/fields appear at donation time
WeGive resolves the checkout for any P2P donation in this order:
The preset's checkout (highest priority).
The parent campaign fundraiser's checkout (fallback).
None — donation processing may be limited.
Always attach a checkout at the preset level unless you have a specific reason to inherit from the parent.
Set the Default Fund
Set the Fund field on the preset to route all donations from fundraisers built off this preset to a specific designation by default. Combine with Fixed Fund if you don't want supporters changing where the money goes.
Step 3: Set Up Goals, Designations, and Teams
Individual Fundraiser Goals
Each fundraiser has its own goal, independent of the campaign goal. The campaign goal aggregates everything; individual fundraisers are tracked against their own targets. Supporters can set whatever goal they like unless you've enabled Fixed Goal on the preset.
Designations / Funds
Donations from a P2P fundraiser flow to whichever fund is set on the fundraiser (inherited from the preset by default). If your campaign has multiple designations, you have two options:
Single fund per preset — set the Fund on the preset and lock it. Cleanest for single-purpose campaigns.
Multiple funds via the checkout — leave Fund unset on the preset, and let the attached checkout present designation choices to the donor at checkout. Use this when supporters or donors should be able to pick.
Team Fundraising (Parent / Child Structure)
WeGive uses a two-tier model for teams:
Campaign Fundraisers are the team-level containers (created under Elements → Fundraisers). Think of these as the "team page."
Individual Fundraisers roll up to a Campaign Fundraiser via a parent reference, contributing their totals to the team.
To run team fundraising:
Under Elements → Fundraisers, create a Campaign Fundraiser for each team. This is the team captain's page.
Attach a P2P preset to the Campaign Fundraiser (via the Implement tab on the preset, or by linking on the Campaign Fundraiser itself).
When a supporter joins a team and clicks "Fundraise" from that team page, their new fundraiser automatically becomes a child of the team. Their totals roll into the team's total, and the team's totals roll into the campaign.
The team page shows aggregated metrics across all child fundraisers — total raised, child fundraiser count, and donor count.
Step 4: Implement and Share
Once the preset is configured, click Implement on the preset to get:
A direct link for supporters to start their own fundraiser.
A QR code for print/event materials.
Embed code for putting "Start a Fundraiser" buttons on your own site.
You can also designate a default preset for the donor portal under Donor Portal → Customization → Profiles → P2P Fundraising. This is what powers the "Fundraise" button when a logged-in donor visits their portal.
Step 5: Set Up Communications & Email Automation
This is where P2P really starts working for you. WeGive has three P2P-specific journey triggers and a rich set of fundraiser merge tags.
P2P Journey Triggers
Go to Engagement → Journeys and create journeys triggered by any of:
Peer-to-Peer Created — fires when a supporter creates a new P2P fundraiser. Use for a welcome/onboarding series.
Peer-to-Peer Donation Notification — fires when a donation is made to a P2P fundraiser. Use to thank the fundraiser, notify them of the gift, or trigger team-captain alerts.
Peer-to-Peer Goal Met — fires when a fundraiser hits 100% of their goal. Use for congratulations + ask-to-raise-the-goal flows.
Audience Filtering
Inside any journey, you can filter and branch on fundraiser data with rules like:
fundraiser_percent_to_goal(e.g., send a milestone email at ≥ 50%)fundraiser_amount— total raisedfundraiser_number_of_donations/fundraiser_number_of_donorsfundraiser_days_left_until_end_date— useful for "final push" reminder emailsfundraiser_p2p_preset— scope the journey to fundraisers from a specific presetfundraiser_p2p_goal_amount,has_goal
These rules make it possible to run a single "P2P engagement" journey that branches based on how each fundraiser is performing.
Email Merge Tags
In your email templates (under Engagement → Email Templates), use these merge tags inside {{ }} to personalize:
Variable | What it shows |
|---|---|
| Fundraiser page name |
| Public URL of the fundraiser |
| Name of the supporter who created it |
| Their email (if owner is a donor) |
| Goal, formatted as currency |
| Amount raised, formatted as currency |
| Percent of goal, rounded |
| Total donation count |
| Unique donor count |
| Name of the top donor |
| Date of the latest donation |
| Amount of the latest donation |
| When the fundraiser ends |
| When the fundraiser was created |
| Days until the end date |
| The preset the fundraiser was created from |
| Link to the preset |
Legacy fields fundraiser_element_name and fundraiser_element_url still work and map to the preset.
Suggested Communication Plan
A solid baseline P2P journey set:
Welcome — triggered by Peer-to-Peer Created. Thanks the supporter, links to their page, includes share-this-page tips.
First Donation — triggered by Peer-to-Peer Donation Notification, scoped to the supporter's first donation, celebrating their first gift.
Milestone — entry trigger Peer-to-Peer Donation Notification with audience filter
fundraiser_percent_to_goal ≥ 50. Send a "you're halfway there!" nudge.Goal Met — triggered by Peer-to-Peer Goal Met. Celebrate, optionally invite them to raise the goal.
Final Push — entry trigger using
fundraiser_days_left_until_end_date ≤ 7andfundraiser_percent_to_goal < 100. Encourages a last-week sprint.
Step 6: Test Before You Launch
Before sharing the preset publicly:
Open the preset's public URL in an incognito window and walk through creating a test fundraiser.
Verify the locked fields are actually locked.
Make a small test donation through the new fundraiser page and confirm the funds route to the expected designation.
Check that the test donation triggers the Peer-to-Peer Donation Notification journey (look at the donor's journey membership or the test fundraiser's activity).
If using team fundraising, confirm the test fundraiser appears under the parent Campaign Fundraiser and totals aggregate correctly.
Quick Reference: Where Things Live
What | Where in the dashboard |
|---|---|
P2P Presets | Elements → P2P Presets |
Team / Campaign Fundraisers | Elements → Fundraisers |
Campaigns | Campaigns → All Campaigns |
Journeys (automation) | Engagement → Journeys |
Email Templates | Engagement → Email Templates |
Donor Portal default P2P preset | Donor Portal → Customization → Profiles → P2P Fundraising |
Common Pitfalls
No checkout attached — fundraisers may not collect donations as expected. Always attach a checkout to the preset.
Fund not locked when it should be — supporters may inadvertently route funds to a different designation. Use Fixed Fund if the preset is for a specific cause.
Forgetting to associate with a campaign — fundraisers won't roll up into your campaign reporting. Connect the preset to a campaign (or to a Campaign Fundraiser that sits under one) before sharing.
Journeys without P2P-scoped filters — generic donation journeys can fire alongside P2P journeys and create duplicate emails. Add
fundraiser_p2p_preset is set(or scope to a specific preset) on P2P journeys to keep them separate.Over-locking fields — locking too many fields removes the personal storytelling that makes P2P work. Keep name, description, and goal editable unless you have a strong reason not to.