You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Схема процесса интеграции



Общие правила планирования(question)  нужны

  • админу Кадровику доступны любые изменения, согласование и т.д. в любом периоде. независимо от разрешения планирования
  • Разрешить планирование только Админ
  • после завершения планирования (шаг Х) сотрудники не смогут, руковдители смогут....
  • для планирвания необходимы дост дни  для планирвания
  • планирование осуществляется с учетом регионального календаря сотрудника, если он был загружен сотруднику (Шаг Х)
  • планирование осуществляется только по осн и доп отпуску
  • планирование осуществляется по всем сотрудникам пользователя (развернуть + про согласование)
  • (warning)  справочник типов отпусков пока не используется...планируется в будущем
  • при необходимости, можно загрузить изменения отпусков из внешней системы в Линк (шаг х)


Шаги процесса

ШАГ 1. Загрузить доступные дни для планирования на год

МетодСсылка на документацию OpenAPI

POST https://{host}/api/v1/clients/{clientId}/bulkDataSyncTasks

type = EMPLOYEE_VACATIONS_PLANNING

https://docs.myhrlink.ru/public/openapi/hr-link/#tag/otherDataSync/operation/createBulkDataSyncTask

Дополнительная информация

  • Загрузить дни для планирования может как Администратор, так и Кадровик (Настройщик не может(question) ) нужно ли это указывать ?
    • Пользователь должен иметь право BULK_DATA_SYNC_TASKS_CREATE на уровне пользователя клиента или на уровне активного сотрудника.
  • Информация о доступных днях для планирования необходима для возможности планирования отпусков в HRlink.
ПеременнаяОписаниеОбязательность

tenantHost

Хост тенанта, на который должен быть выполнен запрос

да

clientId

ИД клиента HRlinkда
externalId

Внешний идентификатор сотрудника.

  • Доступные для планирования дни можно загрузить всем сотрудникам пользователя. Но при планировании будут использованы дни по основному месту работу.
  • Если основное место работы не задано, то будут использовано наибольшее число доступных дней для планирования. 
  • Как задать основное место работы?
да
legalEntityExternalIdВнешний идентификатор юрлица сотрудника.нет
availableVacationsPlanning[]

Массив с данными для планирования. 

  • В массиве можно передать значения для нескольких лет. 
  • В системе будут обновлены только дни указанного года.
нет
planningYearГод, на который будут планироваться отпусканет
basicVacationDayCount

Количество дней основного отпуска, доступных для планирования.

  • Если данные не будут переданы, то они будут записаны как null.
нет
additionalVacationDayCount

Количество дней дополнительного отпуска, доступных для планирования.

  • Если данные не будут переданы, то они будут записаны как null.
нет


Пример запроса
curl --location 'https://{{tenantHost}}/api/v1/clients/{{clientId}}/bulkDataSyncTasks' \
--header 'Impersonated-User-Id: {{clientUserExternalId}}' \
--header 'Impersonated-User-Id-Type: EXTERNAL_ID' \
--data '{
    "type": "EMPLOYEE_VACATIONS_PLANNING",
    "data": [
       {
           "externalId": "{{Внешний ИД сотрудника}}",
           "legalEntityExternalId": "{{Внешний ИД юрлица}}",
           "availableVacationsPlanning": [
              {
               "planningYear": 2026,
               "basicVacationDayCount": 28,
               "additionalVacationDayCount": 3
              }
           ]
       }
    ]
}'


Пример ответа

{
    "result": true,
    "bulkDataSyncTask": {
        "id": "{{ИД задачи массовой синхронизации данных}}"
    }
}

ШАГ 1.1 Загрузить региональные календарей сотрудников

Опциональный шаг.

Если календари были загружены ранее и регулярно обновляются у сотрудников, то этот шаг можно пропустить.

Описать на отдельной странице. (warning) 

  1. Загрузка календаря.
  2. Назначение календаря сотруднику.

