# User Invitations

> Invite users to the app and walk through the account activation flow

## Overview

New users are added by an admin through the organization panel. When a user is created, an invitation email is sent automatically with a token-based activation link. The invited user clicks the link, sets their name and password, and their account is ready.

## Create and Invite a User

1. Go to **My Organization** in the sidebar.
2. Click **Create User**.
3. Fill in the required fields:
   - **Email** — the user's work email address.
   - **Role** — Admin, Manager, or User.
   - **Manager** — assign a reporting manager (establishes the team relationship).
4. Click **Save**.

The invitation email is sent immediately after saving.

![Create User form showing the profile tab with email field](/assets/images/docs/invite-create-user.png)
*Create a new user from the My Organization page*

## Invitation Email

The invited user receives an email with an activation link. The link contains a unique token and expires after a set period.

In local development, emails are caught by Mailpit at [http://localhost:8025](http://localhost:8025) — no real emails are sent.

![Invitation email in Mailpit showing the activation link](/assets/images/docs/invite-email.png)
*Invitation email as seen in Mailpit*

> **Tip:** If an invitation email doesn't appear in Mailpit, make sure the Symfony Messenger async transport is running: `php bin/console messenger:consume async`.

## Accept the Invitation

When the user clicks the activation link, they're taken to a registration form:

1. Enter **First name** and **Last name**.
2. Set a **Password**.
3. Optionally enter **Birth date** (used for the birthday section on the dashboard).
4. Click **Activate**.

The account is now active and the user can log in.

![Account activation form with fields for name, date of birth, and password](/assets/images/docs/invite-accept.png)
*The account activation form*

## After Activation

Once activated, the user should:

- **Complete their profile** — set working days, contract start date, and profile image.
- **Connect Slack** — enter their Slack Member ID under Connected Services to receive personal notifications.
- **Subscribe to iCal** — copy the calendar feed URL for leave request visibility in their calendar app.

## Resend or Reset

If the invitation email was lost or expired:

1. Go to **My Organization**.
2. Find the user and open their detail page.
3. Click **Reset Password**.

This sends a new activation email with a fresh token. The process is the same as the original invitation — the user clicks the link and sets their password.

> **Tip:** The Reset Password button works for both un-activated accounts (resends the invitation) and active accounts (sends a password reset).

