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.
New submission on your "Choose a plan" form
Find or create the customer and create a subscription on the selected Stripe price
One-directional. A submission triggers the action — nothing is written back into your form.
Picking a plan on a form and being billed for it are usually two separate jobs, done days apart by two different people.
Gyms, clubs and membership businesses run this to make them one job. The submission finds or creates the Stripe customer, then opens a subscription on the price that matches the tier chosen. Joining admin stays in the form, recurring billing stays in Stripe, and the two agree because nothing was typed out twice.
Setting it up
- 1
In Stripe, create one recurring price per option in your Membership Type question and copy each price ID. The Zap maps answers to price IDs, so an option with no price behind it has nowhere to go.
- 2
Publish the plan form with Membership Type as a single choice. A multi-select would produce one submission asking for two subscriptions, and the action can only create one.
- 3
In Zapier, add the formformform trigger on New Submission, pick the plan form, and load a sample submission for each membership option you offer.
- 4
Add Find or Create Customer in Stripe, searching on Email Address, and map Full Name, Phone Number and Address onto the create branch so a new member arrives with contact details attached.
- 5
Add a Zapier Formatter lookup table converting each Membership Type answer into its price ID. Type the answers exactly as they read on the form — a near miss returns blank and the next step fails.
- 6
Add Create Subscription, pointing Customer at the ID from the find-or-create step and Price at the lookup output.
- 7
Set the subscription's collection method to send invoice. No card details pass through the form, so Stripe has nothing saved to charge and would otherwise fail the first payment immediately.
- 8
Map Preferred Start Date to the billing cycle anchor so billing lines up with the day they actually start, test one submission per tier, then turn the Zap on.
What maps where
Using the Gym Membership 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 |
| Full Name | Name on the Stripe customer |
| Phone Number | Phone on the Stripe customer |
| Address | Address Line 1 of the customer's billing address |
| Membership Type | Recurring price the subscription is created on, via a lookup table |
| Preferred Start Date | Billing cycle anchor on the subscription |
Variations worth knowing
Use conditional logic to show a billing frequency question once Membership Type is answered, then widen the lookup table so each tier and frequency pair returns its own price ID. One form covers eight prices without eight Zaps, and the member sees only the two questions that apply to them.
Set Trial Period Days on the Create Subscription step. Stripe holds the first invoice until the trial ends, which gives the front desk a window to check the health questions on the form before any money is asked for. The subscription still exists from day one, so nobody is missed.
If something isn't arriving
Either the lookup table returned nothing for that answer, or a product ID was pasted in place of a price ID. Price IDs begin price_, product IDs begin prod_. Copy the ID from the pricing section of the product page, and add a lookup row for every option, including ones added to the form later.
A subscription set to charge automatically has no saved card to charge, because none was collected on the form. Switch the collection method to send invoice so Stripe emails each period's invoice, or send members a billing portal link and let them add a card themselves.
Frequently asked questions
Can members pay on the form itself?
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 if someone submits the form twice?
Find or Create Customer stops the duplicate customer, but Create Subscription runs again and the member ends up billed twice. Add a Zapier filter on repeat email addresses, or check the Subscriptions tab in Stripe before the first billing date each month.
Can I upgrade someone's plan without the form?
Change it in Stripe. The Zap only runs at submission, so editing a subscription afterwards is a Stripe job with no effect on the form or on past responses — and equally, nothing about that change is written back into the submission.
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.
- 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.
- 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