Skip to content

Update a functional area

Request

Updates the fields supplied and returns the group in the same shape as reading it. Only the fields sent are touched, so an empty body is a valid request that changes nothing.

rules is the exception, and it is worth reading before updating a group that updates its membership automatically. Omitting rules clears the conditions rather than leaving them alone, so on a group with auto_update_mode switched on an update that does not resend them is rejected and nothing changes. Send the conditions back on every update to such a group, or switch auto_update_mode to 0 in the same request.

Changing the conditions does not revisit anyone already in the group in the same breath - membership is reconciled as the conditions are next applied.

Security
default
Path
idintegerrequired

The ID of the functional area.

Headers
Rosterfy-Platformstring
Bodyapplication/json
namestring

The name administrators see. Required.

frontend_namestring

The name volunteers see in the portal. Required, and shown in place of name to anyone without administrator access, so it is worth setting even when the two match.

codestring

A short reference for the group, unique within the account. Letters, numbers, dashes and underscores only - spaces and punctuation are rejected. Stored and returned in upper case whatever case it is sent in.

headcount_functional_area_type_idinteger

The ID of the group type to file this group under. Optional; omit or send null to leave the group untyped.

targetinteger

How many people this group is aiming to have. 0 means no limit. Cannot be negative.

auto_update_modeinteger

Whether membership is maintained automatically from rules, and in which direction: 0 off, 1 add and remove, 2 add only, 3 remove only. When this is anything other than 0, rules must be present and well formed or the request is rejected.

rulesArray of objects

The membership conditions used when auto_update_mode is on, as a list of condition objects built from the account's own user fields. Each condition names a field, a comparison and a value. Build these in the admin console and send back what it produces rather than composing them by hand - the set of addressable fields is specific to the account. This field is cleared whenever it is omitted, so resend it on every update to a group that has automatic updating switched on; omitting it there clears the conditions and the request is rejected.

training_idsArray of integers

The IDs of the training modules assigned to anyone who joins this group. Replaces the whole list rather than adding to it, so send every module you want kept. Omitting the field leaves the stored list untouched.

curl -i -X PUT \
  'https://developer.rosterfy.com/_mock/api-docs/openapi/api/v2/headcount/functionalarea/{id}' \
  -H 'Authorization: Bearer <YOUR_TOKEN_HERE>' \
  -H 'Content-Type: application/json' \
  -H 'Rosterfy-Platform: admin' \
  -d '{
    "name": "Guest Services",
    "frontend_name": "Guest Services",
    "code": "GUESTSERVICES",
    "headcount_functional_area_type_id": 1,
    "target": 50,
    "auto_update_mode": 0,
    "rules": [],
    "training_ids": [
      1
    ]
  }'

Responses

Bodyapplication/json
objectobject
niceobject
relationsobject
permissionsobject
Response
{ "object": { "id": 1, "account_id": 20101, "headcount_functional_area_type_id": 1, "name": "Guest Services", "frontend_name": "Guest Services", "code": "GUESTSERVICES", "target": 50, "auto_update_mode": 0, "rules": [], "training_ids": [ … ], "is_system": 0, "deleted_at": null, "created_at": "2026-06-09T05:36:16.000000Z", "updated_at": "2026-06-09T05:36:16.000000Z", "updated_by": 1234, "uuid": "270eebe1-bc48-4ecf-a065-2c5ff65b33b0" }, "nice": { "rrn": "rrn:local:20101:functional_area:1" }, "relations": {}, "permissions": { "read": true, "update": true, "delete": true } }