BookodileBookodile
Browse all articles⌄

Settings reference

Every setting on a service

The complete reference for a service — all four pricing models, per-person prices and durations, buffers, combos, add-ons, resources and archiving. Every field, what it changes, and what happens when it is left empty.

Last verified View as Markdown

A service is the thing a customer books, and it is the most configurable object in Bookodile. This page lists every setting on one, what each changes, and what happens when it is left alone. Where a setting has a name in the data, it is given in code, so an assistant answering a question about your account can be precise.

Services live at Services in the dashboard. The settings below are on the add and edit screens; ordering and archiving are on the list itself.

The two price settings, and why there are two

The single most common confusion on this page. There are two independent settings and they answer different questions:

SettingQuestion it answers
Pricing model (pricing_model)How the price is worked out when someone books
Price type (price_type)How the price is displayed before they book

So a service can advertise "from €25" while the real charge is resolved from whichever person the customer picked. That is deliberate, and it means changing what is displayed does not change what is charged.

The four pricing models

Fixed (pricing_model: fixed). One price for everyone, held in price.

Per employee (per_employee). Each assigned person has their own price for this service. The customer sees each person's price while choosing.

Per category (per_category). The price is stored once per category of team member rather than per person, so a new hire is priced the moment you put them in a category. Two prices to maintain instead of eight.

Hourly (hourly). A rate per hour in hourly_rate, with min_hours and max_hours bounding what the customer may choose. The customer picks the length and the price is the rate times the hours. Used for rooms, studios, courts and equipment rather than treatments.

Worked example — the same setting in three trades. A barbershop puts its master barber at €35 and its junior at €20 for the same cut: per employee. A hair salon with eight stylists in two grades sets Senior €45 and Junior €30 once and never touches it again when someone joins: per category. A photo studio renting its space at €50 an hour, minimum two, maximum eight: hourly.

What each price type shows, and what it charges

price_type changes the label on your booking page. Three of the five leave the amount alone. The other two say there is nothing to charge, and they are honoured wherever they appear.

Price typeThe customer seesThe booking is recorded at
Fixed€25price
From€25+price — the floor
Range€30 – €60price — the low end. price_max is never charged
Free"Free"Zero, on every pricing model
On request"On request"Zero on a fixed price. The person's own rate on per-person or per-category pricing

Three of these are worth pausing on.

Range shows a span and records the bottom of it. The span is a quote, not a calculation: whoever performs the service adjusts the price afterwards if it lands higher. If you never adjust it, you are billing the floor.

On request on a fixed price records nothing to pay. The booking arrives at zero and you set the amount once you have seen the job. Moving a €25 service to "On request" does not carry the €25 over: the customer was shown no figure, so they are not billed one. A groomer quoting per animal and a garage quoting per repair both work this way — the slot is booked, the price is agreed in person.

On per-person or per-category pricing, "On request" hides the figure from the service list only. Each person's own rate is still real and still charged, and the total on the confirmation step shows that number before the customer commits. Use it where a rate is not what you want a visitor to read first: a clinic listing consultants and a studio listing senior stylists both price by who does the work without advertising the spread.

Free genuinely charges nothing, and it beats the pricing model. A service marked Free that also carries per-person rates is free for everyone on it, and free by the hour costs nothing however many hours are booked. The option appears on fixed pricing; a service that reaches another model still marked Free — by changing how it is priced afterwards — stays free. Saving a service as Free asks you to confirm, because it is easy to reach by accident.

Duration, and how it differs from price

Duration (duration) is how long the service takes, in minutes, from 5 to 480.

How long does this service take (duration_mode) has two settings, exactly like pricing:

  • Same for everyone — one duration for the whole team.
  • Per employee — each person can carry their own duration for this service.

A missing per-person duration and a missing per-person price behave oppositely, and this is the most useful thing on the page:

Per-person price missingPer-person duration missing
On the settings screenBlocks savingSaves fine
On your booking pageThat person disappears from the pickerThat person is offered, timed by the service's own duration
MeaningBroken setup"Same as everyone"

That asymmetry is on purpose. A missing price has no correct answer, so the product refuses to guess and hides the person rather than letting a customer reach a dead end. A missing duration has an obvious correct answer — the service's own — so it is simply used.

The practical consequence is that per-person duration is additive: switch the mode on, type a longer time next to the one person who needs it, and everybody else is timed exactly as they were before. Nothing to backfill.

