> ## Documentation Index
> Fetch the complete documentation index at: https://docs.timetracker.in/llms.txt
> Use this file to discover all available pages before exploring further.

# Invite a member to your workspace

> Send an email invite so a teammate can join your TimeTracker workspace, pick their role, copy the invite link, and know how long the invite stays valid.

Open **Settings → Team Members**, click **Invite teammate**, enter their email, pick a role, and send. They get a link, sign in, and join.

An invite is valid for **seven days**.

## When to invite versus add directly

| Situation                                                          | Use                                          |
| ------------------------------------------------------------------ | -------------------------------------------- |
| The person will sign in and use TimeTracker                        | **Invite teammate**                          |
| You need them on the roster now, with rates and employment details | **Add member**                               |
| They have no email, or will never sign in                          | **Add member**                               |
| They are a client contact                                          | Neither – invite them from the client record |

See [add a member directly](/team/add-a-member-directly) and [invite a client contact](/portal/invite-a-client-contact).

## How to invite someone

<Steps>
  <Step title="Open the roster">
    Go to **Settings → Team Members**.
  </Step>

  <Step title="Click Invite teammate">
    The button sits in the page header. The dialog is titled **Invite a teammate** with the text `Send an email invite or share a secure link. They'll land straight in this workspace.`
  </Step>

  <Step title="Enter their email">
    Type it in the **Email** field. The placeholder shows the expected shape, `teammate@company.com`.
  </Step>

  <Step title="Pick a role">
    Choose from the **Role** dropdown. It defaults to **Member**.
  </Step>

  <Step title="Send">
    Click **Send invite**. It reads **Sending…** while it works, then a toast confirms `Invite sent to jonas@northwind.studio.`
  </Step>

  <Step title="Share the link yourself, if you prefer">
    A **Latest invite link** block appears. Click **Copy invite link** to copy it, then send it however you like.
  </Step>
</Steps>

## Options and settings

The invite dialog is deliberately short. It has exactly two fields.

| Control                | What it does                                                    |
| ---------------------- | --------------------------------------------------------------- |
| **Email**              | Where the invite goes. Must be a valid address.                 |
| **Role**               | The role they get on joining. Defaults to **Member**.           |
| **Send invite**        | Creates the invite and emails it.                               |
| **Copy invite link**   | Copies the most recent invite URL. Disabled until you send one. |
| **Latest invite link** | Shows the URL of the invite you just sent.                      |

There is no group picker, no expiry picker and no custom message in the invite dialog. Set groups and employment details on their record after they join, or use **Add member** instead.

## Which roles you can invite

| Role                        | Invitable here |
| --------------------------- | -------------- |
| **Admin**                   | Yes            |
| **Project Manager**         | Yes            |
| **Finance**                 | Yes            |
| **Member**                  | Yes            |
| **Contractor**              | Yes            |
| Any custom role you created | Yes            |
| **Owner**                   | No             |
| **Client**                  | No             |

<Warning>
  **Owner** is never available at invite time. Ownership moves only by transferring it from the current owner.

  **Client** is excluded because a portal contact must belong to a client company. Invite them from that company's record instead – a client invite with no company is refused.
</Warning>

## What happens next

1. The invite appears on the roster with status **Pending**.
2. It counts as a seat straight away, because an open invite is access.
3. The recipient opens the link and sees your workspace name with `{inviter} invited you to join the group and collaborate on projects in {workspace}.`
4. If they are signed in they click **Accept & Join {workspace}**. If not, they click **Continue to Join** and sign in or create an account first.
5. On accepting, they become a member with the role you chose.

<Note>
  The link authorises the join. Whoever holds it can accept, even if they sign in with a different email address than the one you invited. Treat an invite link like a password, and revoke it if it goes to the wrong place.
</Note>

## The invite link expires

An invite lasts seven days. After that the link stops working and the recipient sees **Invitation Expired or Revoked** with the text `This invitation link is no longer valid. Please reach out to an admin of the workspace to request a fresh invite.`

The same card is shown for a revoked or already-accepted invite, so an outsider cannot learn which happened.

To fix it, **Resend invite** from the roster. That re-arms the same row with a new link and a fresh seven days, and the old link stops working.

## Example

Maya Ellis is adding Jonas Bergman to Northwind Studio.

