@statisfy/digital-workers-react) lets you embed Statisfy experiences — a Digital Worker chat and a Project (onboarding) module — directly into your own React application or customer portal. Your customers interact with their Statisfy data without ever leaving your product.
The SDK is the programmatic counterpart to Portals. A Portal is a Statisfy-hosted site; the SDK lets you build the same experiences inside an app you host yourself.
What you can build
Digital Worker chat
A full chat widget that talks to one of your Digital Workers — streaming replies, inline forms, conversation history, unread badges, and live replies from a human CSM.
Project module
A read/write view of a customer’s onboarding project: milestones, tasks, progress, and editable fields — as a pre-built component or composable primitives.
Package
The SDK is built with React and TypeScript and is fully typed — every component, hook, and client method ships with type definitions.
How it fits together
<StatisfyProvider>, which supplies the gateway URL and authentication. Every SDK component reads that shared config — they never take connection props themselves.
Authentication model
The SDK authenticates each request with two pieces:- A bearer token — a short-lived HS256 session token scoped to one customer of your tenant. Your app supplies it through the provider’s
getTokencallback. - A publishable key —
pk_live_…/pk_test_…, safe to ship in client-side code. It identifies your Statisfy tenant.
POST /sdk/auth endpoint. The token carries tenant_id, customer_id, and portal_id claims, so the gateway scopes every request to exactly that customer — the SDK never trusts a customer id sent from the browser.
The full token lifecycle, headers, and error codes are in the API Reference.
Next steps
Getting Started
Install, wire up the provider, mint a token, and render your first component.
Digital Worker Chat
Embed the chat widget, render inline forms, and use the headless client.
Project Module
Show and update a customer’s onboarding project.
API Reference
Endpoints, headers, error codes, and TypeScript types.