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

# Team management

> Invite teammates to your LaneSync workspace, assign admin or member roles, and manage access.

LaneSync workspaces map to your GitHub organization. Invite teammates so they can view milestones, approve evidence, and collaborate on releases — without sharing a single login.

## Roles

| Capability                                | Admin | Member |
| ----------------------------------------- | :---: | :----: |
| View dashboard and milestone details      |  Yes  |   Yes  |
| Approve evidence (when eligible reviewer) |  Yes  |   Yes  |
| Start work / cut release branch           |  Yes  |   Yes  |
| Invite teammates                          |  Yes  |   No   |
| Change member roles                       |  Yes  |   No   |
| Remove members                            |  Yes  |   No   |
| Request Pro plan upgrade                  |  Yes  |   No   |
| Install or reconfigure GitHub App         |  Yes  |   No   |

<Note>
  The **first user to install** the GitHub App for an org or personal account becomes **admin**. Every subsequent teammate must accept an invite — signing in with GitHub alone is not enough. Every workspace must keep at least one admin — you cannot demote or remove the last admin without promoting someone else first.
</Note>

## Invite a teammate

<Steps>
  <Step title="Open Team settings">
    Go to [lanesync.dev](https://lanesync.dev) → **Settings** → **Team** tab. Only admins see the **Invite Member** button.
  </Step>

  <Step title="Generate an invite link">
    Click **Invite Member**. LaneSync calls `POST /api/team/invite` and returns an HMAC-signed link:

    ```
    https://lanesync.dev/settings?join=<token>
    ```

    Copy the link and send it to your teammate (Slack, email, etc.). New invites default to the **member** role.
  </Step>

  <Step title="Teammate accepts the invite">
    Your teammate signs in to LaneSync with GitHub OAuth and opens the invite link. LaneSync verifies the signature and expiry, then adds them to the workspace.

    Their session switches to the invited workspace automatically.
  </Step>
</Steps>

<Warning>
  Invite links expire after **7 days**. Generate a fresh link if the previous one expired or was already used.
</Warning>

## Change a member's role

1. Go to **Settings → Team**
2. Find the member in the table
3. Click **Promote to Admin** (shield-plus icon) or **Demote to Member** (shield-minus icon)

LaneSync calls `PATCH /api/team/:userId/role` with `{ "role": "admin" }` or `{ "role": "member" }`.

<Tip>
  Promote a backup admin before demoting yourself or removing another admin. LaneSync blocks changes that would leave the workspace with zero admins.
</Tip>

## Remove a member

1. Go to **Settings → Team**
2. Click the **Remove** (trash) icon next to the member
3. Confirm in the dialog

LaneSync calls `DELETE /api/team/:userId`. Admins cannot remove themselves — delete the workspace or transfer admin first.

## Troubleshooting

<AccordionGroup>
  <Accordion title="Invalid or expired invite link">
    Ask an admin to generate a new invite. Links expire 7 days after creation.
  </Accordion>

  <Accordion title="Cannot demote the last admin">
    Promote another member to admin first, then demote the original admin.
  </Accordion>

  <Accordion title="Teammate cannot see the workspace">
    Confirm they opened the full invite URL while signed in with the correct GitHub account. They must accept the invite — merely signing in is not enough.
  </Accordion>
</AccordionGroup>

## Related

<CardGroup cols={2}>
  <Card title="Dashboard overview" icon="layout-dashboard" href="/dashboard/overview">
    What teammates see after joining.
  </Card>

  <Card title="Billing and plans" icon="credit-card" href="/guides/billing-and-plans">
    Pro upgrades and workspace limits — admin only.
  </Card>
</CardGroup>