Где используются календари в системе?

ШАГ 2. Разрешить планирование отпусков на год

Установить состояние возможности планирования отпусков

МетодСсылка на документацию OpenAPI

PUT https://{host}/api/v1/clients/{clientId}/vacations/setPlanningState


https://docs.myhrlink.ru/public/openapi/hr-link/#tag/vacationScheduleManage/operation/setPlanningState


Дополнительная информация

  • Разрешить планирование может только Администратор.
    • Пользователь должен иметь право VACATIONS_CHANGE_PLANNING_STATE на уровне пользователя клиента или на уровне активного сотрудника.
ПеременнаяОписаниеОбязательность

tenantHost

Хост тенанта, на который должен быть выполнен запрос

да

clientId

ИД клиента HRlinkда
planningState

Состояние планирования отпусков в системе HRlink.

Может принимать два состояния:

  • ENABLED - Планирование разрешено.
  • DISABLED - Планирование запрещено.
да
planningYear

Год, на который устанавливается настройка планирования.

  • Допустимо указывать значение только текущего или следующего года.
  • Если год не задан, то по умолчанию, настройка устанавливается на текущий год. 
нет


Пример запроса
curl --request PUT \
--url 'https://{{tenantHost}}/api/v1/clients/{clientId}/vacations/setPlanningState?planningState=ENABLED&planningYear=2026' \
--header 'Impersonated-User-Id: {{clientUserExternalId}}' \
--header 'Impersonated-User-Id-Type: EXTERNAL_ID' \
--header 'master-api-token: master_token_value


Пример ответа

{
    "result": true
}



ШАГ 3. Завершить планирование отпусков на год

Установить состояние возможности планирования отпусков

МетодСсылка на документацию OpenAPI

PUT https://{host}/api/v1/clients/{clientId}/vacations/setPlanningState


https://docs.myhrlink.ru/public/openapi/hr-link/#tag/vacationScheduleManage/operation/setPlanningState


Дополнительная информация

  • Опциональный шаг.
    • Если необходимо в текущем году запретить Сотрудникам и Руководителям изменять отпуска, то требуется выполнить этот шаг.
    • После наступления нового календарного года изменение отпусков будет автоматически недоступно для Сотрудника и Руководителя.
  • Завершить планирование может только Администратор.
    • Пользователь должен иметь право VACATIONS_CHANGE_PLANNING_STATE на уровне пользователя клиента или на уровне активного сотрудника.
ПеременнаяОписаниеОбязательность

tenantHost

Хост тенанта, на который должен быть выполнен запрос

да

clientId

ИД клиента HRlinkда
planningState

Состояние планирования отпусков в системе HRlink.

Может принимать два состояния:

  • ENABLED - Планирование разрешено.
  • DISABLED - Планирование запрещено.
да
planningYear

Год, на который устанавливается настройка планирования.

  • Допустимо указывать значение только текущего или следующего года.
  • Если год не задан, то по умолчанию, настройка устанавливается на текущий год. 
нет


Пример запроса
curl --request PUT \
--url 'https://{{tenantHost}}/api/v1/clients/{clientId}/vacations/setPlanningState?planningState=DISABLED&planningYear=2026' \
--header 'Impersonated-User-Id: {{clientUserExternalId}}' \
--header 'Impersonated-User-Id-Type: EXTERNAL_ID' \
--header 'master-api-token: master_token_value


Пример ответа

{
    "result": true
}


ШАГ 4. Выгрузить спланированные отпуска 

Получить данные о запланированных отпусках сотрудников

МетодСсылка на документацию OpenAPI

POST https://{host}/api/v1/clients/{clientId}/employees/getPlannedVacationPeriod


https://docs.myhrlink.ru/public/openapi/hr-link/#tag/vacationScheduleGet/operation/getPlannedVacationPeriod


