# Zettlor > Booking and operations software for commercial sauna and cold plunge rooms. Zettlor models rooms, seats, memberships, events, and payments for commercial sauna operators. It is not appointment software. A membership can include a fixed number of sessions that reset on the billing date. ## Money pages - [Homepage](https://www.zettlor.com/): Sauna booking software for commercial rooms. Pro is free plus 2% per transaction. Max is $5,000/yr plus 1%. - [Pricing](https://www.zettlor.com/pricing): Pro is free plus 2% per transaction. Max is $5,000/yr plus 1%. - [Product](https://www.zettlor.com/product): Booking, checkout, memberships, payments, and the operating workflow. - [Sauna booking software](https://www.zettlor.com/sauna-booking-software): Why a commercial sauna room is not one appointment. - [Sauna membership software](https://www.zettlor.com/sauna-membership-software): Sauna membership software. Markdown: [/sauna-membership-software.md](https://www.zettlor.com/sauna-membership-software.md). - [Cold plunge studio software](https://www.zettlor.com/cold-plunge-studio-software): Why a commercial cold plunge room is not one appointment. - [Get started](https://www.zettlor.com/get-started): Start on Pro or Max. ## Operator guides - [Guides](https://www.zettlor.com/guides): Operator how-tos for a sauna and cold plunge room, grouped by cluster. - [Membership](https://www.zettlor.com/guides/membership) - [Booking](https://www.zettlor.com/guides/booking) - [Desk](https://www.zettlor.com/guides/desk) - [Pay](https://www.zettlor.com/guides/pay) - [Migrate](https://www.zettlor.com/guides/migrate) ### Membership - [How do included member sessions book without charging, then flip to member price?](https://www.zettlor.com/guides/membership/included-sessions) - [How does an existing membership port to Zettlor without a second checkout?](https://www.zettlor.com/guides/membership/port-existing-membership) - [Can a membership include unlimited visits until a date, then re-checkout?](https://www.zettlor.com/guides/membership/unlimited-until-date) - [How do I redeem a gift card at booking, for a session and for retail?](https://www.zettlor.com/guides/membership/gift-card-at-booking) - [How do I auto-deduct a punch pass when they book an event?](https://www.zettlor.com/guides/membership/punch-pass-on-event) - [How do I block punch packs on one event but still allow them on regular sessions?](https://www.zettlor.com/guides/membership/block-punch-packs-on-one-event) - [How do I add session credits without charging — as a comp, a makeup, or a migration?](https://www.zettlor.com/guides/membership/comp-credits) - [How do I book a complimentary session?](https://www.zettlor.com/guides/membership/complimentary-session) - [How do I freeze or hold a membership without cancelling it?](https://www.zettlor.com/guides/membership/hold) - [How do I give members an earlier booking window than drop-ins?](https://www.zettlor.com/guides/membership/early-access) - [How do I see failed membership charges and retry them before we cut access?](https://www.zettlor.com/guides/membership/failed-charges) - [How do I hide a founding or corporate membership and sell it only by a private link?](https://www.zettlor.com/guides/membership/hidden-plan-link) - [How do I set when unused session credits on a punch pack expire?](https://www.zettlor.com/guides/membership/credit-expiry) - [How do I stop selling a membership without cutting off people already on it?](https://www.zettlor.com/guides/membership/sunset-plan) - [How do I see membership revenue billed versus sessions members actually used?](https://www.zettlor.com/guides/membership/revenue-vs-usage) ### Booking - [How do I sell a longer stay window with a chosen arrival time, without turning it into an appointment?](https://www.zettlor.com/guides/booking/arrival-window) - [How do I override one session (hide, cancel, or change capacity) without changing the rest of the schedule?](https://www.zettlor.com/guides/booking/override-one-session) - [How do I guarantee a reserved seat for someone driving in?](https://www.zettlor.com/guides/booking/reserved-seat) - [How do I sell a private room during public hours with add-ons, not only a full buyout?](https://www.zettlor.com/guides/booking/private-with-add-ons) - [How do group bookings work — one SKU with a volume discount, or separate products?](https://www.zettlor.com/guides/booking/group-rate) - [How do I hide a private event behind an access code?](https://www.zettlor.com/guides/booking/private-access-code) - [How do I stop a member booking the same session twice?](https://www.zettlor.com/guides/booking/stop-double-book) - [How do I book a sauna plus a treatment add-on in one flow?](https://www.zettlor.com/guides/booking/sauna-plus-treatment) - [How do guests pick a preferred location?](https://www.zettlor.com/guides/booking/preferred-location) - [How do staggered start times work without turning sessions into appointments?](https://www.zettlor.com/guides/booking/staggered-starts) - [Why does a slot say available, then no longer available?](https://www.zettlor.com/guides/booking/slot-no-longer-available) - [Why does the booking preview show no times?](https://www.zettlor.com/guides/booking/preview-no-times) - [How do I set automatic late-cancel and no-show fees on a sauna or cold plunge session?](https://www.zettlor.com/guides/booking/no-show-fees) - [When does an unconfirmed booking auto-cancel, and what should the desk do?](https://www.zettlor.com/guides/booking/unconfirmed-auto-cancel) - [How do I show events on a separate guest calendar while ops stays on one schedule?](https://www.zettlor.com/guides/booking/guest-calendar-vs-ops) - [How do I set early-bird, last-minute, or peak prices on one session instead of three products?](https://www.zettlor.com/guides/booking/peak-pricing) - [How do I choose how a waitlist fills a sold-out sauna or cold plunge session?](https://www.zettlor.com/guides/booking/waitlist-fill) - [How far ahead, and how close to start, can guests book a sauna or cold plunge session?](https://www.zettlor.com/guides/booking/booking-window) - [How do I add a turnaround buffer between private sauna or cold plunge sessions?](https://www.zettlor.com/guides/booking/session-buffers) - [How do I set shared-capacity seats on a sauna or cold plunge session?](https://www.zettlor.com/guides/booking/shared-capacity) - [How do I set up a repeating sauna or cold plunge schedule?](https://www.zettlor.com/guides/booking/repeat-schedules) - [How do I change session times seasonally without shrinking how far ahead guests can book?](https://www.zettlor.com/guides/booking/seasonal-hours) - [How do I add a one-off event outside the regular schedule?](https://www.zettlor.com/guides/booking/one-off-event) ### Desk - [How do I sign up a walk-in (and their guest) at the desk, including after the session has started?](https://www.zettlor.com/guides/desk/walk-in-after-start) - [How do I check guests in and out, see who is in the building, and charge for extra time?](https://www.zettlor.com/guides/desk/checkout-overstay) - [How do we know who is in the building right now?](https://www.zettlor.com/guides/desk/who-is-in-the-building) - [How do I collect a digital waiver before arrival, and finish unsigned ones at the door?](https://www.zettlor.com/guides/desk/waiver-web-or-door) - [Where do I see that a guest has signed?](https://www.zettlor.com/guides/desk/see-signed-waiver) - [Is the waiver tied to their email?](https://www.zettlor.com/guides/desk/waiver-tied-to-email) - [How do I require a session waiver and a membership agreement, and see which one is on file?](https://www.zettlor.com/guides/desk/more-than-one-waiver) - [How do I run a front-desk kiosk so guests check themselves in without seeing other accounts?](https://www.zettlor.com/guides/desk/kiosk-self-check-in) - [How do I attach a note to a booking?](https://www.zettlor.com/guides/desk/booking-note) - [How do I merge duplicate guest profiles without losing credits or bookings?](https://www.zettlor.com/guides/desk/merge-profiles) - [How do I set up family accounts so a parent can book dependents without their own email?](https://www.zettlor.com/guides/desk/family-dependents) - [How do staff check guests in on session day, and mark a no-show?](https://www.zettlor.com/guides/desk/check-in-no-show) - [How do I send an updated waiver to guests who already have a booking?](https://www.zettlor.com/guides/desk/updated-waiver) - [How do I print a QR poster so walk-ins can book the next sauna or cold plunge session?](https://www.zettlor.com/guides/desk/qr-poster) ### Pay - [How do I apply a promo code at cart checkout?](https://www.zettlor.com/guides/pay/promo-at-cart) - [Will our existing Stripe reader / tap-to-pay still work?](https://www.zettlor.com/guides/pay/stripe-reader) - [Can a host pay for a private event before they have every guest name and email?](https://www.zettlor.com/guides/pay/host-pays-before-names) - [Do guests have to pay for the full session length up front?](https://www.zettlor.com/guides/pay/pay-full-session-up-front) - [Why can’t staff finish store checkout when the customer is already linked?](https://www.zettlor.com/guides/pay/store-checkout-linked-customer) - [How do I format store product descriptions?](https://www.zettlor.com/guides/pay/store-product-descriptions) - [Where is the customer account page?](https://www.zettlor.com/guides/pay/customer-account-page) - [How do I export every customer to a spreadsheet?](https://www.zettlor.com/guides/pay/export-customers) - [How do I turn on purchase confirmation emails?](https://www.zettlor.com/guides/pay/confirmation-emails) - [How do I keep guest receipts from saying Zettlor?](https://www.zettlor.com/guides/pay/receipt-branding) - [How do I record a cash or card-machine payment so the walk-in is marked paid?](https://www.zettlor.com/guides/pay/offline-payment) - [How do I issue a partial refund without cancelling the whole booking?](https://www.zettlor.com/guides/pay/partial-refund) - [How do I export a booking ledger and session attendance as CSV?](https://www.zettlor.com/guides/pay/export-ledger) ### Migrate - [How do I flip the live calendar from Acuity or Momence to Zettlor?](https://www.zettlor.com/guides/migrate/flip-calendar) - [Do future reservations import, or do we recreate them?](https://www.zettlor.com/guides/migrate/future-reservations) - [How do we keep migrated customer data clean?](https://www.zettlor.com/guides/migrate/clean-customer-data) - [What marketing data can we export from Momence?](https://www.zettlor.com/guides/migrate/momence-marketing-export) - [How do I load pre-sold gift-card balances so they still redeem after cutover?](https://www.zettlor.com/guides/migrate/gift-card-balances) ## Other pages - [Operators](https://www.zettlor.com/operators): Business models, operating complexity, migration, and launch. - [Book a demo](https://www.zettlor.com/demo): Schedule a live walkthrough. - [FAQ](https://www.zettlor.com/page/faq): Common questions about setup and features. - [Privacy](https://www.zettlor.com/privacy): Data handling and privacy. - [Terms](https://www.zettlor.com/terms): Terms of use. ## Agent bundle - [llms-full.txt](https://www.zettlor.com/llms-full.txt): This index plus every operator guide markdown source in one file. --- # /guides/membership/included-sessions --- title: "How do included member sessions book without charging, then flip to member price?" description: "Session credits on the membership can cover a sauna or cold plunge seat to $0 during the billing period. After the included count is spent, checkout charges the session price. Unused sessions reset; they do not roll over." canonical: https://www.zettlor.com/guides/membership/included-sessions keywords: "sauna, cold plunge, membership, Zettlor, session, seat" updated: 2026-08-26 status: partial --- # How do included member sessions book without charging, then flip to member price? Included member sessions spend session credits at checkout so the sauna or cold plunge seat can land at $0 while credits remain. After the period count is used, checkout charges the configured session price; there is no separate live switch that flips the guest onto a member list price. ## What Zettlor does today On the membership product, Sessions per period is the visit count for each Stripe billing period. The member spends those session credits against seats. Period refill resets the count; unused sessions do not roll over. There is no separate member price after included sessions run out, so checkout uses the session product price. Unlimited is a separate option from a fixed session count. This behavior is partial: some of it is live, and the rest is a desk workaround rather than a missing settings screen you should hunt for. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Store → Products → open the membership → Sessions per period. Confirm the credit is active and spendable on the customer before you expect $0 checkout. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Operators treat leftover visits as rollover, then argue with members when the next period starts at the configured count. Others expect a cheaper member rate after credits run out, but checkout uses the session product price. ## Operator example Rytual sells an 8-session monthly membership. A regular books sauna and cold plunge seats at $0 until the eighth visit; the ninth visit in that period charges the shared-session price, and the count resets on the Stripe billing date. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Open Store → Products and edit the membership. 2. Set Sessions per period to the included visit count, such as 8. 3. Leave unlimited off unless you want visits uncounted. 4. Confirm a test member's credit is active and spendable, then book a sauna or cold plunge seat and check that checkout is $0 until the count is spent. ## Related questions ### Do unused included sessions roll over? No. Period refill resets the count. Unused visits do not carry into the next Stripe billing period. ### What happens after the included sessions are used? Checkout charges the configured sauna or cold plunge session price. There is no separate member-price flip after credits run out. ## Follow-up guides - [When unused punch-pack credits expire](/guides/membership/credit-expiry) - [How to book a complimentary session](/guides/membership/complimentary-session) Book a [demo](/demo) or [get started](/get-started). --- # /guides/membership/port-existing-membership --- title: How does an existing membership port to Zettlor without a second checkout? description: "Staff link an existing Stripe subscription on the customer, or import membership and credit records. The guest does not check out again." canonical: https://www.zettlor.com/guides/membership/port-existing-membership keywords: "sauna, cold plunge, membership, Zettlor, session, seat" updated: 2026-08-26 status: live --- # How does an existing membership port to Zettlor without a second checkout? Staff attach the existing Stripe subscription to the customer record so the membership continues without a second guest checkout. CSV and universal import can also create membership and credits on the customer for the same person. ## What Zettlor does today On CRM → Customers, staff link a Stripe subscription that already exists. Import creates membership plus credits without sending the guest through public checkout. Spendable membership credits follow the linked subscription status, not a new cart purchase. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Open CRM → Customers, find the guest, and link the Stripe subscription. For a bulk cutover, use Advanced → Import rather than asking members to buy again. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Operators send every member a new checkout link. Stripe creates a second subscription, double-charges, and the original plan keeps billing in the old system. ## Operator example Alchemy ports founding members by linking each Stripe subscription on CRM → Customers during cutover so nobody pays a second signup fee for the same sauna and cold plunge plan. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Open the customer on CRM → Customers. 2. Link the existing Stripe subscription instead of creating a new checkout. 3. Confirm membership status and that credits are active and spendable. 4. For a list of members, run Advanced → Import rather than one-off guest checkouts. ## Related questions ### Does the member need to enter a card again? No. Linking the existing Stripe subscription keeps billing on the original payment method. Do not send a second public checkout. ### Can import create the membership without Stripe link? Import can create membership and credits on the customer. Link Stripe when the subscription should keep billing in Stripe. ## Follow-up guides - [Load pre-sold gift-card balances after cutover](/guides/migrate/gift-card-balances) - [Stop selling a plan without cutting off current members](/guides/membership/sunset-plan) Book a [demo](/demo) or [get started](/get-started). --- # /guides/membership/unlimited-until-date --- title: "Can a membership include unlimited visits until a date, then re-checkout?" description: Unlimited access and credit expiration dates exist. There is no dedicated workflow that forces a new checkout on a sunset date. canonical: https://www.zettlor.com/guides/membership/unlimited-until-date keywords: "sauna, cold plunge, membership, Zettlor, session, seat" updated: 2026-08-26 status: partial --- # Can a membership include unlimited visits until a date, then re-checkout? You can sell unlimited sauna and cold plunge visits and set an expiration date on the credit. There is no dedicated workflow that automatically forces a new checkout on that date; after expiry the guest buys again from the store or booking page. ## What Zettlor does today Unlimited is an option on the membership product. Credits support an expiration date. When the credit expires or the membership ends, the guest is no longer covered at checkout. Staff do not get a sunset-then-recheckout automation; the next purchase is a normal store or booking checkout. This behavior is partial: some of it is live, and the rest is a desk workaround rather than a missing settings screen you should hunt for. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Store → Products for unlimited on the plan. Set credit expiration on the product or the granted credit. After expiry, sell a new product at the desk or send the guest to the store. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Operators promise a founding window that auto-converts to a paid plan on a date. Nothing forces that checkout; the guest loses unlimited cover when the credit expires. ## Operator example Reddit NYC ran a summer unlimited pass with an expiration date in September. When the date hit, members bought a monthly plan from the store; staff did not have a forced re-checkout button. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Create or edit the membership and turn on unlimited if visits should not count. 2. Set an expiration date on the product or credit so cover ends on the date you intend. 3. Tell members they buy again from the store after that date. 4. Do not look for a Settings path named forced re-checkout; it is not built. ## Related questions ### Will Zettlor charge them automatically on the end date? No. Expiry ends cover. A new purchase is a separate checkout. ### Is this the same as sessions per period? No. Sessions per period is a resetting count. Unlimited until a date is uncounted access with an end date. ## Follow-up guides - [Stop selling a membership without cutting off people already on it](/guides/membership/sunset-plan) - [Punch-pack credit expiry](/guides/membership/credit-expiry) Book a [demo](/demo) or [get started](/get-started). --- # /guides/membership/gift-card-at-booking --- title: "How do I redeem a gift card at booking, for a session and for retail?" description: "Guests redeem a staff-issued gift-card code at booking and store checkout. Gift-card payment at POS does not reduce that code's remaining balance." canonical: https://www.zettlor.com/guides/membership/gift-card-at-booking keywords: "sauna, cold plunge, membership, Zettlor, session, seat" updated: 2026-09-05 status: partial --- # How do I redeem a gift card at booking, for a session and for retail? Guests enter a gift-card code on booking or store checkout to pay for a sauna or cold plunge session or retail. Issue those codes under Store → Gift Cards. Gift-card payment at POS records a sale and does not reduce the code balance. ## What Zettlor does today A staff-issued code spends the remaining gift-card balance at booking and store checkout. Buying a gift card on the public store grants a credit on the customer instead of a redeemable code. POS gift-card payment completes a register sale without reducing either balance. Treat codes, customer credits, and POS gift-card sales as three separate systems. This behavior is partial: some of it is live, and the rest is a desk workaround rather than a missing settings screen you should hunt for. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Store → Gift Cards to issue codes and to check remaining. Type a code, last four characters, recipient name, or email in Check remaining, then submit. Guests can open `/c/{handle}/gift/check` without starting checkout. Redeem the code on booking or store checkout after you know remaining. For a walk-in at POS, do not assume gift-card payment spends the same code balance. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Staff take a gift card at POS and the guest still has a checkout code balance, or the reverse: the code works online but POS gift-card payment does not spend it. ## Operator example Alchemy issues a code under Store → Gift Cards that redeems on the booking page for a cold plunge seat. That code is not spent when staff choose gift-card payment at POS for towels. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Search remaining on Store → Gift Cards (code, last four characters, recipient name, or email). 2. If the guest is checking themselves, send them to `/c/{handle}/gift/check`. 3. Have the guest enter the code on booking or store checkout. 4. If staff take payment at POS, treat gift-card payment there as a separate sale, not a spend of the same code. ## Related questions ### Does gift-card payment at POS spend the same balance as checkout? No. POS gift-card payment records a sale and does not reduce a staff-issued code balance. Guests redeem codes on booking or store checkout. ### Can a gift card pay for a membership subscription? Gift-card codes redeem on booking and store checkout. They are not a membership subscription discount. A gift card bought on the public store grants a credit on the customer, not a code. ## Follow-up guides - [Promo codes at cart checkout](/guides/pay/promo-at-cart) - [Load pre-sold gift-card balances after cutover](/guides/migrate/gift-card-balances) Book a [demo](/demo) or [get started](/get-started). --- # /guides/membership/punch-pass-on-event --- title: How do I auto-deduct a punch pass when they book an event? description: "When an event accepts purchased packs and passes, session credits burn per seat at checkout for a sauna or cold plunge event." canonical: https://www.zettlor.com/guides/membership/punch-pass-on-event keywords: "sauna, cold plunge, membership, Zettlor, session, seat" updated: 2026-08-26 status: live --- # How do I auto-deduct a punch pass when they book an event? Turn on Purchased packs and passes on the event so a punch pass auto-deducts when the guest books. Session credits burn per seat, not per minute, when that toggle is on and the credit is valid for the event. ## What Zettlor does today Events have Purchased packs and passes and Membership-granted credits under Unit credits. Checkout burns one session credit per attendee seat when those toggles allow it. A pack can still be limited to certain offerings or locations; leaving restrictions unset does not mean every event. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Open the event under Scheduling → Events. Turn on Purchased packs and passes, and Membership-granted credits if members should also spend. Confirm the punch pack product uses session credits and is spendable. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Operators sell a 10-pack, then wonder why event checkout still charges cash because Purchased packs and passes is off. Guests think the pass is broken. ## Operator example Rytual's Friday night event accepts punch packs. A guest with three session credits left books one seat and leaves with two; the same pack still works on regular shared sessions. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Open the event you want packs to pay for under Scheduling → Events. 2. Turn on Purchased packs and passes. 3. Leave pack offering and location limits as they are unless you need to restrict where the pack spends. 4. Book a test seat and confirm remaining credits drop by one per attendee. ## Related questions ### Does a guest plus-one burn two punches? Session credits burn per seat. Two attendees on the reservation burn two credits when Purchased packs and passes is on. ### What if the pack is monetary, not session credits? Monetary credits spend as currency, not punches. Punch-pass auto-deduct is the session-credit path. ## Follow-up guides - [Block punch packs on one event](/guides/membership/block-punch-packs-on-one-event) Book a [demo](/demo) or [get started](/get-started). --- # /guides/membership/block-punch-packs-on-one-event --- title: How do I block punch packs on one event but still allow them on regular sessions? description: Turn off Purchased packs and passes on that event. Regular sauna and cold plunge sessions still accept packs when the credit allows them. canonical: https://www.zettlor.com/guides/membership/block-punch-packs-on-one-event keywords: "sauna, cold plunge, membership, Zettlor, session, seat" updated: 2026-08-26 status: live --- # How do I block punch packs on one event but still allow them on regular sessions? Turn off Purchased packs and passes on the one event you want to keep cash-or-membership only. Regular sessions still accept punch packs when the credit is valid for them. ## What Zettlor does today Purchased packs and passes is per event. Regular sessions keep their own credit rules. Blocking packs on one event does not hide the pack product or stop it on weekday sessions. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Open the event under Scheduling → Events. Turn off Purchased packs and passes. Leave Membership-granted credits on if members should still spend membership credits. Do not hide the pack product from sale. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Staff hide the punch pack product from sale to block one event, and regular sauna sessions stop accepting packs for everyone. ## Operator example Alchemy's members-only solstice event turns off punch packs so founding members use membership credits, while weekday shared sessions still take 10-packs. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Open the event that should reject packs under Scheduling → Events. 2. Turn off Purchased packs and passes. 3. Leave regular slot templates unchanged. 4. Book a test punch-pack guest on a weekday session and on the event to confirm the split. ## Related questions ### Do I need a separate punch pack product? No. Block acceptance on the event. The same pack still spends on regular sessions. ### Can membership credits still apply? Yes, if Membership-granted credits is still on. Pack blocking is independent of membership credits. ## Follow-up guides - [Auto-deduct a punch pass on an event](/guides/membership/punch-pass-on-event) - [Add a one-off event](/guides/booking/one-off-event) Book a [demo](/demo) or [get started](/get-started). --- # /guides/membership/comp-credits --- title: "How do I add session credits without charging — as a comp, a makeup, or a migration?" description: Staff grant complimentary or goodwill credits on the customer. Import can grant credits for a migration. Spendable credits must be active and spendable. canonical: https://www.zettlor.com/guides/membership/comp-credits keywords: "sauna, cold plunge, membership, Zettlor, session, seat" updated: 2026-08-26 status: live --- # How do I add session credits without charging — as a comp, a makeup, or a migration? Staff grant complimentary or goodwill session credits on the customer without a card charge. Import can grant credits during a migration; a credit only spends when it is active and spendable. ## What Zettlor does today Staff credit grants support complimentary and goodwill reasons. CSV and universal import can create credits on the customer. Remaining credits are not enough: cancelled, fully used, or expired credits stay unspendable even if a refill writes a positive balance. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Open the customer → grant complimentary or goodwill credits. For cutover, use Advanced → Import. Confirm credits are active and spendable before you tell the guest it will book at $0. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Staff refill remaining credits on a cancelled credit and the guest still pays. Makeup visits never apply at checkout because status was never revived to active. ## Operator example Rytual comps two sauna credits after a heater outage. Staff grant goodwill session credits on the customer; the next shared session books at $0. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Open the customer on CRM → Customers. 2. Grant complimentary or goodwill session credits for the makeup or migration. 3. Confirm credits are active and spendable. 4. Book a test sauna or cold plunge seat and confirm checkout is $0. ## Related questions ### Is remaining credits enough to spend? No. The credit must also be active and spendable. Cancelled, fully used, or expired credits cannot spend even if a leftover count shows. ### Can import grant credits without charging? Yes. Import can create credits on the customer for a migration. Then confirm status before guests book. ## Follow-up guides - [Book a complimentary session](/guides/membership/complimentary-session) - [Merge duplicate profiles without losing credits](/guides/desk/merge-profiles) Book a [demo](/demo) or [get started](/get-started). --- # /guides/membership/complimentary-session --- title: How do I book a complimentary session? description: "Staff book a walk-in or reservation at $0 when a credit covers the seat, or grant a complimentary credit first." canonical: https://www.zettlor.com/guides/membership/complimentary-session keywords: "sauna, cold plunge, membership, Zettlor, session, seat" updated: 2026-08-26 status: live --- # How do I book a complimentary session? Staff book the complimentary sauna or cold plunge seat at the desk so checkout is $0 when a credit covers it, or after a complimentary grant. Public checkout still creates a reservation; it is $0 only when spendable credit covers the seat. ## What Zettlor does today Staff walk-in and reservation flows can complete at $0 when session or dollar credits cover the price, or when staff choose complimentary on the walk-in pay path. A public guest without cover still sees a price. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Grant a complimentary credit if they have none, then book the slot from Schedule or walk-in. Walk-in pay supports now or comp; do not invent a complimentary-session toggle on the offering. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Desk clicks the public booking page, pays $0 expecting a hidden complimentary product, and either fails payment or consumes the last seat without a customer credit record. ## Operator example Alchemy comps a first-timer cold plunge after a tour. Staff grant one session credit, then walk them onto the in-progress slot so the reservation shows paid with credit. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. If the guest has no cover, grant a complimentary credit on the customer. 2. Open Schedule and book the sauna or cold plunge slot as staff. 3. Use walk-in comp or let the credit cover the seat to $0. 4. Confirm the attendee is on the reservation before they enter the room. ## Related questions ### Can the guest self-book a free session without credit? Public checkout charges the session price unless spendable credit covers it. Staff comp is the desk path. ### Does comp consume capacity? Yes. A complimentary seat still occupies session capacity like any other reservation. ## Follow-up guides - [Grant credits without charging](/guides/membership/comp-credits) - [Sign up a walk-in after the session starts](/guides/desk/walk-in-after-start) Book a [demo](/demo) or [get started](/get-started). --- # /guides/membership/hold --- title: How do I freeze or hold a membership without cancelling it? description: Members can pause from the customer portal. There is no dedicated staff freeze screen. canonical: https://www.zettlor.com/guides/membership/hold keywords: "sauna, cold plunge, membership, Zettlor, session, seat" updated: 2026-08-26 status: partial --- # How do I freeze or hold a membership without cancelling it? Members pause from the customer portal, which sets the membership to paused without cancelling the Stripe subscription relationship. There is no dedicated staff freeze UI; remaining access changes happen at the desk or in Stripe Dashboard. ## What Zettlor does today The portal pause and resume path exists. Paused is a membership status. Staff do not get a Freeze button on the customer. Billing pause is a Stripe-side action. Credits may still exist; do not assume pause auto-revokes every credit without checking the customer. This behavior is partial: some of it is live, and the rest is a desk workaround rather than a missing settings screen you should hunt for. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Ask the member to pause in the customer portal, or pause the subscription in Stripe Dashboard. There is no Settings → Freeze membership. Adjust credits at the desk if the pause should stop spending. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Staff cancel the Stripe subscription thinking that is a hold. The member loses the plan, and a later resume is a new checkout instead of an unpause. ## Operator example A Ro member pauses for a month in the portal before travel. Staff check paused status on CRM → Customers and do not cancel the plan in Stripe. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Do not cancel the membership if you mean a hold. 2. Have the member pause in the customer portal, or pause billing in Stripe Dashboard. 3. Confirm membership status is paused on CRM → Customers. 4. If they should not spend credits during the hold, handle that at the desk; there is no freeze settings path. ## Related questions ### Is there a staff Freeze button? No dedicated staff freeze UI. Use the member portal pause or Stripe Dashboard. ### Does pause cancel credits? Pause is membership status. Check the credit on the customer; do not assume every credit auto-revokes. ## Follow-up guides - [Failed membership charges and access](/guides/membership/failed-charges) - [Stop selling a plan without cutting off current members](/guides/membership/sunset-plan) Book a [demo](/demo) or [get started](/get-started). --- # /guides/membership/early-access --- title: How do I give members an earlier booking window than drop-ins? description: Booking-window rules can target active membership so members book sauna and cold plunge sessions before drop-ins. canonical: https://www.zettlor.com/guides/membership/early-access keywords: "sauna, cold plunge, membership, Zettlor, session, seat" updated: 2026-08-26 status: live --- # How do I give members an earlier booking window than drop-ins? Set booking-window rules with the active-membership audience so members can book farther ahead, or closer to start, than drop-ins. Scheduling → Configuration is the path; the window is not a separate membership perk toggle on the product. ## What Zettlor does today Booking window rules support an active-membership audience. Minimum advance and maximum advance can differ by audience. Drop-in guests keep the default window. This is independent of punch packs unless those guests also have an active membership. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Scheduling → Configuration. Add or edit booking window constraints for active membership versus everyone else. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Operators hide peak slots entirely, then wonder why drop-ins never see them. Early access should open the same slots sooner for members, not delete drop-in inventory. ## Operator example Rytual lets members book the 7am sauna 14 days out and drop-ins only 7. Both audiences still buy the same shared-capacity slot once it is in their window. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Open Scheduling → Configuration. 2. Set maximum advance and minimum advance for the default audience. 3. Add an active-membership constraint with the earlier (or closer) window you want. 4. Preview as a member and as a drop-in on the same sauna or cold plunge slot. ## Related questions ### Does this reserve seats only for members? No. It changes when each audience can book. Capacity is still shared unless you use other access rules. ### Do punch packs get the member window? The audience is active membership. A pack-only guest uses the drop-in window unless they also have an active membership. ## Follow-up guides - [How far ahead guests can book](/guides/booking/booking-window) - [Included member sessions at checkout](/guides/membership/included-sessions) Book a [demo](/demo) or [get started](/get-started). --- # /guides/membership/failed-charges --- title: How do I see failed membership charges and retry them before we cut access? description: "While Stripe marks the subscription past due, membership credits stay spendable. After unpaid or canceled, those credits stop. Retry the invoice in Stripe Dashboard." canonical: https://www.zettlor.com/guides/membership/failed-charges keywords: "sauna, cold plunge, membership, Zettlor, session, seat" updated: 2026-08-26 status: live --- # How do I see failed membership charges and retry them before we cut access? If Stripe marks the membership past due, the member can still spend membership credits while Stripe retries. After unpaid, membership is paused and those credits suspend. After canceled, membership ends and those credits suspend. Existing reservations can still check in. Retry the invoice in Stripe Dashboard. ## What Zettlor does today On a failed invoice, Zettlor keeps membership credits spendable while Stripe is past due. When Stripe moves the subscription to unpaid, membership status becomes paused and credits suspend. When Stripe cancels, membership status becomes canceled and credits suspend. There is no Zettlor retry-charge button. Open CRM → Customers to read membership status, then retry in Stripe Dashboard. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Open CRM → Customers → membership status. Retry the invoice in Stripe Dashboard. Do not invent Settings → Retry charge. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Desk turns the member away on the first failed invoice while Stripe is still past due and credits should still spend. Or they ignore unpaid status until credits stay suspended after a successful retry. ## Operator example Alchemy sees a member flip to past due, still lets them book the cold plunge with membership credits, and retries the invoice in Stripe the same morning before unpaid suspends those credits. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Open the customer on CRM → Customers and read membership status. 2. If Stripe is past due, membership stays Active and membership credits stay spendable while Stripe retries. 3. Retry or pay the invoice in Stripe Dashboard. There is no Zettlor retry-charge button. 4. If Stripe is unpaid, membership is paused and those credits suspend. If Stripe is canceled, membership is cancelled or expired and those credits suspend. Existing reservations can still check in. ## Related questions ### Does a failed charge immediately ban the member? No. Past due keeps membership Active and credits spendable. Unpaid pauses membership and freezes those credits. Canceled ends membership. Existing reservations can still check in. ### Where do I retry the card? Stripe Dashboard on the connected account. Zettlor does not ship a retry-charge button. ## Follow-up guides - [Pause a membership without cancelling](/guides/membership/hold) - [Purchase confirmation emails](/guides/pay/confirmation-emails) Book a [demo](/demo) or [get started](/get-started). --- # /guides/membership/hidden-plan-link --- title: How do I hide a founding or corporate membership and sell it only by a private link? description: Set the membership product or store entry to a private link so it does not appear on the public store but still sells by URL. canonical: https://www.zettlor.com/guides/membership/hidden-plan-link keywords: "sauna, cold plunge, membership, Zettlor, session, seat" updated: 2026-08-26 status: live --- # How do I hide a founding or corporate membership and sell it only by a private link? Mark the membership private link (or equivalent unlisted store visibility) and share the URL. Founding and corporate sauna and cold plunge plans stay off the public catalog while the link still checks out. ## What Zettlor does today Keep the membership Published on Store → Products so the URL still sells. Put it on a Pages → Store page with Visibility set to Private Link, or copy the product URL from the shareable-link fields on Store → Products. Unchecking Published stops new purchase. Existing subscribers are unaffected. Pages → Links is the org link directory (booking, events, self check-in), not the product private URL. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Store → Products: leave Published on, then copy the product shareable URL. Or Pages → Store → Visibility → Private Link. Do not uncheck Published if you only meant to hide the plan from the public catalog. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Staff uncheck Published on the membership and the private URL stops selling. Founding members cannot buy, and corporate invoices stall. ## Operator example Reddit NYC keeps a corporate contrast membership on a private link for the office manager. Walk-up guests never see it on the public store. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Open the membership under Store → Products and leave Published on. 2. Copy the product shareable URL, or add the plan to a Pages → Store page and set Visibility to Private Link. 3. Send that URL; confirm a test checkout without listing the plan on the public store. 4. Do not uncheck Published if the private URL must still sell. ## Related questions ### Is unchecking Published the same as Private Link? No. Unchecking Published stops new purchase. Private Link on Pages → Store keeps a URL that still sells while the membership stays Published. ### Do current members lose the plan when I hide it? Unchecking Published does not cancel existing Stripe subscriptions. See sunset-plan if you are taking the plan off the shelf. ## Follow-up guides - [Stop selling a plan without cutting off current members](/guides/membership/sunset-plan) - [Hide a private event behind an access code](/guides/booking/private-access-code) Book a [demo](/demo) or [get started](/get-started). --- # /guides/membership/credit-expiry --- title: How do I set when unused session credits on a punch pack expire? description: Punch packs use Valid for (days) on the product or an expiration date on the credit. Membership sessions-per-period reset; they do not expire-forward like a pack. canonical: https://www.zettlor.com/guides/membership/credit-expiry keywords: "sauna, cold plunge, membership, Zettlor, session, seat" updated: 2026-08-26 status: live --- # How do I set when unused session credits on a punch pack expire? Set Valid for (days) on the punch-pack product, or an expiration date on the credit, so unused sauna and cold plunge punches expire. Membership included sessions reset each billing period; they are not a pack expiry calendar. ## What Zettlor does today Pass and gift-card products have Valid for (days) and Never expires. Credits store an expiration date. A remaining punch-pack balance expires. Visit memberships refill/reset on the period boundary instead of carrying a decaying pack balance. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Store → Products → punch pack → Valid for (days). Inspect the expiration date on the customer credit. Do not use Sessions per period when you mean a pack that expires. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Operators set sessions per period on a pack-shaped product, then wonder why unused punches reset on a billing date instead of expiring 90 days after purchase. ## Operator example Alchemy's 10-pack expires 90 days after purchase. A guest with two punches left after day 90 cannot book; they buy another pack rather than waiting for a membership reset. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Open the punch-pack product under Store → Products. 2. Set Valid for (days), or leave Never expires off and set an expiration date when granting. 3. Confirm the customer credit shows an expiration date. 4. Do not confuse this with membership sessions per period, which reset rather than expire-forward. ## Related questions ### Do membership included sessions expire the same way? No. Included sessions reset on the billing period. Punch packs keep a remaining balance until used or expired. ### What status is an expired pack? Expired credits are not spendable even if a stale count remains. Credits must be active and spendable to spend. ## Follow-up guides - [Included sessions that reset](/guides/membership/included-sessions) Book a [demo](/demo) or [get started](/get-started). --- # /guides/membership/sunset-plan --- title: How do I stop selling a membership without cutting off people already on it? description: Uncheck Published on the membership product. Existing Stripe subscriptions keep billing. canonical: https://www.zettlor.com/guides/membership/sunset-plan keywords: "sauna, cold plunge, membership, Zettlor, session, seat" updated: 2026-08-26 status: live --- # How do I stop selling a membership without cutting off people already on it? Uncheck Published on the membership so new guests cannot buy it. People already on the Stripe subscription keep their sauna and cold plunge plan; unpublishing the product does not cancel them. ## What Zettlor does today Published on Store → Products controls new purchase. Unchecking it leaves the product in draft. Existing subscriptions continue until they cancel or fail in Stripe. Credits on those members keep spending while status stays active and spendable. Unpublishing is how you retire a founding sauna and cold plunge rate without a mass cancel in Stripe. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Store → Products → uncheck Published on the membership. Confirm existing members still show active on CRM → Customers. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Staff cancel every Stripe subscription to “take the plan down,” then founding members lose access overnight. ## Operator example Rytual stops selling the founding rate publicly. Current founding members keep billing; only new guests are pushed to the current monthly plan. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Open the membership product. 2. Uncheck Published. 3. Do not cancel Stripe subscriptions unless you intend to end those members. 4. Confirm an existing member can still book a sauna or cold plunge seat with their credit. ## Related questions ### Does unchecking Published cancel Stripe? No. It stops new purchase. Existing subscriptions continue. ### How do I keep selling to one corporate account? Leave Published on and use a Pages → Store Private Link if that URL must still check out. ## Follow-up guides - [Sell a plan only by private link](/guides/membership/hidden-plan-link) - [Pause a membership without cancelling](/guides/membership/hold) Book a [demo](/demo) or [get started](/get-started). --- # /guides/membership/revenue-vs-usage --- title: How do I see membership revenue billed versus sessions members actually used? description: Revenue and utilization reports exist. There is no dedicated billed-versus-burned membership liability report. canonical: https://www.zettlor.com/guides/membership/revenue-vs-usage keywords: "sauna, cold plunge, membership, Zettlor, session, seat" updated: 2026-08-26 status: partial --- # How do I see membership revenue billed versus sessions members actually used? You can export revenue and utilization CSVs for the sauna and cold plunge room. There is no dedicated report that lines membership invoices against session credits burned, so billed-versus-used is a desk export exercise, not a liability screen. ## What Zettlor does today Staff reports include revenue, reservations, transactions, and daily usage CSVs. Utilization is not the same as a membership liability ledger. Gift-card and credit balances also sit in more than one system. This behavior is partial: some of it is live, and the rest is a desk workaround rather than a missing settings screen you should hunt for. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Analytics → Operating reports. Export revenue and usage for the date window you need. There is no Settings → Membership liability. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Operators quote unused included sessions as deferred revenue from a report that does not exist, then the accountant restates year-end. ## Operator example Alchemy exports monthly revenue plus daily usage, then the bookkeeper matches Stripe membership invoices to visits outside Zettlor. They do not wait for a billed-vs-burned screen. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Open Analytics → Operating reports. 2. Export revenue for the period you billed memberships. 3. Export usage or reservations for sessions members actually attended. 4. Reconcile in your spreadsheet; do not expect a dedicated liability report. ## Related questions ### Is daily usage an attendance roster? No. Daily usage is not a per-guest attendance export. See the booking ledger guide. ### Can I see unused included sessions as a dollar liability? Zettlor does not ship a dedicated billed-versus-used report. Export CSVs and calculate outside Zettlor. ## Follow-up guides - [Export a booking ledger and attendance CSV](/guides/pay/export-ledger) - [Membership billed versus sessions used](/guides/membership/revenue-vs-usage) Book a [demo](/demo) or [get started](/get-started). --- # /guides/booking/arrival-window --- title: "How do I sell a longer stay window with a chosen arrival time, without turning it into an appointment?" description: "Sell a sauna or cold plunge stay as a timed session with a fixed session length, not a practitioner appointment." canonical: https://www.zettlor.com/guides/booking/arrival-window keywords: "sauna, cold plunge, booking, Zettlor, session, seat" updated: 2026-08-26 status: live --- # How do I sell a longer stay window with a chosen arrival time, without turning it into an appointment? Zettlor sells shared-capacity sauna and cold plunge sessions where the guest picks a start time and the stay length is the session length. This is seat-based sauna and cold plunge access, not a one-to-one appointment with a practitioner. ## What Zettlor does today Shared-capacity sessions use discrete slots with a set session length. The guest selects a start time; their stay window is that session length. Capacity is seat-based, not a free-form arrival range. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Scheduling → Configuration to set session length and release policy; Schedule to verify open slots on the schedule. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Operators stretch session length expecting guests to arrive anytime inside a window. Guests only see discrete starts; a 90-minute session is one arrival time, not a flexible range. ## Operator example Rytual runs 90-minute sauna and cold plunge sessions. Guests pick 10:00 or 10:30 start; the stay ends when the session length expires, with no practitioner appointment layer. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Create or edit a shared-capacity sauna or cold plunge offering. 2. In Scheduling → Configuration, set session length to the stay length you want sold. 3. Set start interval or session start times so start times match your arrival cadence. 4. Generate slots and confirm on Schedule that each row shows the expected session length. 5. Publish and test checkout: guest picks one start time; checkout confirms that slot only. ## Related questions ### Can guests arrive anytime during the window? No. They book a specific start time. The window is the session length from that start, not a flexible arrival range. ### Is this the same as a treatment appointment? No. Shared-capacity sessions are seat-based sauna and cold plunge access. One-to-one practitioner offerings are separate appointments. ## Follow-up guides - [Staggered start times](/guides/booking/staggered-starts) Book a [demo](/demo) or [get started](/get-started). --- # /guides/booking/override-one-session --- title: "How do I override one session (hide, cancel, or change capacity) without changing the rest of the schedule?" description: "Close, cap, or hide a single sauna or cold plunge slot without editing the underlying repeating schedule template." canonical: https://www.zettlor.com/guides/booking/override-one-session keywords: "sauna, cold plunge, booking, Zettlor, session, seat" updated: 2026-08-26 status: live --- # How do I override one session (hide, cancel, or change capacity) without changing the rest of the schedule? Use Schedule per-slot controls to mark one slot open or closed, or override capacity. Repeating schedule templates stay intact; only that one generated slot changes. ## What Zettlor does today Each generated slot can be toggled open or closed and given a capacity override. The change applies only to that session. Templates and future generated slots are unaffected unless you edit the template itself. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Schedule → select the slot → open/closed toggle or capacity override. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Staff edit the repeating schedule template thinking it is a one-off change. That alters every future generated slot, not only today's row. ## Operator example Alchemy closes one Saturday cold plunge slot for maintenance on Schedule while Sunday slots from the same template stay open at full capacity. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Open Schedule and find the specific sauna or cold plunge slot to change. 2. Toggle open or closed to hide or cancel that single session for guests. 3. Set a capacity override if you need fewer seats without changing the template default. 4. Confirm guest booking preview no longer shows the closed slot or shows the new cap. 5. Leave repeating schedule templates unchanged unless you want every future occurrence to match. ## Related questions ### Does closing one slot affect the template? No. Per-slot overrides apply only to that slot. The repeating schedule template still generates future slots at template defaults. ### Can I reopen a slot I closed? Yes. Return to Schedule, find the slot, and toggle it back to open or remove the capacity override. ## Follow-up guides - [One-off events outside the regular schedule](/guides/booking/one-off-event) Book a [demo](/demo) or [get started](/get-started). --- # /guides/booking/reserved-seat --- title: How do I guarantee a reserved seat for someone driving in? description: "Hold capacity for a guest en route using a confirmed reservation, not a dedicated driving hold." canonical: https://www.zettlor.com/guides/booking/reserved-seat keywords: "sauna, cold plunge, booking, Zettlor, session, seat" updated: 2026-08-26 status: partial --- # How do I guarantee a reserved seat for someone driving in? A confirmed reservation holds capacity on the slot. Checkout hold is checkout protection only and is not an on-the-way hold for someone driving in. ## What Zettlor does today Confirmed bookings reserve seats. Checkout holds expire when checkout stalls. There is no dedicated driving or en-route hold type. Staff can create a confirmed reservation at the desk to guarantee the seat before the guest arrives. This behavior is partial: some of it is live, and the rest is a desk workaround rather than a missing settings screen you should hunt for. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Schedule → create reservation for the guest on the target sauna or cold plunge slot. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Staff assume an active checkout hold reserves a seat for a late guest. Holds expire; another guest can confirm and take the last seat before the driver arrives. ## Operator example Ro staff see a member calling from the road, open Schedule, and book them into the next sauna slot so capacity is held before they park. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Identify the sauna or cold plunge slot the guest needs on Schedule. 2. Create a confirmed reservation at the desk for that guest and slot. 3. Confirm held seats reflect the booking on the schedule row. 4. Tell the guest their seat is reserved; they complete payment at arrival if needed. 5. Do not rely on an unpaid checkout hold as a driving guarantee. ## Related questions ### Does checkout hold a seat while someone drives? Only briefly. Checkout hold is temporary checkout protection, not a staff driving hold. Confirm the booking to guarantee the seat. ### Can staff book without the guest at the desk? Yes. Desk reservation creation on Schedule holds capacity the same as a guest-confirmed booking. ## Follow-up guides - [Why a slot disappears during checkout](/guides/booking/slot-no-longer-available) Book a [demo](/demo) or [get started](/get-started). --- # /guides/booking/private-with-add-ons --- title: "How do I sell a private room during public hours with add-ons, not only a full buyout?" description: "Offer private sauna or cold plunge access during shared hours with checkout add-ons, not only a full-space buyout." canonical: https://www.zettlor.com/guides/booking/private-with-add-ons keywords: "sauna, cold plunge, booking, Zettlor, session, seat" updated: 2026-08-26 status: live --- # How do I sell a private room during public hours with add-ons, not only a full buyout? Spaces support shared, private, and buyout modes; private is a session type on the room during public hours, not only a full-space buyout lock. Checkout add-ons attach extras on the same reservation without locking the whole space. ## What Zettlor does today A space can run dual-mode: shared seats plus private sessions on the same calendar. A private offering on the space sells a private room slot. Add-ons at checkout layer towels, aromatherapy, or other catalog items. Full buyout uses a separate space lock. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Scheduling → Configuration for private vs shared on the space; offering add-on catalog at checkout; Schedule to verify private rows. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Operators only configure buyout locks when they want a private hour. They skip private session type and miss add-on revenue during public hours. ## Operator example Reddit NYC sells a private sauna hour during evening shared hours with add-on cold plunge tokens at checkout, without locking the entire room for buyout. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Configure the sauna or cold plunge space for shared and private session types. 2. Create a private offering on that space with the repeating schedule template you want. 3. Attach add-on catalog items to the offering for checkout extras. 4. Generate slots and confirm private rows appear alongside shared seats on Schedule. 5. Use a space buyout lock only when you need a full buyout, not for a single private hour. ## Related questions ### Is private the same as buyout? No. Private is a session type with its own capacity. Buyout locks the space so no other sessions run concurrently. ### Can add-ons sell without buyout? Yes. Configure add-ons on the offering; guests add them during checkout for a private or shared slot. ## Follow-up guides - [Turnaround buffers between private sessions](/guides/booking/session-buffers) Book a [demo](/demo) or [get started](/get-started). --- # /guides/booking/group-rate --- title: "How do group bookings work — one SKU with a volume discount, or separate products?" description: "Group sauna and cold plunge visits use quantity on one reservation; volume discounts are buyout or tier strategies, not a general shared-product volume table." canonical: https://www.zettlor.com/guides/booking/group-rate keywords: "sauna, cold plunge, booking, Zettlor, session, seat" updated: 2026-08-26 status: partial --- # How do group bookings work — one SKU with a volume discount, or separate products? Guests book quantity on a single reservation for the same slot. Volume discounting is partial: buyout strategy and pricing tiers cover some cases, not a universal shared-product volume table. ## What Zettlor does today One reservation can carry quantity for multiple guests on one slot. Zettlor does not automatically apply volume discounts on every shared-capacity offering. Buyout pricing and pricing tiers can encode group or volume rules for specific offerings. This behavior is partial: some of it is live, and the rest is a desk workaround rather than a missing settings screen you should hunt for. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Schedule → create reservation with quantity; Scheduling → Pricing for tier or buyout group pricing. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Operators expect a volume-discount table on every shared product. Without buyout or tier setup, each seat prices at the standard per-seat rate. ## Operator example Alchemy books a six-guest cold plunge slot as quantity 6 on one reservation; a separate group-rate tier on a buyout offering covers their private party package. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Confirm the slot has enough shared-capacity seats for the group size. 2. Create one reservation with quantity matching the group on Schedule or guest checkout. 3. For discounted group pricing, add a pricing tier or buyout strategy on the offering. 4. Verify checkout total reflects tier rules, not only per-seat multiplication. 5. Split into separate products only when offerings truly differ, not for same-slot volume. ## Related questions ### Is there a global volume discount table? No. Quantity on one reservation is supported; automatic volume tables on every shared offering are not built. ### How do I price a private group package? Use buyout strategy or pricing tier on the private or buyout offering, then book quantity or buyout as your package requires. ## Follow-up guides - [Shared-capacity seats on a session](/guides/booking/shared-capacity) Book a [demo](/demo) or [get started](/get-started). --- # /guides/booking/private-access-code --- title: How do I hide a private event behind an access code? description: Turn on Hidden (only visible with access code) on the offering so it stays off public browse. Store → Promos does not attach that unlock to a code. canonical: https://www.zettlor.com/guides/booking/private-access-code keywords: "sauna, cold plunge, booking, Zettlor, session, seat" updated: 2026-08-26 status: live --- # How do I hide a private event behind an access code? On the offering under Scheduling → Configuration, turn on Hidden (only visible with access code). That keeps the sauna or cold plunge service off public catalog surfaces. Store → Promos can discount a cart; it does not include a control that reveals a hidden offering. ## What Zettlor does today Offerings have Hidden (only visible with access code). Staff can still book the hidden offering from Schedule. Store → Promos has no offering-unlock field, so a discount code does not reveal the hidden service. For a guest-facing private URL, use a private event or a Pages → Store page with Visibility set to Private Link. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Scheduling → Configuration → offering → Hidden (only visible with access code). Book invited guests from Schedule. Do not invent a Store → Promos control that reveals hidden offerings. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Staff create a discount promo expecting it to unlock a hidden offering. Guests still cannot browse the service, and the promo only tries to discount a visible cart. ## Operator example Rytual turns on Hidden (only visible with access code) for a member-only cold plunge offering so it stays off the public booking page, then books invited guests from Schedule. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Open the sauna or cold plunge offering under Scheduling → Configuration. 2. Turn on Hidden (only visible with access code). 3. Generate or confirm slots, then book invited guests from Schedule. 4. If guests need a URL, share a private event or a Pages → Store Private Link rather than a Store → Promos discount code. ## Related questions ### Can guests book a hidden offering with a promo code? Not from Store → Promos. That screen does not attach an offering unlock. Staff book the hidden offering from Schedule, or share a private event or store URL. ### Does hiding stop desk bookings? Staff can still book hidden offerings from Schedule; hiding affects public guest discovery. ## Follow-up guides - [Promo codes at cart](/guides/pay/promo-at-cart) Book a [demo](/demo) or [get started](/get-started). --- # /guides/booking/stop-double-book --- title: How do I stop a member booking the same session twice? description: "Reduce duplicate sauna and cold plunge bookings with configurable limits, not a hard unique constraint per customer and slot." canonical: https://www.zettlor.com/guides/booking/stop-double-book keywords: "sauna, cold plunge, booking, Zettlor, session, seat" updated: 2026-08-26 status: partial --- # How do I stop a member booking the same session twice? Configurable booking limits can cap how many reservations a customer holds per window. There is no hard block that prevents the same customer from booking the same slot twice. ## What Zettlor does today Booking limit rules can reduce double bookings for the same customer. Limits are partial protection: a determined guest or import can still create duplicates. Desk can cancel the extra reservation when limits do not block it. This behavior is partial: some of it is live, and the rest is a desk workaround rather than a missing settings screen you should hunt for. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Scheduling → Configuration for booking limits; Schedule to cancel duplicate reservations. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Operators assume the system blocks every duplicate automatically. Without limit rules, the same member can confirm two seats on one slot. ## Operator example Ro sets a per-customer daily booking limit; when a member slips through twice, desk cancels the duplicate on Schedule. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Review Scheduling → Configuration for booking limit rules on your org. 2. Set per-customer or per-offering limits that match how many slots one member should hold. 3. Test checkout: attempt a second booking for the same slot and confirm limit messaging. 4. Monitor Schedule for duplicates that limits did not block. 5. Cancel or merge extra reservations at the desk when duplicates appear. ## Related questions ### Does Zettlor block duplicate bookings on the same slot? Not by default with a hard constraint. Configurable limits reduce doubles; desk handles stragglers. ### Can limits differ for members? Limits apply per configured rules. Member early-access windows are separate from duplicate prevention. ## Follow-up guides - [How far ahead guests can book](/guides/booking/booking-window) Book a [demo](/demo) or [get started](/get-started). --- # /guides/booking/sauna-plus-treatment --- title: How do I book a sauna plus a treatment add-on in one flow? description: Combine sauna or cold plunge access with catalog add-ons in one checkout; separate practitioner treatments need a second offering. canonical: https://www.zettlor.com/guides/booking/sauna-plus-treatment keywords: "sauna, cold plunge, booking, Zettlor, session, seat" updated: 2026-08-26 status: partial --- # How do I book a sauna plus a treatment add-on in one flow? Session checkout supports add-ons from the offering catalog on the same reservation. A treatment sold as a one-to-one practitioner offering is a separate offering and is not automatically chained in one flow. ## What Zettlor does today Add-ons on a shared-capacity sauna or cold plunge offering attach at checkout on one reservation. Practitioner treatments as one-to-one offerings require a second booking unless you sell the treatment as an add-on catalog item on the session. This behavior is partial: some of it is live, and the rest is a desk workaround rather than a missing settings screen you should hunt for. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Offering add-on catalog for session extras; separate offering create for one-to-one treatments; Schedule for two bookings if needed. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Operators create a one-to-one treatment offering and expect it to bundle into sauna checkout. Guests must complete two flows unless the treatment is an add-on item. ## Operator example Alchemy sells sauna access with a recovery add-on in one checkout; massage as a one-to-one offering is booked as a second appointment on Schedule. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. List session extras as add-on catalog items on the sauna or cold plunge offering. 2. Test guest checkout: base slot plus add-ons on one reservation. 3. For practitioner treatments, decide: add-on item on the session or separate one-to-one offering. 4. If separate, book the treatment as a second offering on Schedule or guest flow. 5. Align treatment timing with session buffers so slots do not overlap illegally. ## Related questions ### Can sauna and a massage book in one checkout? Only if the massage is an add-on on the session offering. One-to-one massage is a separate offering and booking. ### How do staff bundle at the desk? Add add-ons on desk checkout for the session, or create two reservations on Schedule for session plus treatment. ## Follow-up guides - [Private sessions with add-ons](/guides/booking/private-with-add-ons) Book a [demo](/demo) or [get started](/get-started). --- # /guides/booking/preferred-location --- title: How do guests pick a preferred location? description: "Multi-location sauna and cold plunge operators let guests choose a location each booking, not a saved home location." canonical: https://www.zettlor.com/guides/booking/preferred-location keywords: "sauna, cold plunge, booking, Zettlor, session, seat" updated: 2026-08-26 status: live --- # How do guests pick a preferred location? When the org runs multiple locations, the booking flow shows a location selector. Guests pick the site for that booking; there is no saved home-location preference in Zettlor today. ## What Zettlor does today Multi-location orgs expose location choice at booking time. Each reservation stores the chosen location. Guests choose again on the next booking unless your marketing site deep-links a location. Staff still see every site on Schedule; preferred location is a guest picker, not a saved home-club setting. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Schedule filtered by location; Scheduling → Configuration per location. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Staff expect members to have a saved preferred location. Guests who book the wrong site need desk help moving the reservation to the other location's slot. ## Operator example Reddit NYC runs Manhattan and Brooklyn rooms; guests pick the borough at booking each time for sauna or cold plunge sessions. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Confirm each location has offerings and generated slots in Scheduling → Configuration. 2. Verify the guest booking UI shows the location selector for multi-location orgs. 3. Train desk staff to confirm location when members call to book. 4. On Schedule, filter by location before moving or creating reservations. 5. Do not assume a persistent preferred location; guests choose per booking. ## Related questions ### Can guests save a default location? Guests cannot save a home location today. They select location each booking in the flow. ### Does membership apply across locations? Membership credits can be limited to certain locations. Guests still pick a location each time they book a sauna or cold plunge reservation. ## Follow-up guides - [Repeating schedules per location](/guides/booking/repeat-schedules) Book a [demo](/demo) or [get started](/get-started). --- # /guides/booking/staggered-starts --- title: How do staggered start times work without turning sessions into appointments? description: Run staggered sauna and cold plunge starts with start interval or session start times while staying seat-based shared-capacity access. canonical: https://www.zettlor.com/guides/booking/staggered-starts keywords: "sauna, cold plunge, booking, Zettlor, session, seat" updated: 2026-08-26 status: live --- # How do staggered start times work without turning sessions into appointments? Start interval or explicit session start times on a repeating schedule template create staggered starts on the same day. Slots remain shared-capacity seats, not one-to-one practitioner appointments. ## What Zettlor does today Templates can create session starts every N minutes or at fixed session start times. Each start is still a discrete shared-capacity slot with its own seat cap. Staggering increases throughput without turning slots into practitioner appointments. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Scheduling → Configuration → start interval or session start times; Schedule to verify staggered rows. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Operators set a long session length with a short start interval and overbook concurrent occupancy on one space. Overlapping slots on the same space still share a concurrent seat cap. ## Operator example Rytual cold plunge starts every 15 minutes via start interval while each guest still books a seat-based slot, not a practitioner appointment. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Open the repeating schedule template for the sauna or cold plunge offering. 2. Set start interval for regular stagger or session start times for explicit starts. 3. Keep session length aligned so overlapping occupancy stays within space capacity. 4. Run slot generation and review staggered rows on Schedule. 5. Confirm guest checkout shows multiple start times, each as its own bookable slot. ## Related questions ### Do staggered starts mean appointments? No. Each start is a shared-capacity seat slot. There is no assigned practitioner per staggered start. ### Can staggered slots overlap on one sauna? They can overlap in time; concurrent seat limits cap how many guests can be in the same space at once. ## Follow-up guides - [Longer stay windows with chosen arrival time](/guides/booking/arrival-window) Book a [demo](/demo) or [get started](/get-started). --- # /guides/booking/slot-no-longer-available --- title: "Why does a slot say available, then no longer available?" description: Explain last-seat races when checkout holds and confirmations change sauna and cold plunge availability. canonical: https://www.zettlor.com/guides/booking/slot-no-longer-available keywords: "sauna, cold plunge, booking, Zettlor, session, seat" updated: 2026-08-26 status: live --- # Why does a slot say available, then no longer available? Checkout holds add held seats while checkout runs. Two guests can see the last seat; the first confirmed hold or payment wins and the other sees the slot disappear. ## What Zettlor does today Open slots subtract confirmed bookings and active checkout holds from capacity. Stale holds expire after the hold timeout. Guest UI can lag briefly; refresh shows the slot gone when held seats reach the seat count. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Schedule to see held vs confirmed counts; waitlist on the offering or event when sold out. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Guests blame the system for overbooking when they lost a race on the last seat. Desk has no seat to assign because the winner already confirmed. ## Operator example Two Alchemy guests both open the last cold plunge seat; one completes payment first and the other's checkout errors with no longer available. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. On Schedule, check held seats versus seats for the slot in question. 2. Explain that checkout holds are temporary until payment confirms or the hold timeout expires. 3. If the guest lost the race, offer the next slot or add them to the waitlist on the offering. 4. Do not delete the winner's booking to free a seat without policy approval. 5. Refresh guest preview after holds expire to show accurate open seats. ## Related questions ### Can two people hold the last seat? Only one active hold should win. Both may see available briefly; confirmation order decides the seat. ### When do stale holds release? The hold timeout expires unpaid holds and held seats drop so the seat can sell again. ## Follow-up guides - [How waitlists fill sold-out sessions](/guides/booking/waitlist-fill) Book a [demo](/demo) or [get started](/get-started). --- # /guides/booking/preview-no-times --- title: Why does the booking preview show no times? description: "Diagnose empty sauna and cold plunge booking previews when slots, location, or template status block generation." canonical: https://www.zettlor.com/guides/booking/preview-no-times keywords: "sauna, cold plunge, booking, Zettlor, session, seat" updated: 2026-08-26 status: partial --- # Why does the booking preview show no times? Preview is empty when no open slots exist on the schedule, the wrong location is selected, or templates are still in preview mode. Staff must generate slots and verify location and template status. ## What Zettlor does today Guest preview lists open slots on the schedule for the chosen offering and location. No slots means no times. Preview-mode templates do not publish to guests until promoted. Wrong location filter shows an empty day. This behavior is partial: some of it is live, and the rest is a desk workaround rather than a missing settings screen you should hunt for. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Scheduling → Configuration to generate and promote; Schedule to confirm open slots; check location on guest flow. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Operators publish an offering but never run generation. Preview stays empty while Schedule also shows no rows for guests. ## Operator example Ro opens a new plunge room but templates stay in preview mode; preview shows no times until staff generate slots and mark templates live. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Open Scheduling → Configuration for the offering. 2. Confirm templates are not stuck in preview mode and match the guest-facing location. 3. Wait for the schedule to generate overnight or generate from the template tools; verify open slots on Schedule. 4. On guest preview, confirm the same location the templates target. 5. Close or override slots only on Schedule if specific times should stay hidden. ## Related questions ### Why does staff see slots but guests see none? Templates may be in preview mode, slots may be closed on Schedule, or guests picked a different location. ### How often do slots generate? The schedule generates overnight; staff can also generate from the template tools. ## Follow-up guides - [Repeating schedules and generation](/guides/booking/repeat-schedules) Book a [demo](/demo) or [get started](/get-started). --- # /guides/booking/no-show-fees --- title: How do I set automatic late-cancel and no-show fees on a sauna or cold plunge session? description: "Configure no-show charge percent on sauna and cold plunge policy; staff must mark no-show, not auto-detect from missing check-in." canonical: https://www.zettlor.com/guides/booking/no-show-fees keywords: "sauna, cold plunge, booking, Zettlor, session, seat" updated: 2026-08-26 status: partial --- # How do I set automatic late-cancel and no-show fees on a sauna or cold plunge session? Scheduling policy sets how much to charge when staff mark a reservation as no-show. Zettlor does not auto-detect no-shows from missing check-in; desk marks the reservation no-show to apply fees. ## What Zettlor does today Scheduling policy can set a no-show charge percent for late cancel and no-show charges. Automatic fee application is partial: staff action on the reservation triggers the charge path, not silent absence detection. This behavior is partial: some of it is live, and the rest is a desk workaround rather than a missing settings screen you should hunt for. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Scheduling → Configuration for no-show charge percent; /guides/desk/check-in-no-show for marking no-show at the desk. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Operators expect fees when guests never arrive without desk action. Reservations stay confirmed with no charge until staff mark no-show or late cancel per policy. ## Operator example Alchemy sets no-show charge percent to 100 on cold plunge policy; desk marks no-shows after the session starts and the fee runs on that action. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Open Scheduling → Configuration and set no-show charge percent for your org. 2. Align late-cancel rules with the same policy block if your org uses them. 3. Train desk to mark no-show on Schedule or check-in when guests do not arrive. 4. Confirm charge amount matches the configured percent on the marked reservation. 5. Do not expect automatic fees without staff marking status. ## Related questions ### Are no-show fees automatic when someone skips check-in? No. Staff must mark no-show. There is no auto-detect from missing check-in today. ### Can I charge a partial no-show fee? Set no-show charge percent between 0 and 100 to charge a portion of the session price. ## Follow-up guides - [Check-in and no-show at the desk](/guides/desk/check-in-no-show) Book a [demo](/demo) or [get started](/get-started). --- # /guides/booking/unconfirmed-auto-cancel --- title: "When does an unconfirmed booking auto-cancel, and what should the desk do?" description: Unpaid pending sauna and cold plunge reservations expire after about 30 minutes; desk can rebook or seat walk-ins. canonical: https://www.zettlor.com/guides/booking/unconfirmed-auto-cancel keywords: "sauna, cold plunge, booking, Zettlor, session, seat" updated: 2026-08-26 status: live --- # When does an unconfirmed booking auto-cancel, and what should the desk do? Unpaid bookings expire after about 30 minutes. Desk should recreate the booking or seat a walk-in in the freed seat. ## What Zettlor does today Unpaid pending reservations auto-expire on a schedule (about 30 minutes). Capacity returns when the reservation cancels. Desk sees the slot open on Schedule and can book the guest again or take a walk-in. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Schedule to see cancelled pending rows and rebook; walk-in flow for the freed seat. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Guests assume payment stalled means the seat is still held indefinitely. After expiry another guest or walk-in can take the seat. ## Operator example A Rytual guest abandons sauna checkout; after unpaid bookings expire after about 30 minutes, desk books a walk-in into the same slot. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. When checkout stalls, note the pending reservation on Schedule. 2. Wait for auto-expire or confirm unpaid bookings expired after about 30 minutes. 3. Call the guest to complete payment or recreate the reservation if they still want the slot. 4. If the slot is open, seat a walk-in or the next caller. 5. Do not assume pending holds the seat past the unpaid expiry window. ## Related questions ### How long does pending hold a seat? About 30 minutes unpaid, then unpaid bookings expire and free capacity. ### Can desk extend the hold? Desk can create a confirmed reservation to hold the seat; pending checkout hold is not extended by default. ## Follow-up guides - [Guarantee a seat for someone driving in](/guides/booking/reserved-seat) Book a [demo](/demo) or [get started](/get-started). --- # /guides/booking/guest-calendar-vs-ops --- title: How do I show events on a separate guest calendar while ops stays on one schedule? description: Guests subscribe to personal ICS feeds; staff run one ops schedule on Schedule and staff calendar feed. canonical: https://www.zettlor.com/guides/booking/guest-calendar-vs-ops keywords: "sauna, cold plunge, booking, Zettlor, session, seat" updated: 2026-08-26 status: live --- # How do I show events on a separate guest calendar while ops stays on one schedule? Guest ICS feeds show the guest their own bookings and subscribed events. Ops uses one Schedule view plus staff calendar feed, not the guest personal feed. ## What Zettlor does today Guests get per-customer or event ICS URLs for their calendar app. Staff operations stay on Schedule for all sauna and cold plunge sessions. Staff calendar feed powers staff calendar subscriptions separate from guest ICS. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Schedule for ops; guest ICS links from booking confirmation; staff calendar feed for staff subscriptions. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Operators subscribe ops to guest ICS and miss staff-only rows or capacity tools. Ops calendar should stay on Schedule, not a member feed. ## Operator example Reddit NYC members add sauna bookings to Apple Calendar via ICS while managers run the full room day on Schedule. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Confirm guest confirmation emails include ICS subscribe links where enabled. 2. Keep desk and ops on Schedule for live capacity and overrides. 3. Point staff calendar apps to staff calendar feed, not guest ICS. 4. Do not merge guest and staff feeds into one ops subscription. 5. Use event create for public events that should appear on guest-facing calendars. ## Related questions ### Does guest ICS show the full room schedule? No. Guest ICS shows that guest's bookings and subscribed event feeds, not the full ops schedule. ### Where does ops see every session? Schedule and staff calendar feed for staff; one combined ops view, separate from guest ICS. ## Follow-up guides - [One-off events on the calendar](/guides/booking/one-off-event) Book a [demo](/demo) or [get started](/get-started). --- # /guides/booking/peak-pricing --- title: "How do I set early-bird, last-minute, or peak prices on one session instead of three products?" description: Use one sauna or cold plunge offering with pricing rules and multiple pricing tiers instead of three separate products. canonical: https://www.zettlor.com/guides/booking/peak-pricing keywords: "sauna, cold plunge, booking, Zettlor, session, seat" updated: 2026-08-26 status: live --- # How do I set early-bird, last-minute, or peak prices on one session instead of three products? Attach one pricing rule with multiple pricing tiers for sales windows, peak, and off-peak. Same offering and product; price shifts by time window, not duplicate products. ## What Zettlor does today Pricing tiers encode early-bird, last-minute, peak, and off-peak amounts on a single offering. Checkout evaluates the tier active at booking time. You do not need three separate sauna products for time-of-day price. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Scheduling → Pricing on the offering; verify tiers in checkout preview. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Operators clone three offerings for morning, peak, and night. Schedule and reporting fragment while one tiered rule would suffice. ## Operator example Alchemy keeps one cold plunge offering with peak tier Friday evening and off-peak tier weekday morning on the same product. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Open pricing rules for the sauna or cold plunge offering. 2. Add pricing tier rows for each window: early-bird, peak, off-peak, or last-minute. 3. Set sales window dates and times on each tier. 4. Test checkout at different times to confirm the correct tier applies. 5. Avoid creating duplicate offerings solely for time-based price. ## Related questions ### Do I need three products for peak pricing? No. One offering with multiple pricing tiers covers time-based price on the same product. ### Can promos stack with peak tiers? Promo and tier interaction follows your pricing rule order; test in checkout preview. ## Follow-up guides - [Promo codes at cart](/guides/pay/promo-at-cart) Book a [demo](/demo) or [get started](/get-started). --- # /guides/booking/waitlist-fill --- title: How do I choose how a waitlist fills a sold-out sauna or cold plunge session? description: "Configure automatic waitlist offers, accept window, and expiry behavior when waitlists fill sold-out sessions." canonical: https://www.zettlor.com/guides/booking/waitlist-fill keywords: "sauna, cold plunge, booking, Zettlor, session, seat" updated: 2026-08-26 status: live --- # How do I choose how a waitlist fills a sold-out sauna or cold plunge session? Waitlist on the offering or event controls whether the next waitlisted guest is automatically offered a seat and the accept window when a seat opens. Expired offers remove them from the waitlist or put them back in line per waitlist settings. ## What Zettlor does today Sold-out shared-capacity slots can collect waitlist entries. When capacity frees, automatically offer the next waitlisted guest within the accept window. Expired offers remove them from the waitlist or put them back in line per waitlist settings on the offering or event. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Waitlist on the offering or event for automatic offers and expiry; Schedule when manually promoting from waitlist. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Operators enable waitlist but leave automatic offers off and expect automatic fills. Seats reopen on Schedule but waitlisted guests never get offers until staff promote manually. ## Operator example Rytual sold-out sauna automatically offers the next waitlisted guest with a 15-minute accept window; guests who ignore the offer are put back in line for the next free seat. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Enable waitlist on the sauna or cold plunge offering or event. 2. Turn on automatic offers for the next waitlisted guest and set the accept window duration. 3. Choose expiry behavior: remove them from the waitlist after timeout or put them back in line for the next seat. 4. When a seat opens from cancel or no-show, confirm promote notifications fire. 5. Use Schedule to manually promote if automatic offers are disabled. ## Related questions ### What happens if the guest misses the accept window? Per waitlist settings, the entry is removed from the waitlist or put back in line for the next opening. ### Does waitlist work on shared-capacity slots? Yes. One freed seat on a sold-out slot can trigger waitlist fill per your promote rules. ## Follow-up guides - [Shared-capacity seats on a session](/guides/booking/shared-capacity) Book a [demo](/demo) or [get started](/get-started). --- # /guides/booking/booking-window --- title: "How far ahead, and how close to start, can guests book a sauna or cold plunge session?" description: Minimum advance and how far ahead guests can book scheduling rules set how soon and how far ahead guests book sessions. canonical: https://www.zettlor.com/guides/booking/booking-window keywords: "sauna, cold plunge, booking, Zettlor, session, seat" updated: 2026-08-26 status: live --- # How far ahead, and how close to start, can guests book a sauna or cold plunge session? Scheduling rules use minimum advance minutes and how far ahead guests can book to cap the booking window. Members may get a different window via membership early-access rules. ## What Zettlor does today Minimum advance minutes blocks booking too close to start; how far ahead guests can book limits how far ahead the calendar opens. Rules apply per org or offering scheduling config. Member early-access can extend the window for entitled customers. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Scheduling → Configuration for minimum advance and how far ahead guests can book; /guides/membership/early-access for member windows. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Guests see no times beyond how far ahead guests can book and think generation is broken. Desk must explain the rolling window, not missing slots. ## Operator example Alchemy sets how far ahead guests can book to 14 days and minimum advance to 60 minutes; members with early-access book an extra week per membership rules. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Open Scheduling → Configuration and review minimum advance and how far ahead guests can book. 2. Set minimum advance to match turnaround needs before session start. 3. Set how far ahead guests can book to match how far you want the sauna or cold plunge calendar open. 4. Link member early-access if entitled customers should book earlier. 5. Verify guest preview respects both bounds on first and last bookable day. ## Related questions ### Why can members book earlier than the public? Membership early-access rules can extend how far ahead guests can book for entitled customers beyond public rules. ### Does the window shrink when I change hours? How far ahead guests can book rolls forward independently; seasonal hour changes do not automatically shrink the advance window. ## Follow-up guides - [Member early-access booking window](/guides/membership/early-access) Book a [demo](/demo) or [get started](/get-started). --- # /guides/booking/session-buffers --- title: How do I add a turnaround buffer between private sauna or cold plunge sessions? description: Set pre-buffer and post-buffer minutes on offering or template for cleanup between private sessions. canonical: https://www.zettlor.com/guides/booking/session-buffers keywords: "sauna, cold plunge, booking, Zettlor, session, seat" updated: 2026-08-26 status: live --- # How do I add a turnaround buffer between private sauna or cold plunge sessions? Pre-buffer and post-buffer minutes on the offering or repeating schedule template block overlapping bookings around each private session. Scheduling rules enforce buffers so the next guest cannot book into cleanup time. ## What Zettlor does today Buffers add dead time before and after each slot for cleaning or reset. Private sauna and cold plunge offerings commonly use post-buffer minutes between parties. Buffers apply through scheduling rules, not manual Schedule blocks. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Scheduling → Configuration or offering metadata for pre-buffer and post-buffer minutes. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Staff manually close slots between privates instead of setting buffers. Templates still offer back-to-back bookings that violate turnaround policy. ## Operator example Reddit NYC private sauna sets 15 post-buffer minutes so the next booking cannot start until cleanup finishes. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Open the private sauna or cold plunge offering or its repeating schedule template. 2. Set pre-buffer minutes before session start if early access must be blocked. 3. Set post-buffer minutes after session end for cleaning and reset. 4. Regenerate or verify slots respect buffer gaps on Schedule. 5. Pair with private session type so buffers apply to the right bookings. ## Related questions ### Do buffers block the whole space? Buffers block booking into the buffer window for that offering on the constrained space, per scheduling rules. ### Can shared and private share buffers? Configure buffers on the offering or template that needs turnaround; shared slots can use zero buffers if turnover allows. ## Follow-up guides - [Private sessions with add-ons](/guides/booking/private-with-add-ons) Book a [demo](/demo) or [get started](/get-started). --- # /guides/booking/shared-capacity --- title: How do I set shared-capacity seats on a sauna or cold plunge session? description: "Capacity is per-slot seats with ceiling from event, space, and slot; sauna and cold plunge are usually separate spaces." canonical: https://www.zettlor.com/guides/booking/shared-capacity keywords: "sauna, cold plunge, booking, Zettlor, session, seat" updated: 2026-08-26 status: live --- # How do I set shared-capacity seats on a sauna or cold plunge session? Each slot has a seat count; effective capacity is the ceiling across event, space, and the slot. Shared-capacity sessions use concurrent seat limits on overlapping slots on the same space or location. ## What Zettlor does today Sauna barrel and cold plunge pool are separate spaces with independent seat counts unless you attach both to one shared resource, which is unusual. Buyouts use a space buyout lock. Overlapping slots on the same space share concurrent seat limits, not separate appointment calendars. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Scheduling → Configuration for seats per slot; Schedule capacity override for one-off changes; event create for event-level caps. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Operators set high seats on every overlapping slot and exceed physical room capacity. Concurrent seat limits on the same space cap what overlapping slots can sell together. ## Operator example Rytual sauna space seats 8 and cold plunge space seats 4; each slot respects its space unless both share one resource. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Assign sauna and cold plunge to separate spaces with correct seat counts unless intentionally shared. 2. Set seats on the repeating schedule template or slot for each shared-capacity session. 3. Check event-level caps when running special events with lower ceilings. 4. Review overlapping slots on Schedule for concurrent occupancy on one space. 5. Use a space buyout lock for buyouts that remove shared capacity entirely. ## Related questions ### Do sauna and plunge share one seat pool? Only if you put them on one space or shared resource. Normally each space has its own seats and concurrent seat pool. ### How do buyouts affect shared seats? A space buyout lock blocks other sessions on the locked space for the buyout window. ## Follow-up guides - [Waitlist fill on sold-out sessions](/guides/booking/waitlist-fill) Book a [demo](/demo) or [get started](/get-started). --- # /guides/booking/repeat-schedules --- title: How do I set up a repeating sauna or cold plunge schedule? description: Repeating schedule template plus daily generation and release policy create repeating sauna and cold plunge schedules. canonical: https://www.zettlor.com/guides/booking/repeat-schedules keywords: "sauna, cold plunge, booking, Zettlor, session, seat" updated: 2026-08-26 status: live --- # How do I set up a repeating sauna or cold plunge schedule? A repeating schedule template defines the repeating pattern; the schedule generates overnight to create open slots on the schedule. Staff edit templates in Scheduling → Configuration and monitor on Schedule. ## What Zettlor does today Repeating schedules come from template recurrence, start interval or session start times, and release policy. The schedule generates overnight and creates future open slots daily. Schedule shows generated instances; per-slot overrides do not change the template. Staff can also generate from the template tools rather than waiting overnight. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Scheduling → Configuration to create and edit templates; Schedule to verify generated repeating rows. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Operators edit one Schedule row expecting recurrence to update. Only template changes affect future generated slots. ## Operator example Alchemy weekday 6 AM cold plunge repeats via repeating schedule template; the schedule generates overnight and fills the next release window. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Create a repeating schedule template for the sauna or cold plunge offering with recurrence rules. 2. Set session length, seats, and start pattern (start interval or session start times). 3. Configure release policy so far-ahead days generate on schedule. 4. Confirm the schedule generated open slots on Schedule. 5. Edit the template for pattern changes; use Schedule overrides only for one-off exceptions. ## Related questions ### How often are new repeating slots created? The schedule generates overnight; staff can also generate from the template tools. ### Can I pause repeats without deleting the template? Disable or set the template to preview mode, or stop release policy, then verify Schedule stops new open slots. ## Follow-up guides - [Seasonal session time changes](/guides/booking/seasonal-hours) Book a [demo](/demo) or [get started](/get-started). --- # /guides/booking/seasonal-hours --- title: How do I change session times seasonally without shrinking how far ahead guests can book? description: Update slot templates for seasonal hours; how far ahead guests can book rolling window stays independent of seasonal hour changes. canonical: https://www.zettlor.com/guides/booking/seasonal-hours keywords: "sauna, cold plunge, booking, Zettlor, session, seat" updated: 2026-08-26 status: partial --- # How do I change session times seasonally without shrinking how far ahead guests can book? How far ahead guests can book rolls forward on its own; Zettlor does not have a season calendar. Change templates or hours for summer vs winter; the booking window still extends as far ahead as your advance rule allows. ## What Zettlor does today Seasonal hour shifts are partial: edit repeating schedule template session start times or hours and regenerate. There is no season switch that toggles schedules automatically. Rolling how far ahead guests can book does not shrink when you shorten daily hours; guests still book out to the advance limit on newly generated slots. This behavior is partial: some of it is live, and the rest is a desk workaround rather than a missing settings screen you should hunt for. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Scheduling → Configuration to change hours; confirm how far ahead guests can book in Scheduling → Configuration. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Operators fear editing summer hours will close dates already inside the advance window. Only template-driven generation changes which times appear; the window length stays unless you change how far ahead guests can book. ## Operator example Ro moves sauna starts from 7 AM to 8 AM in June by editing templates; 30-day advance still shows a month ahead with new times. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Plan seasonal session start time changes in Scheduling → Configuration. 2. Update templates before the season starts; allow the schedule to generate overnight or generate from the template tools to refresh future rows. 3. Leave how far ahead guests can book unchanged unless you intentionally want a shorter public window. 4. Verify Schedule shows new hours at the far edge of the booking window. 5. Accept there is no automatic season switch; desk watches calendar cutover dates. ## Related questions ### Is there a season schedule object? Zettlor does not ship a season calendar. Change hours and templates each season. ### Will shorter winter hours reduce how far guests can book? No. How far ahead guests can book is independent; shorter hours change times, not window length. ## Follow-up guides - [Booking window ahead and close to start](/guides/booking/booking-window) Book a [demo](/demo) or [get started](/get-started). --- # /guides/booking/one-off-event --- title: How do I add a one-off event outside the regular schedule? description: Create a one-off event for a single sauna or cold plunge session outside repeating schedule templates. canonical: https://www.zettlor.com/guides/booking/one-off-event keywords: "sauna, cold plunge, booking, Zettlor, session, seat" updated: 2026-08-26 status: live --- # How do I add a one-off event outside the regular schedule? A one-off event adds one calendar occurrence without replacing repeating schedule templates. Regular repeating schedules keep generating from templates on the same space. ## What Zettlor does today One-off events use event create as a one-off event. They appear on Schedule and guest flows alongside template-generated slots. Repeating schedule templates continue unchanged; the event does not mutate the template recurrence. Use this for a holiday sauna or cold plunge session that should not repeat next week. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Event create as a one-off event; Schedule to verify the single row; waitlist on the event if needed. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Staff edit the weekly template for a single holiday special. Every future week changes instead of adding one one-off event. ## Operator example Reddit NYC adds a New Year's cold plunge one-off event while weekday repeating schedule templates keep generating normal slots. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Open event create for the sauna or cold plunge special session. 2. Set up a one-off event with date, time, and capacity for the single occurrence. 3. Attach the correct space and offering for guest booking. 4. Confirm the event appears on Schedule without altering repeating schedule templates. 5. Enable waitlist on the event if you expect sell-out for the one-off. ## Related questions ### Does a one-off event replace my template? No. One-off events add a row; repeating schedule templates still generate the regular schedule. ### Can I hide a one-off behind an access code? Turn on Hidden (only visible with access code) on the offering under Scheduling → Configuration. Staff book invited guests from Schedule. Store → Promos does not reveal a hidden offering. ## Follow-up guides - [Override one session without changing the schedule](/guides/booking/override-one-session) Book a [demo](/demo) or [get started](/get-started). --- # /guides/desk/walk-in-after-start --- title: "How do I sign up a walk-in (and their guest) at the desk, including after the session has started?" description: Add a walk-in and their guest to an in-progress sauna and cold plunge session from the staff schedule. canonical: https://www.zettlor.com/guides/desk/walk-in-after-start keywords: "sauna, cold plunge, desk, Zettlor, session, seat" updated: 2026-08-26 status: live --- # How do I sign up a walk-in (and their guest) at the desk, including after the session has started? When a session has already started, you add walk-ins from the staff schedule. The public booking page stops selling that slot after the session has started. Add the primary walk-in, then add their guest on the same booking. ## What Zettlor does today Walk-in booking is available on the staff schedule for in-progress sessions. Public guests cannot book a slot after it has started. Add the primary walk-in, then add their guest on that same booking. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Open Schedule, select the in-progress sauna or cold plunge slot, choose Walk-in, enter the guest contact details, and add any companion on the same booking. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode If you send a walk-in through the public booking page after the session has started, the slot will not be available. Unsigned waivers or missing contact info can also block check-in until you finish signing at the desk. ## Operator example At Rytual, front desk staff add a late arrival to the current sauna block from the schedule walk-in button and add their partner as a second guest on the same booking. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Open Schedule and find the session that is in progress or about to start. 2. Select the slot and choose Walk-in to create the reservation at the desk. 3. Enter the walk-in guest name, email or phone, and payment method as needed. 4. Add their companion as another guest on the same booking. 5. Complete waiver signing at the desk if they have not signed before arrival. ## Related questions ### Can a guest book themselves into a session that already started? No. After the session has started, only staff can add walk-ins from the schedule. Point late arrivals to the desk or your QR poster for the next open sauna and cold plunge session. ### Does the guest need a separate reservation? No. Add the guest on the walk-in booking so both people share one reservation and one slot. ## Follow-up guides - [Print a QR poster for walk-in booking](/guides/desk/qr-poster) Book a [demo](/demo) or [get started](/get-started). --- # /guides/desk/checkout-overstay --- title: "How do I check guests in and out, see who is in the building, and charge for extra time?" description: "Check guests in and out on the staff schedule, read occupancy for your sauna and cold plunge floor, and sell extra time at the desk." canonical: https://www.zettlor.com/guides/desk/checkout-overstay keywords: "sauna, cold plunge, desk, Zettlor, session, seat" updated: 2026-08-26 status: partial --- # How do I check guests in and out, see who is in the building, and charge for extra time? You check guests in and out from the guest row on the staff schedule. Overstay warnings help you spot guests who may still be on site. Zettlor does not auto-charge for extra time; sell another product or slot at the desk when someone wants to stay longer. ## What Zettlor does today You check guests in and out on the guest row for each booking. The schedule shows who is checked in and flags likely overstays. There is no automatic extra-time charge—ring up another session or pass at the desk for additional sauna and cold plunge time. This behavior is partial: some of it is live, and the rest is a desk workaround rather than a missing settings screen you should hunt for. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path From Schedule, open the session, check in each guest on arrival, and check them out when they leave. If someone wants more time, sell another session or pass at the desk instead of expecting an auto fee. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Guests who are never checked in will not appear in building occupancy. Without a desk sale, extra time is not billed automatically, so revenue from overstays depends on staff action. ## Operator example At Reddit NYC, desk staff check in each cold plunge guest when they arrive, watch overstay warnings on the schedule, and sell a second session at the desk when a guest wants to extend their visit. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Open Schedule and select today's sauna or cold plunge session. 2. Check in each guest when they arrive at the desk or kiosk. 3. Monitor overstay warnings for checked-in guests who may still be on site. 4. Check guests out when they leave the facility. 5. Sell another slot or product at the desk if they want paid extra time. ## Related questions ### Does Zettlor charge extra time automatically? No. Overstay warnings are informational. Sell another session or product at the desk when you want to charge for additional sauna and cold plunge time. ### Where do I check someone out? Use the check-out action on the same guest row where you checked them in. Checked-out guests drop off the in-building occupancy view. ## Follow-up guides - [See who is in the building right now](/guides/desk/who-is-in-the-building) Book a [demo](/demo) or [get started](/get-started). --- # /guides/desk/who-is-in-the-building --- title: How do we know who is in the building right now? description: Use staff schedule occupancy from checked-in guests to see who is on site for sauna and cold plunge sessions. canonical: https://www.zettlor.com/guides/desk/who-is-in-the-building keywords: "sauna, cold plunge, desk, Zettlor, session, seat" updated: 2026-08-26 status: partial --- # How do we know who is in the building right now? Building presence comes from guests marked checked in on the staff schedule, not a separate badge or access-control system. The list is only as complete as your check-in habit—guests who skip check-in will not appear. ## What Zettlor does today Schedule shows occupancy from checked-in guests on active bookings. There is no standalone building access log or door badge integration—your on-site list reflects who staff checked in. This behavior is partial: some of it is live, and the rest is a desk workaround rather than a missing settings screen you should hunt for. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Open Schedule, filter to the current time block, and review checked-in guests across sauna and cold plunge sessions. Check in stragglers at the desk so the occupancy view stays accurate. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Walk-ins or members who enter without check-in will be invisible on the schedule. Treat occupancy as operational guidance, not a security-grade headcount. ## Operator example At Ro, the desk lead scans the afternoon schedule to see which sauna guests are checked in and sends staff to find anyone still in the room after checkout warnings appear. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Open Schedule for the current sauna and cold plunge block. 2. Confirm each expected guest is checked in as they arrive. 3. Review the checked-in list to see who is likely still on site. 4. Check guests out when they leave so the live count stays accurate. 5. Use overstay warnings alongside occupancy when the floor feels full. ## Related questions ### Is this connected to door badges or key cards? No. Zettlor does not integrate with a separate building access system. Presence is based on guest check-in state on the staff schedule. ### Why is someone missing from the in-building view? They were probably never checked in. Check them in at the desk or kiosk so they appear in occupancy for their sauna and cold plunge session. ## Follow-up guides - [Check guests in and out, and handle extra time](/guides/desk/checkout-overstay) Book a [demo](/demo) or [get started](/get-started). --- # /guides/desk/waiver-web-or-door --- title: "How do I collect a digital waiver before arrival, and finish unsigned ones at the door?" description: Require liability waiver on the booking page and finish unsigned sauna and cold plunge waivers at check-in. canonical: https://www.zettlor.com/guides/desk/waiver-web-or-door keywords: "sauna, cold plunge, desk, Zettlor, session, seat" updated: 2026-08-26 status: live --- # How do I collect a digital waiver before arrival, and finish unsigned ones at the door? Create waiver templates under Scheduling → Waivers and turn on Require liability waiver on Pages → Booking so guests without a current signed waiver are asked to sign after checkout. Self check-in stays blocked until signed. For anyone still unsigned at the door, use Sign waiver at kiosk or check-in. Guests without an email on file cannot receive a waiver invite. ## What Zettlor does today Pages → Booking has Require liability waiver. That prompt is after checkout; it blocks self check-in until the waiver is signed. It does not block payment. Offerings also have Requires Waiver. You can finish signing at the door with Sign waiver. Guests without an email address cannot be sent an invite link. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Scheduling → Waivers for templates. Pages → Booking → Require liability waiver. At the door, use Sign waiver on kiosk check-in. Collect email or phone before sending an invite to unsigned arrivals. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Guests without email cannot get a remote waiver invite, so door signing is required. If Require liability waiver is off, more guests arrive unsigned at peak sauna and cold plunge hours. ## Operator example At Rytual, most members sign the session waiver after online checkout, and desk staff finish any unsigned cold plunge arrivals with Sign waiver before check-in. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Create or update your session waiver template under Scheduling → Waivers. 2. Enable Require liability waiver on Pages → Booking for sauna and cold plunge reservations that need a signed waiver. 3. Share the public booking link so guests can sign after checkout before they arrive when possible. 4. At the door, open kiosk or check-in and use Sign waiver for anyone still unsigned. 5. Collect email or phone before attempting a waiver invite for unsigned guests. ## Related questions ### Can I send a waiver invite to someone with no email? No. Unsigned guests without an email on file cannot receive a waiver invite. Use Sign waiver at arrival instead. ### Does Require liability waiver block checkout? No. Guests pay first. After checkout they are asked to sign if they do not already have a current waiver. Self check-in stays blocked until signed. ## Follow-up guides - [See that a guest has signed](/guides/desk/see-signed-waiver) - [Send an updated waiver to booked guests](/guides/desk/updated-waiver) Book a [demo](/demo) or [get started](/get-started). --- # /guides/desk/see-signed-waiver --- title: Where do I see that a guest has signed? description: Confirm waiver status on the guest profile and on the booking for sauna and cold plunge guests. canonical: https://www.zettlor.com/guides/desk/see-signed-waiver keywords: "sauna, cold plunge, desk, Zettlor, session, seat" updated: 2026-08-26 status: live --- # Where do I see that a guest has signed? Signed waivers appear on the guest profile and on waiver status for each booking. Open the guest record to see history, or open the guest row on the schedule on session day to confirm signing before check-in. ## What Zettlor does today You open the guest profile to see waiver history and template coverage. On session day, guest rows on the schedule show whether the required waiver is signed before you check someone into a sauna and cold plunge slot. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Search the guest in CRM → Customers, review waiver status on their profile, or open the guest row on the schedule to confirm signing before check-in. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode If you only look at the booking list without opening the guest profile or guest row, you can miss an expired or missing signature and delay check-in. ## Operator example At Alchemy, front desk staff open the guest profile before the first sauna block to confirm the session waiver shows signed. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Search for the guest under CRM → Customers. 2. Open the guest profile and review signed waiver templates and dates. 3. From Schedule, open the guest on today's booking to see waiver status inline. 4. Confirm each required template shows signed before check-in. 5. Use Sign waiver or send a waiver invite if the guest still shows unsigned or expired. ## Related questions ### What status means the waiver is valid? Look for signed on the waiver tied to the guest and their booking. Unsigned or expired templates still need action before sauna and cold plunge check-in. ### Can I see waivers from the schedule alone? Yes. Guest rows show waiver status, but the guest profile shows full history across templates and past visits. ## Follow-up guides - [Collect waivers before arrival and at the door](/guides/desk/waiver-web-or-door) - [Require multiple waiver types](/guides/desk/more-than-one-waiver) Book a [demo](/demo) or [get started](/get-started). --- # /guides/desk/waiver-tied-to-email --- title: Is the waiver tied to their email? description: Understand how waivers link to guest identity for sauna and cold plunge operations at the desk. canonical: https://www.zettlor.com/guides/desk/waiver-tied-to-email keywords: "sauna, cold plunge, desk, Zettlor, session, seat" updated: 2026-08-26 status: live --- # Is the waiver tied to their email? Waivers match the guest by email or phone on their profile. Each signed waiver stays tied to that individual guest for legal purposes. Signing applies to the person, not a household—guests without email cannot receive an invite. ## What Zettlor does today You search by email or phone to find waiver status on a guest profile. The signed waiver keeps the guest name and contact on file. Remote invites require an email address on the guest record. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Look up the guest by email or phone in CRM → Customers before check-in. Send a waiver invite only when email is on file; otherwise use Sign waiver at the sauna and cold plunge entrance. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Typos or duplicate profiles split waiver history across records. Guests without email cannot be invited remotely, which slows door flow if you rely on email-only outreach. ## Operator example At Reddit NYC, desk staff search cold plunge arrivals by phone when email is missing, then use Sign waiver on the matched guest profile. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Search CRM → Customers by the guest email or phone. 2. Confirm the profile shows the correct signed or pending waiver templates. 3. Send a waiver invite only when a valid email is on the guest record. 4. Use Sign waiver when the guest has no email and cannot receive an invite. 5. Use Merge Customer if waiver history is split across two contacts. ## Related questions ### Does one signed waiver cover everyone in a household? No. Waivers attach to the individual guest. Each sauna and cold plunge attendee needs their own signed waiver on file. ### Why could we not email a waiver link? Unsigned guests without an email on file cannot get an invite. Collect email at the desk or complete Sign waiver instead. ## Follow-up guides - [Collect waivers before arrival and at the door](/guides/desk/waiver-web-or-door) - [Merge duplicate guest profiles](/guides/desk/merge-profiles) Book a [demo](/demo) or [get started](/get-started). --- # /guides/desk/more-than-one-waiver --- title: "How do I require a session waiver and a membership agreement, and see which one is on file?" description: Run multiple waiver templates—for session liability and membership agreements—and verify coverage for sauna and cold plunge guests. canonical: https://www.zettlor.com/guides/desk/more-than-one-waiver keywords: "sauna, cold plunge, desk, Zettlor, session, seat" updated: 2026-08-26 status: live --- # How do I require a session waiver and a membership agreement, and see which one is on file? You can maintain separate waiver templates for session liability and membership agreements or other legal documents. The guest profile and booking waiver status show which template each guest has signed. ## What Zettlor does today Create distinct templates for session use and membership agreements, assign requirements per flow, and review signed versus missing templates per guest. The desk view shows which agreement is on file without guessing from a single generic waiver. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Under Scheduling → Waivers, maintain separate templates, set which are required for booking or membership, and check the guest profile before admitting someone to a sauna and cold plunge session. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode If only one template is required online, members may sign the session waiver but miss the membership agreement until staff catch it at the desk. ## Operator example At Ro, session waivers are required at booking while the membership agreement is collected at signup; desk staff confirm both templates show signed before issuing a member band. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Create separate waiver templates for session liability and membership agreements. 2. Set Require liability waiver or membership signup rules for each template as needed. 3. Open the guest profile to see which templates are signed, pending, or expired. 4. On session day, confirm the guest has the session waiver signed before check-in. 5. Collect any missing membership agreement at the desk with Sign waiver or a waiver invite. ## Related questions ### Can one template replace both session and membership waivers? You can use one template, but most operators keep separate templates so staff can see which document is on file for sauna and cold plunge sessions versus memberships. ### Where do I see which template is missing? The guest profile and booking waiver status list each required template individually with its signature state. ## Follow-up guides - [See that a guest has signed](/guides/desk/see-signed-waiver) - [Send an updated waiver to booked guests](/guides/desk/updated-waiver) Book a [demo](/demo) or [get started](/get-started). --- # /guides/desk/kiosk-self-check-in --- title: How do I run a front-desk kiosk so guests check themselves in without seeing other accounts? description: Set up an IRL check-in kiosk for sauna and cold plunge guests without exposing the staff CRM. canonical: https://www.zettlor.com/guides/desk/kiosk-self-check-in keywords: "sauna, cold plunge, desk, Zettlor, session, seat" updated: 2026-08-26 status: live --- # How do I run a front-desk kiosk so guests check themselves in without seeing other accounts? Use the kiosk check-in link from Pages → Links with your desk access key so guests look up only their own booking. The kiosk is scoped to self check-in, not a full staff guest search. ## What Zettlor does today The kiosk check-in link from Pages → Links opens a guest-facing check-in screen when you add a valid desk access key. Lookup is limited to the guest's own booking so other guest accounts stay hidden. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Copy the kiosk check-in link with your desk access key from Pages → Links, open it on a dedicated front-desk tablet, and point arriving sauna and cold plunge guests to search by name or confirmation details. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode An expired or shared key on a public device can interrupt check-in. The kiosk does not replace waiver signing or payment fixes that still need staff at the desk. ## Operator example At Alchemy, a tablet at the entrance runs the IRL check-in page so cold plunge members check themselves in without seeing the full staff CRM. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Copy the kiosk check-in link with desk access key from Pages → Links. 2. Open the link on a dedicated kiosk browser in guided access or kiosk mode. 3. Post simple instructions for guests to find their sauna and cold plunge booking. 4. Have staff nearby for waivers, payment issues, or guests who cannot find their booking. 5. Confirm check-ins appear on Schedule in real time. ## Related questions ### Can guests browse other guest profiles on the kiosk? No. IRL check-in lookup is scoped to the guest's own booking, not the staff CRM. ### Does the kiosk replace desk check-in entirely? It handles self check-in only. Unsigned waivers, walk-ins, and payment fixes still need staff at the sauna and cold plunge desk. ## Follow-up guides - [Check guests in and mark no-shows](/guides/desk/check-in-no-show) Book a [demo](/demo) or [get started](/get-started). --- # /guides/desk/booking-note --- title: How do I attach a note to a booking? description: Leave staff notes on a booking or guest profile for sauna and cold plunge desk handoffs. canonical: https://www.zettlor.com/guides/desk/booking-note keywords: "sauna, cold plunge, desk, Zettlor, session, seat" updated: 2026-08-26 status: live --- # How do I attach a note to a booking? You add a staff note that can attach to a specific booking so your team can document context for that session. Notes also live on the guest profile for issues that span multiple sauna and cold plunge visits. ## What Zettlor does today You add staff notes from the guest or booking view and attach them to a booking when the note applies to one session. Notes appear on the guest timeline and help the next shift understand desk instructions. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Open the booking or guest in the staff app, add a staff note and attach it to the booking when the context is session-specific, and save so the next desk operator sees it before check-in. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Notes left only in chat or on paper do not travel with the booking. If you do not attach the note to the booking when relevant, shift handoffs miss session-specific instructions. ## Operator example At Reddit NYC, desk staff attach a note to a birthday sauna booking so the evening team knows to reserve two cold plunge seats together. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Open the guest's booking from Schedule or CRM → Customers. 2. Choose Add note and enter the desk instruction or alert. 3. Attach the note to the booking when it applies only to that sauna and cold plunge session. 4. Save the note so it appears on the guest timeline. 5. Review notes at shift change before the next session block. ## Related questions ### Can notes be tied to one booking only? Yes. A staff note can attach to a booking so the note stays scoped to that session instead of every future visit. ### Do guests see staff notes? No. Notes are internal for operators managing sauna and cold plunge check-in and desk workflows. ## Follow-up guides - [Check guests in and mark a no-show](/guides/desk/check-in-no-show) Book a [demo](/demo) or [get started](/get-started). --- # /guides/desk/merge-profiles --- title: How do I merge duplicate guest profiles without losing credits or bookings? description: Combine duplicate guest records and keep credits and bookings intact for sauna and cold plunge guests. canonical: https://www.zettlor.com/guides/desk/merge-profiles keywords: "sauna, cold plunge, desk, Zettlor, session, seat" updated: 2026-08-26 status: live --- # How do I merge duplicate guest profiles without losing credits or bookings? Merge Customer moves bookings, credits, and history onto the profile you keep, with an undo path if you picked the wrong record. Use it when the same guest booked under two emails or phone numbers. ## What Zettlor does today On CRM → Customers, open Merge Customer, select the duplicate to absorb, and confirm. Credits and bookings follow the profile you keep. Undo is available if you need to reverse a mistaken merge. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Search CRM → Customers for both duplicate records, open the profile you want to keep, run Merge Customer, and select the duplicate to combine before the guest's next sauna and cold plunge visit. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Merging the wrong direction can briefly confuse waiver or credit history until undo. Always confirm which profile has the active membership before merging. ## Operator example At Ro, desk staff merge two profiles after a member booked cold plunge sessions under a work email and a personal email, keeping credits on the membership account. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Search CRM → Customers and identify the duplicate profiles. 2. Decide which guest record should survive—usually the one with the active membership or credits. 3. Open the surviving profile and start Merge Customer. 4. Select the duplicate profile to absorb and confirm the merge. 5. Verify bookings, credits, and waivers on the surviving profile; use undo if you merged the wrong way. ## Related questions ### Do credits transfer to the surviving profile? Yes. Credits and bookings move to the guest profile you keep during Merge Customer. ### Can I undo a merge? Yes. Merge Customer includes undo when you need to reverse a mistaken combination of duplicate sauna and cold plunge guest records. ## Follow-up guides - [Set up family accounts and dependents](/guides/desk/family-dependents) Book a [demo](/demo) or [get started](/get-started). --- # /guides/desk/family-dependents --- title: How do I set up family accounts so a parent can book dependents without their own email? description: Link family members with Family or Guardian of and handle them at the sauna and cold plunge desk. canonical: https://www.zettlor.com/guides/desk/family-dependents keywords: "sauna, cold plunge, desk, Zettlor, session, seat" updated: 2026-08-26 status: partial --- # How do I set up family accounts so a parent can book dependents without their own email? On CRM → Customers, link people with Family or Guardian of. You can add guests without an email from the desk. Public checkout still expects a contact email, so family booking without child email is partial—handle those guests at the desk until the public flow is polished. ## What Zettlor does today Duplicate tools offer Family and Guardian of links. Desk bookings can add guests without email. Online booking still wants a contact email on the checkout path, so child-without-email flows are not fully self-serve. This behavior is partial: some of it is live, and the rest is a desk workaround rather than a missing settings screen you should hunt for. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path CRM → Customers → link with Family or Guardian of. Book sauna and cold plunge sessions at the desk, and add guests without their own email when appropriate. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Parents who try to book a child without email online may hit contact validation. Without desk booking, dependents may be missing from waiver and guest records. ## Operator example At Rytual, a parent membership includes linked child profiles; desk staff book the family sauna slot and add each child as a guest without a separate email. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Create or locate the parent guest under CRM → Customers. 2. Add Family or Guardian of links for each related guest. 3. Book sauna and cold plunge sessions at the desk for the family group. 4. Add related guests without email when they do not have their own inbox. 5. Collect waivers per guest at the desk or via the parent contact on file. ## Related questions ### Can a parent book a child without email online today? Not reliably. Public checkout still expects contact email, so dependent booking without child email is a desk workflow for now. ### Does the parent's waiver cover the child? No. Each sauna and cold plunge guest needs their own signed waiver, even when booked under a family relationship. ## Follow-up guides - [Merge duplicate guest profiles](/guides/desk/merge-profiles) Book a [demo](/demo) or [get started](/get-started). --- # /guides/desk/check-in-no-show --- title: "How do staff check guests in on session day, and mark a no-show?" description: Check in sauna and cold plunge guests on session day and mark no-shows for fee and capacity tracking. canonical: https://www.zettlor.com/guides/desk/check-in-no-show keywords: "sauna, cold plunge, desk, Zettlor, session, seat" updated: 2026-08-26 status: live --- # How do staff check guests in on session day, and mark a no-show? You check guests in from the guest row on the staff schedule and mark no-show when someone does not arrive. No-show fees depend on this mark—see the booking guide for fee rules. ## What Zettlor does today Check-in and no-show actions live on the guest row or booking from Schedule. Marking no-show is required before no-show fee logic can apply on eligible bookings. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Open today's session on Schedule, check in arrivals as they reach the desk or kiosk, and mark remaining unarrived guests as no-show after your grace period. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Forgetting to mark no-shows leaves seats looking occupied and can block no-show fees. Late check-ins after a no-show mark may need staff correction on the guest row. ## Operator example At Alchemy, desk staff check in the first cold plunge wave at the door and mark no-show on no-arrival bookings before releasing seats to the waitlist. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Open Schedule for the current sauna and cold plunge session. 2. Check in each guest as they arrive at the desk or kiosk. 3. After your grace period, mark unarrived bookings as no-show on the guest row. 4. Release or rebook seats according to your capacity rules. 5. Review no-show fee eligibility using the booking no-show fees guide. ## Related questions ### Do no-show fees apply automatically? No. You must mark no-show first. Fee rules are described in the booking guide for no-show fees. ### Can guests self check-in instead of desk check-in? Yes. IRL kiosk check-in updates the same guest state as desk check-in for sauna and cold plunge sessions. ## Follow-up guides - [Configure and apply no-show fees](/guides/booking/no-show-fees) - [Run a self check-in kiosk](/guides/desk/kiosk-self-check-in) Book a [demo](/demo) or [get started](/get-started). --- # /guides/desk/updated-waiver --- title: How do I send an updated waiver to guests who already have a booking? description: Push revised waiver templates to booked sauna and cold plunge guests with pending or expired signatures. canonical: https://www.zettlor.com/guides/desk/updated-waiver keywords: "sauna, cold plunge, desk, Zettlor, session, seat" updated: 2026-08-26 status: live --- # How do I send an updated waiver to guests who already have a booking? When you publish a new waiver version, use send-waiver or bulk send for guests whose status is pending or expired. Booked guests with email on file can sign before arrival without redoing the whole booking. ## What Zettlor does today Send-waiver targets individual guests or bookings, and bulk actions cover pending or expired waiver status for upcoming bookings. Guests need email on file to receive the updated document. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path From Scheduling → Waivers or the guest profile, send the updated template to booked guests, or run bulk send for upcoming sauna and cold plunge sessions with outstanding signatures. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Guests without email still need Sign waiver at the door. Sending an update does not void old signed copies until the new template is required and completed. ## Operator example At Reddit NYC, operators bulk-send an updated session waiver to tomorrow's sauna bookings after liability language changes, then use Sign waiver for any unsigned walk-ins. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Publish the updated waiver template in Scheduling → Waivers. 2. Filter upcoming bookings or guests with pending or expired waiver status. 3. Send the updated waiver to individuals or use bulk send for a session block. 4. Confirm signatures on the guest profile before sauna and cold plunge check-in. 5. Use Sign waiver for booked guests who arrive unsigned or without email. ## Related questions ### Who receives an updated waiver send? You target guests with pending or expired status on the relevant template. Guests who already signed the current version may not need a resend unless you require re-signing. ### Can I bulk send to everyone on tomorrow's schedule? Yes. Use bulk send from waiver tools for upcoming bookings that still show pending or expired on the updated template. ## Follow-up guides - [Collect waivers before arrival and at the door](/guides/desk/waiver-web-or-door) - [Require multiple waiver types](/guides/desk/more-than-one-waiver) Book a [demo](/demo) or [get started](/get-started). --- # /guides/desk/qr-poster --- title: How do I print a QR poster so walk-ins can book the next sauna or cold plunge session? description: Print a QR code that sends walk-ins to IRL booking for the next open sauna and cold plunge session. canonical: https://www.zettlor.com/guides/desk/qr-poster keywords: "sauna, cold plunge, desk, Zettlor, session, seat" updated: 2026-08-26 status: live --- # How do I print a QR poster so walk-ins can book the next sauna or cold plunge session? Use Pages → Links to generate IRL booking URLs and print the printable QR poster that opens walk-in session booking on mobile. The poster points guests at self-serve session booking, not the staff CRM. ## What Zettlor does today Pages → Links provides the IRL booking URL for your facility. The printable QR poster sends walk-ins to IRL booking for session booking on mobile. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Open Pages → Links, copy or print the printable QR poster, post it at the entrance, and keep staff walk-in handy for in-progress sessions or guests who need help. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode A poster that links to staff tools or an outdated handle confuses walk-ins. QR booking still stops after the session has started, so late arrivals need the desk walk-in flow. ## Operator example At Ro, a QR poster by the entrance sends walk-ins to book the next sauna block on their phone while staff handle guests already inside for cold plunge. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Open Pages → Links and locate the IRL booking URL for your facility. 2. Generate and print the printable QR poster from Pages → Links. 3. Print and post the poster where walk-ins queue for sauna and cold plunge. 4. Confirm the QR opens IRL walk-in booking on a test phone. 5. Train staff to use desk walk-in for in-progress sessions the public page cannot book. ## Related questions ### Does the QR poster open the staff schedule? No. It points to IRL guest booking, not the staff CRM or schedule. ### Can walk-ins book a session that already started from the poster? No. Public booking closes after the session has started. Send late arrivals to the desk for staff walk-in on the active session. ## Follow-up guides - [Sign up walk-ins after a session has started](/guides/desk/walk-in-after-start) Book a [demo](/demo) or [get started](/get-started). --- # /guides/pay/promo-at-cart --- title: How do I apply a promo code at cart checkout? description: Apply a promo code during cart checkout for sauna and cold plunge bookings and store lines—not on membership subscription charges. canonical: https://www.zettlor.com/guides/pay/promo-at-cart keywords: "sauna, cold plunge, pay, Zettlor, session, seat" updated: 2026-08-26 status: live --- # How do I apply a promo code at cart checkout? Guests enter a promo code on the cart checkout screen before they pay for sauna and cold plunge sessions or store items. Membership subscription charges reject cart promo codes, so membership promos need a different path than booking or retail checkout. ## What Zettlor does today Promo codes apply to the Zettlor cart and booking checkout. You create codes under Store → Promos. Checkout rejects a promo when the cart includes a membership subscription. Redemption records after payment succeeds. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Create or verify the code at Store → Promos. Tell guests to enter it on the cart checkout screen before payment. If a code fails, check date windows, product eligibility, and whether the cart includes membership subscription lines. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Operators expect one promo to discount everything—including membership signup—but cart checkout blocks membership promos and mixed membership carts. Codes copied from a legacy scheduler also fail until you recreate them as Zettlor promo codes. ## Operator example At Rytual, a guest applies SAUNA15 on a cold plunge pack in cart checkout and sees the discount before paying. The same code errors if they add a membership subscription line to that cart. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Open Store → Promos and confirm the code is active, dated correctly, and scoped to the right products. 2. Send the guest to cart checkout for the sauna and cold plunge session or store item—not membership signup if the promo is cart-only. 3. Have the guest enter the code in the promo field before payment and confirm the discounted total before they submit. ## Related questions ### Can I use the same promo on membership and a session? No. Checkout rejects a promo when the cart includes a membership subscription. Run membership discounts on the membership product, not the cart promo field. ### Where do staff create promo codes? Go to Store → Promos. Codes you create there apply to the Zettlor cart and booking checkout after validation. ## Follow-up guides - [Flip the live calendar to Zettlor](/guides/migrate/flip-calendar) Book a [demo](/demo) or [get started](/get-started). --- # /guides/pay/stripe-reader --- title: Will our existing Stripe reader / tap-to-pay still work? description: "At the register, guests tap or insert a card using Stripe's in-browser card form. Dedicated Stripe Terminal readers are not supported. Phone tap-to-pay may work in the browser." canonical: https://www.zettlor.com/guides/pay/stripe-reader keywords: "sauna, cold plunge, pay, Zettlor, session, seat" updated: 2026-08-26 status: partial --- # Will our existing Stripe reader / tap-to-pay still work? When you charge a card at the register, Zettlor uses Stripe's in-browser card form—not dedicated Stripe Terminal reader hardware. Tap-to-pay on a phone may work for sauna and cold plunge retail in the browser, but do not assume your old countertop Terminal reader pairs with Zettlor. ## What Zettlor does today POS supports card payments through Stripe's in-browser form. Docs historically noted card readers shipping later. Dedicated Stripe Terminal readers are not a supported Zettlor path today. This behavior is partial: some of it is live, and the rest is a desk workaround rather than a missing settings screen you should hunt for. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Open POS, select a customer, add retail lines, and choose card payment at checkout. Use a connected Stripe account with card payments enabled. For tap-to-pay on a phone, run checkout in the browser—do not pair a Terminal reader expecting dedicated hardware support. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Operators plug in a Stripe Terminal reader and expect it to pair like their old stack. Checkout stalls because Zettlor only supports tap or insert a card at the register using Stripe's in-browser card form—not dedicated Terminal hardware. ## Operator example Alchemy tests tap-to-pay on an iPhone at the register for towel sales and cold plunge add-ons. Their countertop Terminal reader stays in the drawer because Zettlor does not drive Terminal hardware. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Confirm Stripe Connect is linked under Integrations → Payments. 2. Open POS, attach a customer, and build the sale. 3. Choose card payment and complete checkout on the device where guests tap or insert cards—do not rely on pairing a dedicated Terminal reader. ## Related questions ### Does Zettlor support Stripe Terminal readers? No. At the register, guests tap or insert a card using Stripe's in-browser card form. Dedicated Stripe Terminal reader hardware is not supported in Zettlor today. ### Can tap-to-pay on a phone work? It may, when Stripe and the browser support tap-to-pay on that device. This is partial support—not the same as an integrated Terminal fleet. ## Follow-up guides - [How do I record a cash or card-machine payment so the walk-in is marked paid?](/guides/pay/offline-payment) Book a [demo](/demo) or [get started](/get-started). --- # /guides/pay/host-pays-before-names --- title: Can a host pay for a private event before they have every guest name and email? description: Yes—a host can pay a private sauna and cold plunge buyout or quantity upfront; additional guest names and emails can be added later. canonical: https://www.zettlor.com/guides/pay/host-pays-before-names keywords: "sauna, cold plunge, pay, Zettlor, session, seat" updated: 2026-08-26 status: live --- # Can a host pay for a private event before they have every guest name and email? Yes. A host can pay for a private sauna and cold plunge event—buyout or fixed quantity—before every guest name and email is collected. Additional guests are optional at checkout; you can capture names later at check-in or waiver. ## What Zettlor does today Private and group checkout lets the payer cover the full buyout or seat quantity up front. The booking holds capacity against the room ceiling. Staff can add or update attendee names afterward without requiring full rosters before payment. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Book the private session or buyout from the schedule or event flow with the host as payer. Collect payment for the full slot or quantity at checkout. Add remaining guest names and emails later from the reservation or desk check-in when they arrive. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Operators delay selling buyouts because they think they need a full roster first. Revenue waits while the sauna sits empty even though Zettlor already supports host-paid capacity without every guest on file. ## Operator example Reddit NYC sells a Saturday buyout for ten seats before the corporate group sends names. The host pays upfront; staff add attendee emails when the roster arrives midweek. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Create the private event or buyout with the correct seat count and sauna and cold plunge resources. 2. Run checkout with the host as payer for the full buyout or quantity—do not wait for every guest name. 3. After payment, open the reservation and add or edit attendee names and emails as the roster firms up. ## Related questions ### Must every guest have an email before the host pays? No. The host can pay first. Collect additional guest emails later for waivers or confirmations. ### Does capacity lock when the host pays? Yes. The paid buyout or quantity holds seats against your sauna and cold plunge ceiling so public sessions cannot collide with the private block. ## Follow-up guides - [Do guests have to pay for the full session length up front?](/guides/pay/pay-full-session-up-front) Book a [demo](/demo) or [get started](/get-started). --- # /guides/pay/pay-full-session-up-front --- title: Do guests have to pay for the full session length up front? description: Guests pay the full slot price at checkout for sauna and cold plunge sessions—no à-la-carte per-minute billing. canonical: https://www.zettlor.com/guides/pay/pay-full-session-up-front keywords: "sauna, cold plunge, pay, Zettlor, session, seat" updated: 2026-08-26 status: live --- # Do guests have to pay for the full session length up front? Yes. Guests pay the full published slot price at checkout for sauna and cold plunge sessions. Zettlor does not sell à-la-carte minutes—you cannot charge only for the time they actually stayed mid-session. ## What Zettlor does today Checkout computes the session price for the whole slot length. Holds and reservations bind to that full session price. Staff comps or credits adjust after booking, but public checkout always collects the full session amount up front. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Guests book on the public schedule and pay the listed slot total before arrival. Staff walk-ins use pay now or complimentary on the desk flow—still tied to the full session price, not minute metering. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Operators promise guests they can pay for partial time at checkout. Checkout always quotes the full slot, which feels like overcharging when someone planned a shorter stay. ## Operator example At Ro, a 90-minute sauna and cold plunge loop lists at one price. Guests pay that full amount online even if they plan to leave after one round. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Publish slot templates with the full session length and price guests should expect. 2. Send guests to public checkout where the total reflects the entire slot—not per-minute math. 3. If someone stays shorter, handle goodwill with credits or comps after booking; do not expect à-la-carte checkout. ## Related questions ### Can guests pay only for minutes they use? No. Checkout charges the full slot price. Partial stays are handled operationally, not as à-la-carte minute billing. ### Does staff walk-in change the rule? Walk-ins still settle the full session price via pay now or complimentary—not incremental minute charges at the desk. ## Follow-up guides - [Can a host pay for a private event before they have every guest name and email?](/guides/pay/host-pays-before-names) Book a [demo](/demo) or [get started](/get-started). --- # /guides/pay/store-checkout-linked-customer --- title: "Why can't staff finish store checkout when the customer is already linked?" description: POS requires a selected customer on the register. Linking alone is not a documented blocker—re-select the customer if checkout fails. canonical: https://www.zettlor.com/guides/pay/store-checkout-linked-customer keywords: "sauna, cold plunge, pay, Zettlor, session, seat" updated: 2026-08-26 status: partial --- # Why can't staff finish store checkout when the customer is already linked? The POS register requires an actively selected customer before you can finish a sauna and cold plunge retail sale—not merely a customer record that exists elsewhere. If checkout fails while someone looks linked, re-select them on the register; Zettlor has no confirmed product bug that blocks already-linked customers as policy. ## What Zettlor does today POS expects a customer selected in the register UI. Linking a customer in CRM or on a reservation does not automatically populate the POS customer chip. Checkout errors are usually a missing selection, not a hard block on linked profiles. This behavior is partial: some of it is live, and the rest is a desk workaround rather than a missing settings screen you should hunt for. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Open POS. Search and explicitly select the customer in the register header before adding retail items. If checkout fails, clear and re-select the customer, then retry payment—do not assume CRM linking alone satisfies POS. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Staff see a customer on a reservation and skip selecting them on POS. Checkout refuses to complete and teams report a phantom bug instead of re-selecting the customer on the register. ## Operator example Rytual staff link a guest during check-in, then jump to POS for a cold plunge add-on without tapping the customer on the register. Re-selecting the profile clears the error. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Open POS on the register device. 2. Search the customer and tap to select them in the POS customer field—even if they are already linked on a reservation. 3. Add retail lines and complete checkout; if it fails, clear selection, re-select the same customer, and retry. ## Related questions ### Is linking a customer in CRM enough for POS? No. POS needs an active customer selection on the register. CRM or reservation linkage does not substitute for that selection. ### Is there a known bug blocking linked customers? There is no confirmed product bug documented as policy. When checkout fails, re-select the customer on the register first. ## Follow-up guides - [How do I format store product descriptions?](/guides/pay/store-product-descriptions) Book a [demo](/demo) or [get started](/get-started). --- # /guides/pay/store-product-descriptions --- title: How do I format store product descriptions? description: "Store product descriptions use Markdown—bold, lists, and links—for sauna and cold plunge retail pages." canonical: https://www.zettlor.com/guides/pay/store-product-descriptions keywords: "sauna, cold plunge, pay, Zettlor, session, seat" updated: 2026-08-26 status: live --- # How do I format store product descriptions? Write store product descriptions in Markdown. Zettlor renders bold text, lists, and links on sauna and cold plunge retail pages. ## What Zettlor does today Store pages and product drawers render description fields as Markdown. Plain text works; Markdown adds bullets, emphasis, and links without custom HTML. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Edit retail items at Store → Retail Items or store page entries at Pages → Store. Paste Markdown in the description field and preview on the public store page. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Operators paste HTML or rich-text from email and see broken tags or stripped formatting. Markdown-only rendering drops unsupported markup and the product looks unprofessional on mobile. ## Operator example Alchemy formats a cold plunge bundle description with Markdown bullets for towel, timer, and plunge access—the list renders cleanly on the store drawer. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Open Store → Retail Items or the store page editor. 2. Write the description in Markdown—headings, lists, and links—not raw HTML. 3. Preview the public store page to confirm the formatting appears as you expect. ## Related questions ### Can I use HTML in store descriptions? Use Markdown instead. Zettlor renders Markdown with bold, lists, and links; arbitrary HTML is not the supported path. ### Where do descriptions appear? On store product drawers and store page sections that display the text you enter in settings. ## Follow-up guides - [Why can't staff finish store checkout when the customer is already linked?](/guides/pay/store-checkout-linked-customer) Book a [demo](/demo) or [get started](/get-started). --- # /guides/pay/customer-account-page --- title: Where is the customer account page? description: "Guests use the guest account page at /c/your-handle/account with a one-time code emailed to the guest—no password—for sauna and cold plunge bookings, wallet, and waivers." canonical: https://www.zettlor.com/guides/pay/customer-account-page keywords: "sauna, cold plunge, pay, Zettlor, session, seat" updated: 2026-08-26 status: live --- # Where is the customer account page? Guests manage sauna and cold plunge bookings on the guest account page at /c/your-handle/account on your public site—a one-time code emailed to the guest, no password. Share that URL pattern with your handle; you do not need to expose internal staff routes. ## What Zettlor does today The customer portal lives at /c/your-handle/account (and wallet subpaths). Guests verify with a one-time code emailed to them, view reservations, credits, wallet, and waivers. Operators share the pattern; Zettlor does not auto-email a tenant-specific marketing CTA for every org. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Give guests https://www.zettlor.com/c/your-handle/account or your branded domain equivalent. They enter email, complete the one-time code step, and see upcoming sauna and cold plunge sessions. Staff can demo the flow from a test booking if needed. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Operators send guests to a generic login or staff dashboard. Guests cannot find bookings because the public account URL pattern was never communicated at the desk. ## Operator example Reddit NYC tells members to bookmark /c/reddit-nyc/account for one-time-code access to cold plunge reservations and wallet credits—not the staff bookings screen. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Confirm your public handle matches what guests see on your booking site. 2. Share /c/your-handle/account with guests who need to view or manage bookings. 3. Walk them through the one-time code on first visit—no password reset flow exists for the customer portal. ## Related questions ### Do guests need a Zettlor staff password? No. The customer account page uses a one-time code emailed to the guest email on file. Staff credentials are separate. ### What is the exact URL pattern? /c/your-handle/account on your public booking domain, replacing your-handle with your org handle. ## Follow-up guides - [How do I export every customer to a spreadsheet?](/guides/pay/export-customers) Book a [demo](/demo) or [get started](/get-started). --- # /guides/pay/export-customers --- title: How do I export every customer to a spreadsheet? description: Export customers as a date-windowed CSV from staff reports—not an unbounded all-time dump. canonical: https://www.zettlor.com/guides/pay/export-customers keywords: "sauna, cold plunge, pay, Zettlor, session, seat" updated: 2026-08-26 status: live --- # How do I export every customer to a spreadsheet? Staff export customers as CSV from operating reports with a date window—not an unbounded all-time export. Pick the range that covers the sauna and cold plunge cohort you need, then download the customers report. ## What Zettlor does today The customers report under Analytics → Operating reports exports CSV rows for a selected date range. It is designed for operational windows, not a single click for every customer ever created. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Open Analytics → Operating reports, choose the customers export, set from and to dates to cover your window, and download CSV. Widen the window if you need a longer history—there is no separate unlimited export. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Operators expect one button for all-time CRM export. They pick yesterday only and think Zettlor lost half their list when the window was too narrow. ## Operator example Ro exports customers created between January and March to reconcile a cold plunge membership push, using a three-month window instead of an all-time dump. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Go to Analytics → Operating reports. 2. Select the customers report type. 3. Set a date window that covers the records you need and download the CSV. ## Related questions ### Can I export every customer ever in one file? Exports are date-windowed. Set the widest practical from and to dates to approximate an all-time pull—there is no unbounded all-time button. ### Where is the export? Analytics → Operating reports with the customers report and your chosen date range. ## Follow-up guides - [Where is the customer account page?](/guides/pay/customer-account-page) Book a [demo](/demo) or [get started](/get-started). --- # /guides/pay/confirmation-emails --- title: How do I turn on purchase confirmation emails? description: "Purchase confirmations send as notification emails when notifications are connected—booking, store, and register receipts for sauna and cold plunge sales." canonical: https://www.zettlor.com/guides/pay/confirmation-emails keywords: "sauna, cold plunge, pay, Zettlor, session, seat" updated: 2026-08-26 status: live --- # How do I turn on purchase confirmation emails? Purchase confirmations send when your notification integration is connected—not a single checkbox in Zettlor settings. Booking, store, and register receipt confirmation emails cover sauna and cold plunge sales. ## What Zettlor does today Notification emails deliver booking, store, and POS receipt confirmations. Staff notification settings and the developer notifications area expose workflow health and test sends. There is no Settings → Email confirmations toggle—delivery depends on notifications being connected for your org. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Confirm notifications are connected via Advanced → Developer and staff notification tools. Use notification test preview or send to verify booking, store, and register receipt confirmation emails. Fix guest email on the customer record if sends fail. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Operators hunt a confirmations toggle that does not exist, while the real issue is notifications disconnected or guest email missing. Guests arrive without receipts and blame checkout instead of notification setup. ## Operator example Rytual verifies register receipt confirmation emails in the developer notifications panel after a retail sale so sauna guests get email receipts when notifications are live. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Open Advanced → Developer and confirm notification emails are connected. 2. Use staff notification test preview for booking, store, and register receipt confirmation emails. 3. Place a small test booking or POS sale and confirm the guest inbox receives the matching confirmation email. ## Related questions ### Is there an on/off toggle for confirmations? No dedicated checkbox. Confirmations send when notification emails are connected and the guest has a valid email. ### Which confirmations cover purchases? Booking confirmation emails, store purchase confirmation emails, and register receipt confirmation emails. ## Follow-up guides - [How do I keep guest receipts from saying Zettlor?](/guides/pay/receipt-branding) Book a [demo](/demo) or [get started](/get-started). --- # /guides/pay/receipt-branding --- title: How do I keep guest receipts from saying Zettlor? description: "Receipt and card branding comes from your Stripe Connect account—no Zettlor override for what appears on the guest's card statement in app settings." canonical: https://www.zettlor.com/guides/pay/receipt-branding keywords: "sauna, cold plunge, pay, Zettlor, session, seat" updated: 2026-08-26 status: partial --- # How do I keep guest receipts from saying Zettlor? Guest card receipts and statement lines follow your Stripe Connect account branding—not a Zettlor settings field. Zettlor does not let you change what appears on the guest's card statement in app settings; fix sauna and cold plunge receipt branding in the Stripe Dashboard on the connected account. ## What Zettlor does today Card receipts and many email receipts reflect Stripe Connect business name and branding. Zettlor has no override for what appears on the guest's card statement in settings. Partial fix: update business profile and receipt settings on the connected Stripe account. This behavior is partial: some of it is live, and the rest is a desk workaround rather than a missing settings screen you should hunt for. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Log into the Stripe Dashboard for your connected account (linked from Integrations → Payments). Update business name, support phone, and receipt branding there. Re-run a small POS or booking charge to verify the guest sees your brand. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Operators search Zettlor settings for receipt text and find nothing. Guests see Zettlor or a generic descriptor on card statements while the fix sat in Stripe all along. ## Operator example Alchemy updates their Stripe Connect business name so cold plunge POS charges show Alchemy on the guest bank app instead of a generic label. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Open Integrations → Payments and jump to the connected Stripe account. 2. In Stripe Dashboard, set business name and receipt branding on that connected account. 3. Run a test charge and confirm the guest receipt and statement line show your sauna brand. ## Related questions ### Can I change receipt text inside Zettlor? No override for what appears on the guest's card statement exists in Zettlor settings. Branding is controlled on the Stripe Connect account. ### Do confirmation emails use Stripe branding too? Email confirmations use your notification email templates; card receipts and statements still follow Stripe Connect branding for charges. ## Follow-up guides - [How do I turn on purchase confirmation emails?](/guides/pay/confirmation-emails) Book a [demo](/demo) or [get started](/get-started). --- # /guides/pay/offline-payment --- title: How do I record a cash or card-machine payment so the walk-in is marked paid? description: Cash payment exists on the register; walk-in booking pay is pay now or complimentary only—not a walk-in cash mark-as-paid action. canonical: https://www.zettlor.com/guides/pay/offline-payment keywords: "sauna, cold plunge, pay, Zettlor, session, seat" updated: 2026-08-26 status: partial --- # How do I record a cash or card-machine payment so the walk-in is marked paid? Staff POS supports cash payment on the register for retail, but walk-in sauna and cold plunge bookings only accept pay now or complimentary—not a mark-as-paid flag on the reservation. Record a separate register cash sale for retail, or mark the walk-in complimentary and note the external payment when they paid on another terminal. ## What Zettlor does today Cash payment exists at POS. Register charge uses tap or insert a card at the register using Stripe's in-browser card form. Walk-in reservation payment is pay now or complimentary only—there is no walk-in cash mark-as-paid path on the booking itself. This behavior is partial: some of it is live, and the rest is a desk workaround rather than a missing settings screen you should hunt for. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path For retail paid cash, run POS with cash on the register. For walk-ins paid on an external terminal, either charge a card at the register on Zettlor POS or mark the booking complimentary and note the external payment on the reservation. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Front desk expects a walk-in cash button like their old scheduler. They comp everyone because cash walk-ins cannot be marked paid on the booking record, skewing revenue reporting. ## Operator example Reddit NYC takes cash for towels on the register, but a walk-in sauna guest who pays cash on a standalone terminal gets a complimentary booking plus a staff note about the external payment. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. For store retail, open POS, select the customer, and choose cash on the register. 2. For walk-in sessions, use pay now through Zettlor or complimentary when they already paid elsewhere. 3. Add a staff note on the reservation when payment happened outside Zettlor so the desk has context. ## Related questions ### Can I mark a walk-in booking paid in cash? Walk-in payment is pay now or complimentary only. Cash on a walk-in booking is not a built mark-as-paid action—use POS for retail or complimentary plus a note. ### Does POS cash work for retail? Yes. Cash on the register at POS completes retail sales without a card charge. ## Follow-up guides - [Will our existing Stripe reader / tap-to-pay still work?](/guides/pay/stripe-reader) Book a [demo](/demo) or [get started](/get-started). --- # /guides/pay/partial-refund --- title: How do I issue a partial refund without cancelling the whole booking? description: Stripe partial refunds exist; staff UI is cancel and refund—use Stripe Dashboard to refund and keep the reservation. canonical: https://www.zettlor.com/guides/pay/partial-refund keywords: "sauna, cold plunge, pay, Zettlor, session, seat" updated: 2026-08-26 status: partial --- # How do I issue a partial refund without cancelling the whole booking? Stripe supports partial refunds on connected charges, but Zettlor staff UI focuses on cancel-and-refund—not a keep-booking partial refund button. For sauna and cold plunge sessions you want to keep on the books, issue the partial refund in Stripe Dashboard while leaving the reservation active in Zettlor. ## What Zettlor does today Stripe supports partial refunds on charges. Staff cancel flows refund and cancel together. Zettlor does not have a one-click refund that keeps the booking in the desk UI today. This behavior is partial: some of it is live, and the rest is a desk workaround rather than a missing settings screen you should hunt for. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Find the charge in Stripe Dashboard for the connected account. Issue a partial refund for the goodwill amount. Leave the reservation confirmed in Zettlor unless you also intend to cancel attendance. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Managers cancel a booking to refund $20 and accidentally free a sold-out cold plunge slot. The partial refund should have stayed in Stripe while the seat remained booked. ## Operator example Ro refunds half of a host fee in Stripe after a shortened private session but keeps the reservation row so the sauna block stays sold. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Locate the payment in Stripe Dashboard on your connected account. 2. Issue a partial refund for the amount you want to return. 3. Confirm the reservation remains confirmed in Zettlor if guests should still attend. ## Related questions ### Is there a partial refund button in Zettlor? Zettlor does not have a refund button that keeps the booking. Staff cancel and refund cancels the booking; use Stripe Dashboard for partial refunds that keep the reservation. ### Will Stripe partial refunds sync back? Payment state updates when Stripe processes the refund; the reservation status depends on whether you also cancelled in Zettlor. ## Follow-up guides - [How do I export a booking ledger and session attendance as CSV?](/guides/pay/export-ledger) Book a [demo](/demo) or [get started](/get-started). --- # /guides/pay/export-ledger --- title: How do I export a booking ledger and session attendance as CSV? description: "Export reservations, transactions, revenue, and daily usage CSVs—the daily usage CSV shows counts, not a guest attendance list." canonical: https://www.zettlor.com/guides/pay/export-ledger keywords: "sauna, cold plunge, pay, Zettlor, session, seat" updated: 2026-08-26 status: partial --- # How do I export a booking ledger and session attendance as CSV? Staff export booking ledger data as date-windowed CSVs—reservations, transactions, revenue, and daily usage—from operating reports. The daily usage CSV summarizes usage metrics, not a per-guest sauna and cold plunge attendance roster, so partial coverage is the honest answer for attendance exports. ## What Zettlor does today Reports at Analytics → Operating reports expose reservations, transactions, revenue, and daily usage CSV exports with date filters. The daily usage CSV is not an attendance roster—it is usage analytics, not every name on site for a session. This behavior is partial: some of it is live, and the rest is a desk workaround rather than a missing settings screen you should hunt for. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Open Analytics → Operating reports, pick reservations for booking ledger lines and transactions for payments, set your date window, and download. Use the daily usage CSV only when you need usage aggregates—not when you need a check-in roster. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Operators download the daily usage CSV expecting every guest name in the sauna. They get usage counts and think check-in data was deleted. ## Operator example Alchemy pulls reservations and transactions CSVs for January ledger review, and uses desk check-in views—not the daily usage CSV—for who actually attended cold plunge sessions. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Go to Analytics → Operating reports. 2. Export reservations and transactions CSVs for your ledger date window. 3. Use the daily usage CSV only for usage summaries; pull attendance names from desk or reservation detail instead. ## Related questions ### Does the daily usage CSV list every attendee? No. The daily usage CSV shows usage counts, not a session attendance roster. ### Which export is the booking ledger? Reservations plus transactions CSVs from Analytics → Operating reports for the period you need. ## Follow-up guides - [Membership billed versus sessions used](/guides/membership/revenue-vs-usage) Book a [demo](/demo) or [get started](/get-started). --- # /guides/migrate/flip-calendar --- title: How do I flip the live calendar from Acuity or Momence to Zettlor? description: "When slot templates, products, and imported reservations are ready, publish cutover on Advanced → Migration so guests book sauna and cold plunge sessions on Zettlor instead of Acuity or Momence." canonical: https://www.zettlor.com/guides/migrate/flip-calendar keywords: "sauna, cold plunge, migrate, Zettlor, session, seat" updated: 2026-08-26 status: live --- # How do I flip the live calendar from Acuity or Momence to Zettlor? When slot templates, products, and imported reservations are ready, use Advanced → Migration to make Zettlor the live booking system instead of Acuity or Momence. Do not leave both calendars selling the same sauna and cold plunge seats. ## What Zettlor does today A setting controls which booking system is live: Zettlor or your old scheduler. Advanced → Migration is where you publish the switch. After you publish, guests book open slots on Zettlor. Acuity or Momence does not close itself; you turn off new bookings there. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Open Advanced → Migration. When templates and inventory are ready, publish Zettlor as the live booking system. Confirm the public booking page shows Zettlor times. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode You flip before slots are generated. The booking preview shows no times, and guests bounce while the old calendar is already off. ## Operator example Alchemy generated two weeks of sauna and cold plunge slots, imported the near-term reservations, then published Zettlor as the live booking system on Advanced → Migration during a Monday lull. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Finish slot templates, products, and waivers on Zettlor. 2. Import or recreate near-term reservations. 3. Open Advanced → Migration and publish Zettlor as the live booking system. 4. Turn off new bookings on the legacy scheduler the same hour so seats are not double-sold. ## Related questions ### Does flipping import the old calendar automatically? No. Which booking system is live controls what the public page uses. Reservations and templates are separate work. ### Can I flip back? Advanced → Migration controls which booking system is live. Coordinate with Zettlor if you need to revert; do not run two live inventories. ## Follow-up guides - [Import or recreate future reservations](/guides/migrate/future-reservations) - [Why the booking preview shows no times](/guides/booking/preview-no-times) Book a [demo](/demo) or [get started](/get-started). --- # /guides/migrate/future-reservations --- title: "Do future reservations import, or do we recreate them?" description: Appointment import can bring some future reservations. You recreate the rest from Schedule and slot templates. canonical: https://www.zettlor.com/guides/migrate/future-reservations keywords: "sauna, cold plunge, migrate, Zettlor, session, seat" updated: 2026-08-26 status: live --- # Do future reservations import, or do we recreate them? Some future reservations import through the appointment import path; the rest you recreate on Zettlor templates or at the desk. Do not assume every future sauna and cold plunge booking lands perfectly on cutover day. ## What Zettlor does today Import tools can create reservations from appointment files. Staff can also book guests onto open slots on the schedule. Templates must exist for the times you recreate. Gaps after import are a desk job, not a hidden second importer. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Advanced → Import for appointment files. Schedule to recreate anything missing. Generate slot templates first so there is a slot to land on. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode You flip the calendar with an empty Schedule, then honor paper lists at the door while online inventory sells the same seats. ## Operator example Ro imported the next 10 days of appointments, then staff recreated a Saturday buyout on a Zettlor event because the import could not express the private room. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Generate slot templates for the dates you will honor. 2. Run appointment import from Advanced → Import. 3. Walk Schedule for gaps and recreate missing reservations. 4. Flip to Zettlor only after the near-term grid matches what you promised guests. ## Related questions ### Will every future booking import? Some will. Recreate the rest on templates or at the desk. Plan for gaps. ### What if a booking has no matching slot? Create the template or event first, then book the guest onto that open slot. ## Follow-up guides - [Flip the live calendar to Zettlor](/guides/migrate/flip-calendar) - [Keep migrated customer data clean](/guides/migrate/clean-customer-data) Book a [demo](/demo) or [get started](/get-started). --- # /guides/migrate/clean-customer-data --- title: How do we keep migrated customer data clean? description: "Duplicate matching, reconciliation, and Merge Customer keep imported guests from splitting credits and bookings." canonical: https://www.zettlor.com/guides/migrate/clean-customer-data keywords: "sauna, cold plunge, migrate, Zettlor, session, seat" updated: 2026-08-26 status: live --- # How do we keep migrated customer data clean? Use duplicate matching and reconciliation during import, then merge leftover split profiles so credits and bookings sit on one customer. Clean sauna and cold plunge data is a merge job, not a second spreadsheet of truth. ## What Zettlor does today Import matching and reconciliation staging exist, and you can run Merge Customer with undo. Phone and email aliases matter; a second profile for the same person can hide credits on the unused profile. Clean cutover means one surviving customer for each regular, with memberships, packs, and future sauna and cold plunge seats on that profile. This behavior is live in Zettlor today for a commercial sauna and cold plunge room. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Advanced → Import and Advanced → Migration. Run Merge Customer from CRM → Customers. Undo a bad merge if you picked the wrong survivor. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Two profiles for one regular: membership on A, punch pack on B. Checkout charges because the spendable credit is on the record they did not book with. ## Operator example Rytual merged three imported emails for the same cold plunge regular, then the 8-session membership finally covered checkout. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Run import with matching on email and phone. 2. Review reconciliation duplicates before you flip the calendar. 3. Merge split profiles onto the surviving customer. 4. Confirm credits and future reservations sit on that survivor. ## Related questions ### Can I undo a merge? Yes. Use undo if you picked the wrong surviving profile. ### Should I delete extras? Merge rather than delete. Bookings and credits stay linked to the profile you keep. ## Follow-up guides - [Merge duplicate guest profiles](/guides/desk/merge-profiles) - [Port an existing membership](/guides/membership/port-existing-membership) Book a [demo](/demo) or [get started](/get-started). --- # /guides/migrate/momence-marketing-export --- title: What marketing data can we export from Momence? description: Momence holds marketing lists and history. Zettlor does not ship a Momence marketing-export product. canonical: https://www.zettlor.com/guides/migrate/momence-marketing-export keywords: "sauna, cold plunge, migrate, Zettlor, session, seat" updated: 2026-08-26 status: partial --- # What marketing data can we export from Momence? Export marketing lists in Momence, then import customers into Zettlor. Zettlor does not pull Momence campaigns or automations; you export what you need from Momence first. ## What Zettlor does today Momence is a legacy booking provider. Zettlor import wants customer records, not a Momence email-platform export. Campaign history, tags, and automations stay in Momence unless you export them there. This behavior is partial: some of it is live, and the rest is a desk workaround rather than a missing settings screen you should hunt for. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Export CSV from Momence. Import customers via Advanced → Import. Zettlor has no Settings → Momence marketing export. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Operators expect Zettlor to replay Momence automations on day one. Guests get silence, then they assume cutover lost the list. ## Operator example Alchemy downloaded their Momence customer CSV, imported into Zettlor, and kept email campaigns in their existing mail tool rather than waiting for a Zettlor Momence exporter. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Export customers and any lists you need from Momence. 2. Import into Zettlor with matching on email and phone. 3. Keep marketing sends in the tool that already has the list. 4. Do not look for a Zettlor Momence marketing exporter; it is not a product. ## Related questions ### Will Zettlor import Momence automations? No. Import customers. Rebuild campaigns in your mail tool. ### Can I export marketing data from Zettlor later? Use the customer CSV export with a date window. That is Zettlor data after cutover, not a Momence dump. ## Follow-up guides - [Keep migrated customer data clean](/guides/migrate/clean-customer-data) - [Export customers to a spreadsheet](/guides/pay/export-customers) Book a [demo](/demo) or [get started](/get-started). --- # /guides/migrate/gift-card-balances --- title: How do I load pre-sold gift-card balances so they still redeem after cutover? description: "Import often lands credits on the customer, not gift-card codes. Recreate codes or grant credits so balances still spend." canonical: https://www.zettlor.com/guides/migrate/gift-card-balances keywords: "sauna, cold plunge, migrate, Zettlor, session, seat" updated: 2026-09-05 status: partial --- # How do I load pre-sold gift-card balances so they still redeem after cutover? Load pre-sold balances as credits on the customer or recreate gift-card codes under Store → Gift Cards. Import often lands credits rather than codes. POS gift-card payment is a third path and does not spend those codes or credits. ## What Zettlor does today Universal and CSV import can grant dollar credits on the customer. Gift-card codes are a separate record under Store → Gift Cards. Online checkout redeem uses those codes. Some imported value arrives as credits. POS gift-card payment records a register sale without reducing either balance. Map each legacy card to a code or a customer credit, not both, and not to POS gift-card payment. This behavior is partial: some of it is live, and the rest is a desk workaround rather than a missing settings screen you should hunt for. Guest booking, cancel, and credit self-serve steps stay on Help. This page is for operators. ## Desk path Advanced → Import to grant credits, or Store → Gift Cards to recreate codes. Confirm the guest can redeem on a test sauna or cold plunge checkout. Do not test with POS gift-card payment. Do not invent a settings path beyond what is listed here. If the product does not include a control, the desk workaround is the path. ## Failure mode Staff paste old codes into Zettlor checkout; they fail because import created credits without codes. Guests think the gift card died at cutover. ## Operator example Ro imported outstanding gift value as credits on each customer, then emailed guests that booking checkout would apply store credit rather than the old 12-character code. A sauna and cold plunge operator can copy the shape of this example without copying another brand's private pricing or customer lists. ## How to do this 1. Export outstanding balances from the old system. 2. Decide per row: recreate a gift-card code, or grant credits on the customer. 3. Import or issue on the surviving customer after duplicate merge. 4. Test one redeem on booking checkout before you flip the calendar. ## Related questions ### Will old gift-card codes work unchanged? Only if you recreate gift-card codes with those values. Import often creates credits on the customer instead. Guests can open `/c/{handle}/gift/check` to test a code. A miss there still means the value may be store credit on the customer, not that the gift is gone. ### Does the register spend imported credits? POS gift-card payment does not spend imported credits or staff-issued codes. Prefer booking or store checkout redemption, or credits on the customer that you know spend at booking. ## Follow-up guides - [Redeem a gift card at booking](/guides/membership/gift-card-at-booking) - [Grant credits without charging](/guides/membership/comp-credits) Book a [demo](/demo) or [get started](/get-started).