Want to know exactly what data lands in your Zap when a Charitable trigger fires? Each trigger sends a structured payload of donation, donor, recurring-subscription, or campaign fields, and this reference lists every field by trigger type so you can map them confidently into the next step.
This guide will walk you through the fields available in every Charitable Zapier trigger.
Note: Charitable’s Zapier integration requires Charitable Pro 1.8.14+ and the Automation Connect addon 2.1.0+ (Pro plan or higher).
Before you get started, make sure you’ve already Connected Charitable to Zapier.
- Donation Trigger Fields
- Recurring Subscription Trigger Fields
- Campaign Trigger Fields
- Action and Search Inputs
Donation Trigger Fields
These fields are sent by New Donation, Donation Completed, Donation Refunded, and First-Time Donor. The exact same payload shape is used across all four, so a Zap built for one is easy to adapt to the others.
| Field | Description | Example |
|---|---|---|
donation_id | The internal WordPress post ID for the donation. | 123 |
event | The trigger event slug. | donation_completed |
title | Donor’s title prefix, when collected on the form. | Ms |
first_name | Donor’s first name. | Wanda |
last_name | Donor’s last name. | Maximoff |
email | Donor’s email address. | [email protected] |
address | Street address line. | Unit 2b |
city | City. | Novi Grad |
state | State or region. | Novi Grad State |
postcode | Postal or ZIP code. | 12345 |
country | Country code or full name, depending on form configuration. | Sokovia |
phone | Donor’s phone number, when collected. | 987654321 |
subtotal | The base donation amount, before fees. | 25 |
total | The final donation amount the donor is charged, including any fee they covered. | 26.50 |
date | Donation timestamp in ISO 8601 format. | 2026-05-08T14:20:27+00:00 |
status | Internal Charitable status with the charitable-prefix. See the status reference below. | charitable-completed |
donation_gateway | Slug of the payment gateway used. | stripe, paypal, manual |
gateway_transaction_id | The gateway’s transaction reference, useful for reconciliation. | ch_abc123def |
test_mode | 1 if the donation was made in the gateway’s test mode, otherwise 0. | 0 |
campaign_id | The campaign the donation was made to. When a donation is split across multiple campaigns, this is a comma-separated list of IDs. | 8 |
contact_consent | 1 if the donor opted into being contacted, otherwise 0. | 1 |
cover_fees | 1 if the donor chose to cover the processing fee. | 1 |
fee_amount | The portion of total that covers gateway fees. | 1.50 |
consent_to_track | 1 if the donor opted into tracking pixels and analytics. | 0 |
newsletter_opt_in | 1 if the donor opted into the newsletter. | 1 |
giftaid | 1 if the donor claimed Gift Aid (UK donors). | 0 |
anonymous_donation | 1 if the donor chose to display as anonymous publicly. | 1 |
donor_comment | Free-text message left by the donor with the donation. | In memory of Maria |
Donation Status Values
The status field uses Charitable’s internal slugs, all prefixed with charitable-. Filter rules and conditional logic should match against these exact values.
charitable-completed– payment received and confirmed by the gateway. Use this when you only want to act on real donations.charitable-pending– donation row created but payment not yet confirmed. Common for offline gateways and bank transfers.charitable-failed– gateway reported a failure. The donor was not charged.charitable-cancelled– donor or admin abandoned the transaction.charitable-refunded– the donation was refunded after being completed.
Recurring Subscription Trigger Fields
These fields are sent by New Recurring Subscription, Recurring Donation Renewed, Recurring Subscription Cancelled, and Recurring Payment Failed. The payload describes the recurring plan itself, not a single charge.
| Field | Description | Example |
|---|---|---|
recurring_donation_id | The post ID of the recurring plan. | 122 |
event | The trigger event slug. | subscription_renewed |
first_donation_id | The donation ID of the first charge that started this plan. | 123 |
recurring_subtotal | The recurring base amount before fees. | 50 |
recurring_total | The recurring charged amount including fees. | 53 |
recurring_period | The unit of recurrence. | day, week, month, year |
recurring_interval | How many recurring_period units between charges. 1 = every month, 3 = every three months, etc. | 1 |
recurring_length | Total number of charges. 0means no fixed end. | 6 |
recurring_expiration_date | Date the plan ends, ISO 8601. Empty if open-ended. | 2026-09-08T00:00:00+00:00 |
recurring_renewal_date | Date of the next scheduled charge, ISO 8601. | 2026-06-01T00:00:00+00:00 |
gateway_subscription_id | The gateway’s subscription reference. Useful when reconciling with Stripe or PayPal directly. | sub_xyz987 |
first_name | Donor’s first name. | Wanda |
last_name | Donor’s last name. | Maximoff |
email | Donor’s email address. | [email protected] |
address, address_2, city, state, postcode, country, phone | Donor’s address and phone, when collected on the form. | |
subtotal | The base amount of the most recent individual charge. | 25 |
total | The final amount of the most recent individual charge. | 26.50 |
date | When the plan was created, ISO 8601. | 2026-05-08T14:20:27+00:00 |
status | The plan’s current status. See below. | charitable-active |
donation_gateway | Gateway slug. | stripe |
test_mode | 1 if created in test mode. | 0 |
campaign_id | The campaign the plan supports. Comma-separated when split. | 8 |
contact_consent, cover_fees, fee_amount, consent_to_track, newsletter_opt_in, giftaid_claimed, anonymous_donation, donor_comment | Same meanings as the donation payload above. | |
gocardless_customer_id | GoCardless customer reference, when applicable. | goc123123 |
gocardless_mandate_id | GoCardless mandate reference, when applicable. | goc987987 |
Recurring Subscription Status Values
charitable-active– the plan is live and renewing on schedule.charitable-cancelled– the donor or admin cancelled the plan.charitable-expired– the plan reached its end date.charitable-failed– a renewal attempt failed and the plan is suspended.
Campaign Trigger Fields
These fields are sent by Campaign Goal Reached and Campaign Ended. The payload describes the campaign itself.
| Field | Description | Example |
|---|---|---|
campaign_id | The post ID of the campaign. | 123 |
event | The trigger event slug. | campaign_goal_reached |
title | Campaign title. | Year-End Appeal |
description | Short description text from the campaign. | Help us hit our matching goal |
goal | Fundraising goal in your store’s currency. | 2000 |
donated_amount | Total raised at the moment the event fired. | 2045 |
donor_count | Total number of unique donors. | 38 |
end_date | Campaign end date, ISO 8601. Empty if the campaign has no end date. | 2026-12-31T23:59:59+00:00 |
date | When the campaign was first published, ISO 8601. | 2026-05-01T10:00:00+00:00 |
status | WordPress post status. | publish |
permalink | Public URL of the campaign. | https://example.org/campaigns/year-end/ |
campaign_creator_id | WordPress user ID of the campaign owner. | 4 |
campaign_creator_name | Display name of the campaign owner. | Bruce Banner |
campaign_creator_email | Email address of the campaign owner. | [email protected] |
recipient | Where the funds go – typically fundraiser for peer-to-peer or parent for child campaigns. | fundraiser |
post_parent | If the campaign is a peer-to-peer child, the parent campaign’s ID. 0for standalone campaigns. | 99 |
fundraiser_type | For peer-to-peer campaigns, the fundraiser type. | individual, team |
team_id, team_name, team_captain_id | Team metadata for peer-to-peer team fundraisers. |
Note: For Campaign Goal Reached, the event includes amount_raised, goal, and percent_funded as additional fields beyond the standard campaign payload. These are calculated at the moment the goal was crossed and won’t update afterward.
Action and Search Inputs
The two action steps and two search steps each have their own input fields visible in the Zap editor. Because input fields evolve more often than trigger payloads, this section is a quick summary rather than an exhaustive table – open the step in the Zap editor for the current full list with help text.
- Create Donor – accepts donor profile fields (first name, last name, email, address fields, phone, contact consent, newsletter opt-in). Returns the created or matched donor’s full record.
- Update Donor – takes a lookup field (email or donor ID) plus any of the same donor profile fields. Only fields you provide are changed.
- Find Donor by Email – takes one input, the email address. Returns the donor’s full record, or no match.
- Find Campaign – takes either a campaign slug or campaign ID. Returns the campaign payload described in the Campaign Trigger Fields section above.
That’s it! You now know what every Charitable Zapier trigger sends, which means field mapping in any downstream Zap step should be straightforward. Next, see Filtering Charitable Zaps by Campaign to scope a Zap to specific campaigns or conditions, and Connecting Charitable to Zapier for the main getting-started guide.
FAQ
What’s the difference between subtotal and total?
subtotal is the base donation amount the donor selected. total is what was actually charged, which can be higher if the donor opted to cover the gateway’s processing fee. The difference shows up in the fee_amount field.
Why does status always start with charitable-?
Charitable registers its own WordPress post statuses to keep them separate from built-in WordPress statuses like publish and draft. The charitable- prefix is internal but required when filtering – (Text) Exactly matches rules need the full prefixed value, not just completed or refunded.
Are there any fields not in this list?
Yes. Charitable lets developers add custom donation, donor, and campaign fields, and any field marked show_in_webhook in the Donation Fields API is automatically included in the payload alongside the defaults. Check the trigger sample data in the Zap editor to see custom fields added by your specific install or by other Charitable extensions.
Can I send only a subset of fields to my downstream action?
Yes. The Zap editor’s action step lets you map any subset of the trigger’s fields into the action’s inputs. Fields you don’t map are simply ignored. This is the cleanest way to keep CRM contact records uncluttered.
How do I know which campaign a peer-to-peer fundraiser belongs to?
Look at post_parent on a campaign-trigger payload. For child campaigns, post_parent holds the parent campaign’s ID. For standalone campaigns it’s 0.


