Set up a monthly donor for recurring giving
A monthly pledge creates the Stripe customer and starts a recurring subscription at the amount the donor committed to.
New submission on your "Become a monthly supporter" form
Find or create the customer and create a recurring subscription in Stripe
One-directional. A submission triggers the action — nothing is written back into your form.
Monthly giving lives or dies on how easy it is to set up. A pledge form collects the commitment; someone still has to turn that into recurring billing.
Small fundraising teams rely on this so the second half happens on its own. The pledge finds or creates the Stripe customer and opens a subscription at the amount promised, which keeps donor records and billing in the same place instead of split between a spreadsheet and whoever answered the email.
Setting it up
- 1
Publish the pledge form and use conditional logic so Pledged Amount (USD, if monetary) only appears for monetary gifts. An in-kind pledge that reaches the billing steps produces a subscription for nothing.
- 2
In Stripe, create one recurring price of 1.00 per month. Donors pledge arbitrary figures, so the subscription carries that price with a quantity equal to the pledge rather than needing a price per amount.
- 3
In Zapier, add the formformform trigger on New Submission, select the pledge form, and load a sample where the amount and the pledge period are both filled in.
- 4
Add a filter that continues only when Type of Contribution is monetary and the pledge commitment has been agreed, so nothing becomes recurring billing without an explicit yes on the form.
- 5
Add Find or Create Customer in Stripe searching on Email Address, mapping Donor Full Name to Name, Phone Number to Phone and Mailing Address to Address Line 1 — the address is what makes a receipt usable at year end.
- 6
Add a Formatter step turning Pledged Amount (USD, if monetary) into a whole number, since Stripe subscription quantities cannot carry decimals. Round or reject part-currency pledges; do not let them through unhandled.
- 7
Add Create Subscription with the 1.00 recurring price, the quantity from the Formatter, and collection method set to send invoice — no card details pass through the form, so Stripe has nothing saved to charge.
- 8
Map Specific Program or Fund to Designate (if any) into subscription metadata, test one pledge end to end, check the amount in the Subscriptions list, then switch the Zap on.
What maps where
Using the Charitable Contribution Commitment Form as the starting point. These are its real fields — swap in your own and the mapping works the same way.
| Form field | Stripe |
|---|---|
| Email Address | Search key for Find or Create Customer in Stripe |
| Donor Full Name | Name on the Stripe customer |
| Mailing Address | Address Line 1 of the customer's billing address, used on receipts |
| Pledged Amount (USD, if monetary) | Quantity on the subscription, against a 1.00 recurring price |
| Pledge Period | Chooses the monthly or annual recurring price |
| Specific Program or Fund to Designate (if any) | Subscription metadata for fund reporting |
Variations worth knowing
Create a second recurring price of 1.00 per year and use a Formatter lookup on Pledge Period to pick between the two. The quantity logic does not change, so a donor pledging 25 a month and one pledging 300 a year run through the same Zap with different price IDs.
Map "Would you like this contribution to be anonymous?" into customer metadata. Exports for the annual report and the supporter wall can then filter on it in Stripe, which means the donor's answer travels with the billing record rather than living in a separate note somebody has to remember.
If something isn't arriving
"$25 a month" is text, and quantity must be a whole number. Check the Formatter is extracting the digits and dropping the symbol. A pledge of 12.50 also fails, since fractional quantities are rejected — use a price of 0.01 and multiply the pledge by 100 if part-currency amounts are common.
Stripe cannot charge a customer with no payment method on file, and none is captured on the form. With send-invoice collection Stripe emails an invoice each period; alternatively, email new donors a billing portal link so they can add a card once.
Frequently asked questions
Can donors enter card details on the pledge form?
Yes. Add products and priced options to the form, then collect payment through secure hosted checkout with Stripe, PayPal, or Square. Payment status is tracked alongside the response.
What happens when a donor raises their pledge?
Submitting the form again creates a second subscription on the same customer rather than editing the first, so both would bill. Cancel the original in Stripe when you see the new one, or handle increases by editing the quantity in Stripe directly.
Is the donor's address needed for the subscription?
Stripe will create the subscription without it, but the address is what makes an invoice or year-end receipt usable to a donor claiming tax relief. Mapping Mailing Address at signup costs nothing and saves chasing hundreds of people later.
Related automations
- Apply an early-bird discount to conference registrants
Every conference registration creates a Stripe customer with the early-bird coupon already applied to their account.
- Bill extra work on the client's next invoice
A costed change request attaches an invoice item to the client's existing Stripe customer, so extra work lands on their next invoice.
- Create a customer record when an account is opened
Each account signup creates a Stripe customer carrying the business name, billing email and address, ready before the first invoice.
- Draft an invoice from every quote request
Every quote request finds or creates the client in Stripe, adds an invoice item for the scope, and leaves a draft invoice to review.
- Start a subscription when someone picks a plan
The plan someone chooses on the form becomes a Stripe subscription on the matching recurring price, with the customer created first.
- Add counter signups to your Customer Directory
A signup at the till or on your site becomes a Square customer profile straight away, spelled the way the customer typed it.
Build the form first
The automation needs somewhere to fire from. Publish a form, connect it once, and every submission from then on runs this flow.
Start free