---
title: "updateGroup"
method: PATCH
path: "/v1/groups/{id}"
tags: ["Group"]
---

# updateGroup

`PATCH /v1/groups/{id}`

Update group by id

## Path parameters

- `id` string, required — Group unique identifier

## Request body

- UpdateGroupReq
  - `name` string — The name of the group. Could be a department or a team.
  - `user_ids` UserId[] — The list of user ids in the group.
  - `image_uri` GroupImageUri, nullable — Group's profile image or gradient colors. Supports uploaded image URLs and generated gradient avatars.
    - `original` string, uri
    - `thumbnail_32` string, uri
    - `thumbnail_64` string, uri
    - `gradient_colors` string[] — Two hex color strings [base_color, accent_color] for mesh gradient avatar.
  - `abbreviation` string, nullable — A short abbreviation for the group, up to 2 characters.

## Response `201`

Group created successfully

- Group
  - `id` string, required — Group unique identifier
  - `org_id` string, required
  - `name` string, required — The name of the group. Could be a department or a team.
  - `created_at` string, required
  - `updated_at` string, required
  - `created_by` string — The user id of the user that created the group.
  - `crt_assignee` object — The current user assignee of the group. This is the user, from within the group, that has last been assigned to a workflow task.
    - `id` string — User's unique identifier
    - `organization_id` string
    - `created_at` string, date-time
    - `activated_at` string, date-time
    - `display_name` string — User's display name (default: email address)
    - `status` 'Active' | 'Pending' | 'Deactivated' | 'Deleted'
    - `email` string, email — User's email address
    - `draft_email` string, email, nullable — User's pending email address
    - `draft_email_expires_at` string, date-time, nullable — Server-set expiry for the pending email change verification link (ISO 8601). Read-only.
    - `password_reset_token_hash` string, nullable — Internal: sha256 hash of the active password-reset token. Server-set, never returned in responses.
    - `password_reset_token_expires_at` string, date-time, nullable — Internal: expiry for the active password-reset token (ISO 8601). Server-set, never returned in responses.
    - `department` string, nullable — User's department
    - `phone` string, nullable — User's phone number
    - `secondary_phone` string, nullable — User's secondary phone number, preferred for communication
    - `mfa_enabled` boolean — User's multi-factor authentication status
    - `totp_enabled` boolean — Whether the user has TOTP (authenticator app) MFA enabled
    - `has_passkeys` boolean — Whether the user has any registered passkeys
    - `phone_verified` boolean — User's phone number verification status
    - `token` string — Token used to invite a user to epilot
    - `signature` string, nullable — User's email signature
    - `is_signature_enabled` boolean, nullable — Whether the user's signature is enabled
    - `preferred_language` string — User's preferred language
    - `custom_start_page` string, nullable — User's start page after login
    - `custom_navigation` string, nullable — Navigation unique identifier - a hash of the normalized navigation payload (name + configuration). Identical navigations across orgs will have the same ID.
    - `override_release_channel` 'canary' | 'rc' | 'stable' | 'null', nullable — This field is used to override the release channel for the user.
    - `feature_preferences` object, nullable — User's feature preferences
    - `image_uri` object, nullable — User's custom profile image
      - `original` string, uri
      - `thumbnail_32` string, uri
    - `favorites` object
    - `email_notification_setting` object
    - `in_app_notification_setting` object — Per-notification-type in-app delivery preferences (notification type key -> enabled). Written by the my-account notification settings UI and honored by svc-notification-api at delivery time. Absent or partial keys fall back to each notification type's configured default. Mirrors email_notification_setting for the in-app channel.
    - `properties` object[]
      - `name` string, required
      - `value` string, required
    - `tags` string[], nullable — User tags/labels assigned for classification (e.g. label slugs)
    - `crt_index` number — The index of the current assignee in the group's user list.
  - `users` UserV2[] — The list of users in the group. Only contains the full user when respective endpoint is called with a flag. Otherwise only contains the user id.
    - `id` string — User's unique identifier
    - `organization_id` string
    - `created_at` string, date-time
    - `activated_at` string, date-time
    - `display_name` string — User's display name (default: email address)
    - `status` 'Active' | 'Pending' | 'Deactivated' | 'Deleted'
    - `email` string, email — User's email address
    - `draft_email` string, email, nullable — User's pending email address
    - `draft_email_expires_at` string, date-time, nullable — Server-set expiry for the pending email change verification link (ISO 8601). Read-only.
    - `password_reset_token_hash` string, nullable — Internal: sha256 hash of the active password-reset token. Server-set, never returned in responses.
    - `password_reset_token_expires_at` string, date-time, nullable — Internal: expiry for the active password-reset token (ISO 8601). Server-set, never returned in responses.
    - `department` string, nullable — User's department
    - `phone` string, nullable — User's phone number
    - `secondary_phone` string, nullable — User's secondary phone number, preferred for communication
    - `mfa_enabled` boolean — User's multi-factor authentication status
    - `totp_enabled` boolean — Whether the user has TOTP (authenticator app) MFA enabled
    - `has_passkeys` boolean — Whether the user has any registered passkeys
    - `phone_verified` boolean — User's phone number verification status
    - `token` string — Token used to invite a user to epilot
    - `signature` string, nullable — User's email signature
    - `is_signature_enabled` boolean, nullable — Whether the user's signature is enabled
    - `preferred_language` string — User's preferred language
    - `custom_start_page` string, nullable — User's start page after login
    - `custom_navigation` string, nullable — Navigation unique identifier - a hash of the normalized navigation payload (name + configuration). Identical navigations across orgs will have the same ID.
    - `override_release_channel` 'canary' | 'rc' | 'stable' | 'null', nullable — This field is used to override the release channel for the user.
    - `feature_preferences` object, nullable — User's feature preferences
    - `image_uri` object, nullable — User's custom profile image
      - `original` string, uri
      - `thumbnail_32` string, uri
    - `favorites` object
    - `email_notification_setting` object
    - `in_app_notification_setting` object — Per-notification-type in-app delivery preferences (notification type key -> enabled). Written by the my-account notification settings UI and honored by svc-notification-api at delivery time. Absent or partial keys fall back to each notification type's configured default. Mirrors email_notification_setting for the in-app channel.
    - `properties` object[]
      - `name` string, required
      - `value` string, required
    - `tags` string[], nullable — User tags/labels assigned for classification (e.g. label slugs)
  - `image_uri` GroupImageUri, nullable — Group's profile image or gradient colors. Supports uploaded image URLs and generated gradient avatars.
    - `original` string, uri
    - `thumbnail_32` string, uri
    - `thumbnail_64` string, uri
    - `gradient_colors` string[] — Two hex color strings [base_color, accent_color] for mesh gradient avatar.
  - `abbreviation` string, nullable — A short abbreviation for the group, up to 2 characters.

## Other responses

- `404` — Group not found

---

[API](https://skmtc.net/epilot/apis/user-api.md) · [All operations](https://skmtc.net/epilot/apis/user-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/epilot/user-api/versions/7fae886a3c99/schema)
