Setup at a Glance
Step 1: Create Your Portal From a Template
Open the Portals page at app.statisfy.com/portals and select Create new portal. Pick a template — select Live preview on a template card to see what it looks like first — give the portal a name, and select Create portal. Statisfy opens it in Portal Studio. Full walkthrough: Creating a Portal. A new portal starts as a Draft. Nothing is customer-facing until you go live in Step 5.Step 2: Customize It
Portal Studio is the in-browser editor. Two things matter for setup:- Code — your portal’s files, built with React and TypeScript. Edits autosave as a draft, so the live version never changes underneath you.
- Settings → Components — where you tell each ready-made Statisfy component which data or worker it should use. Unlike code, these need an explicit Save changes.
Customizing With Claude
You don’t have to edit the code by hand. Statisfy has a Portal MCP server, so Claude (or another MCP client) can work on a portal directly: list your portals, read and edit files, validate the changes, and deploy a preview URL for you to review. Connect it once — add a custom connector pointing athttps://api.statisfy.com/mcp/portal and authorize it — then ask in plain language:
“Change the welcome heading on the Acme portal and give me a preview link.”Edits go to your draft, and the assistant can build and deploy a preview. It cannot publish to your live site: going live stays a human action in Portal Studio. Setup, the full tool list, and troubleshooting: Portal MCP Server.
Step 3: Point Each Account at Its Onboarding Project
If your portal shows a customer their onboarding project — the Project module — it doesn’t guess which project that is. It reads a field on the account. Every account in Statisfy already has a built-in Onboarding Project field: a Lookup – Project field that names the one project this account’s portal should show. Until you set it, a customer can sign in perfectly well and still find the project area empty.Setting it
You don’t need a portal permission for this — it’s an ordinary account edit, so any team member who can edit customer data can do it. Note that a Member only sees the accounts in their own book; Member All Accounts, Builder, and Admin see every account. Open the account, find Onboarding Project, search for the project by name, and select it. To point many accounts at their projects at once, use bulk edit — select the accounts, choose the field, and link them. The mechanics are the same as any other lookup field; see Lookup Fields.How the portal uses it
- Once per account, not once per portal. When a customer signs in, the portal reads the field on their account. One field per account serves every portal you build, so there’s nothing to wire up per portal.
- The Project module reads it automatically. In Portal Studio this appears as a Locked property under Settings → Components — Statisfy resolves it per signed-in customer, which is why it’s read-only there and why you don’t need to configure it.
- It’s also the boundary. A portal only ever shows the project the signed-in customer’s own field points at, so one account’s project can’t surface on another’s portal.
Step 4: Set Up Who Can Sign In
This is the step that’s easiest to miss: a portal doesn’t have its own user list. Anyone who signs in must already exist in Statisfy as a person on an account.
Adding that contact is an ordinary customer-data edit — no portal permission needed, and any team member who can edit customer data can do it (a Member for the accounts in their own book).
To give a customer access, make sure they are a contact on the account whose data they should see. That contact record is what binds their portal session to one account — every piece of data the portal shows is scoped to it.
What a customer experiences
- They open your portal and enter their email address.
- Statisfy emails them a 6-digit code, valid for as long as you set on the Auth tab (1–60 minutes, default 10).
- They enter the code and land in the portal, signed in and scoped to their account.
Contacts on more than one account
A contact can be attached to several accounts — one primary plus any number of secondary associations. If a portal’s template includes the account switcher, that contact sees a picker naming the account they’re viewing and can switch between the accounts they hold; switching re-scopes everything on the page to the account they chose. The switcher only ever offers accounts the contact actually holds — it can’t be used to reach another customer’s data — and a contact on exactly one account sees a plain label rather than a picker.What to check before you invite customers
The contact exists
The email matches
Preview as that customer
Step 5: Preview and Go Live
Taking a portal live is two deliberate moves, so nothing reaches a customer unreviewed:Build a preview link
Go live
your-subdomain.customer.site, or leave it blank for an auto-generated address — then select Go Live. After that, each new version goes live from Make live… in the editor header.See It the Way Your Customers Do
Once the portal is live, the surest check is to sign in to it yourself, as a customer would. Nothing about it is simulated — it’s the real portal, on the real URL, with real account data.Add yourself as a contact
Open the live portal and sign in
Pick the account
Who can do what
Building a portal needs no special role — anything that changes what your customers can reach does. Everything that changes what your customers see sits behind one permission — manage portals, held by the Admin and Builder roles. Everything before that is open to your whole team.Advanced
Neither of these is needed to get a portal working — add them when you want them.Add a Digital Worker Chat
If your portal includes the Chat or Onboarding component, it needs a Digital Worker to answer your customers. A portal doesn’t come with one — you create the worker separately, then point the component at it.Create and configure the worker
Set its status to Active
Turn on its Portal channel
Pick the worker in Portal Studio
Brand the Sign-In Email
Out of the box, Statisfy sends a clean built-in sign-in email and your customers can sign in straight away. To send it from your own address instead, that domain has to be verified for sending first.- Go to Settings → DNS, enter your domain, and select Add domain.
- Have your IT or DNS admin publish the generated DKIM and mail-server records at your DNS provider.
- Select Verify in Statisfy. Propagation can take a few hours.
login@your-domain.com.Setup Checklist
Everything that has to be true before a customer signs in
Everything that has to be true before a customer signs in
- A JWT developer key has been generated
- Every Statisfy component in the portal is configured
- An active Digital Worker exists with its Portal channel on (only if the portal has a Chat or Onboarding component)
- Each account’s Onboarding Project field points at the right project (only if the portal shows a project)
- Each customer exists as a person on the account they should see, with the exact email they’ll use
- Someone with the manage portals permission — an Admin or Builder — is on hand for the go-live (building and previewing need no special role)
- The portal has been previewed and taken live at a subdomain
- A sending domain is verified (only if you want a branded sign-in email)
Troubleshooting
Create portal is disabled
Create portal is disabled
A customer never receives their sign-in code
A customer never receives their sign-in code
A customer signs in but sees an error about not being a customer
A customer signs in but sees an error about not being a customer
Go live or Archive won't work for me
Go live or Archive won't work for me
A saved sender address is rejected on the Auth tab
A saved sender address is rejected on the Auth tab
The chat area shows a placeholder, or the build fails on a worker
The chat area shows a placeholder, or the build fails on a worker
The portal loads but the project area is empty
The portal loads but the project area is empty
A component shows a placeholder instead of content on the live portal
A component shows a placeholder instead of content on the live portal
Next Steps
- Portals Overview — Lifecycle, statuses, developer keys, and portal addresses
- Creating a Portal — Start a new portal from a template
- Building & Publishing — The editor, versions, going live, and archiving
- Portal MCP Server — Let Claude edit your portal and deploy a preview
- Configuring a Digital Worker — Create and activate the worker your portal chats with
- Lookup Fields — Set the account’s Onboarding Project field
- Project Template Automations — Create the onboarding project and fill that field automatically
- DNS Setup — Verify a sending domain for the sign-in email
- Publishable Keys & Secrets — Generate and rotate your developer key