Worked example — why price and duration are separate axes. In a barbershop, a junior barber charges less than the master and takes longer for the same cut: both settings change. In a physiotherapy clinic every practitioner charges the identical published fee, but the newest one is given 60 minutes for an assessment the senior does in 45: duration changes, price does not. Tying the two together would force one of these shops to lie.

Per-employee duration does not apply to combos, where each stage carries its own timing, or to hourly services, where the customer chooses the length.

Buffer time

Buffer time (buffer_time), 0 to 120 minutes, is real time that blocks your calendar after the service ends — for cleaning down, resetting a room or taking a breath. The customer never sees it and is never charged for it.

A 30-minute service ending at 10:30 with a 15-minute buffer means the same person cannot start again until 10:45. If the service used a room, the room is held for the buffer too.

The buffer is allowed to run past your closing time. A 30-minute service at a shop closing at 17:00 can start at 16:30; the buffer simply extends past close and blocks nothing, because there is nothing after it. Only the service itself must fit inside opening hours.

Who performs it

The Who does this service card is the list of people who can be booked for it. Three things have to be true before a customer is offered someone: the person is active, their role is listed as a service provider, and they are ticked here.

Assignment is per service. There is no "assign to everything" that keeps applying as you add services.

If nobody is ticked, nobody can be booked for it, and the service stays off your booking page until someone is. That includes a one-person business: a service missing from your booking page is often one you are not ticked on.

When a customer does not choose a person, Bookodile gives the booking to the first eligible one who is free, in the order below — never by who finishes earliest, and never spread evenly across the team. Ordering by finish time would systematically starve whoever is slowest, which is usually the newest member of the team.

Who customers see first

Under the people ticked, Who customers see first shows the order your booking page lists them in. It is also the order "Anyone" goes through: the first person in it who is free at that time gets the booking.

By default a service follows your team order — the order you drag in Settings → Members (Booking settings shows the same list) — or, when its category has a custom order of its own, that one. The panel shows which, and the list can't be dragged while it follows one of them.

Custom order for this service (team_order) turns that into an order of its own: the list becomes draggable, marked Custom order, and only this service uses it. Turning the switch off goes back to the category's or the team order when you save. It is off for every service until someone turns it on.

  • Someone ticked later, or hired later, comes last until you move them.
  • Someone who stops doing the service is skipped, and keeps their place: tick them again and they are back where they were. Someone switched off keeps their place the same way.
  • The order never offers anyone who can't be booked for the service — no price for them on a per-person or per-category price, or no room, chair or machine open to them.
  • An add-on offered while booking uses its own order, not the main service's person: a hair wash after a haircut can go to a junior even when the haircut was with the senior.
  • A combo has no order: each stage already names its person.
  • With one person doing the service there is nothing to order, and the panel says so.

Why it exists: one order for the whole team can't be right for everything. A barbershop lists its master first for haircuts — customers pick by price — but wants a cheap hair wash to go to a junior. A gym puts its senior coach first for personal training and its newest coaches first for the free intro session.

Rooms, chairs and equipment

The Resources card links a service to the things it needs — a room, a chair, a machine. The card only appears once you have created at least one resource.

A service can also inherit resources from its category, shown as read-only chips. The pool a booking actually uses is the union of both.

On a new service the resources most of your existing services already need are ticked for you, and the card says why. Untick them for the one service that does not need them — an online consultation, a visit at the customer's place.

Underneath sits Who can be booked, and where: one line per person who performs the service, showing which resource each of them would be given and which they fall back on, and how many bookings of the service can run at the same time. It is the two cards above it read together, and it is the screen that tells you a team member has been shut out — if every resource the service needs is kept for other people, that person is named in amber and is not offered for it. Who a resource is kept for is set on the resource: who can be booked here, and sharing rooms, chairs and equipment walks through the shapes it is for.

No employee needed (skip_employee) removes the "who will serve you?" step entirely, so availability comes from the resource alone. That is how a studio rents a room, or a venue rents a court, with nobody attending.

Worked example. A nail studio has six technicians and four manicure stations: the stations are resources, and the fifth simultaneous booking is refused however many staff are free. A yoga studio rents its second room by the hour with nobody teaching: that service has "no employee needed" ticked and a room attached.

And when the equipment is not interchangeable. A barbershop links its haircut to two chairs, one of them kept for the master barber. The card then reads: the master into his own chair, each junior into the shared one, and two haircuts at a time. A clinic where one practitioner owns the back room reads the same way. Add a team member with nowhere to sit and they appear in amber, which is the only place that state is visible before a customer notices it.

Detail: every setting on a resource.

Categories

