The Templates tool is the configuration hub for structured workflows across the platform. It manages the templates that drive onboarding checklists, performance scorecards, review cycles, email communications, custom fields, and configuration lists. Templates can be duplicated and organised into profiles that bundle onboarding, scorecard, and review templates together for assignment to users.
- Onboarding templates — Define phased onboarding checklists with ordered items; assign to users on hire
- Scorecard templates — Create evaluation criteria for ongoing performance scorecards
- Review templates — Build performance review question sets with area, label, description, and mandatory flags
- Email templates — Manage reusable email templates for automated communications
- Custom fields — Define custom metadata fields for use across resource types
- Config lists — Manage dropdown option lists (e.g. statuses, priorities, types) used throughout the app
- Template profiles — Bundle an onboarding template, scorecard template, and review template into a named profile; assign profiles to users
- Duplication — All template types support one-click duplication for fast iteration
- Assignment protection — Templates cannot be deleted while assigned to active users
The set of template types (the category selector at the top of Settings ▸ Templates) is fixed in code, not data — there is no UI to create a new type. The list lives in TemplateSubTab / TEMPLATE_SUB_TABS (src/routes/settings.tsx) and its labels in TEMPLATE_SUB_LABELS (src/components/admin/admin-page.tsx):
onboarding, client-onboarding, scorecards, reviews, email-templates, email-signatures, custom-fields, config-lists.
Each type is backed by its own tables, worker routes, hooks, and table component, so adding a new type is a code change across roughly six places: schema/migration → settings route types → admin-page label + render → worker routes → hooks → a table component.
What you can create through the UI is:
- Templates within a type (e.g. a new scorecard template), via the table for that type, and
- Items within a template (e.g. scorecard criteria), by expanding a template row.
| Level | View | Create/Edit | Delete |
|---|
| Executive | All | Yes | Yes |
| Head | All | Yes | No |
| Manager | Yes | No | No |
| Lead / Employee | Yes | No | No |
| Param | Type | Description |
|---|
tab | onboarding | scorecards | reviews | email-templates | custom-fields | config-lists | Active template category tab (default: onboarding) |
- Route:
src/routes/templates.tsx / src/routes/templates.lazy.tsx
- Page:
src/components/templates/templates-page.tsx
- API:
worker/routes/templates.ts
| Method | Path | Permission | Description |
|---|
GET | /api/templates/onboarding-templates | view | List onboarding templates with item counts |
GET | /api/templates/onboarding-templates/:id | view | Get template with items grouped by phase |
POST | /api/templates/onboarding-templates | update | Create a template |
PUT | /api/templates/onboarding-templates/:id | update | Update a template |
DELETE | /api/templates/onboarding-templates/:id | manage | Delete a template |
POST | /api/templates/onboarding-templates/:id/duplicate | update | Duplicate a template |
POST | /api/templates/onboarding-templates/:id/items | update | Add an item |
PUT | /api/templates/onboarding-items/:itemId | update | Update an item |
DELETE | /api/templates/onboarding-items/:itemId | manage | Delete an item |
| Method | Path | Permission | Description |
|---|
GET | /api/templates/scorecard-templates | view | List scorecard templates |
GET | /api/templates/scorecard-templates/:id | view | Get template detail |
POST | /api/templates/scorecard-templates | update | Create a template |
PUT | /api/templates/scorecard-templates/:id | update | Update a template |
DELETE | /api/templates/scorecard-templates/:id | manage | Delete a template |
POST | /api/templates/scorecard-templates/:id/duplicate | update | Duplicate a template |
POST | /api/templates/scorecard-templates/:id/items | update | Add an item |
PUT | /api/templates/scorecard-template-items/:itemId | update | Update an item |
DELETE | /api/templates/scorecard-template-items/:itemId | manage | Delete an item |
| Method | Path | Permission | Description |
|---|
GET | /api/templates/review-templates | view | List review templates |
GET | /api/templates/review-templates/:id | view | Get template detail |
POST | /api/templates/review-templates | update | Create a template |
PUT | /api/templates/review-templates/:id | update | Update a template |
DELETE | /api/templates/review-templates/:id | manage | Delete a template |
POST | /api/templates/review-templates/:id/duplicate | update | Duplicate a template |
POST | /api/templates/review-templates/:id/items | update | Add an item |
PUT | /api/templates/review-template-items/:itemId | update | Update an item |
DELETE | /api/templates/review-template-items/:itemId | manage | Delete an item |
| Method | Path | Permission | Description |
|---|
GET | /api/templates/template-profiles | view | List all template profiles |
POST | /api/templates/template-profiles | update | Create a profile |
PUT | /api/templates/template-profiles/:id | update | Update a profile |
DELETE | /api/templates/template-profiles/:id | manage | Delete a profile |
- Onboarding — Uses onboarding templates for new hire checklists
- Scorecards — Uses scorecard templates for employee evaluations
- Performance — Uses review templates for performance review cycles