Its address
Every workspace has a booking page at:https://dash.dmly.io/book/<your workspace id>— the landing page, listing your bookable services grouped by category.https://dash.dmly.io/book/<your workspace id>/<service slug>— a single service, so a contact lands straight on that service’s times.
You can serve the page on your own domain instead (
book.yoursalon.com) — see
Custom domain. That’s a paid add-on: if your plan doesn’t
include it, you’ll see Custom domains aren’t included in your current plan. and every
link keeps using the dash.dmly.io address above. Links only switch to your domain once it
is verified and its SSL certificate is live, so a link you shared is never broken.What’s on the page
The landing page lists only services that are active and publicly visible, and only Services of type appointment or class. Add-ons never appear — they’re order extras, not something a contact books. If a service is missing from the page, it is almost always one of those two switches. See Services. The page shows a Booking page title, a Booking page description, your logo and your brand colour — all set under Settings → Branding. Leave the logo empty and it uses your business logo from Settings → Business details.What a contact does
1
Picks a service
From the landing page, or straight from a link to one service.
2
Picks a staff member — sometimes
If the service offers a choice, they pick a person. If you turned on Hide staff
selection under Settings → Appointment → Booking flow — it applies to every
appointment service — they don’t: Clients won’t choose a staff member; one is
assigned automatically.
3
Picks a time
Only genuinely open slots are offered. DMLY subtracts your staff’s booked time, buffers,
time off, blocked time and their connected calendar’s busy time — and applies your minimum
notice and booking horizon. See Staff and availability.
4
Fills in the form
A new visitor must give at least a first name and an email address. The rest of the fields
are up to you — configure them under Settings → Booking Fields. It’s one shared list
for appointments and classes; only Additional Notes is appointment-only.
5
Books
They land on a confirmation page and get a confirmation message on their channel.
When an unknown visitor books, DMLY creates a lightweight Contact from the name and email
they typed. That’s a real Contact in your CRM, but it has no WhatsApp identity attached yet —
so the confirmation and reminders go to whatever channel it does have. This is exactly why
sharing the link on WhatsApp is worth the extra second.
Times are shown in one of two ways
Under Settings → Appointment, Timezone mode is either Detect automatically or Fixed timezone. The public page has no browser timezone detection: Detect automatically uses the contact’s stored timezone when DMLY already knows them, and otherwise falls back to the service’s own timezone. A stranger opening a shared link therefore sees your clock in both modes. Pick Fixed timezone if you’re a single-location business and “3:00 PM” should always mean your 3 PM.If the service is paid
- Pay after the appointment — they book normally, the slot is confirmed straight away, and DMLY messages them a payment link.
- Pay before booking — the slot is held for 15 minutes while they pay, and only becomes a real booking once the payment clears. If the hold runs out, the slot goes back on sale.
After they book: the manage link
Every booking gets its own private page athttps://dash.dmly.io/booking/<booking id>. From
it, while the booking is still confirmed and still in the future, a contact can:
- Cancel — if you’re inside the Cancellation deadline (hours) set under Settings → Appointment → Booking policy.
- Reschedule — same, against the Reschedule deadline (hours) in that same panel. Both
are workspace-wide, not per-service. Set either to
0to allow it right up to the start time. - Add to calendar — links for the usual calendars, plus a downloadable calendar file.
Sharing it
1
Send it on WhatsApp
Copy the link and send it in the Inbox. One line does the job:
Here's my calendar — grab any slot that suits: <link>. Link to the service page, not
the landing page, when you already know what they want — one fewer decision.2
Let a Flow send it
A Book Meeting node in a Flow, with How to book set to
Send hosted booking link, sends the link for you with the contact already identified —
so they skip the form, and the booking lands on the right Contact. The flow then waits:
whatever you put after the booked path only fires once they actually book, not the moment
the link goes out. This is the best way to send it at scale.Leave How to book on its default and the node shows tappable times in the chat instead
of sending the link — the hint reads In-chat shows tappable times on
WhatsApp/Messenger/Instagram and automatically sends a booking link on SMS. A paid service
always uses the hosted page, whatever you pick. There’s also a separate Send Booking
Link node, which sends the attributed link but doesn’t wait for the booking.
3
Put it on your website and your profiles
It’s an ordinary public URL. Use it as your Instagram bio link, your Google Business
Profile booking link, or the button on your site. Set a Redirect URL under
Settings → Appointment → Branding and the confirmation page carries a ← Back to
website link back to you.
When something looks wrong
The page shows nothing / won't load at all
The page shows nothing / won't load at all
The page only fails outright when the workspace has no publicly visible, active services at
all. Publish one service and it comes back. If it loads but looks empty, you’re probably
looking at a filtered view — a category with nothing in it, for example.
A contact sees no available times
A contact sees no available times
Nothing is wrong with the page — the availability rules are eliminating every slot. The usual
causes: the staff member has no working hours set, no staff is attached to the service, your
minimum notice rules out today, or your booking horizon rules out the date they’re looking at.
Work through Staff and availability.
"Sorry, that time was just taken — please choose another."
"Sorry, that time was just taken — please choose another."
Two people picked the same slot seconds apart and the other one landed first. DMLY refuses
the second rather than double-booking your staff. The contact just picks another time — no
action needed from you.
Bookings arrive on the wrong Contact
Bookings arrive on the wrong Contact
A link without contact identification matches on the email typed in: an existing contact with
that exact email is reused, otherwise a fresh Contact is created. So a WhatsApp contact with
no email on file, or a client who types a different address, gets a duplicate. Send it from a
Flow’s Book Meeting node (in Send hosted booking link mode) or a Send Booking Link
node instead — both attribute the link to the contact.
Services
What appears on the page, and the booking rules behind each one.
Staff and availability
Working hours, time off and buffers — where the open slots come from.
Appointment payments
Pay before, pay after, and holds.
Custom domain
Serve the page on your own branded address.

