> For the complete documentation index, see [llms.txt](https://umber.gitbook.io/umber/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://umber.gitbook.io/umber/guides/inviting-team-members.md).

# Inviting Team Members

Umber is invitation-only: you don't create an account for someone, you invite them and they set up their own sign-in. This walks through sending an invitation, what happens next, and how to handle one that needs resending, revoking, or that nobody accepted.

You need to be an **owner** or an **admin** — see [Roles and Permissions](/umber/concepts/roles-and-permissions.md).

## Sending an invitation

Go to **Users** and choose the **+** button beside the title.

| Field                | Required | Notes                                                                                                                                 |
| -------------------- | -------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| Full Name            | Yes      | Letters and spaces only, minimum 3 characters. The invitee can replace it with their own when they accept.                            |
| Email                | Yes      | Must be a valid address, and not already in use — see [Refusals](#when-an-invitation-is-refused) below.                               |
| Role                 | Yes      | See [Roles and Permissions](/umber/concepts/roles-and-permissions.md). Admins cannot select Owner.                                    |
| Country code + Phone | No       | Optional, but **all or nothing** — a country code without a number, or a number without a code, is rejected. Numbers are 6–14 digits. |

There is deliberately **no password field**. You never set a password on someone else's behalf; they choose their own credentials when they accept, and can use a password or sign in with Google.

Choose **Create User** to send it. On success you can go straight to the users list or invite someone else.

{% hint style="info" %}
**An invitation takes a seat as soon as it's sent**, not when it's accepted. This stops you over-committing your plan while several invitations are outstanding. Accepting doesn't change the count — the seat simply moves from "invited" to "active".
{% endhint %}

## What the invitee sees

They receive an email with a link valid for **14 days**. Following it takes them to Umber's hosted sign-up screen, where they set a password or continue with Google, and enter their own name.

The name they enter replaces the one you typed — you're only providing a placeholder so the members list is readable while the invitation is outstanding. If they leave it blank, your version is kept.

Once they've accepted they land straight in your workspace, with the role you chose. Invitees are **not** shown the subscription-plan screen — the workspace already has a plan, and it isn't theirs to choose.

## Invitation states

Until it's accepted, an invitation appears in the **Invitations** section of the users list with one of these labels:

| Label              | Meaning                                 | Holds a seat? |
| ------------------ | --------------------------------------- | ------------- |
| **Invite pending** | Sent, not yet accepted, not yet expired | Yes           |
| **Invite expired** | 14 days elapsed with no response        | No            |
| **Invite revoked** | You withdrew it                         | No            |

A pending invitee's detail page is **read-only for everyone**, including owners. There's nothing meaningful to edit about someone who hasn't joined yet — you can only resend or revoke.

## Resending

Open the invitee from the users list and choose **Resend**.

{% hint style="warning" %}
**Resending invalidates the previous link.** If they later find the older email and click it, it won't work — tell them to use the most recent one.
{% endhint %}

Resending issues a fresh 14-day link. It works even when your workspace is at its seat limit, because the seat is already held by that invitation — you aren't taking a second one.

Use resend for a lapsed invitation too: an expired or revoked entry can be reissued from the same place, though that *does* need a free seat, because the lapsed one gave its seat back.

## Revoking

Choose **Revoke** on a pending invitation to withdraw it. The link stops working immediately, the seat is returned, and the email address is freed so any workspace can invite it.

Revoking is the quickest way to free a seat when you're at your plan's limit and waiting on someone who hasn't responded.

## When an invitation is refused

The invite form reports the specific reason rather than a generic failure.

| Message                                                               | What it means                                    | What to do                                                              |
| --------------------------------------------------------------------- | ------------------------------------------------ | ----------------------------------------------------------------------- |
| This person has already been invited                                  | An invitation is outstanding for that address    | Use **Resend** instead of inviting again                                |
| This person is already a member of your workspace                     | They've already accepted                         | Nothing to do                                                           |
| This person is deactivated. Reactivate them instead                   | They're in your workspace but switched off       | Reactivate them from their detail page                                  |
| This email address is already associated with another Umber workspace | They belong to a different organisation on Umber | See [Workspaces and Members](/umber/concepts/workspaces-and-members.md) |
| You have exceeded the users limit of your plan                        | No seats free                                    | Revoke an unaccepted invitation, deactivate a member, or upgrade        |

In every case nothing is sent and no seat is taken — a refused invitation leaves no trace.

## Running out of seats

The users list shows your seat position beside the **Users** title, turning red when the plan is full. When there are none left, the invite form is replaced by an upgrade prompt.

Three ways to make room, cheapest first:

1. **Revoke an outstanding invitation** — instant, and often the right answer if someone hasn't responded in a fortnight.
2. **Deactivate a member** who no longer needs access. Their seat is returned and their record is kept, so you can reactivate them later. This is allowed even when you're already at the limit.
3. **Upgrade your plan.**

{% hint style="info" %}
Expired and revoked invitations don't consume seats, so you don't need to tidy them up to free capacity — they've already released it.
{% endhint %}

## Related

* [Managing Team Members](/umber/guides/managing-team-members.md) — roles, deactivation, removal, passwords
* [Roles and Permissions](/umber/concepts/roles-and-permissions.md)
* [Workspaces and Members](/umber/concepts/workspaces-and-members.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://umber.gitbook.io/umber/guides/inviting-team-members.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
