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

# Invite your team

> Add a second staff member, choose their specialty and access level, and set what they can do.

export const StillStuck = ({topic}) => <div className="ck-callout ck-callout--note" role="note">
    <p className="ck-callout__body">
      <strong>Still stuck{topic ? ` with ${topic}` : ''}?</strong>{' '}
      Check <a href="/platform/help/troubleshooting">Troubleshooting</a> first —
      it covers the failures we see most often. If that does not resolve it,{' '}
      <a href="/platform/help/contact-support">contact support</a> and include
      your workspace name and the time the problem happened, so we can find the
      matching entry in your audit log.
    </p>
  </div>;

export const TaskHeader = ({before, time, after}) => <div className="ck-task">
    {before ? <div className="ck-task__cell">
        <div className="ck-task__title">Before you start</div>
        <p className="ck-task__body">{before}</p>
      </div> : null}

    {time ? <div className="ck-task__cell">
        <div className="ck-task__title">Takes about</div>
        <p className="ck-task__body">{time}</p>
      </div> : null}

    {after ? <div className="ck-task__cell">
        <div className="ck-task__title">When you're done</div>
        <p className="ck-task__body">{after}</p>
      </div> : null}
  </div>;

export const Path = ({steps = []}) => <span className="ck-path">
    {steps.map((s, i) => <span key={i} className="ck-path__step">
        {i > 0 ? <span className="ck-path__sep" aria-hidden="true">
            ›
          </span> : null}
        {s}
      </span>)}
  </span>;

export const Availability = ({editions = ['all'], plans, roles, note}) => {
  const list = editions.includes('all') ? ['clinic', 'pharmacy', 'lims'] : editions;
  return <div className="ck-avail" role="note" aria-label="Feature availability">
      <span className="ck-avail__label">Available in</span>

      {list.map(e => <span key={e} className={`ck-pill ck-pill--${e}`}>
          {EDITION_LABELS[e] || e}
        </span>)}

      {plans ? <span className="ck-avail__label">Plan</span> : null}
      {plans ? <span className="ck-pill ck-pill--plan">{plans}</span> : null}

      {roles ? <span className="ck-avail__label">Who</span> : null}
      {roles ? <span className="ck-pill ck-pill--role">{roles}</span> : null}

      {note ? <span className="ck-avail__note">{note}</span> : null}
    </div>;
};

<Availability editions={['clinic']} plans="Solo and Team" roles="Owner, Manager" note="Each plan caps how many staff seats you may fill." />

Step 8 of the [setup checklist](/practice/get-started).

<Warning>
  This step needs a **second person**. You, as the owner, are already the first staff member — the step stays incomplete until someone else exists. It cannot be ticked by editing your own record.
</Warning>

<Path steps={['Sidebar', 'Settings', 'Staff', 'Invite Staff']} />

<TaskHeader before="The person's name and work email, and a free seat on your plan" time="1 minute for the essentials; longer if you set licences and permissions" after="A team member who can sign in and set their own password" />

## Add a team member

The sheet is titled **Add team member** and runs through five stages — **Profile**, **Specialty**, **Supervisor**, **Permissions**, **Review**.

<Steps>
  <Step title="Enter their details">
    **Set up a profile** takes **First name**, **Last name** and **Email**. Use their real work address — it is where the invitation goes and the address they will sign in with.
  </Step>

  <Step title="Choose their specialty and access level">
    **Specialty** is the profession — **Doctor**, **Nurse**, **Psychologist**, **Receptionist**, **Medical Biller** and dozens more, grouped by category. Search rather than scroll.

    Then choose the access level. Tick **Clinician** ("For team members who treat clients") and pick one tier:

    | Tier                 | What it means                                                       |
    | -------------------- | ------------------------------------------------------------------- |
    | **Basic**            | Schedule and document for their own clients                         |
    | **Billing**          | The above, plus billing                                             |
    | **Full client list** | The above, plus every client's profile and appointments             |
    | **Entire practice**  | The above across the whole practice, plus most reports and settings |

    The administrative roles are separate: **Clinic Manager**, **Clinic Biller** and **Clinic Scheduler**, each with its own description on screen. **Supervisor** is for someone overseeing a pre-licensed clinician.

    <Note>
      Supervisor, biller and scheduler roles carry a **Free** badge on plans where they neither fill a seat nor add to the bill. See [Staff seats](/platform/plans/seats).
    </Note>
  </Step>

  <Step title="Add licence details and supervision">
    The next stage asks "Will \{name} need supervision?" and collects **License number**, **License type**, **Issuing state** and **Expiration date**.

    Fill the licence in now if you can. It is what prints on the signature block of the clinical reports they sign — a report from a provider with no licence on file goes out with no credentials on it.
  </Step>

  <Step title="Set their permissions">
    **Add permissions for \{name}** covers what this person may actually do: **Unlock progress notes**, **Unlock diagnosis and treatment plans**, **Unlock other documents**, **Secure message with clients**, the **ePrescribe** and **eLabs** add-ons, and **Require MFA on login**.

    If the panel is empty, no role was chosen on the previous stage.
  </Step>

  <Step title="Review the cost and send">
    **Changes to your plan** summarises what this person adds to your bill. Select **Send invitation** (the button reads **Adding...**).
  </Step>
</Steps>

## What they receive

They get an email titled **Welcome to \{your clinic} — Set Your Password** with a link to choose their own password. No password is ever sent by email, and the link expires after 72 hours.

Until they use it, the invitation sits under **Pending Invitations** on the **Staff** tab, showing the email, specialty, when it was sent and when it expires.

## Check it worked

* A toast reads "\{First name} has been added to your clinic".
* They appear in **Staff Members** with their **Specialty**, and the seat counter under **Invite Staff** goes up.
* The **Get Started** checklist ticks **Invite a team member**.

## If something goes wrong

<AccordionGroup>
  <Accordion title="'You've used all \{n\} seats on your plan'">
    Your plan's seat cap is full. The banner offers **View plans**; on some plans the invite sheet shows **Staff Limit Reached** instead, with an upgrade button. See [Change your plan](/platform/plans/change-plan) and [Staff seats](/platform/plans/seats).
  </Accordion>

  <Accordion title="'A user with this email already exists'">
    That address already has a ClinikEHR account — possibly in another clinic, possibly already in yours. Check **Staff Members** first. If they belong to another clinic, they can hold both; contact support if the invitation still will not go through.
  </Accordion>

  <Accordion title="They never received the email">
    There is no resend action in the staff list. Cancel the pending invitation and send a fresh one, after checking the address is right and asking them to look in spam.
  </Accordion>

  <Accordion title="The link expired">
    The password link lasts 72 hours. After that, cancel the pending invitation and invite them again.
  </Accordion>

  <Accordion title="They can sign in but cannot see the module they need">
    Two different gates. What someone may *open* is their role's navigation; what they may *do* on that page is their permissions. Start with [Roles](/platform/team/roles), then the permissions stage of their staff record.
  </Accordion>

  <Accordion title="Someone has left">
    Use **Remove Staff** from the row's **Actions** menu. Their clinical records stay — they are part of the client's chart and the audit trail — but their access ends immediately.
  </Accordion>
</AccordionGroup>

<StillStuck topic="inviting staff" />

Fuller detail on invitations, roles and per-person permissions lives in [Invite staff](/platform/team/invite-staff).
