# Employee Master

## Overview

The Employee Master sheet is used for creating employee records inside the system. The Excel file is dynamically generated by the backend using the tenant ID, ensuring that all tenant-specific metadata is prefilled correctly.

The template contains exactly three sheets, as defined by the loader:

1. Instructions – User guidance
2. Employee Master – Actual data entry
3. README – Roles – All role codes and names available for this tenant

The system pulls and pre-fills:

* Department Names (tenant-specific)
* Designation Names (linked to departments)
* Roles (from backend role master)

Users fill only the employee details; backend-generated columns must remain empty.

***

## Templates&#x20;

* TEMPLATE – Auto-generated Employee Master
* PREFILLED TEMPLATE – Employee Master with sample rows and dropdowns
* Sample Template: [Employee\_Master Sample Excel](https://docs.google.com/spreadsheets/d/1cNbSmtH7uwqzy-0nVe6Dd9zLwTVmcHgpJRt_tSzdo9M/edit?usp=sharing)

***

## Data Table

<table><thead><tr><th width="247.20703125">Column</th><th>Description</th></tr></thead><tbody><tr><td>User Name</td><td>Employee’s full name (login name)</td></tr><tr><td>Mobile Number</td><td>Must be numeric; used for authentication</td></tr><tr><td>Password</td><td>Optional; if empty backend can auto-generate</td></tr><tr><td>Department Name</td><td>Must match tenant’s department list</td></tr><tr><td>Designation Name</td><td>Must match tenant’s designation list</td></tr><tr><td>Role Names</td><td>Comma-separated list from README – Roles</td></tr><tr><td>Employee Status</td><td>EMPLOYED, SUSPENDED, RETIRED, TERMINATED</td></tr><tr><td>Employee Type</td><td>PERMANENT, CONTRACT, TEMPORARY</td></tr><tr><td>Gender</td><td>Male, Female, Other</td></tr><tr><td>Hierarchy Type</td><td>ADMIN, FIELD, ZONAL</td></tr><tr><td>Boundary Type</td><td>City, Zone, Ward, etc.</td></tr><tr><td>Boundary Code</td><td>Must match Boundary Master</td></tr><tr><td>Assignment From Date</td><td>Required date in YYYY-MM-DD</td></tr><tr><td>Date of Appointment</td><td>Required date in YYYY-MM-DD</td></tr></tbody></table>

Backend columns:

* \_STATUS
* \_STATUS\_CODE
* \_ERROR\_MESSAGE

These are populated after ingestion by the Python processor.

***

## Data Definition

| Column Name          | Mandatory? | Description                 | User Input? | Validation                 |
| -------------------- | ---------- | --------------------------- | ----------- | -------------------------- |
| User Name            | Yes        | Employee login name         | Yes         | Alphabets, spaces          |
| Mobile Number        | Yes        | Contact number              | Yes         | Digits only                |
| Password             | No         | Login password              | Yes         | Free text                  |
| Department Name      | Yes        | Select from prefilled sheet | Dropdown    | Must match                 |
| Designation Name     | Yes        | Select from prefilled sheet | Dropdown    | Must match                 |
| Role Names           | Yes        | Comma separated role names  | Yes         | Must match README – Roles  |
| Employee Status      | No         | Employment status           | Dropdown    | Must match                 |
| Employee Type        | No         | Employment type             | Dropdown    | Must match                 |
| Gender               | No         | Gender                      | Dropdown    | Must match                 |
| Hierarchy Type       | No         | ADMIN/FIELD/ZONAL           | Dropdown    | Must match                 |
| Boundary Type        | No         | Type of boundary            | Dropdown    | Must match                 |
| Boundary Code        | No         | Boundary code               | Yes         | Must match Boundary Master |
| Assignment From Date | Yes        | Effective from date         | Yes         | YYYY-MM-DD                 |
| Date of Appointment  | Yes        | Appointment date            | Yes         | YYYY-MM-DD                 |
| \_STATUS             | Auto       | Backend status              | No          | Protected                  |
| \_STATUS\_CODE       | Auto       | Numeric code                | No          | Protected                  |
| \_ERROR\_MESSAGE     | Auto       | Error from backend          | No          | Protected                  |

***

## Steps to Fill Data

1. Download the Employee Master template (generated dynamically by Tenant ID).
2. Review reference sheets:
   1. README – Roles
   2. Instructions
   3. All dropdowns inside Employee Master\
      (Departments, Designations, Employee Type, Hierarchy Type, Boundary Type, Boundary Code)
3. Fill in the employee details:
   1. User Name
   2. Mobile Number
   3. Password (optional)
4. Select:
   1. Department Name
   2. Designation Name

Backend internally maps these to Department ID and Designation Code.

5. Assign roles:
   1. Refer to README – Roles
   2. Enter only Role Names
   3. Separate multiple roles using commas

Example:

SYSTEM, APPROVER, VIEWER

6. Fill organisational mapping:
   1. Employee Type
   2. Employee Status
   3. Gender
   4. Hierarchy Type
   5. Boundary Type
   6. Boundary Code
7. Fill dates:
   1. Assignment From Date
   2. Date of Appointment\
      Format: YYYY-MM-DD
8. Do NOT fill:
   1. \_STATUS
   2. \_STATUS\_CODE
   3. \_ERROR\_MESSAGE

These are filled by the Python ingestion script.

9. Validate data (Excel validation + backend rules).
10. Upload the file into the Jupyter Notebook loader.

***

## Excel Validation Framework

#### 1. Mandatory Field Validation

Ensures:

* User Name
* Mobile Number
* Department Name
* Designation Name
* Role Names
* Assignment From Date
* Date of Appointment\
  are filled.

***

#### 2. Dropdown Validation

The loader enforces:

* Department Name → must match prefilled list
* Designation Name → must match prefilled list
* Employee Type, Status, Gender, Hierarchy Type → must match dropdown
* Boundary Code → must match allowed boundaries

***

#### 3. Mobile Number Validation

* Digits only
* No characters or symbols

***

#### 4. Date Validation

Format:

YYYY-MM-DD

***

## Sample User-Filled Rows

<table><thead><tr><th>User Name</th><th>Mobile Number</th><th>Dept</th><th width="142.37890625">Designation</th><th>Role Names</th><th>Status</th><th>Type</th><th>Boundary Code</th><th>Assign Date</th><th>Join Date</th></tr></thead><tbody><tr><td>Ramu</td><td>9993999999</td><td>Street Lights</td><td>Superintending Engineer</td><td>SUPERUSER,SYSTEM</td><td>EMPLOYED</td><td>PERMANENT</td><td>statea</td><td>2024-09-05</td><td>2024-06-20</td></tr></tbody></table>

The backend will fill system columns after processing.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.digit.org/complaints-management/deploy/configure/master-data/master-data-templates/employee-master.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
