Documentation of JSON-based endpoints of Peopleware API. Within each listed endpoint, you can click on the green box named response, which contains 200 and a description, to see the fields in the API response. Furthermore, you can click on each endpoint on the top left corner, showing the HTTP request method, to see a full URL, which includes the selected endpoint. Beware that any endpoint will return a 404 response if no data can be found, e.g. when there is no data at the requested point in time.
⚠️ We will soon be hosting a new API under api.peopleware.com. The current functionality is already available under legacy-api.peopleware.com.
To avoid disruption of your service please change the request URL in your code accordingly.
i.e.
From
https://api.peopleware.com/v1/planning_units/1001
to
https://legacy-api.peopleware.com/v1/planning_units/1001
Get absences in a time range from level plan or specified level.
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| level | string (level) Enum: "plan" "wishes" "alternative_wishes" "absence_wishes" "final" "time_recording" "correction" "acd" "availabilities" "on_call" "productivity" "backup" "backup_version_2" "backup_version_3" "overtime" |
| absence_types | string |
| display | string |
{- "start_time": "2019-08-24T14:15:22Z",
- "end_time": "2019-08-24T14:15:22Z",
- "planning_unit_id": 0,
- "employee_id": 0,
- "activity_id": 0,
- "activity_name": "string",
- "activity_name_short": "string"
}Get absences of an employee in a time range from level plan or specified level.
| employee_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| level | string (level) Enum: "plan" "wishes" "alternative_wishes" "absence_wishes" "final" "time_recording" "correction" "acd" "availabilities" "on_call" "productivity" "backup" "backup_version_2" "backup_version_3" "overtime" |
| absence_types | string |
| display | string |
{- "start_time": "2019-08-24T14:15:22Z",
- "end_time": "2019-08-24T14:15:22Z",
- "planning_unit_id": 0,
- "employee_id": 0,
- "activity_id": 0,
- "activity_name": "string",
- "activity_name_short": "string"
}Get absences of all planning unit members in a time range from level plan or specified level.
| planning_unit_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| level | string (level) Enum: "plan" "wishes" "alternative_wishes" "absence_wishes" "final" "time_recording" "correction" "acd" "availabilities" "on_call" "productivity" "backup" "backup_version_2" "backup_version_3" "overtime" |
| absence_types | string |
| display | string |
{- "start_time": "2019-08-24T14:15:22Z",
- "end_time": "2019-08-24T14:15:22Z",
- "planning_unit_id": 0,
- "employee_id": 0,
- "activity_id": 0,
- "activity_name": "string",
- "activity_name_short": "string"
}{- "account_group_id": 0,
- "account_category_id": 0,
- "deleted": true,
- "description": "string",
- "account_id": 0,
- "name": "string",
- "cost_measure_id": 0,
- "name_short": "string"
}Get an account by ID.
| account_id required | integer <int32> |
| display | string |
{- "account_group_id": 0,
- "account_category_id": 0,
- "deleted": true,
- "description": "string",
- "account_id": 0,
- "name": "string",
- "cost_measure_id": 0,
- "name_short": "string"
}Get subtotal values for a specific account. This returns account balances for each booking in the given date range.
| account_ids required | string |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| cost_center | string |
| planning_unit_id | integer <int32> |
| zeros | boolean |
| include_planning_units | boolean |
| include_source | boolean |
| with_most_recent | boolean |
| display | string |
{- "account_id": 0,
- "account_value": 0.1,
- "cost_center_id": 0,
- "employee_id": 0,
- "time": "14:15:22Z",
- "planning_unit_id": 0,
- "source": "string"
}A staff requirements calculation is the process of determining the number of employees needed to handle a forecasted workload. Staff requirements is the input to the scheduling process. You cannot optimize schedules without staff requirements.
A staff requirement is the number of agents that need to be scheduled to meet the service levels during an interval of 15 minutes.
Example: To reach their service level (e.g. 80% of calls answered within 20 seconds), workforce planners need to calculate how many agents they need to schedule for each 15-minute interval at any given time. The number depends on the forecasted volume of calls and average handle time of each call.
You can use this endpoint to import the staff requirements for an activity in a planning unit on a particular day.
To create or update Staff Requirements for a specific activity, send an array of interval data in JSON format in the request body.
Example for a PUT request body:
{
"data": [0.0, 0.0, 0.0, 0.0, 1.0, 3.5, /* ... */ 10.0, 2.0, 0.0]
}
| Name | Type | Description |
|---|---|---|
| Data | Array of numbers | The array must either contain 96, 48, or 24 items, each representing an interval of 15 minutes, 30 minutes or 60 minutes, respectively. The interval times are interpreted in the timezone of the Planning Unit. Example: if the planning unit has a time zone offset of +01:00, the first interval describes the requirements from 00:00:00+01:00 to 00:15:00+01:00 |
| planning_unit_id required | integer Specific Planning Unit ID |
| date required | string <date> Date of the requirements |
| activity_id required | integer Specific Activity ID |
required | Array of numbers or Array of numbers or Array of numbers |
{- "data": [
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0
]
}{- "errors": [
- {
- "status": "string",
- "title": "string",
- "message": "string"
}
]
}Get planning unit activities by date and planning unit ID
| planning_unit_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| display | string |
{- "activity_id": 0,
- "cost_center_id": 0,
- "end_date": "2019-08-24",
- "planning_unit_id": 0,
- "start_date": "2019-08-24"
}Get all skills for an activity by activity ID
| activity_id required | integer <int32> |
| display | string |
{- "activity_id": 0,
- "activities_skill_id": 0,
- "skill_id": 0,
- "weight": 0
}Get all external activities for an activity by activity ID
| activity_id required | integer <int32> |
| display | string |
{- "activity_id": 0,
- "classification": 0,
- "external_activity_id": 0,
- "external_system_id": 0,
- "activities_external_id": 0
}Get one attribute
| attribute_id required | integer <int32> |
| display | string |
{- "assignable_to": [
- "employee"
], - "color": 0,
- "deleted": true,
- "value_range_fixed": true,
- "attribute_id": 0,
- "name": "string",
- "type": "string"
}Get attribute values for employees or other resources at specific dates
| attribute_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| type | string |
| length | integer <int32> |
| display | string |
{- "attribute_id": 0,
- "employee_id": 0,
- "end_date": "2019-08-24",
- "attribute_value_id": 0,
- "priority": 0,
- "start_date": "2019-08-24",
- "value": "string"
}GET https://legacy-api.peopleware.com/v1/employees/1008/attribute_values
Status 200
{
"data": [
{
"attribute_value_id": 1157,
"employee_id": 1008,
"attribute_id": 1002,
"priority": 1,
"value": 34,
"start_date": "2022-12-01",
"end_date": "2022-12-13"
}
]
}
| employee_id required | number Specific Employee ID |
{- "data": [
- {
- "attribute_value_id": 0,
- "attribute_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "priority": 0,
- "value": "string",
- "employee_id": 0
}
]
}POST https://legacy-api.peopleware.com/v1/employees/1008/attribute_values
{
"data": {
"employee_id": 1008,
"attribute_id": 1001,
"priority": 1,
"value": 34,
"type": "number",
"start_date": "2022-12-01",
"end_date": "2022-12-21"
}
}
The type in the payload can be one of the following: text, number, time,
date or boolean
Status 201
{
"data": {
"attribute_value_id": 1157,
"employee_id": 1008,
"attribute_id": 1001,
"priority": 1,
"value": 34,
"start_date": "2022-12-01",
"end_date": "2022-12-21"
}
}
| employee_id required | number Specific Employee ID |
required | object non-empty |
{- "data": {
- "attribute_id": 0,
- "employee_id": 0,
- "value": "string",
- "type": "text",
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "priority": 0
}
}{- "data": {
- "attribute_value_id": 0,
- "attribute_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "priority": 0,
- "value": "string",
- "employee_id": 0
}
}PATCH https://legacy-api.peopleware.com/v1/employees/1008/attribute_values/1157
{
"data": {
"priority": 1,
"value": 34,
"start_date": "2022-12-01",
"end_date": "2022-12-21"
}
}
The data type of the value field in the payload depends on the Attribute
assigned to the Attribute Value being updated.
Status 200
{
"data": {
"attribute_value_id": 1157,
"employee_id": 1008,
"attribute_id": 1001,
"priority": 1,
"value": 34,
"start_date": "2022-12-01",
"end_date": "2022-12-21"
}
}
| employee_id required | number Specific Employee ID |
| attribute_value_id required | number Specific Attribute Value ID |
required | object non-empty |
{- "data": {
- "value": "string",
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "priority": 0
}
}{- "data": {
- "attribute_value_id": 0,
- "attribute_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "priority": 0,
- "value": "string",
- "employee_id": 0
}
}DELETE https://legacy-api.peopleware.com/v1/employees/1008/attribute_values/1157
Status 204
| employee_id required | number Specific Employee ID |
| attribute_value_id required | number Specific Attribute Value ID |
{- "errors": [
- {
- "status": "string",
- "title": "string",
- "message": "string"
}
]
}Get attribute values for one employee
| employee_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| display | string |
{- "attribute_id": 0,
- "employee_id": 0,
- "end_date": "2019-08-24",
- "attribute_value_id": 0,
- "priority": 0,
- "start_date": "2019-08-24",
- "value": "string"
}Availabilities define at which times an employee can or cannot be scheduled. Availabilities ensure that the employee is only scheduled during their availability slot. If no availability is set for an employee, the employee is considered available at any time within your business hours.
Peopleware API allows you to create, update or delete Availabilities.
To update Availabilities, you have to include all Availability slots of a given day in the request. This will replace the current Availabilities for an employee on a specific day.
To delete a part of an employee's Availabilities, include the Availability slots that you don’t want to delete. To delete all Availabilities, specify an empty array.
Note: All timestamps are interpreted in the time zone of the planning unit that the employee belongs to.
To create or update Availabilities, the employee must belong to the planning unit on this day. You need write permissions for the planning unit and the default present activity with ID 1.
To create or update Availabilities for an employee, send all the Availability slots in JSON format in the request body.
Example of a PUT request body:
{
"data": {
"employee_id": 1234,
"booking_date": "2022-08-12",
"items": [
{
"planning_unit_id": 1001,
"start_time": "2022-08-12T10:30:00Z",
"end_time": "2022-08-12T15:00:00Z"
},
{
"planning_unit_id": 1001,
"start_time": "2022-08-12T15:30:00Z",
"end_time": "2022-08-12T18:00:00Z"
}
]
}
}
Ensure that your input data is semantically correct. The server might reject time conflicts between the given availability slots or write them in an unintended way.
| Name | Type | Description |
|---|---|---|
| employee_id | Integer | Unique identifier for the Employee |
| booking_date | String | The date that the Employee is scheduled to be available, e.g. "2023-12-02" |
| items | Array | An array of Availability slots |
| Name | Type | Description |
|---|---|---|
| planning_unit_id | Integer | Unique identifier for the planning unit where the Availabilities should be booked |
| start_time | String | Start time of the Availability slot |
| end_time | String | End time of the Availability slot |
To check the updated availabilities, you can go to Plan > Schedules or Plan > Shift Center and select the availability level.
required | object |
{- "data": {
- "employee_id": 0,
- "booking_date": "2019-08-24",
- "items": [
- {
- "start_time": "2019-08-24T14:15:22Z",
- "end_time": "2019-08-24T14:15:22Z",
- "planning_unit_id": 0
}
]
}
}{- "errors": [
- {
- "status": "string",
- "title": "string",
- "message": "string"
}
]
}GET https://legacy-api.peopleware.com/v1/employees/1008/contracts/
Status 200
{
"data": [
{
"employees_contract_id": 1157,
"employee_id": 1008,
"contract_id": 1007,
"start_date": "2022-12-01",
"end_date": "2022-12-13"
}
]
}
| employee_id required | number Specific Employee ID |
{- "data": [
- {
- "employees_contract_id": 0,
- "employee_id": 0,
- "contract_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
]
}POST https://legacy-api.peopleware.com/v1/employees/1008/contracts
{
"data": {
"contract_id": 1007,
"start_date": "2022-12-01",
"end_date": "2022-12-21"
}
}
Status 201
{
"data": {
"employees_contract_id": 1001,
"employee_id": 1008,
"contract_id": 1007,
"start_date": "2022-12-01",
"end_date": "2022-12-21"
}
}
| employee_id required | number Specific Employee ID |
required | object non-empty |
{- "data": {
- "contract_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
}{- "data": {
- "employees_contract_id": 0,
- "employee_id": 0,
- "contract_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
}PATCH https://legacy-api.peopleware.com/v1/employees/1008/contracts/1001
{
"data": {
"start_date": "2021-02-01"
}
}
Status 200
{
"data": {
"employees_contract_id": 1001,
"employee_id": 1008,
"contract_id": 1007,
"start_date": "2021-02-01",
"end_date": "2022-12-21"
}
}
| employee_id required | number Specific Employee ID |
| employees_contract_id required | number Specific Employee Contract ID |
required | object non-empty |
{- "data": {
- "contract_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
}{- "data": {
- "employees_contract_id": 0,
- "employee_id": 0,
- "contract_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
}Delete the assigned Contract of an Employee
DELETE https://legacy-api.peopleware.com/v1/employees/1008/contracts/1001
Status 204
| employee_id required | number Specific Employee ID |
| employees_contract_id required | number Specific Employee Contract ID |
{- "errors": [
- {
- "status": "string",
- "title": "string",
- "message": "string"
}
]
}Get employee contracts by date and employee ID
| employee_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| display | string |
{- "contract_id": 0,
- "employee_id": 0,
- "end_date": "2019-08-24",
- "start_date": "2019-08-24"
}Get employee contracts by date and planning unit ID
| planning_unit_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| display | string |
{- "contract_id": 0,
- "employee_id": 0,
- "end_date": "2019-08-24",
- "start_date": "2019-08-24"
}{- "deleted": true,
- "employment_type": "string",
- "color": 0,
- "contract_id": 0,
- "name": "string",
- "name_short": "string",
- "working_amount": [
- {
- "per_day": [
- {
- "minimum": 0,
- "target": 0,
- "maximum": 0
}
], - "per_week": [
- {
- "minimum": 0,
- "target": 0,
- "maximum": 0
}
], - "per_month": [
- {
- "minimum": 0,
- "target": 0,
- "maximum": 0
}
], - "per_year": [
- {
- "minimum": 0,
- "target": 0,
- "maximum": 0
}
]
}
], - "working_hours": [
- {
- "monday": 0,
- "tuesday": 0,
- "wednesday": 0,
- "thursday": 0,
- "friday": 0,
- "saturday": 0,
- "sunday": 0
}
], - "working_days_per_week": 0.1
}Get a contract by ID.
| contract_id required | integer <int32> |
| display | string |
{- "deleted": true,
- "employment_type": "string",
- "color": 0,
- "contract_id": 0,
- "name": "string",
- "name_short": "string",
- "working_amount": [
- {
- "per_day": [
- {
- "minimum": 0,
- "target": 0,
- "maximum": 0
}
], - "per_week": [
- {
- "minimum": 0,
- "target": 0,
- "maximum": 0
}
], - "per_month": [
- {
- "minimum": 0,
- "target": 0,
- "maximum": 0
}
], - "per_year": [
- {
- "minimum": 0,
- "target": 0,
- "maximum": 0
}
]
}
], - "working_hours": [
- {
- "monday": 0,
- "tuesday": 0,
- "wednesday": 0,
- "thursday": 0,
- "friday": 0,
- "saturday": 0,
- "sunday": 0
}
], - "working_days_per_week": 0.1
}Get current address for an employee by employee ID
| employee_id required | integer <int32> |
| display | string |
{- "city": "string",
- "country": "string",
- "email": "string",
- "email_alt": "string",
- "employee_id": 0,
- "employees_address_id": 0,
- "end_date": "2019-08-24",
- "first_name": "string",
- "last_name": "string",
- "marital_status": "string",
- "middle_name": "string",
- "phone": "string",
- "phone_alt": "string",
- "start_date": "2019-08-24",
- "street": "string",
- "telefax": "string",
- "title": "string",
- "zipcode": "string"
}PATCH https://legacy-api.peopleware.com/v1/employee_current_addresses/1001
{
"data": {
"first_name": "John",
"last_name": "Doe"
}
}
Status 200
{
"data": {
"employees_address_id": 1200,
"employee_id": 1001,
"start_date": "2022-01-01",
"end_date": "4000-01-01",
"title": "none",
"first_name": "John",
"middle_name": "",
"last_name": "Doe",
"street": "",
"zipcode": "",
"city": "",
"phone": "",
"phone_alt": "",
"telefax": "",
"email": "john@doe.com",
"email_alt": "",
"country": "USA",
"marital_status": "unknown"
}
}
| employee_id required | number Specific Employee ID |
required | object non-empty |
{- "data": {
- "title": "none",
- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "country": "string"
}
}{- "data": {
- "employees_address_id": 0,
- "employee_id": 0,
- "title": "string",
- "first_name": "string",
- "last_name": "string",
- "middle_name": "string",
- "street": "string",
- "zipcode": "string",
- "city": "string",
- "phone": "string",
- "phone_alt": "string",
- "telefax": "string",
- "email": "string",
- "email_alt": "string",
- "marital_status": "string",
- "country": "string",
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
}| Name | Type | Description |
|---|---|---|
| employees_address_id | Integer | The unique identifier of an Employee Address |
| employee_id | Integer | The unique identifier of the related Employee |
| start_date | String | ISO8601 formatted date |
| end_date | String | ISO8601 formatted date |
| title | String | Allowed values are: none, company, mister, misses or miss |
| middle_name | String | – |
| first_name | String | Is referring to the name of the Employee and first name of the User |
| last_name | String | Is referring to the name of the Employee and last name of the User |
| street | String | – |
| zipcode | String | – |
| city | String | – |
| phone | String | – |
| phone_alt | String | – |
| telefax | String | – |
| String | Is referring to the login e-mail of the User | |
| email_alt | String | – |
| country | String | – |
| marital_status | String | Allowed values are: unknown, single, married, widowed or divorced |
| display | string |
{- "city": "string",
- "country": "string",
- "email": "string",
- "email_alt": "string",
- "employee_id": 0,
- "employees_address_id": 0,
- "end_date": "2019-08-24",
- "first_name": "string",
- "last_name": "string",
- "marital_status": "string",
- "middle_name": "string",
- "phone": "string",
- "phone_alt": "string",
- "start_date": "2019-08-24",
- "street": "string",
- "telefax": "string",
- "title": "string",
- "zipcode": "string"
}{- "deleted": true,
- "description": "string",
- "events": [
- {
- "curve_event_type_id": 0,
- "start_time": "2019-08-24T14:15:22Z",
- "end_time": "2019-08-24T14:15:22Z"
}
], - "formulas": [
- {
- "curve_value_type_id": 0,
- "formula": "string"
}
], - "curve_id": 0,
- "interval": 0,
- "is_active": true,
- "is_absence": true,
- "name": "string",
- "name_short": "string",
- "parent_curve_id": 0,
- "time_zone_id": 0
}Get a queue by ID.
| curve_id required | integer <int32> |
| display | string |
{- "deleted": true,
- "description": "string",
- "events": [
- {
- "curve_event_type_id": 0,
- "start_time": "2019-08-24T14:15:22Z",
- "end_time": "2019-08-24T14:15:22Z"
}
], - "formulas": [
- {
- "curve_value_type_id": 0,
- "formula": "string"
}
], - "curve_id": 0,
- "interval": 0,
- "is_active": true,
- "is_absence": true,
- "name": "string",
- "name_short": "string",
- "parent_curve_id": 0,
- "time_zone_id": 0
}Get queue values by date and queue ID
| curve_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| version_ids | string |
| zeros | boolean |
| display | string |
{- "curve_event_type_id": 0,
- "curve_id": 0,
- "curve_value_type_id": 0,
- "curve_version_id": 0,
- "date": "2019-08-24",
- "raster": 0,
- "values": [
- 0.1
]
}Get queue values by date, queue ID and queue value type ID
| curve_id required | integer <int32> |
| curve_value_type_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| version_ids | string |
| zeros | boolean |
| display | string |
{- "curve_event_type_id": 0,
- "curve_id": 0,
- "curve_value_type_id": 0,
- "curve_version_id": 0,
- "date": "2019-08-24",
- "raster": 0,
- "values": [
- 0.1
]
}Get detailed queue values by date and queue ID
| curve_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| version_ids | string |
| zeros | boolean |
| display | string |
{- "curve_event_type_id": 0,
- "curve_id": 0,
- "curve_value_type_id": 0,
- "curve_version_id": 0,
- "date": "2019-08-24",
- "interval_start": 0,
- "interval_end": 0,
- "value": 0.1
}Get detailed queue values by date, queue ID and queue value type ID
| curve_id required | integer <int32> |
| curve_value_type_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| version_ids | string |
| zeros | boolean |
| display | string |
{- "curve_event_type_id": 0,
- "curve_id": 0,
- "curve_value_type_id": 0,
- "curve_version_id": 0,
- "date": "2019-08-24",
- "interval_start": 0,
- "interval_end": 0,
- "value": 0.1
}Get a queue event type by ID.
| curve_event_type_id required | integer <int32> |
| display | string |
{- "deleted": true,
- "description": "string",
- "factors": [
- 0
], - "curve_event_type_id": 0,
- "name": "string",
- "name_short": "string"
}Get all queue value types.
| display | string |
{- "aggregation_type": "string",
- "deleted": true,
- "description": "string",
- "curve_value_type_id": 0,
- "is_absence": true,
- "name": "string",
- "name_short": "string"
}Get a queue value type by ID.
| curve_value_type_id required | integer <int32> |
| display | string |
{- "aggregation_type": "string",
- "deleted": true,
- "description": "string",
- "curve_value_type_id": 0,
- "is_absence": true,
- "name": "string",
- "name_short": "string"
}Get a queue version by ID.
| curve_version_id required | integer <int32> |
| display | string |
{- "deleted": true,
- "description": "string",
- "curve_version_id": 0,
- "name": "string",
- "name_short": "string"
}Get a day model by ID.
| day_model_id required | integer <int32> |
| display | string |
{- "deleted": true,
- "color": 0,
- "contents": [
- { }
], - "day_model_id": 0,
- "name": "string",
- "name_short": "string",
- "type": "string"
}Get current address for an employee by employee ID
| employee_id required | integer <int32> |
| display | string |
{- "city": "string",
- "country": "string",
- "email": "string",
- "email_alt": "string",
- "employee_id": 0,
- "employees_address_id": 0,
- "end_date": "2019-08-24",
- "first_name": "string",
- "last_name": "string",
- "marital_status": "string",
- "middle_name": "string",
- "phone": "string",
- "phone_alt": "string",
- "start_date": "2019-08-24",
- "street": "string",
- "telefax": "string",
- "title": "string",
- "zipcode": "string"
}PATCH https://legacy-api.peopleware.com/v1/employee_current_addresses/1001
{
"data": {
"first_name": "John",
"last_name": "Doe"
}
}
Status 200
{
"data": {
"employees_address_id": 1200,
"employee_id": 1001,
"start_date": "2022-01-01",
"end_date": "4000-01-01",
"title": "none",
"first_name": "John",
"middle_name": "",
"last_name": "Doe",
"street": "",
"zipcode": "",
"city": "",
"phone": "",
"phone_alt": "",
"telefax": "",
"email": "john@doe.com",
"email_alt": "",
"country": "USA",
"marital_status": "unknown"
}
}
| employee_id required | number Specific Employee ID |
required | object non-empty |
{- "data": {
- "title": "none",
- "first_name": "string",
- "last_name": "string",
- "email": "string",
- "country": "string"
}
}{- "data": {
- "employees_address_id": 0,
- "employee_id": 0,
- "title": "string",
- "first_name": "string",
- "last_name": "string",
- "middle_name": "string",
- "street": "string",
- "zipcode": "string",
- "city": "string",
- "phone": "string",
- "phone_alt": "string",
- "telefax": "string",
- "email": "string",
- "email_alt": "string",
- "marital_status": "string",
- "country": "string",
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
}GET https://legacy-api.peopleware.com/v1/employees/1008/contracts/
Status 200
{
"data": [
{
"employees_contract_id": 1157,
"employee_id": 1008,
"contract_id": 1007,
"start_date": "2022-12-01",
"end_date": "2022-12-13"
}
]
}
| employee_id required | number Specific Employee ID |
{- "data": [
- {
- "employees_contract_id": 0,
- "employee_id": 0,
- "contract_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
]
}POST https://legacy-api.peopleware.com/v1/employees/1008/contracts
{
"data": {
"contract_id": 1007,
"start_date": "2022-12-01",
"end_date": "2022-12-21"
}
}
Status 201
{
"data": {
"employees_contract_id": 1001,
"employee_id": 1008,
"contract_id": 1007,
"start_date": "2022-12-01",
"end_date": "2022-12-21"
}
}
| employee_id required | number Specific Employee ID |
required | object non-empty |
{- "data": {
- "contract_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
}{- "data": {
- "employees_contract_id": 0,
- "employee_id": 0,
- "contract_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
}PATCH https://legacy-api.peopleware.com/v1/employees/1008/contracts/1001
{
"data": {
"start_date": "2021-02-01"
}
}
Status 200
{
"data": {
"employees_contract_id": 1001,
"employee_id": 1008,
"contract_id": 1007,
"start_date": "2021-02-01",
"end_date": "2022-12-21"
}
}
| employee_id required | number Specific Employee ID |
| employees_contract_id required | number Specific Employee Contract ID |
required | object non-empty |
{- "data": {
- "contract_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
}{- "data": {
- "employees_contract_id": 0,
- "employee_id": 0,
- "contract_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
}Delete the assigned Contract of an Employee
DELETE https://legacy-api.peopleware.com/v1/employees/1008/contracts/1001
Status 204
| employee_id required | number Specific Employee ID |
| employees_contract_id required | number Specific Employee Contract ID |
{- "errors": [
- {
- "status": "string",
- "title": "string",
- "message": "string"
}
]
}GET https://legacy-api.peopleware.com/v1/employees/1001/employment_periods
Status 200
{
"data": [
{
"employment_period_id": 1001,
"employee_id": 1001,
"start_date": "2023-01-01",
"end_date": "2023-12-31"
}
]
}
| employee_id required | number Specific Employee ID |
{- "data": [
- {
- "employment_period_id": 0,
- "employee_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
]
}POST https://legacy-api.peopleware.com/v1/employees/1001/employment_periods
{
"data": {
"start_date": "2023-01-01",
"end_date": "2023-12-31"
}
}
Status 201
{
"data": {
"employment_period_id": 1001,
"employee_id": 1001,
"start_date": "2023-01-01",
"end_date": "2023-12-31"
}
}
| employee_id required | number Specific Employee ID |
required | object non-empty |
{- "data": {
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
}{- "data": {
- "employment_period_id": 0,
- "employee_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
}GET https://legacy-api.peopleware.com/v1/employees/1001/employment_periods/1001
Status 200
{
"data": {
"employment_period_id": 1001,
"employee_id": 1001,
"start_date": "2023-01-01",
"end_date": "2023-12-31"
}
}
| employee_id required | number Specific Employee ID |
| employment_period_id required | number Specific Employment Period ID |
{- "data": {
- "employment_period_id": 0,
- "employee_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
}PATCH https://legacy-api.peopleware.com/v1/employees/1001/employment_periods/1001
{
"data": {
"start_date": "2023-02-01"
}
}
Status 200
{
"data": {
"employment_period_id": 1001,
"employee_id": 1001,
"start_date": "2023-02-01",
"end_date": "2023-12-31"
}
}
| employee_id required | number Specific Employee ID |
| employment_period_id required | number Specific Employment Period ID |
required | object non-empty |
{- "data": {
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
}{- "data": {
- "employment_period_id": 0,
- "employee_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
}DELETE https://legacy-api.peopleware.com/v1/employees/1001/employment_periods/1001
Status 204
| employee_id required | number Specific Employee ID |
| employment_period_id required | number Specific Employment Period ID |
{- "errors": [
- {
- "status": "string",
- "title": "string",
- "message": "string"
}
]
}GET https://legacy-api.peopleware.com/v1/employees/1008/planning_units
Status 200
{
"data": [
{
"employees_membership_id": 1157,
"employee_id": 1008,
"planning_unit_id": 1007,
"start_date": "2022-12-01",
"end_date": "2022-12-13",
"priority": 1
}
]
}
| employee_id required | number Specific Employee ID |
{- "data": [
- {
- "employees_membership_id": 0,
- "employee_id": 0,
- "planning_unit_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "priority": 0
}
]
}POST https://legacy-api.peopleware.com/v1/employees/1008/planning_units
{
"data": {
"planning_unit_id": 1007,
"start_date": "2022-12-01",
"end_date": "2022-12-21"
}
}
Status 201
{
"data": {
"employees_membership_id": 1157,
"employee_id": 1008,
"planning_unit_id": 1007,
"start_date": "2022-12-01",
"end_date": "2022-12-13",
"priority": 1
}
}
| employee_id required | number Specific Employee ID |
required | object non-empty |
{- "data": {
- "planning_unit_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "priority": 0
}
}{- "data": {
- "employees_membership_id": 0,
- "employee_id": 0,
- "planning_unit_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "priority": 0
}
}PATCH https://legacy-api.peopleware.com/v1/employees/1008/planning_units/1001
{
"data": {
"start_date": "2021-02-01",
"priority": 2
}
}
Status 200
{
"data": {
"employees_membership_id": 1157,
"employee_id": 1008,
"planning_unit_id": 1007,
"start_date": "2021-02-01",
"end_date": "2022-12-13",
"priority": 2
}
}
| employee_id required | number Specific Employee ID |
| employees_membership_id required | number Specific Employee Membership ID |
required | object non-empty |
{- "data": {
- "planning_unit_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "priority": 0
}
}{- "data": {
- "employees_membership_id": 0,
- "employee_id": 0,
- "planning_unit_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "priority": 0
}
}DELETE https://legacy-api.peopleware.com/v1/employees/1008/planning_units/1001
Status 204
| employee_id required | number Specific Employee ID |
| employees_membership_id required | number Specific Employee Membership ID |
{- "errors": [
- {
- "status": "string",
- "title": "string",
- "message": "string"
}
]
}GET https://legacy-api.peopleware.com/v1/employees/1008/skill_levels
Status 200
{
"data": [
{
"employees_skill_level_id": 1157,
"employee_id": 1008,
"skill_id": 1002,
"skill_level_id": 1003,
"start_date": "2022-12-01",
"end_date": "2022-12-13"
}
]
}
| employee_id required | number Specific Employee ID |
{- "data": [
- {
- "employees_skill_level_id": 0,
- "employee_id": 0,
- "skill_id": 0,
- "skill_level_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
]
}POST https://legacy-api.peopleware.com/v1/employees/1008/skill_levels
{
"data": {
"skill_level_id": 1003,
"start_date": "2022-12-01",
"end_date": "2022-12-21"
}
}
Status 201
{
"data": {
"employees_skill_level_id": 1001,
"employee_id": 1008,
"skill_id": 1002,
"skill_level_id": 1003,
"start_date": "2022-12-01",
"end_date": "2022-12-21"
}
}
| employee_id required | number Specific Employee ID |
required | object non-empty |
{- "data": {
- "skill_level_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
}{- "data": {
- "employees_skill_level_id": 0,
- "employee_id": 0,
- "skill_id": 0,
- "skill_level_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
}PATCH https://legacy-api.peopleware.com/v1/employees/1008/skill_levels/1001
{
"data": {
"start_date": "2021-02-01"
}
}
Status 200
{
"data": {
"employees_skill_level_id": 1001,
"employee_id": 1008,
"skill_id": 1002,
"skill_level_id": 1003,
"start_date": "2021-02-01",
"end_date": "2022-12-21"
}
}
| employee_id required | number Specific Employee ID |
| employees_skill_level_id required | number Specific Employee Skill Level ID |
required | object non-empty |
{- "data": {
- "skill_level_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
}{- "data": {
- "employees_skill_level_id": 0,
- "employee_id": 0,
- "skill_id": 0,
- "skill_level_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
}DELETE https://legacy-api.peopleware.com/v1/employees/1008/skill_levels/1001
Status 204
| employee_id required | number Specific Employee ID |
| employees_skill_level_id required | number Specific Employee Skill Level ID |
{- "errors": [
- {
- "status": "string",
- "title": "string",
- "message": "string"
}
]
}GET https://legacy-api.peopleware.com/v1/employees/1001/selections
Status 200
{
"data": [
{
"selection_id": 1001,
"employee_id": 1001,
"start_date": "2022-01-01",
"end_date": "2022-02-01"
}
]
}
| employee_id required | number Specific Employee ID |
{- "data": [
- {
- "selection_id": 0,
- "employee_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
]
}POST https://legacy-api.peopleware.com/v1/employees/1001/selections
{
"data": {
"selection_id": 1001,
"start_date": "2022-05-01",
"end_date": "2022-05-01"
}
}
Status 201
{
"data": {
"selection_id": 1001,
"employee_id": 1001,
"start_date": "2022-05-01",
"end_date": "2022-05-01"
}
}
| employee_id required | number Specific Employee ID |
required | object non-empty |
{- "data": {
- "selection_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
}{- "data": {
- "selection_id": 0,
- "employee_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
}DELETE https://legacy-api.peopleware.com/v1/employees/1001/selections/1002?start_date=2022-05-01&end_date=2022-05-01
Status 204
| employee_id required | number Specific Employee ID |
| selection_id required | number Specific Selection ID |
| start_date | string <date> Start Date |
| end_date | string <date> End Date |
{- "errors": [
- {
- "status": "string",
- "title": "string",
- "message": "string"
}
]
}PATCH https://legacy-api.peopleware.com/v1/employees/1001/selections/1001?start_date=2022-05-01&end_date=2022-05-01
{
"data": {
"selection_id": 1002
}
}
Status 200
{
"data": {
"selection_id": 1002,
"employee_id": 1001,
"start_date": "2022-05-01",
"end_date": "2022-05-01"
}
}
The Selection ID in the payload must be different from the Selection ID in the URL.
| employee_id required | number Specific Employee ID |
| selection_id required | number Specific Selection ID |
| start_date | string <date> Start Date |
| end_date | string <date> End Date |
required | object non-empty |
{- "data": {
- "selection_id": 0
}
}{- "data": {
- "selection_id": 0,
- "employee_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
}GET https://legacy-api.peopleware.com/v1/employees/1008/attribute_values
Status 200
{
"data": [
{
"attribute_value_id": 1157,
"employee_id": 1008,
"attribute_id": 1002,
"priority": 1,
"value": 34,
"start_date": "2022-12-01",
"end_date": "2022-12-13"
}
]
}
| employee_id required | number Specific Employee ID |
{- "data": [
- {
- "attribute_value_id": 0,
- "attribute_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "priority": 0,
- "value": "string",
- "employee_id": 0
}
]
}POST https://legacy-api.peopleware.com/v1/employees/1008/attribute_values
{
"data": {
"employee_id": 1008,
"attribute_id": 1001,
"priority": 1,
"value": 34,
"type": "number",
"start_date": "2022-12-01",
"end_date": "2022-12-21"
}
}
The type in the payload can be one of the following: text, number, time,
date or boolean
Status 201
{
"data": {
"attribute_value_id": 1157,
"employee_id": 1008,
"attribute_id": 1001,
"priority": 1,
"value": 34,
"start_date": "2022-12-01",
"end_date": "2022-12-21"
}
}
| employee_id required | number Specific Employee ID |
required | object non-empty |
{- "data": {
- "attribute_id": 0,
- "employee_id": 0,
- "value": "string",
- "type": "text",
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "priority": 0
}
}{- "data": {
- "attribute_value_id": 0,
- "attribute_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "priority": 0,
- "value": "string",
- "employee_id": 0
}
}PATCH https://legacy-api.peopleware.com/v1/employees/1008/attribute_values/1157
{
"data": {
"priority": 1,
"value": 34,
"start_date": "2022-12-01",
"end_date": "2022-12-21"
}
}
The data type of the value field in the payload depends on the Attribute
assigned to the Attribute Value being updated.
Status 200
{
"data": {
"attribute_value_id": 1157,
"employee_id": 1008,
"attribute_id": 1001,
"priority": 1,
"value": 34,
"start_date": "2022-12-01",
"end_date": "2022-12-21"
}
}
| employee_id required | number Specific Employee ID |
| attribute_value_id required | number Specific Attribute Value ID |
required | object non-empty |
{- "data": {
- "value": "string",
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "priority": 0
}
}{- "data": {
- "attribute_value_id": 0,
- "attribute_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "priority": 0,
- "value": "string",
- "employee_id": 0
}
}DELETE https://legacy-api.peopleware.com/v1/employees/1008/attribute_values/1157
Status 204
| employee_id required | number Specific Employee ID |
| attribute_value_id required | number Specific Attribute Value ID |
{- "errors": [
- {
- "status": "string",
- "title": "string",
- "message": "string"
}
]
}Get absences of an employee in a time range from level plan or specified level.
| employee_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| level | string (level) Enum: "plan" "wishes" "alternative_wishes" "absence_wishes" "final" "time_recording" "correction" "acd" "availabilities" "on_call" "productivity" "backup" "backup_version_2" "backup_version_3" "overtime" |
| absence_types | string |
| display | string |
{- "start_time": "2019-08-24T14:15:22Z",
- "end_time": "2019-08-24T14:15:22Z",
- "planning_unit_id": 0,
- "employee_id": 0,
- "activity_id": 0,
- "activity_name": "string",
- "activity_name_short": "string"
}Get adherence scores by date and employee ID
| employee_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| schedule_level | string (level) Enum: "plan" "wishes" "alternative_wishes" "absence_wishes" "final" "time_recording" "correction" "acd" "availabilities" "on_call" "productivity" "backup" "backup_version_2" "backup_version_3" "overtime" |
| actual_level | string (level) Enum: "plan" "wishes" "alternative_wishes" "absence_wishes" "final" "time_recording" "correction" "acd" "availabilities" "on_call" "productivity" "backup" "backup_version_2" "backup_version_3" "overtime" |
| zeros | boolean |
| display | string |
{- "activity_type": "string",
- "actual_time": 0,
- "adherence_percentage": 0.1,
- "conformance_percentage": 0.1,
- "date": "2019-08-24",
- "employee_id": 0,
- "minutes_in_adherence": 0,
- "minutes_out_adherence": 0,
- "minutes_out_conformance": 0,
- "scheduled_time": 0
}Get attribute values for one employee
| employee_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| display | string |
{- "attribute_id": 0,
- "employee_id": 0,
- "end_date": "2019-08-24",
- "attribute_value_id": 0,
- "priority": 0,
- "start_date": "2019-08-24",
- "value": "string"
}Get comments by date and employee ID
| employee_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| levels | string (levels) A comma separated list of levels. Allowed levels are:
|
| display | string |
{- "date": "2019-08-24",
- "employee_id": 0,
- "level": 1000,
- "text": "string"
}Get all employees.
| include_userid | boolean |
| display | string |
{- "birth_date": "2019-08-24",
- "birth_place": "string",
- "color": 0,
- "current_identification": "string",
- "deleted": true,
- "employee_id": 0,
- "first_name": "string",
- "last_name": "string",
- "personnel_number": "string",
- "schedule_position": 0,
- "automated_shift_assignment": true,
- "user_id": 0
}Get an employee by ID.
| employee_id required | integer <int32> |
| include_userid | boolean |
| display | string |
{- "birth_date": "2019-08-24",
- "birth_place": "string",
- "color": 0,
- "current_identification": "string",
- "deleted": true,
- "employee_id": 0,
- "first_name": "string",
- "last_name": "string",
- "personnel_number": "string",
- "schedule_position": 0,
- "automated_shift_assignment": true,
- "user_id": 0
}Get employee contracts by date and employee ID
| employee_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| display | string |
{- "contract_id": 0,
- "employee_id": 0,
- "end_date": "2019-08-24",
- "start_date": "2019-08-24"
}Get current employment period for an employee by employee ID
| employee_id required | integer <int32> |
| display | string |
{- "employee_id": 0,
- "end_date": "2019-08-24",
- "start_date": "2019-08-24"
}Get employee external systems by date and employee ID
| employee_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| display | string |
{- "active": true,
- "employee_id": 0,
- "extension": 0,
- "external_identification": 0,
- "external_system_id": 0,
- "end_date": "2019-08-24",
- "start_date": "2019-08-24"
}Get employee planning units by date and employee ID
| employee_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| display | string |
{- "employee_id": 0,
- "end_date": "2019-08-24",
- "planning_unit_id": 0,
- "priority": 0,
- "start_date": "2019-08-24"
}Get employee selections by date and employee ID
| employee_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| display | string |
{- "selection_id": 0,
- "employee_id": 0,
- "end_date": "2019-08-24",
- "start_date": "2019-08-24"
}Get employee shift sequences by date and employee ID
| employee_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| display | string |
{- "anchor_date": "2019-08-24",
- "employee_id": 0,
- "end_date": "2019-08-24",
- "priority": 0,
- "shift_sequence_id": 0,
- "shift_sequence_row": 0,
- "start_date": "2019-08-24"
}Get employee skill levels by date and employee ID
| employee_id required | integer <int32> |
| start_date required | string <date> |
| end_date | string |
| length | integer <int32> |
| display | string |
{- "employee_id": 0,
- "end_date": "2019-08-24",
- "skill_id": 0,
- "skill_level_id": 0,
- "start_date": "2019-08-24"
}Get holiday annuals by year and employee ID
| employee_id required | integer <int32> |
| year required | string |
| level | string (level) Enum: "plan" "wishes" "alternative_wishes" "absence_wishes" "final" "time_recording" "correction" "acd" "availabilities" "on_call" "productivity" "backup" "backup_version_2" "backup_version_3" "overtime" |
| display | string |
{- "contract_id": 0,
- "employee_id": 0,
- "entitlement_in_hours": 0.1,
- "scheduled_in_hours": 0.1,
- "remaining_in_hours": 0.1,
- "end_date": "2019-08-24",
- "start_date": "2019-08-24",
- "year": 0
}Get plan data requests by date and employee ID
| employee_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| status | string Enum: "pending" "approved" "rejected" |
| display | string |
{- "activity_id": 0,
- "all_day": true,
- "comment": "string",
- "duration": 0.1,
- "employee_id": 0,
- "end_time": "2019-08-24",
- "start_time": "2019-08-24",
- "plan_data_request_id": 0,
- "status": "string"
}Get schedules by date and employee ID
| employee_id required | integer <int32> |
| start_date required | string |
| activity_types | string |
| activity_ids | string |
| levels | string (levels) A comma separated list of levels. Allowed levels are:
|
| only_paid | boolean |
| with_unfinished | boolean |
| display | string |
{- "booking_date": "2019-08-24",
- "employee_id": 0,
- "level": "plan",
- "planning_unit_id": 0,
- "schedule_blocks": [
- {
- "activity_id": 0,
- "time_end": "2019-08-24T14:15:22Z",
- "time_start": "2019-08-24T14:15:22Z",
- "type": "string"
}
]
}Get pending shift exchanges by date and employee ID
| employee_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| display | string |
{- "offer": [
- {
- "date": "2019-08-24",
- "employee_id": 0,
- "comment": "string"
}
], - "counter_offers": [
- {
- "date": "2019-08-24",
- "employee_id": 0,
- "comment": "string"
}
], - "available_offers": [
- {
- "date": "2019-08-24",
- "employee_id": 0,
- "comment": "string"
}
], - "counter_offers_received": [
- {
- "date": "2019-08-24",
- "employee_id": 0,
- "comment": "string"
}
], - "commitment": [
- {
- "shift_exchange_commitment_id": 0,
- "date": "2019-08-24",
- "cross_exchange_date": "2019-08-24",
- "employee_id": 0,
- "accepting_employee_id": 0,
- "status": "string",
- "modification_date": "2019-08-24"
}
]
}Get all employees belonging to a planning unit by date and planning unit ID
| planning_unit_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| include_userid | boolean |
| display | string |
{- "birth_date": "2019-08-24",
- "birth_place": "string",
- "color": 0,
- "current_identification": "string",
- "deleted": true,
- "employee_id": 0,
- "first_name": "string",
- "last_name": "string",
- "personnel_number": "string",
- "schedule_position": 0,
- "automated_shift_assignment": true,
- "user_id": 0
}| Name | Type | Description |
|---|---|---|
| employees_address_id | Integer | The unique identifier of an Employee Address |
| employee_id | Integer | The unique identifier of the related Employee |
| start_date | String | ISO8601 formatted date |
| end_date | String | ISO8601 formatted date |
| title | String | Allowed values are: none, company, mister, misses or miss |
| middle_name | String | – |
| first_name | String | Is referring to the name of the Employee and first name of the User |
| last_name | String | Is referring to the name of the Employee and last name of the User |
| street | String | – |
| zipcode | String | – |
| city | String | – |
| phone | String | – |
| phone_alt | String | – |
| telefax | String | – |
| String | Is referring to the login e-mail of the User | |
| email_alt | String | – |
| country | String | – |
| marital_status | String | Allowed values are: unknown, single, married, widowed or divorced |
| display | string |
{- "city": "string",
- "country": "string",
- "email": "string",
- "email_alt": "string",
- "employee_id": 0,
- "employees_address_id": 0,
- "end_date": "2019-08-24",
- "first_name": "string",
- "last_name": "string",
- "marital_status": "string",
- "middle_name": "string",
- "phone": "string",
- "phone_alt": "string",
- "start_date": "2019-08-24",
- "street": "string",
- "telefax": "string",
- "title": "string",
- "zipcode": "string"
}Get employment periods for an employee by employee ID
| employee_id required | integer <int32> |
| display | string |
{- "employee_id": 0,
- "end_date": "2019-08-24",
- "start_date": "2019-08-24"
}Get employee identification cards by date range
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| display | string |
{- "identification_card_id": 0,
- "employee_id": 0,
- "identification": "string",
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}Get employee planning units by date
| start_date required | string |
| employee_id | integer <int32> |
| end_date | string |
| length | integer <int32> |
| display | string |
{- "employee_id": 0,
- "end_date": "2019-08-24",
- "planning_unit_id": 0,
- "priority": 0,
- "start_date": "2019-08-24"
}Get employee selections by date
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| display | string |
{- "selection_id": 0,
- "employee_id": 0,
- "end_date": "2019-08-24",
- "start_date": "2019-08-24"
}GET https://legacy-api.peopleware.com/v1/employees/1001/employment_periods
Status 200
{
"data": [
{
"employment_period_id": 1001,
"employee_id": 1001,
"start_date": "2023-01-01",
"end_date": "2023-12-31"
}
]
}
| employee_id required | number Specific Employee ID |
{- "data": [
- {
- "employment_period_id": 0,
- "employee_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
]
}POST https://legacy-api.peopleware.com/v1/employees/1001/employment_periods
{
"data": {
"start_date": "2023-01-01",
"end_date": "2023-12-31"
}
}
Status 201
{
"data": {
"employment_period_id": 1001,
"employee_id": 1001,
"start_date": "2023-01-01",
"end_date": "2023-12-31"
}
}
| employee_id required | number Specific Employee ID |
required | object non-empty |
{- "data": {
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
}{- "data": {
- "employment_period_id": 0,
- "employee_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
}GET https://legacy-api.peopleware.com/v1/employees/1001/employment_periods/1001
Status 200
{
"data": {
"employment_period_id": 1001,
"employee_id": 1001,
"start_date": "2023-01-01",
"end_date": "2023-12-31"
}
}
| employee_id required | number Specific Employee ID |
| employment_period_id required | number Specific Employment Period ID |
{- "data": {
- "employment_period_id": 0,
- "employee_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
}PATCH https://legacy-api.peopleware.com/v1/employees/1001/employment_periods/1001
{
"data": {
"start_date": "2023-02-01"
}
}
Status 200
{
"data": {
"employment_period_id": 1001,
"employee_id": 1001,
"start_date": "2023-02-01",
"end_date": "2023-12-31"
}
}
| employee_id required | number Specific Employee ID |
| employment_period_id required | number Specific Employment Period ID |
required | object non-empty |
{- "data": {
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
}{- "data": {
- "employment_period_id": 0,
- "employee_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
}DELETE https://legacy-api.peopleware.com/v1/employees/1001/employment_periods/1001
Status 204
| employee_id required | number Specific Employee ID |
| employment_period_id required | number Specific Employment Period ID |
{- "errors": [
- {
- "status": "string",
- "title": "string",
- "message": "string"
}
]
}Get current employment period for an employee by employee ID
| employee_id required | integer <int32> |
| display | string |
{- "employee_id": 0,
- "end_date": "2019-08-24",
- "start_date": "2019-08-24"
}Get employment periods for an employee by employee ID
| employee_id required | integer <int32> |
| display | string |
{- "employee_id": 0,
- "end_date": "2019-08-24",
- "start_date": "2019-08-24"
}Get employee external systems by date and employee ID
| employee_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| display | string |
{- "active": true,
- "employee_id": 0,
- "extension": 0,
- "external_identification": 0,
- "external_system_id": 0,
- "end_date": "2019-08-24",
- "start_date": "2019-08-24"
}Get employee external systems by date and planning unit ID
| planning_unit_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| display | string |
{- "active": true,
- "employee_id": 0,
- "extension": 0,
- "external_identification": 0,
- "external_system_id": 0,
- "end_date": "2019-08-24",
- "start_date": "2019-08-24"
}Get all external systems.
| display | string |
{- "connect_string_1": "string",
- "connect_string_2": "string",
- "connect_string_3": "string",
- "deleted": true,
- "external_component_id": 0,
- "external_system_id": 0,
- "is_employee_link": true,
- "is_phone_link": true,
- "is_real_time_option": true,
- "is_time_link": true,
- "name": "string"
}Get an external system by ID.
| external_system_id required | integer <int32> |
| display | string |
{- "connect_string_1": "string",
- "connect_string_2": "string",
- "connect_string_3": "string",
- "deleted": true,
- "external_component_id": 0,
- "external_system_id": 0,
- "is_employee_link": true,
- "is_phone_link": true,
- "is_real_time_option": true,
- "is_time_link": true,
- "name": "string"
}Get holiday annuals by year and planning unit ID
| planning_unit_id required | integer <int32> |
| year required | string |
| level | string (level) Enum: "plan" "wishes" "alternative_wishes" "absence_wishes" "final" "time_recording" "correction" "acd" "availabilities" "on_call" "productivity" "backup" "backup_version_2" "backup_version_3" "overtime" |
| display | string |
{- "contract_id": 0,
- "employee_id": 0,
- "entitlement_in_hours": 0.1,
- "scheduled_in_hours": 0.1,
- "remaining_in_hours": 0.1,
- "end_date": "2019-08-24",
- "start_date": "2019-08-24",
- "year": 0
}Get all holidays of a year.
| year required | string |
| employee_ids | string |
| planning_unit_id | integer <int32> |
| display | string |
{- "remaining": 0,
- "employee_id": 0,
- "entitlement": 0,
- "holiday_id": 0,
- "year": 0
}Get employee identification cards by date range
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| display | string |
{- "identification_card_id": 0,
- "employee_id": 0,
- "identification": "string",
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}Plan Data is the representation of a scheduled activity for an employee in a certain time frame. Multiple Plan Data items form a schedule.
Peopleware API allows you to create, update or delete schedules.
To update a schedule, you have to include all Plan Data items in the request. This will replace the current Plan Data items for an employee on a specific day.
To delete a parts of a schedule, include the Plan Data items that you don’t want to delete. To delete the whole schedule, specify an empty array.
Peopleware API supports writing activities with start and end time or full-day activities.
Note: All timestamps are interpreted in the time zone of the planning unit.
To create or update a schedule, the employee must belong to the planning unit on this day. You need write permissions for the planning units and included activities.
To create or update Plan Data for an employee, send all the Plan Data items in JSON format in the request body.
This is how the PUT request will look:
{
"data": {
"employee_id": 1234,
"booking_date": "2022-08-12",
"items": [
{
"type": "activity",
"planning_unit_id": 1001,
"activity_id": 1024,
"start_time": "2022-08-12T10:30:00Z",
"end_time": "2022-08-12T15:00:00Z"
},
{
"type": "activity",
"planning_unit_id": 1001,
"activity_id": 1030,
"start_time": "2022-08-12T15:30:00Z",
"end_time": "2022-08-12T18:00:00Z"
}
]
}
}
Instead of multiple activities, you can also specify one full-day activity, which does not need to specify start and end times.
Ensure that your input data is semantically correct. The server might reject time conflicts between the given Plan Data items or write them in an unintended way.
| Name | Type | Description |
|---|---|---|
| employee_id | Integer | Unique identifier for the Employee |
| booking_date | String | The date that the Employee is scheduled to do the Activity, e.g. "2023-12-02" |
| items | Array | An array of Plan Data items |
| type | String | Type of the Plan Data item. Allowed values: 'activity', 'full_day_activity' |
| planning_unit_id | Integer | Unique identifier for the planning unit where the Plan Data item should be booked |
| activity_id | Integer | Unique identifier for the activity that the Plan Data item represents |
| start_time | String | Start time of the Plan Data item. Don't specify this for Plan Data items of type 'full_day_activity' |
| end_time | String | End time of the Plan Data item. Don't specify this for Plan Data items of type 'full_day_activity' |
To check the updated schedule, you can go to Plan > Schedules or Plan > Shift Center.
| level required | string Enum: "plan" "wishes" "alternative_wishes" "absence_wishes" "final" "acd" "time_recording" "correction" "availabilities" "productivity" "backup" "backup_version_2" "backup_version_3" Plan Data Level |
required | object |
{- "data": {
- "employee_id": 0,
- "booking_date": "2019-08-24",
- "items": [
- {
- "type": "activity",
- "planning_unit_id": 0,
- "activity_id": 0,
- "start_time": "2019-08-24T14:15:22Z",
- "end_time": "2019-08-24T14:15:22Z"
}
]
}
}{- "errors": [
- {
- "status": "string",
- "title": "string",
- "message": "string"
}
]
}Get plan data by level, date and activity IDs
| level required | string (level) Enum: "plan" "wishes" "alternative_wishes" "absence_wishes" "final" "time_recording" "correction" "acd" "availabilities" "on_call" "productivity" "backup" "backup_version_2" "backup_version_3" "overtime" |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| activity_ids | string |
| display | string |
{- "employee_id": 0,
- "personnel_number": "string",
- "activity_id": 0,
- "third_party_interface": "string",
- "type": "string",
- "start_date": "2019-08-24",
- "start_time": "14:15:22Z",
- "end_date": "2019-08-24",
- "end_time": "14:15:22Z",
- "duration": "14:15:22Z"
}Get plan data requests by date and employee ID
| employee_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| status | string Enum: "pending" "approved" "rejected" |
| display | string |
{- "activity_id": 0,
- "all_day": true,
- "comment": "string",
- "duration": 0.1,
- "employee_id": 0,
- "end_time": "2019-08-24",
- "start_time": "2019-08-24",
- "plan_data_request_id": 0,
- "status": "string"
}Get plan data requests by date and planning unit ID
| planning_unit_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| status | string Enum: "pending" "approved" "rejected" |
| display | string |
{- "activity_id": 0,
- "all_day": true,
- "comment": "string",
- "duration": 0.1,
- "employee_id": 0,
- "end_time": "2019-08-24",
- "start_time": "2019-08-24",
- "plan_data_request_id": 0,
- "status": "string"
}Approves/Rejects a plan data request
| id required | string Request ID |
| status required | string Enum: "approved" "rejected" approved/rejected |
| comment required | string or null Your comment |
{- "status": "approved",
- "comment": "string"
}Get planning periods and time-off periods by date.
By default, only planning periods are returned. To return only the time-off periods for a specific vacation or absence activity, add the activity ID as a parameter to your request.
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| activity_id | integer <int32> |
| display | string |
{- "planning_period_id": 0,
- "status": "string",
- "planning_unit_id": 0,
- "activity_id": 0,
- "end_date": "2019-08-24",
- "start_date": "2019-08-24"
}GET https://legacy-api.peopleware.com/v1/employees/1008/planning_units
Status 200
{
"data": [
{
"employees_membership_id": 1157,
"employee_id": 1008,
"planning_unit_id": 1007,
"start_date": "2022-12-01",
"end_date": "2022-12-13",
"priority": 1
}
]
}
| employee_id required | number Specific Employee ID |
{- "data": [
- {
- "employees_membership_id": 0,
- "employee_id": 0,
- "planning_unit_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "priority": 0
}
]
}POST https://legacy-api.peopleware.com/v1/employees/1008/planning_units
{
"data": {
"planning_unit_id": 1007,
"start_date": "2022-12-01",
"end_date": "2022-12-21"
}
}
Status 201
{
"data": {
"employees_membership_id": 1157,
"employee_id": 1008,
"planning_unit_id": 1007,
"start_date": "2022-12-01",
"end_date": "2022-12-13",
"priority": 1
}
}
| employee_id required | number Specific Employee ID |
required | object non-empty |
{- "data": {
- "planning_unit_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "priority": 0
}
}{- "data": {
- "employees_membership_id": 0,
- "employee_id": 0,
- "planning_unit_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "priority": 0
}
}PATCH https://legacy-api.peopleware.com/v1/employees/1008/planning_units/1001
{
"data": {
"start_date": "2021-02-01",
"priority": 2
}
}
Status 200
{
"data": {
"employees_membership_id": 1157,
"employee_id": 1008,
"planning_unit_id": 1007,
"start_date": "2021-02-01",
"end_date": "2022-12-13",
"priority": 2
}
}
| employee_id required | number Specific Employee ID |
| employees_membership_id required | number Specific Employee Membership ID |
required | object non-empty |
{- "data": {
- "planning_unit_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "priority": 0
}
}{- "data": {
- "employees_membership_id": 0,
- "employee_id": 0,
- "planning_unit_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24",
- "priority": 0
}
}DELETE https://legacy-api.peopleware.com/v1/employees/1008/planning_units/1001
Status 204
| employee_id required | number Specific Employee ID |
| employees_membership_id required | number Specific Employee Membership ID |
{- "errors": [
- {
- "status": "string",
- "title": "string",
- "message": "string"
}
]
}A staff requirements calculation is the process of determining the number of employees needed to handle a forecasted workload. Staff requirements is the input to the scheduling process. You cannot optimize schedules without staff requirements.
A staff requirement is the number of agents that need to be scheduled to meet the service levels during an interval of 15 minutes.
Example: To reach their service level (e.g. 80% of calls answered within 20 seconds), workforce planners need to calculate how many agents they need to schedule for each 15-minute interval at any given time. The number depends on the forecasted volume of calls and average handle time of each call.
You can use this endpoint to import the staff requirements for an activity in a planning unit on a particular day.
To create or update Staff Requirements for a specific activity, send an array of interval data in JSON format in the request body.
Example for a PUT request body:
{
"data": [0.0, 0.0, 0.0, 0.0, 1.0, 3.5, /* ... */ 10.0, 2.0, 0.0]
}
| Name | Type | Description |
|---|---|---|
| Data | Array of numbers | The array must either contain 96, 48, or 24 items, each representing an interval of 15 minutes, 30 minutes or 60 minutes, respectively. The interval times are interpreted in the timezone of the Planning Unit. Example: if the planning unit has a time zone offset of +01:00, the first interval describes the requirements from 00:00:00+01:00 to 00:15:00+01:00 |
| planning_unit_id required | integer Specific Planning Unit ID |
| date required | string <date> Date of the requirements |
| activity_id required | integer Specific Activity ID |
required | Array of numbers or Array of numbers or Array of numbers |
{- "data": [
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0
]
}{- "errors": [
- {
- "status": "string",
- "title": "string",
- "message": "string"
}
]
}Get employee planning units by date and employee ID
| employee_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| display | string |
{- "employee_id": 0,
- "end_date": "2019-08-24",
- "planning_unit_id": 0,
- "priority": 0,
- "start_date": "2019-08-24"
}Get absences of all planning unit members in a time range from level plan or specified level.
| planning_unit_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| level | string (level) Enum: "plan" "wishes" "alternative_wishes" "absence_wishes" "final" "time_recording" "correction" "acd" "availabilities" "on_call" "productivity" "backup" "backup_version_2" "backup_version_3" "overtime" |
| absence_types | string |
| display | string |
{- "start_time": "2019-08-24T14:15:22Z",
- "end_time": "2019-08-24T14:15:22Z",
- "planning_unit_id": 0,
- "employee_id": 0,
- "activity_id": 0,
- "activity_name": "string",
- "activity_name_short": "string"
}Get adherence scores by date and planning unit ID
| planning_unit_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| schedule_level | string (level) Enum: "plan" "wishes" "alternative_wishes" "absence_wishes" "final" "time_recording" "correction" "acd" "availabilities" "on_call" "productivity" "backup" "backup_version_2" "backup_version_3" "overtime" |
| actual_level | string (level) Enum: "plan" "wishes" "alternative_wishes" "absence_wishes" "final" "time_recording" "correction" "acd" "availabilities" "on_call" "productivity" "backup" "backup_version_2" "backup_version_3" "overtime" |
| zeros | boolean |
| display | string |
{- "activity_type": "string",
- "actual_time": 0,
- "adherence_percentage": 0.1,
- "conformance_percentage": 0.1,
- "date": "2019-08-24",
- "employee_id": 0,
- "minutes_in_adherence": 0,
- "minutes_out_adherence": 0,
- "minutes_out_conformance": 0,
- "scheduled_time": 0
}Get comments by date and planning unit ID
| planning_unit_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| levels | string (levels) A comma separated list of levels. Allowed levels are:
|
| display | string |
{- "date": "2019-08-24",
- "employee_id": 0,
- "level": 1000,
- "text": "string"
}Get all employees belonging to a planning unit by date and planning unit ID
| planning_unit_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| include_userid | boolean |
| display | string |
{- "birth_date": "2019-08-24",
- "birth_place": "string",
- "color": 0,
- "current_identification": "string",
- "deleted": true,
- "employee_id": 0,
- "first_name": "string",
- "last_name": "string",
- "personnel_number": "string",
- "schedule_position": 0,
- "automated_shift_assignment": true,
- "user_id": 0
}Get employee contracts by date and planning unit ID
| planning_unit_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| display | string |
{- "contract_id": 0,
- "employee_id": 0,
- "end_date": "2019-08-24",
- "start_date": "2019-08-24"
}Get employee external systems by date and planning unit ID
| planning_unit_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| display | string |
{- "active": true,
- "employee_id": 0,
- "extension": 0,
- "external_identification": 0,
- "external_system_id": 0,
- "end_date": "2019-08-24",
- "start_date": "2019-08-24"
}Get employee planning units by date and planning unit ID
| planning_unit_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| display | string |
{- "employee_id": 0,
- "end_date": "2019-08-24",
- "planning_unit_id": 0,
- "priority": 0,
- "start_date": "2019-08-24"
}Get employee selections by date and planning unit ID
| planning_unit_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| display | string |
{- "selection_id": 0,
- "employee_id": 0,
- "end_date": "2019-08-24",
- "start_date": "2019-08-24"
}Get employee shift sequences by date and planning unit ID
| planning_unit_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| display | string |
{- "anchor_date": "2019-08-24",
- "employee_id": 0,
- "end_date": "2019-08-24",
- "priority": 0,
- "shift_sequence_id": 0,
- "shift_sequence_row": 0,
- "start_date": "2019-08-24"
}Get employee skill levels by date and planning unit ID
| planning_unit_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| display | string |
{- "employee_id": 0,
- "end_date": "2019-08-24",
- "skill_id": 0,
- "skill_level_id": 0,
- "start_date": "2019-08-24"
}Get holiday annuals by year and planning unit ID
| planning_unit_id required | integer <int32> |
| year required | string |
| level | string (level) Enum: "plan" "wishes" "alternative_wishes" "absence_wishes" "final" "time_recording" "correction" "acd" "availabilities" "on_call" "productivity" "backup" "backup_version_2" "backup_version_3" "overtime" |
| display | string |
{- "contract_id": 0,
- "employee_id": 0,
- "entitlement_in_hours": 0.1,
- "scheduled_in_hours": 0.1,
- "remaining_in_hours": 0.1,
- "end_date": "2019-08-24",
- "start_date": "2019-08-24",
- "year": 0
}Get plan data requests by date and planning unit ID
| planning_unit_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| status | string Enum: "pending" "approved" "rejected" |
| display | string |
{- "activity_id": 0,
- "all_day": true,
- "comment": "string",
- "duration": 0.1,
- "employee_id": 0,
- "end_time": "2019-08-24",
- "start_time": "2019-08-24",
- "plan_data_request_id": 0,
- "status": "string"
}Get all planning units.
| display | string |
{- "color": 0,
- "deleted": true,
- "planning_unit_id": 0,
- "name": "string",
- "name_short": "string",
- "parent_planning_unit_id": 0,
- "planning_raster": 0,
- "time_zone_id": 0
}Get a planning unit by ID.
| planning_unit_id required | integer <int32> |
| display | string |
{- "color": 0,
- "deleted": true,
- "planning_unit_id": 0,
- "name": "string",
- "name_short": "string",
- "parent_planning_unit_id": 0,
- "planning_raster": 0,
- "time_zone_id": 0
}Get all children planning units by planning unit ID
| planning_unit_id required | integer <int32> |
| display | string |
{- "color": 0,
- "deleted": true,
- "planning_unit_id": 0,
- "name": "string",
- "name_short": "string",
- "parent_planning_unit_id": 0,
- "planning_raster": 0,
- "time_zone_id": 0
}Get planning unit activities by date and planning unit ID
| planning_unit_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| display | string |
{- "activity_id": 0,
- "cost_center_id": 0,
- "end_date": "2019-08-24",
- "planning_unit_id": 0,
- "start_date": "2019-08-24"
}Get planning unit requirements by date and planning unit ID
| planning_unit_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| zeros | boolean |
| activity_ids | string |
| activity_types | string |
| display | string |
{- "activity_id": 0,
- "date": "2019-08-24",
- "planning_unit_id": 0,
- "raster": 0,
- "values": [
- 0.1
]
}Get schedules for all employees of a given planning unit
| planning_unit_id required | integer <int32> |
| start_date required | string |
| activity_types | string |
| activity_ids | string |
| levels | string (levels) A comma separated list of levels. Allowed levels are:
|
| only_paid | boolean |
| with_unfinished | boolean |
| filter_pu | string Enum: "true" "false" Return only plan data items that belong to the given planning unit |
| display | string |
{- "booking_date": "2019-08-24",
- "employee_id": 0,
- "level": "plan",
- "planning_unit_id": 0,
- "schedule_blocks": [
- {
- "activity_id": 0,
- "time_end": "2019-08-24T14:15:22Z",
- "time_start": "2019-08-24T14:15:22Z",
- "type": "string"
}
]
}Get pending shift exchanges by date and planning unit ID
| planning_unit_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| display | string |
{- "offer": [
- {
- "date": "2019-08-24",
- "employee_id": 0,
- "comment": "string"
}
], - "counter_offers": [
- {
- "date": "2019-08-24",
- "employee_id": 0,
- "comment": "string"
}
], - "available_offers": [
- {
- "date": "2019-08-24",
- "employee_id": 0,
- "comment": "string"
}
], - "counter_offers_received": [
- {
- "date": "2019-08-24",
- "employee_id": 0,
- "comment": "string"
}
], - "commitment": [
- {
- "shift_exchange_commitment_id": 0,
- "date": "2019-08-24",
- "cross_exchange_date": "2019-08-24",
- "employee_id": 0,
- "accepting_employee_id": 0,
- "status": "string",
- "modification_date": "2019-08-24"
}
]
}Get shift requirements by date and planning unit ID
| planning_unit_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| display | string |
{- "booking_date": "2019-08-24",
- "day_model_id": 0,
- "final_planned": 0,
- "planned": 0,
- "planning_unit_id": 0,
- "requirement": 0,
- "wishes": 0,
- "start_time": "14:15:22Z",
- "end_time": "14:15:22Z"
}Get planning unit staffing by date and planning unit ID
| planning_unit_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| zeros | boolean |
| activity_ids | string |
| activity_types | string |
| levels | string (levels) A comma separated list of levels. Allowed levels are:
|
| display | string |
{- "activity_id": 0,
- "date": "2019-08-24",
- "level": 1000,
- "planning_unit_id": 0,
- "raster": 0,
- "values": [
- 0.1
]
}Get employee planning units by date
| start_date required | string |
| employee_id | integer <int32> |
| end_date | string |
| length | integer <int32> |
| display | string |
{- "employee_id": 0,
- "end_date": "2019-08-24",
- "planning_unit_id": 0,
- "priority": 0,
- "start_date": "2019-08-24"
}A staff requirements calculation is the process of determining the number of employees needed to handle a forecasted workload. Staff requirements is the input to the scheduling process. You cannot optimize schedules without staff requirements.
A staff requirement is the number of agents that need to be scheduled to meet the service levels during an interval of 15 minutes.
Example: To reach their service level (e.g. 80% of calls answered within 20 seconds), workforce planners need to calculate how many agents they need to schedule for each 15-minute interval at any given time. The number depends on the forecasted volume of calls and average handle time of each call.
You can use this endpoint to import the staff requirements for an activity in a planning unit on a particular day.
To create or update Staff Requirements for a specific activity, send an array of interval data in JSON format in the request body.
Example for a PUT request body:
{
"data": [0.0, 0.0, 0.0, 0.0, 1.0, 3.5, /* ... */ 10.0, 2.0, 0.0]
}
| Name | Type | Description |
|---|---|---|
| Data | Array of numbers | The array must either contain 96, 48, or 24 items, each representing an interval of 15 minutes, 30 minutes or 60 minutes, respectively. The interval times are interpreted in the timezone of the Planning Unit. Example: if the planning unit has a time zone offset of +01:00, the first interval describes the requirements from 00:00:00+01:00 to 00:15:00+01:00 |
| planning_unit_id required | integer Specific Planning Unit ID |
| date required | string <date> Date of the requirements |
| activity_id required | integer Specific Activity ID |
required | Array of numbers or Array of numbers or Array of numbers |
{- "data": [
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0,
- 0
]
}{- "errors": [
- {
- "status": "string",
- "title": "string",
- "message": "string"
}
]
}Get planning unit requirements by date and planning unit ID
| planning_unit_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| zeros | boolean |
| activity_ids | string |
| activity_types | string |
| display | string |
{- "activity_id": 0,
- "date": "2019-08-24",
- "planning_unit_id": 0,
- "raster": 0,
- "values": [
- 0.1
]
}GET https://legacy-api.peopleware.com/v1/employees/1001/selections
Status 200
{
"data": [
{
"selection_id": 1001,
"employee_id": 1001,
"start_date": "2022-01-01",
"end_date": "2022-02-01"
}
]
}
| employee_id required | number Specific Employee ID |
{- "data": [
- {
- "selection_id": 0,
- "employee_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
]
}POST https://legacy-api.peopleware.com/v1/employees/1001/selections
{
"data": {
"selection_id": 1001,
"start_date": "2022-05-01",
"end_date": "2022-05-01"
}
}
Status 201
{
"data": {
"selection_id": 1001,
"employee_id": 1001,
"start_date": "2022-05-01",
"end_date": "2022-05-01"
}
}
| employee_id required | number Specific Employee ID |
required | object non-empty |
{- "data": {
- "selection_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
}{- "data": {
- "selection_id": 0,
- "employee_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
}DELETE https://legacy-api.peopleware.com/v1/employees/1001/selections/1002?start_date=2022-05-01&end_date=2022-05-01
Status 204
| employee_id required | number Specific Employee ID |
| selection_id required | number Specific Selection ID |
| start_date | string <date> Start Date |
| end_date | string <date> End Date |
{- "errors": [
- {
- "status": "string",
- "title": "string",
- "message": "string"
}
]
}PATCH https://legacy-api.peopleware.com/v1/employees/1001/selections/1001?start_date=2022-05-01&end_date=2022-05-01
{
"data": {
"selection_id": 1002
}
}
Status 200
{
"data": {
"selection_id": 1002,
"employee_id": 1001,
"start_date": "2022-05-01",
"end_date": "2022-05-01"
}
}
The Selection ID in the payload must be different from the Selection ID in the URL.
| employee_id required | number Specific Employee ID |
| selection_id required | number Specific Selection ID |
| start_date | string <date> Start Date |
| end_date | string <date> End Date |
required | object non-empty |
{- "data": {
- "selection_id": 0
}
}{- "data": {
- "selection_id": 0,
- "employee_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
}Get employee selections by date and employee ID
| employee_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| display | string |
{- "selection_id": 0,
- "employee_id": 0,
- "end_date": "2019-08-24",
- "start_date": "2019-08-24"
}Get employee selections by date and planning unit ID
| planning_unit_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| display | string |
{- "selection_id": 0,
- "employee_id": 0,
- "end_date": "2019-08-24",
- "start_date": "2019-08-24"
}Get employee selections by date
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| display | string |
{- "selection_id": 0,
- "employee_id": 0,
- "end_date": "2019-08-24",
- "start_date": "2019-08-24"
}Get a selection by ID.
| selection_id required | integer <int32> |
| display | string |
{- "deleted": true,
- "description": "string",
- "selection_id": 0,
- "name": "string",
- "name_short": "string"
}Get a shift sequence by ID.
| shift_sequence_id required | integer <int32> |
| display | string |
{- "day_count": 0,
- "deleted": true,
- "shift_sequence_id": 0,
- "name": "string",
- "name_short": "string",
- "row_count": 0
}Get all shift sequences data.
| display | string |
{- "shift_sequence_rows": [
- {
- "day_model_ids": [
- 0
]
}
], - "deleted": true,
- "shift_sequences_data_id": 0,
- "shift_sequence_id": 0,
- "end_date": "2019-08-24",
- "start_date": "2019-08-24"
}Get shift sequence data by Shift Sequence ID
| shift_sequence_id required | integer <int32> |
| display | string |
{- "shift_sequence_rows": [
- {
- "day_model_ids": [
- 0
]
}
], - "deleted": true,
- "shift_sequences_data_id": 0,
- "shift_sequence_id": 0,
- "end_date": "2019-08-24",
- "start_date": "2019-08-24"
}Get list of shift swaps for specified parameters
| planning_unit_id required | integer ID of planning unit |
| selection_id | integer ID of selection |
| start_date required | string <date> Start date of requested period |
| end_date required | string <date> End date of requested period |
| status | string Enum: "pending" "executed" "rejected" "offerer_resigned" "acceptor_resigned" "deadline_missed" Status of shift swaps |
[- {
- "id": 0,
- "date": "2019-08-24",
- "additional_date": "2019-08-24",
- "employee_id": 0,
- "accepting_employee_id": 0,
- "status": "string",
- "modification_date": "2019-08-24"
}
]Get all skills for an activity by activity ID
| activity_id required | integer <int32> |
| display | string |
{- "activity_id": 0,
- "activities_skill_id": 0,
- "skill_id": 0,
- "weight": 0
}GET https://legacy-api.peopleware.com/v1/employees/1008/skill_levels
Status 200
{
"data": [
{
"employees_skill_level_id": 1157,
"employee_id": 1008,
"skill_id": 1002,
"skill_level_id": 1003,
"start_date": "2022-12-01",
"end_date": "2022-12-13"
}
]
}
| employee_id required | number Specific Employee ID |
{- "data": [
- {
- "employees_skill_level_id": 0,
- "employee_id": 0,
- "skill_id": 0,
- "skill_level_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
]
}POST https://legacy-api.peopleware.com/v1/employees/1008/skill_levels
{
"data": {
"skill_level_id": 1003,
"start_date": "2022-12-01",
"end_date": "2022-12-21"
}
}
Status 201
{
"data": {
"employees_skill_level_id": 1001,
"employee_id": 1008,
"skill_id": 1002,
"skill_level_id": 1003,
"start_date": "2022-12-01",
"end_date": "2022-12-21"
}
}
| employee_id required | number Specific Employee ID |
required | object non-empty |
{- "data": {
- "skill_level_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
}{- "data": {
- "employees_skill_level_id": 0,
- "employee_id": 0,
- "skill_id": 0,
- "skill_level_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
}PATCH https://legacy-api.peopleware.com/v1/employees/1008/skill_levels/1001
{
"data": {
"start_date": "2021-02-01"
}
}
Status 200
{
"data": {
"employees_skill_level_id": 1001,
"employee_id": 1008,
"skill_id": 1002,
"skill_level_id": 1003,
"start_date": "2021-02-01",
"end_date": "2022-12-21"
}
}
| employee_id required | number Specific Employee ID |
| employees_skill_level_id required | number Specific Employee Skill Level ID |
required | object non-empty |
{- "data": {
- "skill_level_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
}{- "data": {
- "employees_skill_level_id": 0,
- "employee_id": 0,
- "skill_id": 0,
- "skill_level_id": 0,
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
}DELETE https://legacy-api.peopleware.com/v1/employees/1008/skill_levels/1001
Status 204
| employee_id required | number Specific Employee ID |
| employees_skill_level_id required | number Specific Employee Skill Level ID |
{- "errors": [
- {
- "status": "string",
- "title": "string",
- "message": "string"
}
]
}Get employee skill levels by date and employee ID
| employee_id required | integer <int32> |
| start_date required | string <date> |
| end_date | string |
| length | integer <int32> |
| display | string |
{- "employee_id": 0,
- "end_date": "2019-08-24",
- "skill_id": 0,
- "skill_level_id": 0,
- "start_date": "2019-08-24"
}Get employee skill levels by date and planning unit ID
| planning_unit_id required | integer <int32> |
| start_date required | string |
| end_date | string |
| length | integer <int32> |
| display | string |
{- "employee_id": 0,
- "end_date": "2019-08-24",
- "skill_id": 0,
- "skill_level_id": 0,
- "start_date": "2019-08-24"
}Get all time zones.
| display | string |
{- "daylight_saving_times": [
- {
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
], - "description": "string",
- "dst_utc_offset": 0,
- "time_zone_id": 0,
- "std_utc_offset": 0
}Get a time zone by ID.
| time_zone_id required | integer <int32> |
| display | string |
{- "daylight_saving_times": [
- {
- "start_date": "2019-08-24",
- "end_date": "2019-08-24"
}
], - "description": "string",
- "dst_utc_offset": 0,
- "time_zone_id": 0,
- "std_utc_offset": 0
}Get an user group by ID.
| user_group_id required | integer <int32> |
| display | string |
{- "deleted": true,
- "description": "string",
- "user_group_id": 0,
- "name": "string",
- "name_short": "string",
- "user_ids": [
- 0
]
}Get a week time pattern by ID.
| week_model_id required | integer <int32> |
| display | string |
{- "color": 0,
- "deleted": true,
- "description": "string",
- "exception_days": 0,
- "week_model_id": 0,
- "name": "string",
- "name_short": "string"
}Get all work time pattern models.
| display | string |
{- "color": 0,
- "deleted": true,
- "description": "string",
- "work_time_model_id": 0,
- "name": "string",
- "name_short": "string",
- "rotation_type": "string",
- "week_model_id": 0
}Get a work time pattern model by ID.
| work_time_model_id required | integer <int32> |
| display | string |
{- "color": 0,
- "deleted": true,
- "description": "string",
- "work_time_model_id": 0,
- "name": "string",
- "name_short": "string",
- "rotation_type": "string",
- "week_model_id": 0
}