x-cpod-domain: notifications
Notifications
User notifications and broadcast announcements.
Try in explorer
client.notificationsNotification
A targeted notification to a Person.
REST path
/api/v1/notifications/notificationsOperations
listgetmark_readdeleteSDK
// list — returns only your records; add filters/search:
await client.notifications.notifications.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. |
| recipient_id | uuid | UUID of the Person who should receive this notification. |
| type | string | Severity / intent classification of the notification. |
| channel | string | Delivery channel used for this notification. |
| title | string | Short summary line shown in notification lists and email subjects. |
| body | string | Full notification body text. |
| entity_type | string | The EDM entity type that triggered this notification (e.g. 'LeaveRequest', 'Contract'). |
| entity_id | uuid | UUID of the triggering entity instance. Null when not tied to a specific record. |
| read_at | date-time | ISO 8601 timestamp when the recipient marked this notification as read. Null if still unread. |
| action_url | string | Optional deep-link URL the recipient can follow to act on this notification. |
Announcement
A broadcast to a tenant or group.
REST path
/api/v1/notifications/announcementsOperations
listgetcreatepublishdeleteSDK
// list — returns only your records; add filters/search:
await client.notifications.announcements.list()
// create:
await client.notifications.announcements.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. |
| title | string | Announcement headline. |
| body | string | Full announcement body in Markdown. |
| author_id | uuid | UUID of the Person who authored this announcement. |
| audience_type | string | Scoping strategy for the audience. 'all' broadcasts to every person in the tenant. |
| audience_ids | json | List of group, department, or role identifiers that form the target audience. Empty when audienceType is 'all'. |
| pinned | boolean | Whether this announcement is pinned to the top of the notice board. |
| published_at | date-time | ISO 8601 timestamp when the announcement was published. Null while in draft status. |
| expires_at | date-time | ISO 8601 timestamp after which the announcement is no longer shown. Null means no expiry. |
| status | string | Publication lifecycle status of the announcement. |
| tags | json | Free-form tags for filtering and categorisation. |