React SDK
@statisfy/digital-workers-react — drop-in components (<ProjectModule/>, <Comments/>) and headless hooks (useProject, useComments).REST API
The
/sdk/v1 endpoints the React SDK calls. Use them directly if you’re not on React.404 (existence is never leaked).
Authentication
Every call needs a portal session token (a short-lived JWT) as a bearer, plus your publishable key:<StatisfyProvider>. See Publishable keys to create a key.
Visibility is enforced server-side. A real (non-preview) external viewer only receives fields, tasks, and comments that have been shared with the customer — see External sharing. An internal preview session sees everything.
What the customer can see and edit
- Fields marked Internal are removed from the response entirely.
- Tasks hidden from the portal are dropped from the task list.
- Comments that weren’t shared with the customer are filtered out; comments the customer posts are always shared.
- Writes are gated by
meta.can_editand each field’seditableflag.
REST API
Base path:/sdk/v1. All responses are JSON.
Error responses:
Resolve the onboarding project
onboarding_project__c_, which you then read with GET /projects/{id}.
Read a project
display[key] ?? properties[key]; send only canonical properties back on writes. tasks is a flat, depth-first list — build the milestone → subtask tree client-side from parent_id, and never re-sort it.
Update a project or task
400 (not_editable / invalid_option / invalid_type).
Comments
GET returns customer-visible comments oldest-first:
POST takes { "value": "..." } and returns the created comment. Portal-posted comments are always shared with the customer. PATCH (author only) edits the text.
React SDK
Install and wrap your app in<StatisfyProvider> (see Portals overview); it supplies the base URL, token minting, and publishable key to every hook and component.
<ProjectModule/>
The pre-assembled project view: header, progress, milestone journey, editable task list, project comments, and a task-detail drawer (with per-task comments).
<Comments/>
A standalone comment thread + composer — project-level, or task-level with a taskId. Used inside <ProjectModule/>, but also available on its own for custom layouts.