Siren

Create Collaborator Group

Creates a new collaborator group with an optional initial set of members.

Last updated: June 7, 2026

POST /siren/v1/collaborator-groups

Creates a new collaborator group. Optionally writes an initial member set at creation time.

Request Body:

FieldTypeRequiredDescription
namestringYesDisplay name for the group
structurestringYesRegistered structure resolver id. Today’s values: flat, linearChain, parentChild
descriptionstringNoFree-form description of the group. Defaults to an empty string when omitted
membersobject[]NoArray of { collaboratorId, metadata? } entries. When provided, the full member set is written via the same replace logic as PUT /siren/v1/collaborator-groups/{id}/members

Example Request:

{
  "name": "Sales Reps",
  "description": "Inside sales chain",
  "structure": "linearChain",
  "members": [
    { "collaboratorId": 41, "metadata": { "position": 1 } },
    { "collaboratorId": 42, "metadata": { "position": 2 } }
  ]
}

Example Response:

{
  "id": 12,
  "name": "Sales Reps",
  "description": "Inside sales chain",
  "structure": "linearChain"
}

Returns 201 on success with the new group’s serialized shape. When members is supplied, the rows are written but are not reflected in the response. Use GET /siren/v1/collaborator-groups/{id}/members?fields=id,collaboratorId,metadata to confirm them. Responds 500 when the group cannot be created.

The create response also includes dateCreated and dateModified in addition to the four fields shown above. The read endpoints (GET /collaborator-groups and GET /collaborator-groups/{id}) select fields through the resolver and expose only id, name, description, and structure, so those timestamps appear here in the create response but are not retrievable on a later read.

Events: Broadcasts CollaboratorGroupCreated. When an initial members set is written, each added row broadcasts a CollaboratorAddedToCollaboratorGroup event.