A category groups services on your booking page and sets an add-on default for everything inside it. service_category_id is the link; a service with no category renders in an unlabelled group at the top of your page.

A category can set who customers see first for all its services. On the category's page, Who customers see first shows your team order, read-only, until Custom order for this service category (team_order on the category) is turned on. Then every service in the category without a custom order of its own lists its people, and gives "Anyone" bookings, in that order. A service with its own custom order keeps it, and the card names those services. A service moved to another category follows the new category's order, unless it has its own. Combos don't count: their stages have fixed people.

Archiving a category archives the services inside it (archived_with_category records which ones went that way, so restoring the category brings back exactly those and not any service you had archived individually beforehand).

Restoring a single service out of an archived category brings it back on its own. It is bookable again and renders in the unlabelled group at the top of your booking page, and of your services list, until you restore the category — then it rejoins it. Only a service's own Active switch decides whether it can be booked; archiving a category archives the services inside it and hides the heading, it is not a second switch. A service you restore by hand is no longer counted as archived with its category, so archiving it again on its own keeps it archived through a later category restore.

Combos

Combo (is_combo) chains several stages into one booking. Each stage has its own name, its own length, and optionally its own team member and its own room — so a colour-and-cut can be two people back to back, and each person is occupied only for their own stage.

Three things a combo forces, because they cannot mean anything else:

  • The price becomes fixed — a combo cannot be priced per person.
  • The total duration is the sum of the stages, overwriting whatever was typed.
  • Per-employee duration is switched off; the stages carry the timing.

Worked example. A hair salon books colour with the colourist, then a 20-minute development with nobody, then a cut and finish with a stylist. The colourist is free during the development and can start someone else; the stylist is only occupied for the last stage.

Add-ons offered while booking

Add-ons are extra services offered during the booking flow, either listed directly on a service or inherited from a category.

Maximum add-on services per booking (max_upsells) caps how many a customer may attach. A service with no limit of its own falls back to its category's default; with neither set, and add-ons available, the booking page offers up to three. upsell_group_order records the order the add-on groups appear in when they come from several categories.

Add-ons are scheduled after the service they hang off. Anything that naturally happens first cannot be an add-on, however much you would like to sell it that way. The pattern that works is a base service that deliberately leaves something out, sold back at the end: a cut without a wash, with the wash and the wash-plus-massage as the add-ons.

An hourly service can never offer add-ons.

A service offered only as an add-on

Only as an add-on (addon_only, under Extras & Settings, off unless you switch it on) takes a service out of your booking page's list of services, while customers can still add it on the Extras step of every service that offers it, whether that service lists it itself or gets it from its category. It is still a real service: its price, its length, who does it and its bookings don't change, and your team can still book it on its own in the calendar.

What changes when it is on:

  • Your booking page and the embedded booking widget don't list it. A link that names it, like a Book button on an old website or a rebooking email, opens the list of services instead.
  • A promotion on it doesn't put it in the promotion's block at the top of the list. Its discount still shows on the Extras step.
  • Your website lists it with its price, but without a Book button and without a page of its own.
  • The service's own page lists every service that offers it, with a link to each.

It reaches customers only through the services that offer it. When none does — nothing lists it, or every service that did is archived or can't be booked — no customer can book it online. Its page says so, the Services list marks it Not offered, and archiving or switching off the last service that offered it tells you before you confirm. Saving a service that stops offering it warns you the same way.

A combination of services or a service priced by the hour can't be an add-on, so it can't be add-on only either.

This is different from archiving. Archiving a service takes it off your booking page completely, add-ons included. Add-on only keeps it on sale, but only as an extra.

Worked example. A barbershop sells a hair wash only with a cut: the wash leaves the list, and every haircut offers it on the Extras step, while the receptionist can still book a walk-in wash on its own. A nail studio does the same with nail art, offered only with a manicure.

A photo of the service

Photo (photo_url), on the service's screen under the description, is one picture of the service. It is cropped to a square as you add it. Empty, the service has no photo, and nothing else changes.

  • On your booking page it sits beside the service's name on the first step. A tap on the photo opens it larger under the service, without choosing it; a tap on the rest of the card chooses the service. Once any service on the list has a photo, a service without one shows its colour and first letter in the same place, so the names line up. Add-ons on the Extras step show theirs too, at the same size, without opening larger.
  • On your website it is the service's cover — the photo leading its card in the Services section's Cards layout — when the website has no photo of that service of its own. A photo just for the website wins over it; the Change image button on the cover in the website editor's preview offers both, and switches back. See Your website.
  • Changes show straight away: on the booking page, and on a published website without pressing Publish. A photo just for the website waits for Publish like the rest of the website.
  • Who can change it: anyone whose role can manage services. From the website editor too — someone who can edit the website but not services can add a photo just for the website, not change the service's own.

