---
title: Service groups
summary: A group is a heading over several services of a branch's price list — "Manicure", "Pedicure". A service stands in one group or in none, and the order of the groups is set by the business. Clients see the same groups on the booking page.
tools: [talemo_list_service_groups, talemo_create_service_group, talemo_update_service_group, talemo_delete_service_group, talemo_list_services, talemo_create_service, talemo_update_service]
related: [services-and-prices, who-does-what, branch-booking-page]
search: [service categories, price list sections, group services, order of the price list]
---

# Service groups

A group puts the services of a price list under a heading: "Manicure", "Pedicure",
"Care". A service stands in **one group or in none**. Every branch has its own
price list and its own groups; a group is not shared between branches (see
[Services, prices and currency](services-and-prices.md)).

## Where it shows

- **The section Services and prices**: the price list goes group by group, in the
  order the business set, and the services without a group come last under
  "No group" — but only when there are groups at all. On the left, in the panel of
  the section, are the same groups with the number of services: pressing a group
  shows only its services, **All services** the whole price list. The "…" next to
  a group renames it, moves it up or down, or deletes it. The window of a service
  has the field **Group**; "+ New group" in it and in the panel makes a group on
  the spot.
- **The booking page of the branch** (see
  [Booking page of a branch](branch-booking-page.md)): the same headings in the
  same order, a row of links to the groups on top, and "Other services" for the
  ones without a group. A group with no service a client can book is not shown.
- **The widget "Price" in the app**: the groups with the number of services, and
  the ones without a group last.

## What a group is

- A **name** of 1 to 60 characters, in the first language the business serves. A
  name is once in a branch, whatever the case: two "Manicure" cannot be told apart.
  Groups have no translations yet; clients see the name as the business wrote it.
- A **place** among the groups of the branch, counted from 0 without gaps. A new
  group takes the place asked for and moves the rest down; moving a group moves the
  ones between its old place and the new one; deleting a group closes the gap. A
  place past the end is the last place.
- **Services.** Deleting a group does not delete its services: they stay in the
  price list without a group. Deactivated services keep their group, and come back
  to it when activated.

## Who can do it

Looking at the groups is the right to see services, making, renaming, moving and
deleting is the right to change them (see
[Services, prices and currency](services-and-prices.md)). A role limited to some
branches works with the groups of those branches. Without the Client booking kit
the groups are unavailable.

## Tools and refusals

- `talemo_list_service_groups` lists the groups of a business or one branch in
  their order: `name`, `position` and `services`, how many services of the price
  list stand in the group. The group of one service is `group` in
  `talemo_list_services`; the price list comes group by group, and services
  without a group last.
- `talemo_create_service_group` takes `branch_id`, `name` and, optionally,
  `position` and `service_ids`. The services named move into the new group at
  once, so "make the group Design and put these services there" is one call. The
  answer has the group, `after` — the group before it, `null` for the first — and
  `moved`: each service that moved and the group it came from. Show the person
  `dry_run` first when services move.
- `talemo_update_service_group` renames a group or moves it to another `position`.
  The answer has the group as it is now and `was`, its name and place before.
- `talemo_delete_service_group` deletes a group. The answer has the group as it
  was and `service_ids`, the services that stood in it, deactivated ones too. To
  take it back, make the group again with the same `name`, `position` and these
  `service_ids`. Ask the person before deleting; `dry_run` says how many services
  are left without a group.
- `group_id` of `talemo_create_service` and `talemo_update_service` puts a service
  in a group of its branch. In `talemo_update_service` an empty string takes the
  service out of its group, and a field left out keeps it.
- A name already in the branch is refused with status 409, code `record.duplicate`
  and `params.field` `name`. A branch, a group or a service that is not in this
  business or this branch is refused with `record.reference_missing` and
  `params.field` `branch_id`, `service_ids` or `group_id`; a group that does not
  exist, with `not_found`. A name that is empty or over 60 characters and a
  negative place are `request.body_invalid`.
