Browse the docs

Set up membership tiers

Set up a membership in one go: what it costs, what members can book, guest passes each month, member prices and whether members can freeze it.

Open Sell, Memberships & packs and choose New membership, or ask the assistant: “Set up Gold at $120 a month, unlimited classes, 2 guest passes a month and 15% off workshops.” Customers can join it on your website once it’s saved. Nobody is charged or messaged when you save it.

A membership covers everything you offer unless you narrow it to offerings, options, kinds like classes or tags. It can be unlimited or allow a number of bookings a week or month, and members can book a few days before everyone else.

Guest passes arrive on the first day of each week or month. Members use them to book a friend in, and the friend books as their own customer. Unused passes end with the period.

Member prices take a percent off kinds of offerings, like 15% off workshops. They apply to workshops you add later too.

Changing a membership reaches people who join from then on. Members who already joined keep their price and what their membership covers.

For agents

grants.saveMembership (tier 2) saves one tier by key (lowercase, up to 40 characters; the same key again changes it): name, description, priceMinor, every (week, month or year), trialDays, covers (as grants.saveBenefit), allowance (unlimited or per_period), earlyDays, perks ({ guestPasses: { count, period } }), discounts (each { percentOff, kinds, tags, offeringIds }), freezes ({ selfServe, maxDays }) and an optional requestId to retry safely. It makes or changes the access product and its price through commerce, the benefit, and the audience of its holders (membership=<key>) with one approval. Offerings name it as membership:<key>. grants.benefits lists every tier with its price, perks, discounts and freeze settings. A pack saves the same way with grants.savePack (tier 2): key (offerings name it pack:<key>), name, description, priceMinor, credits, counts (visits, minutes or cents; visits by default), validDays (null never runs out), covers (everything unless narrowed) and earlyDays, with an optional requestId to retry safely. It makes or changes the access product and its benefit in one save.