Create Staff Field (v1)
Method + Path
POST /v1/workspace/:workspaceId/staff/fields
Actual backend path: /v1/workspace/:workspaceId/staff/fields
Description
Create a new custom field definition for staff members in a workspace.
Authentication
Required - JWT token in Authorization header
Required Permissions:
staff.update
Headers
| Header | Type | Required | Description |
|---|---|---|---|
Authorization | string | Yes | Bearer token: Bearer <token> |
Content-Type | string | Yes | application/json |
Path Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
workspaceId | string | Yes | Workspace identifier |
Request Body
{
"key": "department",
"label": "Department",
"description": "Staff department",
"type": "text",
"isRequired": false,
"isUnique": false,
"isFilterable": true,
"metadata": {}
}
Body Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
key | string | No | Field key (auto-generated if not provided) |
label | string | Yes | Display label for the field |
description | string | No | Field description |
type | string | Yes | Field type. Valid values: text, number, date, boolean, select, multiselect, file, image, signature, etc. |
isRequired | boolean | No | Whether the field is required. Default: false |
isUnique | boolean | No | Whether field values must be unique. Default: false |
isFilterable | boolean | No | Whether the field can be used for filtering. Default: false |
metadata | object | No | Additional metadata for the field (type-specific configuration) |
Response (201)
{
"field": {
"id": "507f1f77bcf86cd799439011",
"key": "department",
"label": "Department",
"description": "Staff department",
"type": "text",
"isRequired": false,
"isUnique": false,
"isFilterable": true,
"order": 1,
"createdAt": "2024-01-15T10:00:00Z"
}
}
Common Errors
- 400 Bad Request: Invalid request body
- 401 Unauthorized: Missing or invalid authentication token
- 403 Forbidden: Insufficient permissions (requires
staff.update) - 404 Not Found: Workspace not found
- 409 Conflict: Field key already exists
- 422 Unprocessable Entity: Validation errors
- 500 Internal Server Error: Server error