Stripe logo

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.

When this happens

New submission on your "Choose a plan" form

Do this

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. 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. 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. 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. 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. 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. 6

    Add Create Subscription, pointing Customer at the ID from the find-or-create step and Price at the lookup output.

  7. 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. 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 fieldStripe
Email AddressSearch key for Find or Create Customer in Stripe
Full NameName on the Stripe customer
Phone NumberPhone on the Stripe customer
AddressAddress Line 1 of the customer's billing address
Membership TypeRecurring price the subscription is created on, via a lookup table
Preferred Start DateBilling cycle anchor on the subscription

Variations worth knowing

Offer monthly and annual on one form

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.

Give new joiners a free period first

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

The subscription step fails with a "no such price" error.

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.

Members appear in Stripe but no money is ever collected.

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

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