<Steps>
  <Step title="Invite">
    Maya opens **Settings → Team Members**, clicks **Invite teammate**, enters `jonas@northwind.studio` and leaves the role on **Member**.
  </Step>

  <Step title="Jonas accepts">
    Jonas gets the email, clicks through, signs in, and clicks **Accept & Join Northwind Studio**.
  </Step>

  <Step title="Maya finishes the setup">
    On Jonas's record, Maya sets his job title, adds him to the **Delivery** group, and sets his billable rate to $120/hour and cost rate to $60/hour.
  </Step>
</Steps>

## Permissions

| Action                         | Capability      | Roles that hold it by default |
| ------------------------------ | --------------- | ----------------------------- |
| Send an invite                 | `member.invite` | Owner, Admin, Project Manager |
| Change a pending invite's role | `member.invite` | Owner, Admin, Project Manager |
| Resend an invite               | `member.invite` | Owner, Admin, Project Manager |
| Revoke an invite               | `invite.revoke` | Owner, Admin, Project Manager |

The **Invite teammate** button is hidden if you do not hold `member.invite`.

## Seats

An invite uses a seat the moment you send it.

<Warning>
  On the Free plan a workspace includes **3 people in total** – staff, portal contacts and outstanding invitations combined. When you are at the cap, the button opens an upgrade prompt instead of the invite dialog.

  The server message names the numbers: `the Free plan includes 3 people, and this workspace already has 3 (2 people plus 1 pending invite). Upgrade to Pro to add more.`
</Warning>

Accepting an invite is never blocked by the seat cap. Once an invite is out, the person can always join.

See [seats and billing](/team/seats-and-billing).

## Common questions

<AccordionGroup>
  <Accordion title="How long is an invite valid?">
    Seven days. Resend it to start a fresh seven days with a new link.
  </Accordion>

  <Accordion title="Can I change the role after sending?">
    Yes, while it is still pending. Use **Change role** on the invite's three-dot menu. Their existing link keeps working.
  </Accordion>

  <Accordion title="Can I send the link myself instead of emailing?">
    Yes. Click **Copy invite link** and share it however you like. It is the same link the email carries.
  </Accordion>

  <Accordion title="Can I invite the same person twice?">
    Nothing stops a second invite being created from this dialog. If they are already on the roster, use **Resend invite** on their row instead of creating a new one.
  </Accordion>

  <Accordion title="Can I invite someone as an Owner?">
    No. Ownership only moves by transfer, from the member record of the person taking it.
  </Accordion>

  <Accordion title="Can I set their groups and rates in the invite?">
    Not in the invite dialog. Either set them on the record after they join, or use **Add member**, which has fields for both.
  </Accordion>
</AccordionGroup>

## Troubleshooting

| Problem                                              | Cause                                | Fix                                           |
| ---------------------------------------------------- | ------------------------------------ | --------------------------------------------- |
| No **Invite teammate** button                        | You do not hold `member.invite`      | Ask an owner or admin                         |
| The invite is refused                                | You are at the Free seat cap         | Upgrade to Pro, or free a seat                |
| `Enter a valid email address.`                       | The address is malformed             | Check for typos and stray spaces              |
| The recipient sees **Invitation Expired or Revoked** | Seven days passed, or it was revoked | Use **Resend invite**                         |
| They accepted with a different email                 | The link authorises the join         | Revoke and re-invite if that is wrong         |
| The invite email never arrived                       | Delivery problem                     | Use **Copy invite link** and send it directly |

## Related guides

<CardGroup cols={2}>
  <Card title="Add a member directly" icon="user-plus" href="/team/add-a-member-directly">
    Put someone on the roster without an invite.
  </Card>

  <Card title="Pending invitations" icon="clock" href="/team/pending-invitations">
    Resend, change role, or revoke.
  </Card>

  <Card title="Change someone's role" icon="shield" href="/team/change-someones-role">
    Move a person between roles.
  </Card>

  <Card title="Seats and billing" icon="credit-card" href="/team/seats-and-billing">
    Why an invite uses a seat.
  </Card>

  <Card title="Roles and capabilities" icon="lock" href="/concepts/roles-and-capabilities">
    What each role can do.
  </Card>

  <Card title="Invite a client contact" icon="briefcase" href="/portal/invite-a-client-contact">
    Portal contacts work differently.
  </Card>
</CardGroup>
