- Documentation
- Client portal
- Invite a client to a workspace
Invite a client to a workspace
Send a client an email invitation, walk them through first-login onboarding, and confirm they land in the right workspace.
Before you start
- You need to be an admin or owner on your agency.
- The workspace the client will use must already exist. If you're starting from scratch, create the workspace first from your agency dashboard.
- Have the client's email address ready. One invitation goes to one address; you can invite multiple clients to the same workspace by sending separate invitations.
A workspace can hold any number of clients. Most agencies use one workspace per client account, but the model supports multiple stakeholders on one workspace (for example, an operations contact and a finance contact who both need portal access).
Step 1: Open the workspace members page
Switch to the client's workspace
From your agency dashboard, switch into the workspace you want to invite the client to. The workspace name appears in the sidebar header once you're inside it.
Open Members
Go to Workspace → Members, or visit
/[workspaceSlug]/workspace/membersdirectly. The page lists current members and any pending invitations.
Step 2: Send the invitation
Click Invite client in the top right of the members page. A dialog opens with a single field: the email address you want to invite.
Type the email and click Send invitation. The invitation is sent immediately and the dialog closes. The pending invitations table now shows the new entry.
The invite dialog has no role picker. Every client invitation grants the workspace-client role,
which is read-only access to the workspace's workflows, runs, connections, forms, and billing.
Agency teammates are invited from a different surface and are never confused for clients.
Step 3: What the client receives
The client gets an email with your agency's branding in the subject line and header. The email links to a sign-up page at your agency's domain.
If the client is brand new to the platform, the link drops them into a short sign-up flow: name, password (or Google sign-in), accept the invitation. If the client already has an account at the same email, signing in is one click and the workspace is added to their list.
Either way, the next stop after accepting is the client onboarding wizard.
Step 4: Client first-login onboarding
The first time a client lands on the portal, they see a short wizard at /onboarding/client before reaching /portal. The wizard adapts to what your agency has configured:
- Welcome step. Shows your portal welcome copy if you've set one on your tenant branding, or a default message otherwise.
- Account step. Asks the client to set a password if they signed up through an OAuth provider but want a credentials fallback. Skips entirely for clients who already have a password.
- Billing step. Appears only if your agency has Stripe Connect enabled and the workspace has at least one open or past-due invoice. The client confirms a payment method on file before they hit the portal.
Once the wizard is complete, the client lands on /portal and sees the dashboard, workflows, runs, connections, forms, billing, and account surfaces described in What your clients see in the portal.
The wizard never runs a second time. Returning clients are sent straight to /portal.
Step 5: Confirm the client landed correctly
Back on the workspace members page, the pending invitation flips to an accepted row once the client signs up. The row shows their name, email, and the workspace-client role.
If you want to see exactly what the client sees, you can sign in as them on a staging account, or use a private browser window with their credentials. The portal layout never lets an agency teammate masquerade as a client through the same session — the role check runs server-side at every request.
Revoke an invitation that was sent in error
On the workspace members page, the pending invitations table has a Revoke action on each row. Revoking burns the invitation token; if the client tries to click the link in their email afterwards, they see an expired-invitation page.
If the client has already accepted, removing them is a separate action: open the accepted row and click Remove from workspace. Removing a client from every workspace immediately revokes their portal access — the layout's membership resolver returns an empty workspace list and bounces them to the home page on the next request.
Common pitfalls
The client says they didn't get the email. Check the spelling of the address on the pending invitations row. If it's correct, ask the client to check spam — the email comes from a TaskJuice sender address with your agency's branding in the body, and some corporate spam filters quarantine first-time senders. The pending invitation is still valid; the client can also use the resend action to trigger a fresh send.
The client lands on a tenant picker instead of the portal. This means they have an account role somewhere (owner, admin, or member on an agency), not just workspace-client. The portal is gated to client-only users. If you intended to give them client access, confirm their effective workspace role on the members page; if the email matches an existing agency teammate account, you'll need a different email address for their client identity.
The client sees the wrong agency's brand. A client invited to a workspace under your agency always sees your branding in the portal. If they see a different agency's brand, they're signed in to a different workspace from a different agency. The portal sidebar workspace switcher lets them move between workspaces they belong to.
Next steps
- What your clients see in the portal — the full tour of the portal surfaces.
- Connect Stripe to bill clients — turn on the billing step in client onboarding.
- Set up a custom domain — serve the invitation email's sign-up link from your own hostname.