Skip to main content
CollaborationInviting Members

Inviting Members

This page has been cleared and is ready for updated Builder Studio documentation.

You add collaborators to a workspace by inviting them by email. An invite is a one-time link tied to a specific email address and a specific role. The recipient signs in with that email, accepts the invite, and becomes a member — gaining access to every canvas and credential the workspace owns, bounded by the role you chose.

Email-bound, not link-shareable
An invite is for the exact email it was issued to. Accepting requires being signed in as that address — forwarding the link to someone else won't let them join in your place.

Who can invite

  • Owners and admins can invite members as editor or viewer, and can manage existing invites and members.
  • Only the owner can invite someone as an admin. An admin cannot create another admin.
  • Editors and viewers cannot invite anyone.

Send an invite

  1. Enter the email and pick a role

    Provide the collaborator's email and choose editor, viewer, or — if you are the owner — admin. The email is validated and normalized (trimmed and lowercased) so the same address resolves consistently.

  2. An invite link is created

    BuilderStudio generates a unique invite token and an invite link. The invite is recorded as pending with an expiry. If a pending invite already exists for that email in the workspace, it is superseded — the older one is revoked so only the newest invite is live.

  3. The recipient gets an email

    An invite email is sent to the address with the link. The recipient opens it, signs in with the matching email, and accepts.

  4. They become a member

    On accept, a membership with the invited role is created (or, if they were already a member, their role is updated to match), and the invite is marked accepted. They now appear in the member list.

Invite lifecycle

Each invite moves through a small set of states. Only a pending, unexpired invite can be accepted.

StatusMeaning
pendingIssued and waiting to be accepted, not yet expired.
acceptedThe recipient signed in with the matching email and joined.
revokedCancelled before acceptance — also what happens to an older pending invite when a newer one is sent to the same email.
expiredPassed its expiry without being accepted.
Invites expire
Invites carry an expiry, defaulting to about a week and configurable within a bounded range (roughly one to thirty days). Pending invites that pass their expiry are swept to expired automatically, so a stale link stops working on its own.

What acceptance checks

Acceptance is deliberate about safety. The invite must exist and resolve to a single token, it must still be pending, it must not have expired, and the signed-in user's email must match the invite's email. Any mismatch is rejected with a clear reason rather than silently joining the wrong person.

Accept checkstext
accept(token)  token resolves to exactly one invite   else: not found / no longer valid  invite.status === "pending"            else: no longer valid  invite.expiresAt > now                 else: expired (and marked expired)  signed-in email === invite.email       else: invite is for a different email  -> create or update membership with the invited role  -> mark invite accepted

Manage members and invites

  • Change a role.Owners and admins can change an editor's or viewer's role; only the owner can grant or revoke admin. The owner's role cannot be changed.
  • Remove a member. Owners and admins can remove members; only the owner can remove an admin, and no one can remove the owner.
  • Resend or replace an invite. Sending a fresh invite to the same email revokes the previous pending one, so there is always at most one live invite per email per workspace.

Related

Was this page helpful?