Дополнительная информация

  • Получить спланированные периоды отпусков может как Администратор,  так и Кадровик.
    • Пользователь должен иметь право EMPLOYEE_PLANNED_VACATIONS на уровне пользователя клиента или на уровне активного сотрудника.
ПеременнаяОписаниеОбязательность

tenantHost

Хост тенанта, на который должен быть выполнен запрос

да

clientId

ИД клиента HRlinkда
vacations{}

Данные для фильтрации периодов планируемых отпусков.

  • Даты начала и конца периода либо заданы обе, либо не заданы совсем.
да
startDateFromНачало периода, в который должно попадать начало запрашиваемого планируемого отпуска.нет
startDateToКонец периода, в который должно попадать начало запрашиваемого планируемого отпусканет
status

Статус запрашиваемых планируемых отпусков сотрудников.

нет
employees[]

Список сотрудников, по которым необходимо получить отпуска.

  • Если массив пуст, то в ответе будут присутствовать все доступные сотрудники, с учетом иных фильтров.
  • Если массив задан, то передано одно из значений ID сотрудника, или внутренний, или внешний.
да

id

ID сотрудника в системе HRlink.нет
externalIdID сотрудника во внешней системе.нет
department[]

Список отделов, по которым необходимо получить отпуска.

  • Если массив пуст, то в ответе будут присутствовать все сотрудники из доступных отделов, с учетом иных фильтров.
  • Если массив задан, то передано одно из значений ID отдела, или внутренний, или внешний.
да

id

ID отдела в системе HRlink.нет
externalIdID отдела клиента во внешней системе.нет
legalEntity[]

Список юрлиц, по которым необходимо получить отпуска.

  • Если массив пуст, то в ответе будут присутствовать все сотрудники из доступных юрлиц, с учетом иных фильтров.
  • Если массив задан, то передано одно из значений ID юрлица, или внутренний, или внешний.
да

id

ID юрлица клиента в системе HRlink.нет
externalIdID юрлица клиента во внешней системе.нет
limit

Количество возвращаемых при запросе элементов.

  • Максимальное значение - 100 (question) 
  • Значение по умолчанию - 10
нет
offsetКоличество элементов, которые нужно пропустить при выборке.нет
withoutDismissedEmployees

Вернуть ответ без уволенных сотрудников?

  • По умолчанию, уволенные сотрудники вернутся в ответе.
нет


Пример запроса
curl --request POST \
--url 'https://{{tenantHost}}/api/v1/clients/{clientId}/employees/getPlannedVacationPeriod' \
--header 'Impersonated-User-Id: {{clientUserExternalId}}' \
--header 'Impersonated-User-Id-Type: EXTERNAL_ID' \
--header 'master-api-token: master_token_value
--data '{
  "vacations": {
    "startDateFrom": "2026-01-01",
    "startDateTo": "2026-12-01",
    "status": "ALL"
  },
  "employees": [
    {
      "externalId": "{{Внешний ИД сотрудника}}"
    }
  ],
  "department": [
    {
      "externalId": "{{Внешний ИД отдела}}"
    }
  ],
  "legalEntity": [
    {
      "externalId": "{{Внешний ИД юрлица}}"
    }
  ],
  "limit": null,
  "offset": null,
  "withoutDismissedEmployees": true
}'


Пример ответа

{
  "result": true,
  "employeePlannedVacationPeriods": [
    {
      "id": "{{Внутренний ИД сотрудника}}",
      "externalId": "{{Внешний ИД сотрудника}}",
      "periods": [
        {
          "vacationType": "Основной",
          "vacationStatus": "Ожидает согласования",
          "dateFrom": "2026-09-15",
          "dateTo": "2026-09-28"
        },
        {
          "vacationType": "Дополнительный",
          "vacationStatus": "Согласовано",
          "dateFrom": "2026-10-01",
          "dateTo": "2026-10-03"
        } 
      ]
    }
  ]
}





Загрузка отпусков из внешней системы в HRlink


Выгрузка спланированных в HRlink отпусков.



  • No labels