Every cancellation is money walking out your door. We text it back.
Someone cancels → you send one text → your waitlist is invited within seconds → the first YES wins the slot at full price → you get "Filled by Jane — 2pm." No app, no login, no phone tag. The only text you ever send is the first one — and if you connect your calendar, you don't even send that.
Try it right now: text DEMO to 0468 157 012 — you'll play both sides of a live fill on your own phone in about a minute. No signup, nothing installed.
Why this exists
Every appointment business bleeds the same way: a cancellation two hours out is an empty chair nobody can fill by phone. The waitlist exists — in a notebook, a spreadsheet, someone's memory — but working it means twenty calls for one maybe. So the chair sits empty, and $50–$600 walks out the door. Every day. Every chair.
FlashFillz turns that dead time into a market. The business sends one text. Every eligible waitlisted customer is invited within seconds, highest-priority first. The first YES wins the slot — raced fairly, confirmed instantly, reminded the day before. The booking and its dollar value are recorded the moment it happens, and every Monday the business gets one message: "Appointments recovered: 7. Revenue recovered: $1,950."
And once a slot is in the system, the recovery guards itself: the winner gets a reminder the day before so they actually show, and if they cancel, the slot re-opens and your waitlist is re-invited within seconds. The cancellation of the recovery recovers itself — the only text you ever send is the first one.
No software to learn, no app to install, no behavior to change — the entire product runs over the one interface every business and every customer already uses: a text message.
Do your own math — drag the sliders:
Walking out your door right now
$0 /month
Recovered with FlashFillz
$0 /month
Drag the fill rate down to your most skeptical guess — the math still works. That's not software pricing — that's the cheapest employee you'll ever hire, and it works nights, holidays, and while you're mid-client.
The recipe
One line, a few pieces. Only the first four are required.
FILL <date> <time> <staff name> [$value] [xSpots] [- what the appointment is]
Piece
Examples
Notes
FILL
FILL · fill · Fill
starts every slot message
date
today · tomorrow · 27/7 · 27 July
no year needed — we assume the next one coming
time
2pm · 2:30pm · 14:00
staff name
Sophie · Dr Chen · Sarah (hygienist)
whoever had the cancellation
$value
$60 · $249.99
optional but recommended — it powers your weekly revenue report
x spots
x3 · x10
group classes only: how many free spots
- description
- gel refill · - 2hr sitting
optional; everything after the dash is shown to customers
Built-in safety: duplicate slots are caught (reply FILL AGAIN to override) · messages sent 8pm–8am wait politely until morning · past dates are rejected · only your registered phone can post slots.
📅Calendar auto-fill — zero texts
Share your Google Calendar with FlashFillz (view-only, 30 seconds, revocable anytime) and you can stop sending even the FILL text. When an appointment disappears from your calendar, FlashFillz notices within minutes — and depending on the mode you choose, either hands you the FILL ready to send, or just fills it.
Alert mode — we spot it, you approve it:
FlashFillz: cancellation spotted on your calendar - Thu 24 Jul, 2:00 PM ("Jane - full set").
To fill it from your waitlist, text back: FILL 24/7 2:00pm Sophie Tran
Auto mode — we spot it, warn you first, then fill it. You always get a 10-minute veto:
FlashFillz: cancellation spotted on your calendar - Thu 24 Jul, 2:00 PM ("Full set $180").
We'll start filling it from your waitlist in 10 minutes. Reply CALLOFF to stop us - or do nothing and we've got it.
Ten minutes later (unless you said no): "We're filling it: Sophie Tran ($180). Your waitlist is being invited now." No customer ever hears anything before your window closes.
Exact pricing: put the $ in the event title ("Full set $180") and the recovered booking is recorded at that exact value — no $ and your standard value is used
Mistake-proof: deleted the wrong event? Nothing fires for 10 minutes — restore it and FlashFillz quietly stands down. Rescheduled events don't trigger either
Too-close guard: inside 2 hours of the appointment it asks you instead of acting — you know whether your customers can make the dash, a robot doesn't
Works with your booking system: Square, Timely, Acuity, Setmore and most others sync to Google Calendar with one switch. Paper diary? The FILL text works exactly as before
💈Barbershop
Most gaps fit anyone — plain FILL is usually all you need.
FILL today 2pm Marco $45
FILL tomorrow 11am Deno $65 - skin fade + beard
FILL 27/7 4:30pm Marco $30 - kids cut
Add the dash only when the gap is short and only quick services fit.
💇Hair salon
A colour gap can't take a dry cut — name the appointment type so the right customers reply.
FILL tomorrow 9am Chantelle $180 - colour appointment
FILL today 3pm Rhea $60 - cut & blow dry
FILL 30/7 10am Chantelle $250 - full balayage, 3hrs
FILL tomorrow 5pm anyone $50 - quick trim before close
💅Nail salon
Fast turnover, standard menu — service names help customers say yes faster.
FILL today 1pm Vy $60 - gel refill
FILL tomorrow 10:30am Tina $95 - full set
FILL today 4pm Vy $35
🖋️Tattoo studio
Describe the gap — how long it is and who can actually use it. Custom work needs prep; flash doesn't.
FILL tomorrow 2pm Sophie $200 - 2hr sitting, flash or small pieces
FILL 27/7 10am Zoe $600 - full day sitting, existing clients only
FILL today 4pm Mike $50 - consults welcome
FILL tomorrow 11am Sophie $150 - script & fine line, walk-in ready
Deposits: give FlashFillz your payment link once (Stripe, Square, PayPal, PayID — whatever you already use) and every winner's confirmation carries "Lock it in — pay your $50 deposit now" with your link. The money goes straight to you. Your booking terms ride on every confirmation too.
🦷Dentist
Appointment type is essential — a hygiene gap can't take a root canal. And patients are never texted overnight: enter tonight's cancellations at 9pm and they hear at 8am.
FILL tomorrow 9:15am Dr Chen $190 - check-up & clean
FILL today 2pm Sarah (hygienist) $140 - scale & clean
FILL 28/7 11am Dr Chen $95 - 30min review appointment
Practitioner loyalty: patients marked with a preferred provider only hear about that provider's gaps. Reminders carry your booking terms ("bring your Medicare card") automatically.
🩺Medical centre & allied health
Same pattern as dental: type + duration. Invites reveal nothing sensitive — just a provider, a time, and a generic appointment type.
FILL tomorrow 8:30am Dr Patel $80 - standard consult
FILL today 1pm Priya $110 - physio initial assessment
FILL 29/7 3pm Dr Patel $150 - long consult, 40min
🏋️Gym & studio
Two products, two patterns.
1:1 sessions — like any appointment:
FILL tomorrow 6am Jess $90 - PT session
FILL today 5pm Marcus $70 - reformer 1:1
Group classes — add x3 for the free spots. The first 3 YESes each claim one; inviting continues until the class fills, and every attendee gets their own confirmation and reminder:
FILL tomorrow 6am Jess x3 $25 - spin class
FILL 22/7 7am Amara x5 $20 - yoga flow
FILL today 6:30pm Marcus x2 $30 - boxing circuit
Post the 2–4 classes that genuinely hurt when empty, not the whole timetable — members are protected by a daily invitation limit either way.
📈Grow the waitlist automatically
A bigger waitlist fills cancellations faster — so FlashFillz lets customers add themselves. Put a code word on a counter card, receipt, or Instagram bio, and anyone can join by text. Because they texted in, they've opted in — the cleanest consent there is.
JOIN INK Jane
You're in, Jane! Ink Society will text you when last-minute appointments open up. Reply STOP anytime to opt out.
Your card reads: "Want first dibs on last-minute openings? Text JOIN INK + your name to your FlashFillz number." Existing customers can be imported too — they start silent and are asked once, so nobody is ever messaged without saying yes.
Customers can say what they're after — anything after a dash is remembered, and when a matching slot opens they hear about it first:
JOIN INK Jane - sleeve, large piece
You're in, Jane! Ink Society will text you when last-minute appointments open up. We'll let you know first about: sleeve, large piece. Reply STOP anytime to opt out.
Interests prioritise, never exclude: when you post FILL 27/7 10am Zoe $600 - full day sitting, the customers who asked for big work are invited first — but if they don't claim it, the waves continue through your whole list. Filling the chair always wins.
🧯Fixing mistakes
Three more commands handle real life: TAKEN (you filled the slot yourself — walk-in or phone call), CALLOFF (you need to cancel a booking — staff sick), and UNDO (posted by mistake in the last 30 minutes).
They all work the same safe way: the command alone never changes anything — FlashFillz first replies with a numbered list, and your numbered reply is the confirmation. Here's a real cancellation, start to finish:
CALLOFF
Which booking do you want to cancel? CALLOFF 1 - Today 3:00 PM, Sophie (Sarah M.) CALLOFF 2 - Tomorrow 9:00 AM, Zoe (Carla P.) CALLOFF 3 - 27/7 2:00 PM, Sophie (Joey T.)
CALLOFF 2
Cancelled: tomorrow at 9:00 AM with Zoe. Carla P. has been notified with an apology.
Carla's phone, that same second: "We're sorry — your appointment with Zoe tomorrow at 9:00 AM has been cancelled. We'll text you when new appointments open up." The customer always hears it from you first, automatically.
TAKEN — a walk-in just took the slot you posted:
TAKEN
Which slot did you fill yourself? TAKEN 1 - Today 5:30 PM, Sophie Tran
TAKEN 1
Marked as filled: Today 5:30 PM, Sophie Tran. 2 pending invitation(s) closed - anyone replying now will see it as no longer available.
UNDO — you posted a slot by mistake (last 30 minutes):
UNDO
Which slot do you want to remove? UNDO 1 - 27/7 5:30 PM, Sophie Tran
UNDO 1
Removed: 27/7 5:30 PM, Sophie Tran. 2 pending invitation(s) closed.
The guardrails hold everywhere: a pocket-dialed command can't cancel anything, and a slot someone already booked refuses TAKEN and UNDO and points you to CALLOFF — nobody holding a confirmed booking is ever silently dropped.
👥Managing your waitlist
See who is on it, find someone, and take a repeat no-show off — all by text, no login.
Ben Ellis has been removed from your waitlist and won't receive any more alerts. Nothing was deleted - reply LIST OFF then RESTORE to put them back.
Nobody is ever deleted — they are set inactive, so consent records and booking history stay intact and a mistake is one text away from being undone. LIST sarah finds someone by name or phone number.
Every feature
The complete system — everything FlashFillz does today, in production, over plain SMS.
Filling the slot
One-text posting: FILL with plain-English dates, times, staff, price and service
Priority waves: invites go out in batches, loyal customers first, and stop the moment it fills
Interest targeting: customers who asked for that service are invited first
Fair racing: first valid YES wins, safe even with simultaneous replies
Reply codes: "YES 2" picks between multiple live offers
Group classes: one slot, many spots, filled one-by-one
Auto-expiry: offers lapse after 12 hours
Quiet hours: nothing sent overnight; it waits till morning
Duplicate guard: the same slot can't be posted twice by accident
For the customer
Personalised invites: service, date, time and business named
Instant confirmation: with your booking terms and deposit note
Deposit link: your own payment link in the winner's confirmation — money straight to you
Day-before reminders: fewer no-shows
Self-cancel: CANCEL BOOKING frees the slot and re-offers it automatically
One-letter replies: C to confirm, R to reschedule, X if they cannot make it
No dead ends: questions get pointed to the business's number
STOP / START: full keyword handling, honoured instantly
COMMANDS: every command they can use, any time — HELP is answered by the carrier
For the business
Fill alerts: "filled by Jane — no action needed"
TAKEN / CALLOFF / UNDO: manage slots by text, menu-confirmed
LIST: see exactly who is on your waitlist, search by name or number
REMOVE / RESTORE: take a repeat no-show off the list, and put them back if you got the wrong one
Auto-apologies: CALLOFF texts the affected customer for you
Attendee protection: a slot someone booked can never be closed silently
Overnight queueing: post a cancellation at 9pm, the campaign fires at 8am
Weekly revenue report: "recovered $1,950 this week"
Booking instructions: deposits, what to bring, on every confirmation
Provider loyalty: patients only hear about their practitioner's gaps
Live dashboard: revenue, fill rate and bookings at a glance
Protecting the booking
Day-before confirmation: the customer confirms, reschedules or releases with one letter
C / R / X: confirm, reschedule, or "can't make it" — no phone call needed
Released slots refill themselves: a would-be no-show becomes a cancellation the engine recovers
Deposit carried across: the confirmation asks for the deposit again, so it replaces the reminder rather than doubling up
One message: never two texts about the same appointment
Missed-call recovery
Nobody rings out: unanswered calls forward to FlashFillz
Texted back in seconds: with your booking link, before they ring the next place
You're told: "missed a call from 0412… — we've already texted them"
One text per caller: somebody ringing three times is anxious, not three leads
Your own line stays yours: forwarding is on no-answer only
Calendar auto-pilot
Cancellation detection: share your Google Calendar view-only; deletions spotted within minutes
Alert mode: the FILL command arrives pre-written — send it back to fire
Auto mode: slot created and waitlist invited with zero taps
Event pricing: a $ in the event title books at that exact value
Undo-safe: a grace window ignores deleted-by-mistake and rescheduled events
Too-close guard: near the appointment it asks you instead of acting
Any booking system: whatever syncs to Google Calendar is covered
Growth
JOIN self-signup: customers add themselves from a card or bio
Interest capture: "JOIN INK Jane - gel nails" remembers what they want
Review engine: the day after every recovered appointment, the happy customer gets your Google review link
One-click import: bring an existing customer list in cleanly
Consent invites: imported customers asked once before any marketing
Priority scoring: most valuable customers invited first
Money & reporting
Auto revenue tracking: every booking recorded with its value the instant it happens
Campaign analytics: cost, bookings and ROI per cancellation
Usage metering: per-business message counts for billing
Delivery tracking: knows what was delivered vs failed
Reliability & safety
Forgery-proof: every inbound message cryptographically verified
Locked data: customer info never publicly reachable
Never double-sends: retries and repeats are de-duplicated
Self-cleaning calendar: unfilled slots expire themselves when their date passes
No new habits: the business already knows how to send a text
Subscription-aware: clean start and stop, no manual billing chase
1 textto fill a cancellation
0 textswith your calendar connected
<60 secfrom post to first invite
7industries supported
$0hardware, apps or installs
Try it free for two weeks — on your real cancellations
Not a demo (though you can have one of those right now — text DEMO to 0468 157 012). We set everything up for you — load your waitlist, register your number, hand you the JOIN card — and you run it live, free, for two weeks. Every Monday you get one text: "Appointments recovered: 5. Revenue recovered: $640." And on day 13, your own totals with the decision in your hands. Your number, from your calendar.
The deal: if after two weeks that number isn't worth more than the subscription, don't pay us — we shake hands and part ways. If it is, pick a plan below. You're not risking money. You're risking two weeks of watching money come back.
Setup takes ~15 minutes and we do all of it. All we need is your customer list export and your mobile number.
Plans
Simple monthly tiers, sized by how busy you are. Every plan includes the full engine: campaigns, confirmations, reminders, weekly revenue reports, and the JOIN card.
⚡ Spark — $49.99/mo
For: solo operators and small shops trying it out
~15 slots a month
1–2 staff members
⚡ Surge — $99.99/mo
For: busy shops where cancellations sting weekly
~50 slots a month
Up to 5 staff members
Live results dashboard
⚡ Storm — $199.99/mo
For: multi-chair studios, clinics and gyms
Unlimited slots (fair use)
Unlimited staff, group classes
Priority support
⚡ Strike — Enterprise
For: chains, franchises and multi-location groups
Every location runs the full engine
Head office gets a weekly report ranking every location by revenue recovered
What's happening behind every message — the rules the system enforces on itself:
Consent first. Customers only receive invitations after opting in — imported lists start silent and are asked once; texting JOIN from a counter card is instant opt-in. STOP always works, on every message, immediately.
Fair racing. One winner per spot, decided by reply order, immune to simultaneous replies. Group classes fill spot-by-spot the same way.
Respectful volume. Invitations go out in priority-ordered waves — loyal customers first — and stop the instant a slot fills. No customer receives more than a few invitations a day, and nobody is ever texted overnight.
Honest numbers. Every booking is recorded with its dollar value the moment it happens; cancellations subtract themselves. The Monday report a business receives is computed from those records, not estimated.
Failure has a plan. Business-side cancellations apologize to every affected customer before anything else happens. Undeliverable apologies alert a human. Mistyped commands get help, not silence.
The whole loop is auditable. Every message sent, every claim, every cancellation and every dollar is logged — per business, per customer, per campaign.