Service form: field by field
Updated on Wednesday 09 September 2026
Exhaustive reference for every field in the service creation/edit form.
Reference for every field in Services → New or Services → Edit (/admin/<slug>/services/new or /admin/<slug>/services/:id/edit).
Identity
| Field | Type | Required | Description |
|---|---|---|---|
| Photo | PNG/JPG/WEBP/GIF upload, up to 8 MB (or the Pexels photo search) | No | Square image (served cropped to 200x200). Appears in the service list on your public profile. On the booking page, services are listed without photos. |
| Name | Multilingual text | Yes | Clear and recognizable. Example: “Women’s haircut”. Visible on the public page. |
| Short description | Multilingual textarea (3 lines) | No | Appears under the name, both on the profile and on the booking page. |
| Long description | Multilingual textarea (6 lines) | No | On the profile it sits behind a “More info” button that expands it. On the booking page it isn’t shown. |
All three text fields accept one version per language (es / pt / en). Languages without their own version fall back to the one you wrote it in.
Duration and price
| Field | Type | Required | Description |
|---|---|---|---|
| Duration | Number (minimum 5, step 5) | Yes | Minutes the service lasts. Default: 30. The step of 5 is enforced by the browser; the server only requires it to be greater than 0. |
| Price | Number | No | In the business currency. If the currency has no cents (PYG), no decimals are shown. |
| Buffer before | Number (min, step 5) | No | Prep time before the appointment. Blocks the slot but isn’t shown to the customer. |
| Buffer after | Number (min, step 5) | No | Cleanup/wrap-up time after the appointment. Blocks the slot but isn’t shown to the customer. |
Buffer example
- Service: Gel manicure, duration 60 min, buffer before 5 min, buffer after 10 min.
- On the calendar: the appointment takes up 75 minutes (60 + 5 + 10).
- The customer books 10:00 and sees “Your appointment is from 10:00 to 11:00”.
- The full block runs 10:00 to 11:15: that professional is busy until then.
- The next slot offered isn’t necessarily 11:15: times are offered on the business’s slot interval, so the first one falling at or after 11:15 is what shows — 11:30 with the default 30-minute interval, 11:15 with a 15-minute one.
Categorization
| Field | Type | Required | Description |
|---|---|---|---|
| Category | Selector | No | A business category (e.g., “Haircuts”, “Coloring”). You create them in Categories. They group the public list. |
Availability
Locations
Toggle:
| Mode | Behavior |
|---|---|
| All locations (default) | The service is offered at all of the business’s locations. |
| Specific locations | You check which ones. The service appears only at the checked locations. |
Professionals
Toggle:
| Mode | Behavior |
|---|---|
| All professionals (default) | Any professional can handle this service. |
| Specific professionals | The team appears as chips with photos. You tap the ones who can handle this service. |
Per-professional duration and price
What you do today to get the same effect is create one service per variant and assign each to its professional:
| You want | You create |
|---|---|
| “Coloring with Sofía $250, with Lara $180” | Two services (“Coloring · Sofía” and “Coloring · Lara”), each with its own price and with Specific professionals pointing at a single person. |
| “A cut with the senior barber takes 45 min, with the junior 30” | Two services with different durations, each assigned to its professional. |
The cost is that the customer sees two entries in the list instead of one. The upside is that they see the real price before choosing.
Commission can be fine-tuned per professional and per service — that lives in Commissions, not in this form.
The step-by-step for this pattern is in Services per professional with different prices.
Flags
| Field | Type | Default | Description |
|---|---|---|---|
| Online bookings | Checkbox | ✅ | If on, the service appears on the public link and can be booked. If off, you create it manually only from the calendar. |
| Active | Checkbox | ✅ | If off, the service appears nowhere (neither online nor internally). Useful for “pausing” without deleting. |
This service’s deposit
This section is always visible, not only when the business is in “Deposit required” mode. It’s a single selector with four options:
| Option | What it does |
|---|---|
| Use the business policy (default) | The service decides nothing; whatever is set in Settings → Online payments applies. |
| Percentage | This service asks for that % of its share of the total. Pre-filled with 30 if you’ve never set one. |
| Fixed amount | This service asks for that amount, capped at the line price. |
| No deposit | This service asks for no deposit even when the business does. It’s the option for leaving one service out of the general policy. |
Form buttons
| Button | Action |
|---|---|
| Save / Create service | Persists changes and returns to the list. |
That’s the only button. There is no “Duplicate”, no “Cancel”, and no “Delete” on this form.
- To duplicate: it doesn’t exist. Create the new service by hand; there aren’t many fields.
- To cancel: use the browser’s back button or the side menu; nothing is saved until you press Save.
- To take a service out of circulation: uncheck Active and save. There is no real deletion of services in the dashboard — deactivating is the equivalent operation, and it also preserves the history of bookings that already used it.
Permissions
| Role | Access |
|---|---|
| Owner | Create and edit. |
| Admin | Create and edit. |
| Manager | No access. |
| Professional | No access. |
Pre-filled on creation
| Field | Default |
|---|---|
| Duration | 30 min |
| Buffer before | 0 min |
| Buffer after | 0 min |
| Locations | “All” |
| Professionals | “All” |
| Online bookings | ✅ |
| Active | ✅ |
Validations
| Server-side validation | When it fires |
|---|---|
| Name required | The name is blank in the language you’re writing in. |
| Duration greater than 0 | You entered 0 or left the field empty. The multiple of 5 is not validated: that step 5 belongs to the browser field only, and a value like 25 or 47 saves fine if it reaches the server. |
| Price greater than or equal to 0 | You entered a negative price. |
| The photo must be an image | You uploaded something that isn’t PNG, JPG, WEBP, or GIF, or that’s larger than 8 MB. |
Errors are shown together in a red box at the top of the form.
How it looks to the customer
Once saved and with Online bookings enabled:
On your public profile (citauno.com/your-business), in the service list:
- Each service shows a photo (if you uploaded one), the name, duration, price, and its own Book button.
- Below it comes the short description, and the long one behind a “More info” toggle that expands it.
- If you use categories, the list is grouped by category.
On the booking page (citauno.com/businesses/your-business/book):
- Services are a list of checkboxes: name, short description, duration, and price. No photo and no long description.
- The customer can tick several services in the same booking; if they do, a notice appears explaining that choosing several can reduce availability, because they all have to fit into the same block.
- The professional step comes before the services step, not after.
Common errors
| Symptom | Cause | Solution |
|---|---|---|
| The service doesn’t appear on the public link | “Online bookings” is off, or no professional available | Turn on the toggle and check the assigned professionals |
| No available times for the service | Buffer too long + the professional’s hours are tight | Reduce buffers or extend the professional’s hours |
| The customer booked at one price and another shows up | You changed the service price after the booking | Citauno uses the price at the time of booking |
| I can’t find how to delete the service | There is no service deletion in the dashboard | Uncheck Active and save: the service stops appearing everywhere and old bookings keep their history |
| The service shows a photo on the profile but not when booking | That’s by design: the booking page lists services without images | Nothing to do — put the important information in the name and the short description |