title: “Classes”
This guide covers the Classes module. If your gallery has not switched it on (the Owner does that in Settings → Extensions), this page will not match what you see — skip it for now.
Classes
For gallery staff. Publish a class, take bookings and payment, and hand the instructor a register.
Classes is switched on by default for galleries. If you do not teach, you can ignore the tab — nothing here appears on your website until you publish a class.
Instructors who are member artists want Your classes, as an instructor instead.
The short version
- Create the class as a draft.
- Check it over.
- Press Publish. Only now does it appear on your website.
- People book and pay through your site.
- The instructor sees their register in the member portal.
Nothing is public until you publish. A draft is yours alone.
Creating a class
Fill in the form. Only a few fields are required; the rest are what stop a student turning up with the wrong thing.
| Field | Notes |
|---|---|
| Title | What it is called, e.g. Watercolor Basics. |
| Instructor | Pick one of your member artists — that is what puts the register in their portal. |
| Instructor name | For somebody who is not on your roster, e.g. Jo Fielding, visiting. |
| Price (USD) | Leave it at zero for a free class — see below, that changes what happens at booking. |
| Places | How many people can book. |
| Where | Main studio, or wherever it is. |
| Date / From / To | One row per session. A course adds more rows. |
The four description boxes
These exist because they are the four things students actually ask:
- What this class is
- What to bring
- What we provide
- What’s expected — prior experience, age, anything a beginner should know before paying
Filling these in is the difference between a student arriving prepared and a student arriving with nothing.
Publishing
A new class is a Draft. It is not on your website and nobody can book it.
Press Publish when it is ready. The badge changes to Published and the class appears on your public site.
The three states
| Badge | Meaning |
|---|---|
| Draft | Yours only. Not on the website. |
| Published | Live on your website; people can book. |
| Cancelled | Called off. |
Any of the three can be deleted as long as nobody has ever paid for a place — see Cancelling, and deleting.
Finding a class in the list
The filter at the top of Classes › Classes has four options, and every class is under exactly one of the first three — nothing appears twice, and nothing falls between them.
| Filter | Shows |
|---|---|
| Upcoming | Classes with a date still to come that have not been cancelled. This is where the screen opens. |
| Past | Classes whose dates have all gone by and that were not cancelled. |
| Cancelled | Every class you called off, whatever its dates — you do not have to remember whether it was last month or next. |
| All | Everything. |
Drafts appear under Upcoming alongside published classes, as long as they have a date to come. They are yours to see before anybody else can — hiding them from your own list would be no help.
A cancelled class leaves Upcoming the moment you cancel it. It is not deleted and its dates do not change; it has only moved to Cancelled. To find one again, that is the filter to pick.
Bookings and money
A visitor gives their name, email and phone — all three are required, and
the phone must be a US number (it formats itself as (415) 555-1234 while they
type; the gallery keeps the digits). The phone is there so you can ring a
student when a class moves or is called off, which is not something to leave to
an email. Then:
- A paid class — their place is held for fifteen minutes while they pay through Square. It is confirmed when the payment confirms, not when their browser comes back. That is deliberate: students close the tab on the receipt page, and a place should not depend on them not doing that.
- A free class — no payment step, confirmed on the spot.
If a payment never completes, the hold lapses and the place returns to the pool.
The email address has to be a real one
A booking is refused, before any place is held, if the address is on a
domain reserved by standard for documentation and testing — example.com,
example.net, example.org, and anything ending .test, .example,
.invalid or .localhost. Those domains can never receive mail, so the
confirmation with the dates and what to bring would go nowhere, and the payment
page refuses them outright.
This matters most when you are trying your own class page: book with a real
address, not me@example.com, or you will be told the address is the problem
rather than seeing the checkout.
If the payment page turns an address down for some other reason of its own, the visitor is told plainly that the address was not accepted and that their place has not been taken — they can book again with a different one. A payment service outage says so instead, and is never blamed on the address.
Closing sign-ups without cancelling
On a published class, Close sign-ups stops new bookings while leaving the class on your website with everything already booked intact. The badge reads Sign-ups closed.
Use it when you have enough people but the class is still going ahead. It is not the same as cancelling, and students can tell the difference.
Reopen sign-ups puts it back.
The waitlist
When every place is taken, the class page stops offering a booking form and offers a waitlist instead. A full class is not a dead end: cancellations are normal, and an empty chair on the night helps nobody.
Joining costs nothing. Somebody leaves their name, email and phone — the same three fields as a booking — and no card is taken, no place is held and no enrollment exists. Holding money for a place that may never come free is the wrong promise, so the product does not make it.
How a freed place is offered
When a place comes free — a booking is cancelled, a checkout is abandoned, or you simply add a chair — the first person waiting is emailed a claim link with a stated deadline. The default is 48 hours, and the email says so in words and as a date.
- One offer at a time, in order. Offering to everyone at once is a race that produces angry students and an oversold class.
- The place is held for the person who was offered it. While their link is live the class still reads as Sold out to everyone else, so nobody takes the chair out from under them.
- Claiming leads to the ordinary sign-up — the same Square checkout, the same fifteen-minute hold, the same confirmation email.
- An unclaimed offer expires and passes to the next person. Nothing is deleted: the expired offer is kept, so you can always answer “why did I not get the place”.
- The link only ever books the person it was sent to. Forwarding it does not let somebody else take the place.
Seeing and managing the list
On a published class, Waitlist shows everybody, in order, with their contact details and what became of them — waiting, offered, took the place, offer expired, or removed.
- Offer next place hands the next free place to the next person immediately, rather than waiting for the hourly pass. If there is nothing to offer it says which reason: no free place, an offer already live, or nobody waiting.
- Remove takes somebody off the list — they are skipped next time the queue moves. The record stays; nothing is deleted.
The instructor sees the same list in their portal and can remove somebody too. See Your classes, as an instructor.
Members-only classes
Some of what you teach is a benefit of membership — a critique night, a members’ life-drawing session, a workshop included in dues. Tick Members only on the class form and:
- Everyone still sees the class on your website, wearing a Members badge. That is the point: a visitor learns that membership has benefits.
- A visitor who is not signed in sees Members only where the price would be, with a link to the member sign-in, and Sign in to book where the booking form would be — plus a pointer to your Join page.
- A signed-in member of your gallery sees the price and books exactly as they would any other class, free or paid. Their booking then appears under My bookings in the member portal.
- Anyone else is refused by the server, not just by the button: a member of a different gallery, or someone who has found the address of the booking endpoint, gets a refusal and nothing is held, charged or emailed.
The badge shows in your classes table and on the instructor’s roster too.
Turning it on for a class that already has students changes nothing for them. Their places stay, they stay on the roster, and only new bookings are limited to members. Turning it off reopens the class to everyone.
“Member” here means a member artist with member login enabled — the same people who can sign in to the member portal. Someone on your mailing list who has not been given a login is not a member for this purpose.
Online classes
A class can be held online — Zoom, Google Meet, Teams, whatever the instructor uses. Tick Online class on the class form and Where becomes Meeting link. Two links are involved, and they are different things:
The meeting link is a secret shared with the people who booked.
- It must be an
https://address; anything else is refused when you save. An online class cannot be saved without one. - It goes into the confirmation email, is shown on the student’s booking confirmation (right away for a free class; once the payment confirms for a paid one), and appears under My bookings in the member portal for a member who booked.
- It is never on the website. The public class page says Online class — the link is sent when you book where the location would be; the calendar and the iCal feed say Online. Nobody who has not booked can fetch it, and a cancelled booking loses it.
- Send meeting link (on the class row, and on the instructor’s roster in the portal) emails it to everyone who has booked in one click. It is recorded as a class message like any other, and counts toward the instructor’s message rate limit.
The class link is the class’s page on your website. Copy link on every
class row and on the edit form puts it on your clipboard for a newsletter or a
message. It works for in-person classes too. The link is on your gallery’s own
web address once it is verified (Settings → Organization → Domain says your
site is live there); without one, or while it is still being verified, it uses
your cartoncrew.online address.
Turning Online off keeps the meeting link but stops using it: the website shows the location again and no email carries the link. The form says so, so next term is one tick to bring it back.
Cancelling, and deleting
Cancel class marks it Cancelled, and does the whole job in one action:
- every student who has paid is refunded through Square,
- every one of them is emailed that the class is off and their money is coming back,
- the waitlist is ended and those people are emailed too,
- anybody mid-checkout has their held place released,
- and the class leaves Upcoming and moves under the Cancelled filter, so what you are about to run is only ever what you really are about to run.
A gallery calling a class off should not have to remember four separate chores, so it does not. The confirmation box says all of this before you press it, because it moves money and cannot be undone.
Delete, and when it is Cancel instead
Delete is on every class in the list — draft, published or cancelled — for anyone who manages classes (the Front Desk, which only reads the list, does not see it). The one rule is about money: a class can be deleted as long as nobody has ever paid for a place. A class published by mistake, a test class, or a cancelled class nobody booked can simply go.
Press Delete on the class’s row and a confirmation opens. It is built from what the class actually has, so it tells you exactly what goes with it — for example “This removes 3 sessions, 2 unpaid bookings and 1 waitlist entry, and the Square item will be archived.” Tick the box and press Delete class. The class disappears from your list and from your website at once; its page and its booking link stop working (a visitor following an old link sees the site’s “could not be found” page).
What deleting removes:
- the class and its dates (sessions),
- its unpaid bookings — places that were being held during a checkout that never finished, or bookings that were cancelled without any money changing hands,
- its waitlist and any messages the instructor sent,
- and, if the class had been pushed to Square, the Square item is archived — never deleted. Archiving hides it from every register and search in Square and can be undone in Square at any time. If Square cannot be reached at that moment the class is still deleted here and you are told the item needs archiving by hand.
If anyone has paid, Delete is refused and the box says how many bookings were paid for and to use Cancel class instead. Cancelling is the right tool for a class with money in it: it refunds everyone through Square, emails them, ends the waitlist and keeps the class under Cancelled as the record of what was paid and what came back. That record is never erased — not by a cancellation, and not by Delete. A booking that was paid and later refunded still counts as paid, for the same reason.
Nothing is ever deleted by a cancellation. A cancelled booking keeps what was paid, when it was paid and what came back; the class keeps its dates and its history. This is money.
A student cancels their own place
The confirmation email carries a cancel link. It opens the class page, tells them plainly how much they will get back and on what basis before they confirm, and — when they do — frees the place and offers it to the next person on the waitlist.
What the emails look like
Every email a booking can produce — the confirmation, a student’s own cancellation, the class called off (to students and to the waitlist), the waitlist acknowledgement, the claim offer and an instructor’s message — goes out on the gallery’s own branded shell, the same one the privacy emails use:
- your logo at the top (or your gallery’s name set as a wordmark until you upload one), and your footer — address, contact email and legal line — from Settings. Nothing about another gallery can ever appear in it.
- the details of the class as labelled rows: Date (or Dates), Where, With, What we provide, What to bring, What to expect. A field you left empty simply has no row — an empty What to bring would read as “bring nothing”.
- Cancel your place as a button, with the same link written out underneath it and again in the plain-text version, so it works with images blocked and in a text-only mail app.
- a calendar file (
class.ics) attached to the confirmation, one entry per session, so the student can add the dates to their calendar in one tap. For an online class it carries the meeting link; the public calendar never does. - the money sentence on a cancellation exactly as before: what is refunded, to the card they paid with, through Square — or that it could not be sent automatically and the gallery will put it right.
- where a reply goes. Every email leaves from the platform’s no-reply address, so a reply only reaches you if the email carries your address as its Reply-To. It does when you have a Contact email under Settings (the same address the footer prints), or an email in your public site’s footer or Contact page. Then the email may say “reply to this email”, and a reply lands in that mailbox. With no usable address on file — none set, or a no-reply address — the email does not invite a reply at all: it names your site’s Contact page instead, as a button and a written-out link. A message from an instructor always replies to the instructor.
Whatever is typed into a class — a title, an address, the What to expect paragraph — is shown as text. It cannot change the layout or run as code.
The cancellation policy
How much a student gets back depends on how far ahead of the class they cancel. The policy ships as:
| When the student cancels | Refund |
|---|---|
| 10 or more days before the class starts | 100% |
| 5 or more, but fewer than 10 days before | 50% |
| Fewer than 5 days before, or a no-show | nothing |
| You cancel the class | 100%, regardless |
The boundaries fall to the student. Exactly 10 days out is a full refund; exactly 5 days out is half. Nobody should lose half their fee to a minute.
The tiers are measured against when the class starts in your gallery’s own time, so set your timezone under Settings → Organization. Without it the boundaries are measured in UTC, which for a US gallery moves them by most of a working day.
The last row is not a tier. If you cancel the class, everybody is refunded in full whatever the tiers would have said — that is not their fault, at any distance from the date.
Members-only classes take no payment, so none of this applies to them.
Changing the policy
Settings → Classes is where you set it. Both halves of every tier are yours: how many days ahead, and what percentage. Add a tier, remove one, or press Restore the standard policy to go back to 10/100 and 5/50. Leave it alone and you get the table above.
As you type, the panel shows the policy in the exact words the student will read — on the booking confirmation, on the cancellation screen and in the cancellation email. Read that, not the numbers: it is what you are promising.
Changing the policy affects bookings taken from now on. Every booking that already exists keeps the policy it was sold under and is refunded on those terms. A student was quoted something when they paid, and editing this screen does not go back and change what they were told — which is what makes it safe to change your mind.
Bookings taken before this policy existed are governed by the flat 48-hour rule they were actually quoted at the time: refunded in full more than 48 hours before the class, nothing inside it. They were not moved onto the tiers.
If a refund fails
Square can refuse a refund — an expired card, a closed account. When that happens the cancellation still goes through and the student is still emailed; the failure is recorded against that student rather than swallowed.
Open Bookings & refunds on the class. Anybody still owed is listed at the top with the reason Square gave and a Retry refund button. A partly failed batch is never reported as done, because a gallery believing it is settled when it is not is the worst way for this to go wrong.
A refund you take in Square’s own dashboard is picked up automatically and shown here too, so the two never drift apart.
If a refund was priced on the wrong policy
A refund is always calculated from the policy stored on the booking itself. Very rarely that stored policy cannot be read — a fault on our side, not something you can cause from Settings. When it happens the cancellation still goes through and the student is still refunded, on the standard 10/100 and 5/50 tiers, because a student should not be left waiting while we fix our own problem.
It is recorded rather than passed over in silence. Open Settings → Recent Activity and look for CartonCrew (automatic, refund priced on fallback) updated a class enrollment. The audit log behind each entry (also in your data export) records the booking, what the student had paid and what they were refunded, so if your own policy was more generous than the standard one you can see exactly who to top up. Tell us if you see one — the entry is there so the gallery is never the last to know.
What the instructor sees
Any member artist you set as Instructor gets the class in My Classes in the member portal, with:
- everyone who has booked, with their email and phone
- what each person paid and when they booked
- who is waiting, in order, and a Remove for anybody on that list
- Message everyone, or one student
They cannot change the price, the places, the dates or the location, and they cannot cancel the class — those are yours. See Your classes, as an instructor.
Suggestions from instructors
The Classes module has two tabs: Classes, and Suggestions. A member
artist can propose a class from My Classes in their portal — a title, what it
is about, how long, how many places, what they think it is worth, and when they
could run it. Each one lands on the Suggestions tab, and the tab shows how many
are waiting, as in Suggestions (2). Owners and admins are also emailed when
one arrives.
A suggestion is not a class. It is not on your website, nobody can book it, and it takes no money. It is a proposal, and it waits for you.
For each pending suggestion you can:
- Accept. This creates the class for you — as a draft, with the member already set as its Instructor, and the title, description, price and places copied from the suggestion as starting values. Nothing is retyped. The editor opens on the new class straight away, because the one thing a suggestion cannot carry is a date: the member told you when they could run it, in words, and you add the sessions. Change the price or the places if you want to; from here on the class is yours, exactly like one you typed. Publish it when it is ready. The member is emailed that it was accepted, and sees Accepted on their suggestion.
- Decline. You must give a reason, and the member sees it — on the suggestion in their portal and by email. Say what would change your mind, if anything would; “the studio is booked through November” invites the same idea in January, “no” does not.
- Leave it. Nothing happens until you decide. The member can still edit or withdraw it while it is pending; once you have decided, they cannot.
The filter at the top of the tab shows Pending (the default), Accepted, Declined or All. An accepted suggestion keeps an Open class button, which takes you to the class it became.
You can only see suggestions made to your gallery, and a member only ever sees their own.
If it goes wrong
My class is not on the website. It is still a Draft. Press Publish.
Somebody says they paid but they are not on the list. A place is confirmed by the payment confirming. Check the payment in Square. If it did not complete, the hold will have lapsed and the place gone back.
I need to stop bookings but keep the class. Close sign-ups — not Cancel class.
I want to remove a published class entirely. You cannot, by design: people have seen it and may have paid. Cancel it instead.
The instructor cannot see their register. They must be set as the Instructor on the class and be a member artist at your gallery. A typed Instructor name is a label, not a link to an account.
A member says the class asks them to sign in, and they have. They must be signed in to this gallery’s member portal, on this gallery’s website address — a sign-in at another gallery does not carry over. If they are signed in here and still refused, check that they are a member artist with member login enabled, and not archived.
A student says they never got the meeting link. Open the class and press Send meeting link — it goes to everyone who has booked, and appears in the class’s message history. A student whose payment has not confirmed yet is not on the roster and will get the link with their confirmation email.
A members-only class is not on the calendar. It is — on the website’s What’s on list and month grid (with a Members pill), in the iCal feed as Title (members), and on the member portal’s Calendar. If a class is missing from all of them it is still a Draft, or has no session in the future.
A place came free but nobody on the waitlist was emailed. The queue moves on an hourly pass, so give it up to an hour — or open the class, press Waitlist, then Offer next place to move it now. If the button says there is no free place, the place is still held by a live offer to somebody else or by a checkout that has not lapsed yet.
Somebody says their claim link does not work. Open the class’s Waitlist. If their entry says Offer expired, the 48 hours ran out and the place went to the next person — the record is still there, so you can tell them exactly what happened. If it says Took the place, the link was already used and they are booked.
A student says they cancelled but have not been refunded. Open the class and press Bookings & refunds. If their line says Refund failed, the reason Square gave is next to it — press Retry refund. If it says No refund, they cancelled too close to the class for any tier to apply, and were told so before they confirmed. If it says Refunded, Square has sent it and the card issuer usually takes a few working days.
A student says they were only refunded half. Then they cancelled in the 50% tier — 5 or more days before the class, but fewer than 10. The exact amount and the tier it was based on are in the cancellation email they were sent, and were on the screen before they pressed the button. If you want different tiers, Settings → Classes — though that changes bookings taken from then on, not theirs.
I refunded somebody in Square by hand. Does the product know? Yes. The refund comes back through Square’s webhook, and the booking is marked refunded and cancelled automatically, freeing the place for the waitlist. You do not need to do anything here as well.
I cancelled a class and one refund failed. The class is still cancelled and every student was still emailed — one failed refund does not stop the others. The one that failed is in Bookings & refunds with Retry refund next to it.
A student on the waitlist wants to give up their place. Open the class’s Waitlist and press Remove. They are skipped next time the queue moves, and the record stays.
An instructor wants to propose a class. They can, from My Classes in the member portal. It arrives on your Suggestions tab — see Suggestions from instructors.
A suggestion says Declined and the member wants to know why. Open the Suggestions tab, filter to Declined: the reason you gave is on the row, and the member was shown the same reason in their portal and by email.
Related
- Your classes, as an instructor — the instructor’s side
- Studio Website — where classes appear publicly