Worked example — where a photo earns its place. A nail studio puts a photo of each style on its service — French, ombré, chrome — so a customer picks the look rather than a name, and the same photos lead the cards on its website. A massage practice leaves them off: one more picture of a treatment table per service tells nobody anything, and the list stays text.

The rest of the fields

Name (name) and Description (description). The description shows as two lines under the service name on your booking page and is cut off after that, with no way for the customer to read the rest — keep it short.

Translations (translations) are the service's name and description in your business's other languages (Other languages your customers read — the same list as your website's). Bookodile writes them within a few minutes of a language being added, and again whenever the name or description changes — a changed original drops its old translations, which are then written afresh. Under the name and description, one line says which languages they are translated into, and See translations shows them to correct by hand, saved with the service; the website editor's See and edit the texts edits the same ones. A correction stays until the original changes. Your booking page shows the name and description in the language the customer reads it in, and the emails about a booking use the translated name; a stage of a combined service has its name translated the same way. With no other languages, there are none, and everything shows the name and description as you typed them.

Colour (color) is the block colour on your calendar. On the booking page it shows only where a photo would be: once any service has a photo, a service without one shows its colour and first letter in its place.

Active (is_active) is the archive switch. An archived service disappears from your booking page and keeps every booking it ever had. It disappears from the add-ons too: a service that offered it as an add-on no longer does. To keep a service as an extra but off the list, use Only as an add-on instead. Staff can no longer choose it for a new booking either, but opening one of its existing bookings shows it, marked archived, and that booking saves with its service and length unchanged. Restore the service to offer it again.

Requires online payment (requires_payment), and the deposit fields (deposit_type, deposit_amount), exist in the data but are not available: Bookodile does not process payments, no screen writes them, and nothing acts on them. See Money.

Worked examples

A barbershop, four barbers, three chairs. Haircut is priced per employee — master €35, senior €28, two juniors €20 — and timed per employee, with the juniors at 45 minutes against the master's 30. Buffer 5 minutes. The three chairs are resources, so the fourth simultaneous booking is refused even though four barbers are on shift. Beard trim is a €12 fixed-price add-on on the haircut, so it is offered after it and extends the appointment.

A hair salon, eight stylists, two grades. Every service is priced per category: Senior and Junior, set once. Colour is a combo — colourist, then a 25-minute development stage with nobody assigned, then cut and finish — so the colourist takes another client during the development. Blow-dry is an add-on with a 10% upsell discount.

A nail studio, six technicians, four stations. Services are fixed-price because the price does not vary by person. The four stations are resources with capacity one each, which is also what the bill is based on: four booking spots, not six technicians. Gel removal is an add-on capped at two per booking.

A physiotherapy practice, three rooms. Assessment is 60 minutes, follow-up 30, both fixed-price. Duration is per employee so the newest practitioner gets 75 minutes for an assessment. Each service needs a treatment room, so three concurrent appointments is the ceiling regardless of who is working.

Limits

  • A service uses one pricing model at a time. There is no "per employee, except on Tuesdays".
  • Price and duration modes are set separately. Being priced per employee does not make a service timed per employee.
  • There is no per-service opening window. A service cannot be restricted to certain days or times of its own. To offer something only on Tuesday evenings, attach it to a resource whose working hours are just those windows.
  • price_max is display only and is never the amount recorded.
  • Deposits and required payment are not available, whatever the settings screen's data suggests.
  • Add-ons come after the service, never before it.
  • "Anyone" goes to the first free person in the order, never to whoever has the fewest bookings that day. There is no setting that spreads bookings evenly across the team.
  • One photo per service. More photos of a service belong on your website, in a gallery category linked to it; the booking page shows only the one.
  • A service offered only as an add-on needs a service that offers it. Without one, no customer can book it online. Add-on only is about your booking page: your team still books it on its own.
  • An hourly service cannot have add-ons, and cannot use per-employee price or duration.
  • Archiving is not deleting. Bookings keep their service, and the history stays intact.
  • Who can be booked where is not set here. The service page shows the outcome; the setting lives on each resource.
  • A person shut out of a service's resources is not offered for it, however they are ticked on "Who does this service". They stay bookable for everything that needs no resource.
  • Bookodile does not take the money. Everything here decides what is quoted and recorded; collecting payment is between you and your customer.
NextEvery setting on a resource