---
title: "Add Employee"
method: POST
path: "/manager/employees"
tags: ["manager"]
---

# Add Employee

`POST /manager/employees`

Add a new employee by creating them in Clerk and sending an organization invitation.
Takes technician data from ServiceTitan and creates a Clerk user.

## Request body

- AddEmployeeRequest
  - `id` string, nullable
  - `email` string, required
  - `phone_number` string, required
  - `login_name` string, required
  - `person_type` 'technician' | 'admin'
  - `trades` string[]

## Response `200`

Successful Response

- AddEmployeeResponse
  - `message` string, required
  - `clerk_user_id` string, required
  - `employee_id` string, required
  - `twilio_phone_number` string, nullable
  - `trade_email_sync_failed` boolean

## Other responses

- `404` — Not found
- `422` — Validation Error

## Changes

- **2026-09-09** `a786fa3c27df` — 3 info
  - the request property `id` became optional
  - request property `id` list-of-types was widened by adding types `null` to media type `application/json`
  - added the optional property `trade_email_sync_failed` to the response with the `200` status

[Change history](https://skmtc.dev/noso/apis/crucible-backend-api/changes/manager/employees/post.md)

---

[API](https://skmtc.dev/noso/apis/crucible-backend-api.md) · [All operations](https://skmtc.dev/noso/apis/crucible-backend-api/llms.txt) · [OpenAPI document](https://skmtc.dev/noso/apis/crucible-backend-api/revisions/c14a8fc770d0?raw)
