x-cpod-domain: work
Work & Time
Time entries, comments, and capacity for the working surface.
Try in explorer
client.workTimeEntry
Time logged by a Person against a Project.
REST path
/api/v1/work/time-entriesOperations
listgetcreateupdatedeleteSDK
// list — returns only your records; add filters/search:
await client.work.timeEntries.list()
// create:
await client.work.timeEntries.create({
id: "rec_01HXEXAMPLE",
tenant_id: "example tenant_id",
created_at: "2026-01-01T00:00:00Z",
updated_at: "2026-01-01T00:00:00Z",
app_id: "example app_id",
created_by: "rec_01HXEXAMPLE",
})| Field | Type | Description |
|---|---|---|
| id* | uuid | Server-assigned ULID with type prefix (e.g. per_…). |
| tenant_id* | string | Tenant scope — auto-stamped from the caller's JWT. |
| app_id | string | App scope. Stamped ONLY when the caller's JWT was minted for a specific Application (integration API keys). Absent for human-user sessions. Filters reads when present. |
| created_at* | date-time | Server stamp. |
| updated_at* | date-time | Server stamp; updated on every patch. |
| created_by | uuid | Person id from the caller's JWT (sub). |
| updated_by | uuid | Person id from the last writer's JWT (sub). |
| source | string | Provenance tag — defaults to 'edm'. |
| source_type | enum | Where the write originated. Defaults to 'api'.frontendbackendserversystemapi |
| is_deleted | boolean | Soft-delete flag. Excluded from default list queries. |
| deleted_at | date-time | Stamped when soft-deleted; null otherwise. |
| deleted_by | uuid | Person id who soft-deleted; null otherwise. |
| schema_version | number | Document schema version. Bumped on incompatible writes. |
| person_id | uuid | UUID of the Person who logged this time. |
| task_id | uuid | UUID of the task this time was spent on. Null when time is logged at project level only. |
| project_id | uuid | UUID of the project this time is associated with. Null for overhead or administrative time. |
| date | date-time | Calendar date on which the work was performed (ISO 8601 date). |
| hours | number | Duration of work in hours. Minimum granularity is 0.25 (15 minutes); maximum is 24 hours per entry. |
| notes | string | Optional free-text description of the work performed during this period. |
| billable | boolean | Whether this time is billable to a client or project. Defaults to false. |
| approved_by_id | uuid | UUID of the Person (typically a manager) who approved this entry. Null while pending or not required. |
| approved_at | date-time | ISO 8601 timestamp when this entry was approved. Null if not yet approved. |
Comment
A polymorphic comment attached to any target.
REST path
/api/v1/work/commentsOperations
listgetcreateupdatedeleteSDK
// list — returns only your records; add filters/search:
await client.work.comments.list()
// create:
await client.work.comments.create({
id: "rec_01HXEXAMPLE",
tenant_id: "example tenant_id",
created_at: "2026-01-01T00:00:00Z",
updated_at: "2026-01-01T00:00:00Z",
app_id: "example app_id",
created_by: "rec_01HXEXAMPLE",
})| Field | Type | Description |
|---|---|---|
| id* | uuid | Server-assigned ULID with type prefix (e.g. per_…). |
| tenant_id* | string | Tenant scope — auto-stamped from the caller's JWT. |
| app_id | string | App scope. Stamped ONLY when the caller's JWT was minted for a specific Application (integration API keys). Absent for human-user sessions. Filters reads when present. |
| created_at* | date-time | Server stamp. |
| updated_at* | date-time | Server stamp; updated on every patch. |
| created_by | uuid | Person id from the caller's JWT (sub). |
| updated_by | uuid | Person id from the last writer's JWT (sub). |
| source | string | Provenance tag — defaults to 'edm'. |
| source_type | enum | Where the write originated. Defaults to 'api'.frontendbackendserversystemapi |
| is_deleted | boolean | Soft-delete flag. Excluded from default list queries. |
| deleted_at | date-time | Stamped when soft-deleted; null otherwise. |
| deleted_by | uuid | Person id who soft-deleted; null otherwise. |
| schema_version | number | Document schema version. Bumped on incompatible writes. |
| entity_type | string | The EDM entity type this comment is attached to (e.g., 'task', 'project', 'risk_item', 'contract'). |
| entity_id | uuid | UUID of the specific entity instance this comment belongs to. |
| author_id | uuid | UUID of the Person who authored this comment. |
| body | string | Markdown-formatted body text of the comment. |
| parent_comment_id | uuid | UUID of the parent Comment when this is a threaded reply. Null for top-level comments. |
| resolved_at | date-time | ISO 8601 timestamp when this comment thread was marked resolved. Null if unresolved. |
| resolved_by_id | uuid | UUID of the Person who resolved this comment. Null if unresolved. |
Capacity
A Person's available capacity for a period.
REST path
/api/v1/work/capacityOperations
listgetsetSDK
// list — returns only your records; add filters/search:
await client.work.capacity.list()| Field | Type | Description |
|---|---|---|
| id* | uuid | Server-assigned ULID with type prefix (e.g. per_…). |
| tenant_id* | string | Tenant scope — auto-stamped from the caller's JWT. |
| app_id | string | App scope. Stamped ONLY when the caller's JWT was minted for a specific Application (integration API keys). Absent for human-user sessions. Filters reads when present. |
| created_at* | date-time | Server stamp. |
| updated_at* | date-time | Server stamp; updated on every patch. |
| created_by | uuid | Person id from the caller's JWT (sub). |
| updated_by | uuid | Person id from the last writer's JWT (sub). |
| source | string | Provenance tag — defaults to 'edm'. |
| source_type | enum | Where the write originated. Defaults to 'api'.frontendbackendserversystemapi |
| is_deleted | boolean | Soft-delete flag. Excluded from default list queries. |
| deleted_at | date-time | Stamped when soft-deleted; null otherwise. |
| deleted_by | uuid | Person id who soft-deleted; null otherwise. |
| schema_version | number | Document schema version. Bumped on incompatible writes. |
| person_id | uuid | UUID of the Person whose capacity is being allocated. |
| project_id | uuid | UUID of the project this capacity allocation is assigned to. |
| period_start | date-time | First day of the allocation period (ISO 8601 date, inclusive). |
| period_end | date-time | Last day of the allocation period (ISO 8601 date, inclusive). |
| allocated_pct | number | Percentage of the person's working time allocated to this project during the period (0–100). |
| confirmed_by_id | uuid | UUID of the Person (typically a resource manager) who confirmed this allocation. Null while unconfirmed. |
| confirmed_at | date-time | ISO 8601 timestamp when this allocation was confirmed. Null if not yet confirmed. |
| notes | string | Optional free-text notes about this allocation (e.g., scope or constraints). |