Invite someone by email to this workspace's private pages, and only those: a visitor is a member with the Visitor role, who never sees the console, these tools or the workspace's resources, and takes no seat. Tessryx sends no email. Give the person the link to a page whose endpoint lists ROLE_VISITOR in auth.allow.tenant_roles; they sign in or sign up with this address and accept on one screen. tenant_roles is an exact match: list every role that should get in, e.g. ["ROLE_VISITOR", "ROLE_OWNER", "ROLE_ADMIN"], or the owner is shut out of their own page. Pass sites to admit them to some of the workspace's sites only (a folder, an app, or a custom domain): when the workspace runs more than one site, such as one per client, always pass the sites the person is for. Without sites they may see every members-only page that admits visitors. Refused if the address is already on the team, already a visitor (change their sites with set_visitor_sites), or already invited, and past the plan's visitor limit (pending invites count).