Magic-link login
How clients sign in to the portal — they enter their email and receive a single-use, short-lived sign-in link. No passwords.
Clients sign in to the portal with a magic link — there are no passwords. They enter the email their invoice was sent to and receive a single-use sign-in link.
- Plan
- Studio
- Role
- OwnerAdmin
The portal needs a Studio or Agency plan. Sign-in is for your client contacts — external people, not team members. Owners/Admins control who's enabled.
How a client signs in
Go to the portal login
The client opens /portal/login, headed "Client portal" with the prompt "Enter the email your
invoice was sent to. We'll email you a sign-in link."
Enter the email
They type the email their invoice was sent to and submit. If it matches an enabled contact in your workspace, a single-use, short-lived sign-in link is emailed to them.
Open the link
Clicking the emailed link lands on /portal/verify, which sets their session and signs them in.
Browse and pay
They arrive at /portal and see their invoices. To leave, they use Sign out (/portal/signout).
A neutral, private confirmation
The login page always shows the same neutral message — "If there's an account for that email, we've sent a sign-in link." — whether or not the email matches. This is deliberate: it doesn't reveal who is or isn't a contact in your workspace.
Because the confirmation is the same for every email, tell clients to check the inbox of the exact address you invoice — and the spam folder — rather than expecting an on-screen "not found" message.
Link safety
- Each link is single-use and short-lived (it expires).
- The login page is rate-limited to curb abuse.
- Expired or already-used links show a clear message; the client just requests a new one from
/portal/login.
Troubleshooting
- The email never arrives. Confirm the contact is portal enabled and the address matches exactly, then have them check spam. See Client portal troubleshooting and I didn't receive an email.
- "Link expired or already used." Request a fresh link from
/portal/login— each link works once and for a limited time.