Задача
Получим самую первую запись, отсортировав по убыванию по id, отфильтровав только не архивные (не удаленные) записи, у которых не задано расписание
Решение
GET https://apigw.intradesk.ru/settings/odata/Employees?ApiKey=65247DBDE14C45A6A275DC1FC0&$skip=0&$top=1&$orderby= id desc&$filter=(isarchived eq false) and (workingScheduleId eq null)
Ответ сервера:
{
"@odata.count": 16, //кол-во совпадений (игнорируя skip и top)
"value": [ //массив соответствующих запросу пользователей
{
"id": 583439, //идентификатор
"updatedAt": "2021-08-15T15:28:33.4985050Z", //дата последнего изменения
"name": "Тракторенко Петр Семенович ", //ФИО (автоматически составляется из 3х полей: имя, фамилия отчество)
"firstName": " Петр", //имя сотрудника
"lastName": " Тракторенко ", //фамилия сотрудника
"middleName": " Семенович", //отчество сотрудника
"email": "tps@company.ru", //эл.почта
"userName": " tps@company.ru ", //логин для входа в систему
"type": 10, //тип пользователя. 10 – сотрудник(исполнитель), 20 - клиент
"roles": [
{
"roleId": 145639 //идентификатор роли
}
],
"groups": [ //массив групп, в которых состоит пользователь
{
"id": 431890,
"userGroupId": 176286, //идентификатор группы
"userId": 583439, //идентификатор сотрудника
"userGroup": {
"id": 176286,
"name": "Менеджеры"
},
"isDefault": false //признак, является ли группа основной
}
],
"userTags": [ //теги, закрепленные за сотрудником
{
"userId": 583439, //идентификатор сотрудника
"tagId": 279504, //идентификатор тега
"tag": {
"id": 279504,
"name": "Информирование" //название тега
}
},
{
"userId": 583439,
"tagId": 279503,
"tag": {
"id": 279503,
"name": "Важное"
}
}
],
"sortDirection": 0,
"isArchived": false, //признал, удален ли сотрудник (заархивирован)
"phoneNumbers": [ //тел.номера сотрудника
{
"phoneNumber": "+78001234567", //номер телефона
"default": true, //признак того, что это основной номер пользователя
"phoneExt": null, //добавочный номер
"phoneInternational": "+7 800 123-45-67" //номер телефона в международном формате
}
],
"workingScheduleId": null, //идентификатор рабочего расписания
"phoneNumber": "+78001234567", //номер телефона
"userFieldValues": [ //значения доп.полей (по id)
{
"userFieldId": 690, //идентификатор доп.поля
"value": "2" //значение
}
],
"userClientFieldValues": [], //значения доп.полей (по алиасу)
"fields": {
"addfield_rejimSingleSelect": "2"
},
"fotoImage": ": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD…", // строка с фото сотрудника.
"activeTaskNumber": null, //идентификатор текущей заявки в работе
"updatedBy": "Супервизор ", //автор последних изменений по сотруднику
"timeZoneCode": "Europe/Moscow", //часовой пояс
"emailConfirmed": false, //признак, подтверждена ли эл.почта
"additionalEmails": [ //массив дополнительных эл.почт
"tps@mymail.ru"
]
}
]
}
Полная документация к методу в формате swagger (Settings API)
Другие возможные параметры
GET https://apigw.intradesk.ru/settings/odata/Employees?ApiKey=65247DBDE14C45A6A275DC1FC0
GET https://apigw.intradesk.ru/settings/odata/v2/Employees?ApiKey=65247DBDE14C45A6A275DC1FC0
Параметры запроса:
$skip - количество пользователей-сотрудников, которое нужно пропустить, используется для постраничного листания сотрудников
$top - количество пользователей-сотрудников, которое нужно вернуть, используется для постраничного листания сотрудников
$orderby - название поля для сортировки в списке
$filter - используется для фильтрации списка пользователей-сотрудников. “$filter=(isArchived eq false)" для вывода всех не удаленных записей (не архивных)
$count - true - будет подсчитано количество пользователей-сотрудников, удовлетворяющих запросу
Фильтрация списка
Аналог строки поиска (поиск совпадения строки в полях ФИО, телефоны, email, дополнительных полях типа текст и строка)
$filter=(contains(searchField, 'строка поиска'))
Теги
содержит любое из: $filter=((tags/any(s: s/tagId eq {tagid}))
Телефоны
- заданы - $filter=(PhoneNumberList/any())
- не заданы- $filter=(not PhoneNumberList/any())
Роль
содержит любое из: $filter=((roles/any(s: s/roleId eq {roleId})))
Удален
- да - $filter=(isArchived eq true)
- нет - $filter=(isArchived eq false)
Задача
Получим самую первую запись, отсортировав по убыванию по id, отфильтровав только не архивные (не удаленные) записи, у которых не задано расписание
Решение
GET https://apigw.intradesk.ru/settings/odata/v2/EmployeeGroups?ApiKey=65247DBDE14C45A6A275DC1FC0&$skip=0&$top=1&$orderby= id desc&$filter=(isarchived eq false) and (workingScheduleId eq null)
Ответ сервера:
{
"@odata.count": 3, //кол-во совпадений (игнорируя skip и top)
"value": [
{
"id": 176285, //идентификатор группы
"description": "Группа для менеджеров", //описание
"address": null, //адрес (только для клиентских групп(компаний))
"phoneNumber": "78001234567", //телефонный номер
"email": null, //эл.почта группы (только для клиентских групп(компаний))
"web": null, //web-сайт (только для клиентских групп(компаний))
"additionalInfo": null, //дополнительная информация (только для клиентских групп(компаний))
"updatedAt": "2021-07-30T11:10:51.5207220Z", //дата последних изменений
"name": "Менеджеры", //название группы
"type": 30, тип.
"domains": [], //домены (только для клиентских групп(компаний))
"isArchived": false, //признак, удалена ли группа (заархивирована)
"groupTags": [], //теги (только для клиентских групп(компаний))
"phoneNumbers": [
{
"phoneNumber": "+78001234567", //номер телефона
"default": true, //признак того, что это основной номер пользователя
"phoneExt": null, //добавочный номер
"phoneInternational": "+7 800 123-45-67" //номер телефона в международном формате
}
],
"fieldsValues": [], //значения доп.полей (только для клиентских групп(компаний))
"workingScheduleId": null, //идентификатор рабочего расписания
"logoImage": null, //логотип группы (только для клиентских групп(компаний))
"userGroupFieldValues": [], //значения доп.полей (только для клиентских групп(компаний))
"fields": {}, //значения доп.полей (только для клиентских групп(компаний))
"updatedBy": "Супервайзер ", //автор последних изменений
"timeZoneCode": "Europe/Moscow" //часовой пояс
}
]
}
Полная документация к методу в формате swagger (Settings API)
Другие возможные параметры
GET https://apigw.intradesk.ru/settings/odata/EmployeeGroups?ApiKey=65247DBDE14C45A6A275DC1FC0
Параметры запроса:
$skip - количество групп, которое нужно пропустить, используется для постраничного листания групп
$top - количество групп, которое нужно вернуть, используется для постраничного листания групп
$orderby - название поля для сортировки в списке
$filter - используется для фильтрации списка групп. “$filter=(isArchived eq false)" для вывода всех не удаленных записей (не архивных). подробнее смотри ниже в Фильтрация списка
$count - true - будет подсчитано количество групп, удовлетворяющих запросу
Фильтрация списка:
Аналог строки поиска (поиск совпадения строки в полях название, описание, телефоны)
$filter=(contains(searchField, 'строка поиска'))
Телефоны
- заданы - $filter=(PhoneNumbers/any())
- не заданы- $filter=(not PhoneNumbers/any())
Название
- содержит строку- $filter=(contains(name, 'строка поиска'))
Описание
- cодержит строку- $filter=(contains(description, 'строка поиска'))
Расписание
- cодержит любое из - $filter=(workingScheduleId eq {id}) , где {id} – идентификатор расписания
- задано - $filter=(workingScheduleId ne null)
- не задано - $filter=(workingScheduleId eq null)
Удалена
- да - $filter=(isArchived eq true)
- нет - $filter=(isArchived eq false)
Пример использования нескольких фильтров
- Не удалена и задан номер телефона - $filter=(isArchived eq true) and
- Не удалена, задано расписание с идентификатором 12 или расписание с идентификатором 35 - $filter=(isArchived eq true) and ((workingScheduleId eq 12) or (workingScheduleId eq 35))
Задача
Создадим нового сотрудника заполнив поля.
Решение
POST https://apigw.intradesk.ru/settings/api/v3/employees/Users?ApiKey=65247DBDE14C45A6A275DC1FC0
Тело запроса:
{
//ОБЯЗАТЕЛЬНОЕ ПОЛЕ
"firstName": "Петр",
//ОБЯЗАТЕЛЬНОЕ ПОЛЕ
"lastName": "Тракторенко",
"middleName": "Николаевич",
//ОБЯЗАТЕЛЬНОЕ ПОЛЕ
"email": "tpn@company.com",
"password": "11!!qqQQ",
"schedule": null,
"phoneNumbersList": [
{
"phoneNumber": "+78005553535",
"phoneExt": null,
"default": true
}
],
"timeZoneCode": "Europe/Moscow",
"additionalEmails": ["tpn_2@company.com"],
"isNewFoto": true,
"fotoImage": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD…",
"language": "RU",
"userGroups": [{"id": 10000},{"id": 20000}],
"roleId": 20000,
"fieldsValues": [
{
"alias": "addfield_abf89fbchisloNumber",
"value": 500
},
{
"alias": "addfield_b5068f9strokaString",
"value": "моя строка"
},
{
"alias": "addfield_5e418dbvyp_spisokSingleSelect",
"value": "А-значение"
},
{
"alias": "addfield_6686599dataDateTime",
"value": "2023-08-23T21:00:00.000Z"
},
{
"alias": "addfield_dcbc44bda/netBoolean",
"value": true
},
{
"alias": "addfield_c2b5ed7tekstText",
"value": "мой текст"
},
{
"alias": "addfield_735a644mnozh.vyborMultiSelect",
"value": "[\"А-значение\",\"Б-значение\"]"
}
],
"userTags": [{"id": 750}]
}
Ответ сервера:
Идентификатор созданной компании (статус-код 200)
Полная документация к методу в формате swagger (Settings API)
Другие возможные параметры
POST https://apigw.intradesk.ru/settings/api/v3/employees/Users?ApiKey=65247DBDE14C45A6A275DC1FC0
Тело запроса:
{
//ОБЯЗАТЕЛЬНОЕ ПОЛЕ
"firstName", // строка, имя пользователя
//ОБЯЗАТЕЛЬНОЕ ПОЛЕ
"lastName", // строка, фамилия пользователя
"middleName", // строка, отчество пользователя
//ОБЯЗАТЕЛЬНОЕ ПОЛЕ
"email", // строка, эл.почта пользователя
"password", // строка, пароль пользователя
"schedule", // строка, идентификатор расписания
"phoneNumbersList": [ // массив объектов. тел. номера
{
"phoneNumber", // строка, номер телефона
"phoneExt", // строка, добавочный номер
"default" // признак, является ли номер основным
}
],
"timeZoneCode", // строка, часовой пояс пользователя
"additionalEmails", // массив строк, дополнительные эл.почты
"isNewFoto" // признак, что фото новое и нужно обновить
"fotoImage", // строка, фото клиента.
"language", // строка, язык. Допустимые значения: "RU", "EN". По умолчанию наследуется от Настройки->Общие->Другое
"userGroups", // массив объектов, группы, к которым прикреплен пользователь
"roleId", // число, идентификатор роли
"fieldsValues": [ // массив объектов, значения доп.полей
{
"alias": "addfield_abf89fbchisloNumber", //строка, алиас. можно получить на карточке доп.поля
"value": 500 //пример значения для доп.поля типа "Число"
},
{
"alias": "addfield_b5068f9strokaString", //строка, алиас. можно получить на карточке доп.поля
"value": "моя строка" //пример значения для доп.поля типа "Строка"
},
{
"alias": "addfield_5e418dbvyp._spisok_(1_znachenie)SingleSelect", //строка, алиас. можно получить на карточке доп.поля
"value": "А-значение" //пример значения для доп.поля типа "Выпадающий список (одно значение)"
},
{
"alias": "addfield_6686599dataDateTime", //строка, алиас. можно получить на карточке доп.поля
"value": "2023-08-23T21:00:00.000Z" //пример значения для доп.поля типа "Дата"
},
{
"alias": "addfield_dcbc44bda/netBoolean", //строка, алиас. можно получить на карточке доп.поля
"value": true //пример значения для доп.поля типа "Да/Нет"
},
{
"alias": "addfield_c2b5ed7tekstText", //строка, алиас. можно получить на карточке доп.поля
"value": "мой текст" //пример значения для доп.поля типа "Текст"
},
{
"alias": "addfield_735a644mnozh.vyborMultiSelect", //строка, алиас. можно получить на карточке доп.поля
"value": "[\"А-значение\",\"Б-значение\"]" //пример значения для доп.поля типа "Множественный выбор"
}
],
"userTags" // массив объектов, теги, которыми помечен пользователь
}
Задача
Отвяжем пользователя Петрова А.С. с id равным 759 от группы «Менеджеры» с id равным 1280.
Решение
DELETE https://apigw.intradesk.ru/settings/api/usergroupusers?ApiKey=65247DBDE14C45A6A275DC1FC0
Тело запроса:
{
“id": 759,
"groupId":1280
}
Ответ сервера:
{
"isSuccess": true,
"message": null,
"errorType": null
}
Полная документация к методу в формате swagger (Settings API)
Другие возможные параметры
DELETE https://apigw.intradesk.ru/settings/api/usergroupusers?ApiKey=65247DBDE14C45A6A275DC1FC0
Тело запроса:
{
“id", //число, идентификатор пользователя
"groupId" //число, идентификатор группы/компании
}
Задача
Получим сотрудника с id равным 604876
Решение
GET https://apigw.intradesk.ru/settings/odata/Employees?ApiKey=65247DBDE14C45A6A275DC1FC0&$filter=id eq 604876
Подробнее о запросе и об ответе см. в статье «Получение списка сотрудников (пользователей)»
Полная документация к методу в формате swagger (Settings API)
Другие возможные параметры
GET https://apigw.intradesk.ru/settings/odata/Employees?ApiKey=65247DBDE14C45A6A275DC1FC0
Для получения информации о сотруднике по его идентификатору, необходимо воспользоваться запросом на получение списка сотрудников, с указанием фильтра (параметр $filter) по идентификатору.
Задача
Обновим группе «Исполнители» описание.
Решение
PUT https://apigw.intradesk.ru/settings/api/v3/employees/Groups?ApiKey=65247DBDE14C45A6A275DC1FC0
Тело запроса:
Обязательно указание поля "id" - идентификатора группы для изменения. При запросе необходимо передавать все поля. Поля, которые не будут переданы, обнулятся.
{
"id": 109955,
"name": "Обновленное имя",
"description": "Обновленное описание",
"phoneNumbersList": [
{
"phoneNumber": "+78001234567",
"phoneExt": "0123",
"default": true
}
]
}
Ответ сервера:
{
"isSuccess": true,
"message": null,
"errorType": null
}
Полная документация к методу в формате swagger (Settings API)
Другие возможные параметры
PUT https://apigw.intradesk.ru/settings/api/v3/employees/Groups?ApiKey=65247DBDE14C45A6A275DC1FC0
Тело запроса:
Обязательно указание поля "id" - идентификатора группы для изменения. При запросе необходимо передавать все поля. Поля, которые не будут переданы, обнулятся.
{
"id", //число, идентификатор группы
"name", // строка, название группы
"description", // строка, описание группы
"phoneNumbersList": [ //массив объектов, телефонные номера
{
"phoneNumber", // строка, телефонный номер
"phoneExt", // строка, добавочный номер
"default" //признак, является ли основным
}
]
}
Задача
Удалим пользователей с id равным 1029 и 2766.
Решение
DELETE https://apigw.intradesk.ru/settings/api/v3/employees/Users?ApiKey=65247DBDE14C45A6A275DC1FC0
Тело запроса:
{
"ids":[1029, 2766]
}
Ответ сервера:
{
"isSuccess": true,
"message": null,
"errorType": null
}
Полная документация к методу в формате swagger (Settings API)
Другие возможные параметры
DELETE https://apigw.intradesk.ru/settings/api/v3/employees/Users?ApiKey=65247DBDE14C45A6A275DC1FC0
Тело запроса:
{
"ids":[{userid1}, {userid2}, ..., {useridN}]
}
"ids" - массив идентификаторов пользователей сотрудников
Задача
Восстановим пользователя с id равным 10000
Решение
PUT https://apigw.intradesk.ru/settings/api/v3/employees/Users/Restore/10000?ApiKey=65247DBDE14C45A6A275DC1FC0Ответ сервера:
{
"isSuccess": true,
"message": null,
"errorType": null
}
Другие возможные параметры
PUT https://apigw.intradesk.ru/settings/api/v3/employees/Users/Restore/{ID_удаляемого_пользователя}?ApiKey=65247DBDE14C45A6A275DC1FC0
Задача
Изменим пользователя-сотрудника Тракторенко Перта с id равным 604876.
Решение
PATCH https://apigw.intradesk.ru/settings/api/v3/employees/Users?ApiKey=65247DBDE14C45A6A275DC1FC0
Тело запроса:
{
"id": 604876,
"firstName": "Перт",
"lastName": "Тракторенко",
"middleName": "Семенович",
"email": "tr@mail.com",
"userGroups": [
{
"isDefault": false,
"id": 176286
}
],
"phoneNumbersList": [
{
"phoneNumber": "+78001234567",
"phoneExt": null,
"default": true
}
],
"isArchived": false,
"fotoImage": null,
"timeZoneCode": "Europe/Moscow",
"additionalEmails": [
"tr2@mail.ru"
],
"roleId": 145639,
"workingScheduleId": 3611,
"fieldsValues": [
{
"alias": "addfield_abf89fbchisloNumber",
"value": 500
},
{
"alias": "addfield_b5068f9strokaString",
"value": "моя строка"
},
{
"alias": "addfield_5e418dbvyp_spisokSingleSelect",
"value": "А-значение"
},
{
"alias": "addfield_6686599dataDateTime",
"value": "2023-08-23T21:00:00.000Z"
},
{
"alias": "addfield_dcbc44bda/netBoolean",
"value": true
},
{
"alias": "addfield_c2b5ed7tekstText",
"value": "мой текст"
},
{
"alias": "addfield_735a644mnozh.vyborMultiSelect",
"value": "[\"А-значение\",\"Б-значение\"]"
}
],
"isNewFoto": false,
"userTags": [
{
"id": 279504
}
]
}
Ответ сервера:
Получаем статус-код 200 и идентификатор измененной записи.
Полная документация к методу в формате swagger (Settings API)
Другие возможные параметры
PATCH https://apigw.intradesk.ru/settings/api/v3/employees/Users?ApiKey=65247DBDE14C45A6A275DC1FC0
Тело запроса:
Обязательно указание поля "id" - идентификатора пользователя сотрудника для изменения.
При запросе необходимо передавать все поля. Поля, которые не будут переданы, обнулятся.
{
"id", //число, идентификатор пользователя
"firstName", // строка, имя пользователя
"lastName", // строка, фамилия пользователя
"middleName", // строка, отчество пользователя
"email", // строка, эп.почта
"userGroups": [ //массив объектов, группы, к которым привязан сотрудник
{
"isDefault", //признак, является ли группа основной
"id" //число, идентификатор группы
}
],
"phoneNumbersList": [ //массив объектов, телефонные номера
{
"phoneNumber", // строка, телефонный номер
"phoneExt", // строка, добавочный номер
"default" //признак, является ли основным
}
],
"isArchived", // признак, удален ли пользователь (заархивирован)
"fotoImage", // строка, фото сотрудника
"timeZoneCode", // строка, часовой пояс
"additionalEmails": [], //массив строк, дополнительные эл.почты
"roleId", //число, идентификатор роли
"workingScheduleId", //число, идентификатор рабочего расписания
"fieldsValues": [ // массив объектов, значения доп.полей
{
"alias": "addfield_abf89fbchisloNumber", //строка, алиас. можно получить на карточке доп.поля
"value": 500 //пример значения для доп.поля типа "Число"
},
{
"alias": "addfield_b5068f9strokaString", //строка, алиас. можно получить на карточке доп.поля
"value": "моя строка" //пример значения для доп.поля типа "Строка"
},
{
"alias": "addfield_5e418dbvyp._spisok_(1_znachenie)SingleSelect", //строка, алиас. можно получить на карточке доп.поля
"value": "А-значение" //пример значения для доп.поля типа "Выпадающий список (одно значение)"
},
{
"alias": "addfield_6686599dataDateTime", //строка, алиас. можно получить на карточке доп.поля
"value": "2023-08-23T21:00:00.000Z" //пример значения для доп.поля типа "Дата"
},
{
"alias": "addfield_dcbc44bda/netBoolean", //строка, алиас. можно получить на карточке доп.поля
"value": true //пример значения для доп.поля типа "Да/Нет"
},
{
"alias": "addfield_c2b5ed7tekstText", //строка, алиас. можно получить на карточке доп.поля
"value": "мой текст" //пример значения для доп.поля типа "Текст"
},
{
"alias": "addfield_735a644mnozh.vyborMultiSelect", //строка, алиас. можно получить на карточке доп.поля
"value": "[\"А-значение\",\"Б-значение\"]" //пример значения для доп.поля типа "Множественный выбор"
}
],
"isNewFoto", //признак, была ли изменена фотография пользователя
"userTags": [ //массив объектов, тегов
{
"id" //число, идентификатор тега
}
]
}