When a customer cancels too late
Updated on 2026-09-02
A customer who cancels the day before costs you an hour your staff still gets paid for and that brings in nothing. HairConnect can charge for that hour — but never on its own, and never before it turns out the hour really did stay empty.
This feature is off by default. If you turn it on, put it in your cancellation terms as well.
Turning it on
Under Settings → Online booking, in the When a customer cancels too late panel:
| Switch | What it does |
|---|---|
| Allow charging for the treatment | opens the whole arrangement below |
| Block online booking until paid | a customer with an unpaid charge cannot book online again |
The second is independent of the first: you can charge without closing the door.
The deadline itself does not change. It sits in the same screen under Customers may cancel up to and counts in working days of your salon — if you are closed on Sunday and Monday, the deadline for a Tuesday appointment falls on Friday.
What the customer notices
Before the deadline: nothing changes. She cancels herself, free of charge, as always.
After the deadline: the button no longer disappears. She can still cancel, but has to explicitly tick that she accepts it may be charged. The amount is shown.
That looks looser than before, and it is stricter. A customer who cannot cancel simply does not show up — and then that hour is certainly empty and you only find out when she is not there. Now it is freed in your calendar immediately and visible to anyone booking online at that moment.
Right after cancelling she receives an email:
We will have to charge you € 86.00 for the treatment if nobody books the hour you cancelled, or if nobody from the waiting list can take your place. That payment request will be sent — depending on this — on the day of your appointment. If the hour gets filled, you will not hear from us again.
At that point no bill goes out.
What happens overnight
Every morning at half past five HairConnect checks every open case whose appointment has since come round:
- Was everything booked again — through the waiting list, the booking page, or by you at the desk — then the case lapses. There is no loss and the customer hears nothing further.
- Did anything stay empty, then the case lands on your worklist, together with how much stayed empty.
It looks at the hour of the same staff member. Your colleague next to her being fully booked does not make that hour good.
A half-filled gap
Counting happens per service, not per appointment. If a customer came for a cut and a colour and you found someone for the cut but not for the colour, the case does not lapse — you really did lose that colour hour — but the proposed amount is only that of the colour. The worklist then reads deels opgevuld, rest bleef leeg (partly filled, the rest stayed empty), with the lower amount in large type and the full treatment beneath it.
If you work with packages, nothing is split
A package is not a sum. In cut and colour the hair is washed once and styled once, which is why the package costs less than the two services apart. The prices shown in the calendar for the individual services of a package are a division of the package price — not rates. "The colour of that package" has no price of its own.
HairConnect therefore never splits a package:
- if everything is booked again, the case lapses as always;
- if anything stays empty, the proposal is the whole package price.
What you do see is that part of the time was recovered — on the worklist as pakket: tijd deels opgevangen (package: time partly recovered), and in the dialog as "Part of the time was booked again after all; decide yourself what to deduct." You then deduct what you find fair. A calculated part-amount would look more honest than it is.
The worklist
In the sidebar under Customers → Cancellations. If something needs deciding, that menu item carries an orange badge.
Only the owner and a manager see this screen: money goes to a customer here.
Four tabs: To decide (where you start), Pending, Outstanding and All.
| Column | What you see |
|---|---|
| Customer | name and email; the name links to the record |
| Appointment | the lost hour, and below it when she cancelled |
| Treatment | what she was booked for: the package name with its services underneath, or the separate services joined by + |
| Amount | what would be charged; if van € … appears underneath, that is the full treatment and part of the hour was booked again |
| Status | with the reason it is there underneath |
The treatment is locked in at the moment of cancelling and not recalculated. If you adjust your rates later, this customer still gets the amount that was on her appointment.
Whatever you only add at the register — an extra treatment, an extra dose of colour, a product from the shelf — does not count. That is never in the calendar beforehand, and someone who did not come did not receive it either.
Deciding
Three buttons per row.
Charge opens a window with one field: the amount. A proposal is already filled in — what stayed empty — with its origin explained underneath. You may change that amount, downwards as well: the counter does not know the day and you do. What you enter is what the customer sees and what is paid through the link; if it is lower than the treatment, the email says that part of the hour was taken after all.
HairConnect then creates the payment link through Mollie, emails the customer that link, and sets the case to Outstanding. In that order — if the link fails, nothing happens: no email, no status change, and the button stays put with the reason next to it.
If you want to charge nothing at all, use Waive. Entering zero is not possible: that would leave no trace that you made the choice deliberately.
Waive asks for a reason. Not because it is required, but because next time someone else may be standing in front of this customer and will want to know what was decided then. The customer does not see that reason.
Paid you tick yourself for a bank transfer or a payment at the desk. If the customer pays through the link, that is recognised automatically and you need do nothing.
No bill ever goes out without someone pressing the button here. That is not red tape but the point: there are reasons to be lenient that no rule knows — a death, a hospital, a customer who has come for twenty years.
The block
With Block online booking until paid on, a customer with an outstanding charge reads on your booking page that a payment is still open and that she can book again afterwards. She is not referred to the salon: she can solve this herself, and the email with the link is in her inbox.
As soon as she pays, the block lifts. Also when you set the case to Paid yourself.
Only a sent bill blocks. A case still pending or still to be decided holds nobody up — otherwise you punish someone for a decision you have not made yet.
What you need
For the payment link you need Mollie set up under Settings → Integrations. Without a payment integration the button says so, and nothing goes out.
Without Mollie the rest still works: the customer is warned, the case reaches your worklist, and you can waive it or mark it paid by hand.
If no email went out
If a customer has no email address, or does not want mail, that shows on the case: customer not warned. If you charge her anyway, the confirmation dialog warns that this bill arrives unannounced. The payment link stays with the case so you can pass it on yourself.