Inviting People

The Invite Member button sits in the header of Settings → Team Members and is rendered only for Administrators. What it does is straightforward — an email goes out, the person follows a link, they join your organization. What it does not do is the thing this page exists to settle: the role you choose in the dialog is not the role they end up with, and knowing that in advance saves you a confusing afternoon.

Inviting is free on every plan. Users are unlimited on Free, Starter and Growth alike, so there is no seat count to watch and no upgrade prompt at the end of this flow.

Sending an invitation

  1. Open Settings → Team Members and choose Invite Member. The Invite Team Member dialog opens, described as “Send an invitation email to add someone to your organization.”
  2. Type the person’s address into Email Address.
  3. Pick a Role. The select lists all six roles by their display names: Administrator, Content Publisher, Content Approver, Content Writer, Read Only, Restricted. Read Roles and Permissions before you open the dialog — it is the one decision the invitation cannot undo for you.
  4. Choose Send Invitation. The dialog closes and a notification confirms “Invitation sent to”.
The Invite Team Member dialog with the Role select open

If you are bringing in an outside contributor, invite them as Restricted and open exactly the content they need with Resource-Level Access Overrides. A Restricted member sees almost nothing until you grant it, which is a much better starting point than trimming back a role that was too generous.

What your invitee receives

The email arrives from Leed with the subject “You’ve been invited to joinon Leed”. It names the person who invited them, names your organization, and carries a single Accept Invitation → button pointing at /auth/accept-invitation/<invitationId>.

One detail worth expecting, because it looks like a bug and is not: the email describes the invitee’s role as member (or admin, if you chose Administrator). That is the organization-management role, not the Leed role you picked. The next section explains why.

Accepting an invitation

The link opens Join, which reads “invited you to join.”What happens from there depends on whether they already have a Leed account.

The Join screen an invitee sees after following the invitation link

There are five states that link can be in, and each shows different copy:

StateScreen copy (verbatim)What to do
Pending, and they are signed in“You’re joining.”with an Accept Invitation buttonChoose Accept Invitation
Pending, signed out, account exists“Already have an account? Sign in to accept this invitation.”Choose Sign In to Accept, then accept
Pending, no Leed account yet“Don’t have an account yet?”Choose Create Your Account, verify the email, then accept
Expired or revoked“This invitation is invalid or has expired.”Ask an Administrator to Resend or send a new invitation
Already accepted, rejected or canceled“Invitation Already Used — This invitation has already been.”Nothing to accept; sign in normally, or ask for a new invitation

If they already have a Leed account

  1. They choose Sign In to Accept and sign in as they normally would.
  2. They land back on the same Joinscreen, now signed in.
  3. They choose Accept Invitation, and Leed takes them into the workspace.

If they are new

  1. They choose Create Your Account, which opens the invited sign-up form.
  2. They fill in first name, last name and email, clear the anti-bot check, and choose Create Account — or take the Sign up with Google shortcut and skip the form entirely.
  3. Leed sends them a verification email; verifying it returns them to the accept screen, where they finish with Accept Invitation.

Invitations that no longer work

Two states end the flow early, and both are worth recognizing by their exact wording so you can tell them apart from a sign-in problem:

  • “This invitation is invalid or has expired.” — the link is not resolvable. Either it has passed its expiry window or the invitation was revoked.
  • “Invitation Already Used — This invitation has already been.”— the invitation exists but is no longer pending; it was accepted, rejected or canceled.

Both screens offer a Go to sign in link and nothing else. The fix for either is a fresh invitation from your side, not anything the invitee can do.

Pending invitations

While an invitation is outstanding, it appears in the Pending Invitations block above the member list. The block is hidden entirely when there is nothing to show, so its absence means there are no invitations at all — not that something failed to load.

The Pending Invitations block with a recent and an expired invitation
ElementWhat it showsAction available
EmailThe address the invitation was sent to—
Roleadmin or member — the organization-management role, not the Leed role you picked †—
Invited <relative time>How long ago the invitation was created, as “2 hours ago”—
(expired) markerAppears in red when the expiry date has passed—
ResendSends the invitation email againAny Administrator on the screen
RevokeCancels the invitation so the link stops workingAny Administrator on the screen

† The row prints the invitation’s stored role verbatim, and only admin and member are ever stored on an invitation. See The role you pick in the dialog.

Invitations that are no longer pending — accepted, rejected, canceled — stay listed below the pending ones, grayed out and showing their status instead of Resend and Revoke. Invitations expire after roughly two days. That window comes from the underlying authentication library’s default rather than from a Leed setting, so treat the (expired) marker on the row as the authority rather than counting hours yourself.

The role you pick in the dialog

Here is the honest version, and the reason this page is separate from the Team Members screen.

The Role select offers all six Leed roles, but before the invitation is sent your choice is collapsed to one of two values: Administrator becomes admin, and every other role becomes member. Only that collapsed value travels with the invitation. The Leed role — Content Writer, Read Only, Restricted — is not stored on the invitation and is not applied when the invitation is accepted.

Accepting an invitation creates the invitee’s organization membership. It does not create the CMS member record that carries a Leed role, sets their profile, or puts a row on Settings → Team Members.

The sequence, end to end:

sequenceDiagram
    autonumber
    actor Admin as Administrator
    participant CMS as Settings → Team Members
    participant Auth as Organization records
    actor Invitee
    Admin->>CMS: Invite Member — email + Leed role
    Note over CMS,Auth: The six Leed roles collapse to admin / member.<br/>The Leed role is not stored on the invitation.
    CMS->>Auth: create invitation (role = admin or member)
    Auth->>Invitee: "You've been invited to join …" email
    Invitee->>Auth: follow the link, sign in or sign up, Accept Invitation
    Auth-->>Auth: organization membership created
    Note over Auth,CMS: Gap — no CMS member record, and so no Leed role.
    Admin->>CMS: confirm the person appears, then set their real role
    CMS-->>Invitee: workspace access at the intended role

Set their real role from the row dropdown on Managing Team Members, which is also where you tick Billing or Developer access if they need it. Your invitee’s side of all this — signing in, the organization picker, and belonging to more than one workspace — is covered in Joining and Switching Workspaces.

Adding someone without an invitation

There is a second way in, and it is worth naming so that an administrator hunting the interface for a “New user” button stops hunting: there is no such button. Leed has an Administrator-only API for creating a member directly — it creates the CMS member record, the login and the organization membership together, so the person can sign in by email afterwards — but it is not wired to any control in the CMS today. The screen that would have hosted it exists in the codebase and renders nothing.

In practice that means every route into a workspace currently goes through the invitation flow above plus an administrator’s follow-up on Settings → Team Members, or through a direct API call by someone comfortable making one.

ESC