Задача
Создать заявку: «Не работает сервер X». Пометить её тегом “monitoring”
Решение
Продемонстрируем решение в общеизвестной программе тестирования API - Postman.
Для начала в разделе Настройки -> Теги создайте тег “monitoring”. В нашем примере система присвоила ему ID=33290.
Post запрос будет вида:
POST https://apigw.intradesk.ru/changes/tasks?ApiKey=1B42B8691ABB40AA961451D9ACЗначение Apikey можно получить в системе в разделе: Настройки -> Интеграции -> Apikey
Тело запроса:
{
"blocks": {
"name": "{\"value\":\"Не работает сервер X1. Просьба починить.\"}",
"description": "{\"value\":\"Даже не запускается. Лампочки не горят.\"}",
"tags": "{\"value\":[33290]}"
},
"Channel": "web"
}
Скопируйте тело запроса в программу Postman. Пункт меню: Body -> raw как на рисунке ниже:
Также на закладке Headers задайте Content-Type равным «application/json» как на рисунке ниже, и нажмите кнопку Send:
Всё! Заявка создана.
См. также изменение заявки.
Полная документация к методу в формате swagger (ChangeService API)
Задача
Поменять у заявки статус на «В работе», назначить сервис/тип: «Сервера, компьютеры (железо)” / ”инцидент”, назначить исполнителя «Первая линия поддержки»/«Мастерков А.А.», установить плановый срок выполнения «15.03.2022 18:00», установить теги, добавить комментарий «Постараемся сделать до обеда» (полный список полей, которых можно поменять одним запросом на заявке).
Решение
Put запрос будет вида:
PUT https://apigw.intradesk.ru/changes/tasks/?ApiKey=65247DBDE14C45A6A275DC1FC0
Значение Apikey можно получить в системе в разделе: Настройки -> Интеграции -> Apikey
Установить Content-Type = «application/json»
Тело запроса:
{
"number": 272,
"blocks": {
"status": "{\"value\": 22058}",
"service": "{\"value\": \"23097/\"}",
"tasktype": "{\"value\": 7805}",
"executor": "{\"value\":{\"userid\":109747,\"groupid\":31974}}",
"resolutiondateplan": "{\"value\": \"2022-03-15T15:00:00.0000000Z\"}",
"tags": "{\"value\": [32887,32893]}",
"comment": "{\"value\":\"Постараемся сделать до обеда.\"}",
"evaluation": "{\"value\":{\"value\":3,\"text\":\"Удовлетворительно\"}}"
},
"Channel": "api"
}
status Статус заявки. См: Настройки->Справочники ->Статусы . см. поле ID на списке
service Сервис. См: Настройки->Сервисы см. поле «путь сервиса» на карточке сервиса
tasktype Тип заявки. См: Настройки->Заявки->Типы заявок . см. поле ID на списке
tags Теги по заявки. См: Настройки->Теги . см. поле ID на списке
executor Исполнители. Составное поле. Можно указать Группу исполнителей, можно конкретного Исполнителя, можно и Группу и Исполнителя из этой группы одновременно. Что и продемонстриовано. Смотри раздел Сотрудники-Люди и Сотрудники-Группы. см. поле ID на списке
comment Добавление комментария
evaluation Оценка заявки
Список всех полей, которых можно изменить одним запросом см. здесь.
Полная документация к методу в формате swagger (ChangeService API)
Задача
Получить первые 5 заявок в статусах «открыта» и «в работе», с группой исполнителей «менеджеры», в сервисе «Программное обеспечение» (и дочерних сервисах). Отсортированные по дате изменения.
Решение
Get запрос будет вида:
https://apigw.intradesk.ru/tasklist/odata/tasks?ApiKey=65247DBDE14C45A6A275DC1FC0&$filter=(status eq 22055 or status eq 22058) and executorgroup eq 31973 and servicepath eq '3974/'&$orderby=updatedat desc&$top=5
Значение Apikey можно получить в системе в разделе: Настройки -> Интеграции -> Apikey
status Статус «открыта» id: 22055 См: Настройки->Справочники->Статусы . см. поле ID на списке
Статус «в работе» id: 22058
executorgroup Группа исполнители «менеджеры» id: 31973. см. Сотрудники -> Группы
servicepath Сервис «Программное обеспечение» servicepath: 3974 см. Настройки -> Сервисы
Любое из условий фильтрации вы можете опустить (не использовать), а также добавить другие условия фильтрации. См. также Описание полей заявки.
Полная документация к методу в формате swagger (TaskList API)
Задача
Понять какие поля есть у заявки, что они означают для использования в API.
Решение
"id": 4702781, // Служебное. Общий идентификатор заявки
"tasknumber": 31, // номер заявки
"customerid": 19359, // Служебное. идентификатор “катомера»
"status": 120570, // ID Статуса.
// Можно посмотреть в разделе Настройки->Справочники->Статусы
"priority": 75708, //ID Приоритета.
// Можно посмотреть в разделе Настройки->Справочники->Приоритеты
"name": "Проблемы с принтером", //Название заявки
"description": “Зажевал бумагу», //Описание
"initiator", //Заявитель (инициатор заявки).
При создании и изменении (POST, PUT) можно указать одно из трех:
1) Пользователя-Сотрудника
"initiator": "{\"value\":{\"userid\":109747}}"
2) Клиента
"initiator": "{\"value\":{\"groupid\":109747}}"
3) Клиента и пользователя клиента одновременно
"initiator": "{\"value\":{\"groupid\":109747,\"userid\":31974}}"
При получении (GET) возвращается всегда либо Пользователь-сотрудник, либо Пользователь клиента.
"initiatorclient", // Клиент заявитель.
Только для получения данных. Возвращается Клиент. Для изменения см. поле initiator
"executor",: //Исполнители по заявки.
При создании и изменении (POST, PUT) можно указать одно из трех:
1) Пользователя-Сотрудника
"executor": "{\"value\":{\"userid\":109747}}"
2) Группу сотрудников
"executor": "{\"value\":{\"groupid\":109747}}"
3) Одновременно группу и сотрудника, входящего в эту группу
"executor": "{\"value\":{\"groupid\":109747,\"userid\":31974}}"
При получении (GET) возвращается всегда либо Пользователь-сотрудник, либо Пользователь клиента.
"executorgroup" // Группа исполнителей.
Только для получения данных. Возвращается группа исполнителей
"creator": 583427, //ID пользователя, создавшего заявку. Заполняется всегда автоматически. Может отличаться от Заявителя (инициатора). Например, если на форме создания заявки изменить поле «Заявитель» (По звонку оператор выставляет Заявителем, того кто звонит),
"createdby": "Супервизор участка №15 ", //имя пользователя, создавшего заявку, только чтение.
"createdat": "2021-03-17T09:04:31.1095880Z", //дата создания заявки, только чтение
"updatedat": "2021-04-09T13:16:40.8114620Z", //дата последнего изменения заявки, только чтение
"updatedby": "Супервизор участка №15 ", //имя последнего изменившего заявку пользователя, только чтение
"service": 115438, // ID cервиса к которому относится заявка. Заявка может быть только в одном сервисе. В ответе (метод GET) возвращается идентификатор сервиса. Для методов POST и PUT (создание и изменение заявки) надо передавать не ID, а путь к сервису, см. Настройки->Сервисы, поле «Путь сервиса» на карточке сервиса. См. пример Изменения заявки
"servicename": "Орг.техника", //имя сервиса, в котором создана заявка, только чтение
"tasktype": 36283, // идентификатор типа заявки
// Можно посмотреть в разделе Настройки->Заявки->Типы заявок
"evaluation": "{\"value\":{\"value\":3,\"text\":\"Удовлетворительно\"}}", //оценка заявки. Поле "Value" содержит объект с двумя полями, "Value", хранящий числовое значение оценки и "Text", хранящее текстовое значение оценки. Важно заполнять оба значения*
"clientid": // ID клиента к которому относится заявка.:
В интерфейсах Clientid будет заполняться автоматически значением Initiatorclient (заявитель) если заявку создает пользователь клиента (или сотрудник от имени клиента). Это заявка от клиента.
Если заявка создается на карточки клиента и заявителем выступает сотрудник, то Clientid будет соответствовать данному клиенту (а не заявителю). Это заявка по клиенту одного сотрудника другому.
"resolutiondateplan": // Плановое время решения. Пример «2021-03-17T09:04:00.0000000Z» //Дата. В формате IOS8601 “yyyy-MM-ddTHH:mm:ss.fffffffzzz” (UTC+0). Плановое время решения (срок выполнения заявки). Может быть задано на форме вручную, а может быть автоматически рассчитана на основе настроенного SLA.
см. пример Изменения заявки
"resolutiondatefact": // Фактическое время решения. Пример «2021-03-17T09:04:00.0000000Z»
//Дата. Фактическое время решения. Intradesk автоматически заполняет это поле когда заявка переходит в статус с признаком «Выполнено».
"reactiondateplan": // Плановое время реакции. Пример «2021-03-17T09:04:00.0000000Z»
//Дата. плановое время реагирования. Может быть рассчитано на основе SLA.
"reactiondatefact": // Фактическое время реакции. Пример «2021-03-17T09:04:00.0000000Z»
//Дата. Фактическое время решения. Intradesk автоматически заполняет это поле когда Сотрудник в заявке делает первый перевод статуса.
"tags": [ //массив идентификаторов тегов
279504,279508
], см. пример Изменения заявки
"servicepath": "115434/115438/", //полный путь к Сервису
"workflow": 26454, // идентификатор бизнес-процесса
"observerlist": [], //массив идентификаторов пользователей-наблюдателей
"observergrouplist": [], //массив идентификаторов пользовательских групп-наблюдателей
"closedat": "2021-03-17T09:04:00.0000000Z", //дата закрытия, когда заявка была переведена в статус с признаком "Статус конечный"
"notresponsibleexecutors": [], // массив идентификаторов не ответственных пользователей-исполнителей заявки (тех сотрудников, кто ранее был исполнителей на заявке)
"notresponsibleexecutorgroups": [], // массив идентификаторов не ответственных групп-исполнителей заявки (тех групп сотрудников, которые ранее были исполнителями на заявке)
"additionalfields": { //массив данных дополнительных полей заявки
"data": [
{
"alias": "addfield_stoimost", //алиас(псевдоним) доп.поля
"value": { //значения поля в зависимости от его типа
"numericvalue": 35, //если поле числового типа
"boolvalue": null, //если поле булева типа
"datevalue": null, //если поле типа дата
"stringvalue": null, //если поле строкового типа
"liststringvalue": null //если поле содержит несколько значений (выпадающий список)
}
}
],
"count": 1
},
"lifetime": null, //жизненный цикл заявки (не заполняется если в запросе передано excludelifetime=true)
"servicefullname": "Тех. проблемы>Орг.техника", //полное имя сервиса
"isserviceadmin": false, //признак, который указывает, является ли пользователь, от имени которого выполняется запрос, администратором сервиса заявки
"servicesettingadminid": 53035,
"attachments": //сериализованный массив данных о прикрепленных файлах
"createdchannel": строка //канал создания заявки. Например, "web"," api", "ios" и т.д..
"assets": {"value":[55,60]} //объект, содержащий массив идентификаторов активов
"[{\"Id\":\"611394333b320b000188066b\",\"Name\":\"page.html\",\"ContentType\":\"text/html\",\"Size\":1352,\"Target\":20,\"UploadedAt\":\"2021-08-11T09:11:15.9360000Z\",\"UploadedBy\":\"Супервизор участка №15 \"}]",
"weight": 0,
"filledfieldslist": null, //Служебное
"isreactionexpired": false, //признак того, что время реакции превышено
"isresolutionexpired": false, //признак того, что время решения превышено
"_searchhighlights": null, // Служебное, не используется.
"sla": null, // идентификатор SLA, см. Настройки->Справочники->SLA
"resolutionleftminutes": null, //оставшееся на выполнение время
"tasknumberpath": "31/", //путь номеров заявок в дереве (включая родительские заявки)
"taskbranchid": "ba8bc1cb-95f3-4d12-9829-66622ea57f1c", // идентификатор дерева заявок, заполнен только у заявок, которые являются частью дерева заявок, являются дочерней или родительской заявкой
"taskexpenses": null, //трудозатраты
"isvisited": false, //признак того, просмотрена ли заявка пользователем, от имени которого выполняется запрос
"isvisitedother": true, // Служебное
"privateattachments": "[]" //скрытые приложенные файлы
Для фильтрации списка заявок нужно использовать формат OData условий в параметре "$filter".
Доступны следующие возможности фильтрации по полям:
Сервис
- один из. Odata формат = (servicepath eq '{servicepathstring1}' or servicepath eq {servicepathstring2}' or .... or servicepath eq '{servicepathstringN}')
- кроме. Odata формат = (servicepath ne '{servicepathstring1}' and servicepath ne {servicepathstring2}' and .... and servicepath ne '{servicepathstringN}')
Тип заявки
- один из. Odata формат = (tasktype eq {id1} or tasktype eq {id2} or ....or tasktype eq {idN})
- кроме. Odata формат = (tasktype ne {id1} and tasktype ne {id2} and ....and tasktype ne {idN})
Заявитель
- один из. Odata формат = как тип заявки, только поле initiator
- кроме. Odata формат = как тип заявки, только поле initiator
Исполнитель
- один из. Odata формат = как тип заявки, только поле executor
- кроме. Odata формат = как тип заявки, только поле executor
- задан. Odata формат = (contains('_isfilled','executor'))
- не задан. Odata формат = (contains('_isnotfilled','executor'))
Группы исполнителей
- один из. Odata формат = как тип заявки, только поле executorgroup
- кроме. Odata формат = как тип заявки, только поле executorgroup
- задан. Odata формат = (contains('_isfilled','executorgroup'))
- не задан. Odata формат = (contains('_isnotfilled','executorgroup'))
Компания заявителя
- один из. Odata формат = как тип заявки, только поле initiatorgroup
- кроме. Odata формат = как тип заявки, только поле initiatorgroup
Наблюдатели (поиск по людям)
- один из. Odata формат = (observerlist/any(s: s eq {id1}) or observerlist/any(s: s eq {id2}) or .... observerlist/any(s: s eq {idN}))
- кроме. Odata формат = (observerlist/any(s: s ne {id1}) and observerlist/any(s: s ne {id2}) and .... observerlist/any(s: s ne {idN}))
- задан. Odata формат = (contains('_isfilled','observerlist'))
- не задан. Odata формат = (contains('_isnotfilled','observerlist'))
Название
- задан. Odata формат = (contains('_isfilled','name'))
- не задан. Odata формат = (contains('_isnotfilled','name'))
Описание
- задан. Odata формат = (contains('_isfilled','description'))
- не задан. Odata формат = (contains('_isnotfilled','description'))
Приоритет
- больше равно. Odata формат = (priority ge id1)
- меньше равно. Odata формат = (priority le id1)
- один из. Odata формат = (priority eq {id1} or priority eq {id2} or ....or priority eq {idN})
- кроме. Odata формат = (priority ne {id1} and priority ne {id2} and ....and priority ne {idN})
даты, примеры условий -
1) между: (({datefield} ge cast('{2019-11-01T21:00:00.000Z}', Edm.DateTimeOffset)) and ({datefield} le cast('{2019-12-01T21:00:00.000Z}', Edm.DateTimeOffset)))
2) равно - (({datefield} ge cast('{2019-12-01T21:00:00.000Z}', Edm.DateTimeOffset))
даты нужно указывать в формате iso - 2019-12-01T21:00:00.000Z
Статус
- один из. Odata формат = как тип заявки, только поле status
- кроме. Odata формат = как тип заявки, только поле status
Тег
- содержит любой из. Odata формат = (tags/any(s: s eq 3) or tags/any(s: s eq 7))
- не содержит любой из. Odata формат = (tags/any(s: s ne 3) or tags/any(s: s ne 7))
- содержат все из. Odata формат = (tags/any(s: s eq 3) and tags/any(s: s eq 7))
- не содержат все из. Odata формат = (tags/any(s: s ne 3) and tags/any(s: s ne 7))
- задан. Odata формат = (contains('_isfilled','tags'))
- не задан. Odata формат = (contains('_isnotfilled','tags'))
Вложения
- задан. Odata формат = (contains('_isfilled','attachments'))
- не задан. Odata формат = (contains('_isnotfilled','attachments'))
Доп. поле, дата - все как для дат, {datefield} - alias поля
- задан. Odata формат = (contains('_isfilled','alias_доп_поля'))
- не задан. Odata формат = (contains('_isnotfilled','alias_доп_поля'))
Доп. поле, многострочное поле (текст)
- задан. Odata формат = (contains('_isfilled','alias_доп_поля'))
- не задан. Odata формат = (contains('_isnotfilled','alias_доп_поля'))
Доп. поле, строка
- задан. Odata формат = (contains('_isfilled','alias_доп_поля'))
- не задан. Odata формат = (contains('_isnotfilled','alias_доп_поля'))
Доп. поле, Файл
- задан. Odata формат = (contains('_isfilled','alias_доп_поля'))
- не задан. Odata формат = (contains('_isnotfilled','alias_доп_поля'))
Доп. поле, чекбокс (да/нет)
- установлен. Odata формат = ({additionalFieldAlias} eq true)
- не установлен. Odata формат = ({additionalFieldAlias} eq false) - но это может быть не совсем верное условие, не учитывает Null
Доп. поле, число
- равно. Odata формат = {additionalFieldAlias} eq {numberValue}
- меньше или равно. Odata формат = {additionalFieldAlias} le {numberValue}
- больше или равно. Odata формат = {additionalFieldAlias} ge {numberValue}
- между. Odata формат = {additionalFieldAlias} eq {numberValue}
- задан. Odata формат = (contains('_isfilled','alias_доп_поля'))
- не задан. Odata формат = (contains('_isnotfilled','alias_доп_поля'))
Номер заявки
- между (интервал). Odata формат = (tasknumber ge {number1} and tasknumber le {number2})
- равно. Odata формат = tasknumber eq {number}
Sla
- один из - Odata = sla eq id1 or sla eq id2 or....or sla eq idN
- кроме - Odata = sla ne id1 and sla ne id2 and....and sla ne idN
- задан. Odata формат = (contains('_isfilled','sla'))
- не задан. Odata формат = (contains('_isnotfilled','sla'))
Канал создания
- любое из - Odata = createdchannel eq val1 or createdchannel eq val2 or...or createdchannel eq valN
- задан. Odata формат = (contains('_isfilled','createdchannel'))
- не задан. Odata формат = (contains('_isnotfilled','createdchannel'))
См. также Описание полей заявки, Получение списка заявок
Задача
Получить данные заявки c номером 31.
Решение
Get запрос будет вида:
https://apigw.intradesk.ru/tasklist/odata/tasks?ApiKey=65247DBDE14C45A6A275DC1FC0&$filter=tasknumber eq 31
См. также Описание полей заявки.
Получить данные по заявке (или по заявкам) со всей основной информацией можно не только по номеру, но у путём фильтрации списка заявок. См пример Получение списка заявок.
Полная документация к методу в формате swagger (TaskList API)
Задача
Получим список сервисов.
Решение
POST https://apigw.intradesk.ru/rules/api/rules?ApiKey=65247DBDE14C45A6A275DC1FC0
Тело запроса:
{
"chainName":"ShowServiceListChainV2"
}
Ответ сервера:
{
"r_servicelist":
{ "services":[ //массив сервисов
{
"id":4380, // идентификатор сервиса
"name":"IntraDesk", //имя сервиса
"fullname":"IntraDesk", //полное имя сервиса, включая родительские сервисы
"description":null, //описание сервиса
"path":"4380/", //путь сервиса, включая родительские сервисы
"parentid":null, //идентификатор родительского сервиса, если таковой существует
"tasktypes":[ //идентификаторы типов заявок используемые в данном сервисе
],
"sortorder":"03", //значение для сортировки на списке сервисов
"adminsettingid":1236, //идентификатор настроек администратора
"denied":true,
"isarchived":false //признак того, является ли сервис удаленным(в архиве)
},
{
"id":4349,
"name":"Поддержка",
"fullname":"IntraDesk > Поддержка",
"description":null,
"path":"4380/4349/",
"parentid":4380,
"tasktypes":[
57
],
"sortorder":"03/001",
"adminsettingid":1236,
"denied":false,
"isarchived":false
}
],
"tasktypes":[ //массив типов заявок
{
"id":55, //идентификатор типа завки
"name":"Бронирование переговорных" //название
},
{
"id":57,
"name":"Заявка"
}
]
}
}
Сервисы имеют древовидную структуру, каждый сервис имеет поле "path", в котором через "/" указаны id всех родительских сервисов этого сервиса.
Создание заявок доступно только в "конечных сервисах", в тех, которые не имеют дочерних сервисов.
Для каждого сервиса в поле "tasktypes" указаны id типов заявок в которых доступно создание заявки.
Полная документация к методу в формате swagger (Rules API)
Задача
По телефонному звонку создать заявку. К заявке приложить запись телефонного разговора.
Решение
Для решения данной задачи достаточной в метод создания заявки просто передать номер телефона. IntraDesk по номеру телефона сам попытается найти Заявителя и от его имени создать заявку. Если по телефону клиент (пользователь клиента, сотрудник) не был найден, то заявка все равно будет создана, но заявитель указан не будет. Подробный пример простейшего создания заявки написан здесь. Краткий пример c указанием номера телефона:
Тело запроса:
{
"blocks": {
"name": "{\"value\":\"Телефонный звонок.\"}",
"userphonenumber": "{\"value\":\"+78001234567\"}",
"description": "{\"value\":\" Запись разговора https://asterisk.ru/records/uid_разговора\"}"
}
}
Задача
Получим список полей для типа заявок «Общие» - id = 88
Решение
GET https://apigw.intradesk.ru/taskform/api/tasktypes/88/fields?ApiKey=65247DBDE14C45A6A275DC1FC0
Ответ сервера:
[
{
"id": 1228, // идентификатор поля
"taskTypeId": 88, // идентификатор типа заявки. Тот, который был указан в строке запроса
"alias": "description", // алиас поля. Именно это название нужно использовать для получения и установки значения поля. Для всех дополнительных полей название алиаса начинается с "addfield"
"type": 7, // тип поля. 1 - число, 2 - строка, 3 - выпадающий список, 4 - дата/время, 5 - да/нет, 7 - текст
"name": "Описание", // название поля
"isAdditional": false, // признак. true - доп. поле, false - основное поле
"description": "Подсказка Описание", //описание поля
"sortOrder": null // текстовое поле для сортировки полей на форме
}
{
"id": 1285,
"taskTypeId": 88,
"alias": "addfield_tekstText",
"type": 7,
"name": "текст",
"isAdditional": true,
"description": null,
"sortOrder": "0000000003"
},
{
"id": 1287,
"taskTypeId": 88,
"alias": "addfield_da_netBoolean",
"type": 5,
"name": "да_нет",
"isAdditional": true,
"description": null,
"sortOrder": "0000000004"
},
{
"id": 1284,
"taskTypeId": 88,
"alias": "addfield_strokaString",
"type": 2,
"name": "KPANCH_строка",
"isAdditional": true,
"description": null,
"sortOrder": "0000000002"
},
{
"id": 1286,
"taskTypeId": 88,
"alias": "addfield_dataDateTime",
"type": 4,
"name": "дата",
"isAdditional": true,
"description": null,
"sortOrder": "00000000031"
},rtOrder": null
},
{
"id": 1283,
"taskTypeId": 88,
"alias": "addfield_chisloNumber",
"type": 1,
"name": "число",
"isAdditional": true,
"description": "12",
"sortOrder": "0000000001"
}
]
Полная документация к методу в формате swagger (TaskForm API)
Задача
Установим значение полю "Стоимость" с алиасом "addfield_stoimostNumber" равное 10.
Номер изменяемой заявки равен 31 (это значение получили в ответе на запрос создания заявки).
Доступные для изменения поля заявок можно получить по типу заявки см. в статье «Получение списка полей заявки»
Решение
PUT https://apigw.intradesk.ru/changes/tasks?ApiKey=65247DBDE14C45A6A275DC1FC0
Тело запроса:
{
"number": 31,
"blocks": {
"addfield_stoimostNumber": "{\"value\":10}"
}
}
Ответ сервера:
{
"Id": 4702781, //идентификатор заявки
"Number": 31, //номер заявки
"UpdatedAt": "2021-08-11T12:55:30.0266429Z", //дата последнего изменения заявки
"Messages": {}, //оповещения, возникшие при обновлении заявки
"ErrorMessage": null,
"TaskProcessType": 1,
"Rules": {},
"Fields": {
"additionaldata": null,
"attachments": [ // массив данных о прикрепленных файлах
{
"Id": "611394333b320b000188066b", //идентификатор файла
"Name": "page.html", //имя файла
"ContentType": "text/html", //тип файла
"Size": 1352, //размер файла
"Target": 20, //перечисление к чему относится файл. 20-описание, 30-комментарий,40-прикрепленный файл
"UploadedAt": "2021-08-11T09:11:15.9360000Z", //дата загрузки
"UploadedBy": "Супервизор1 admin " //пользователь, загрузивший файл
}
],
"comment": "Поднял приоритет.", //последний комментарий
"createdchannel": "web", //способ, по которому была создана заявка. Web – заявка создана через web-интерфейс приложения
"description": "Не срабатывает электронный ключ от двери", //описание заявки
"executor": {
"UserId": null, //идентификатор пользователя-исполнителя
"GroupId": 176286 //идентификатор группы-исполнителя
},
"executornotlist": [ //идентификаторы пользователей-исполнителей, которые ранее были назначены на текущую заявку
583438,
583427
],
"executornotgrouplist": [], //идентификаторы пользовательских групп-исполнителей, которые ранее были назначены на текущую заявку
"initiator": {
"UserId": 583427, //идентификатор заявителя
"GroupId": null //идентификатор группы(компании)-заявителя
},
"macros": null,
"name": "Требуется ремонт дверного замка", //название заявки
"observerlist": null, //массив идентификаторов пользователей-наблюдателей
"observergrouplist": null, //массив идентификаторов пользовательских групп-наблюдателей
"priority": 75707, //идентификатор приоритета
"privateattachments": [], //массив приватных приложенных файлов
"privatecomment": null, //приватный комментарий
"rulesescalations": null, //идентификаторы правил эскалации
"service": {
"Path": "115434/115438/", //путь сервиса (включая родительские сервисы)
"AdministratorsSettingId": 53035 //идентификатор настроек администраторов сервиса
},
"status": 120570, //идентификатор статуса заявки
"tags": [ //массив идентификаторов тегов
279504
],
"taskpath": {
"TaskBranchId": "ba8bc1cb-95f3-4d12-9829-66622ea57f1c", //идентификатор дерава заявок. Если заявка является дочерней или родительской относительно другой заявки
"TaskNumberPathParent": "31/" //номер заявки в дереве
},
"tasktype": 36283, //идентификатор типа заявки
"updatedchannel": "api", //способ, по которому была обновлена заявка. Api – заявка обновлена через api
"workflow": 26454, //идентификатор бизнес-процесса
"clientid": null,
"closedat": "2021-03-17T09:04:00.0000000Z", //дата закрытия заявки, т.е. перевоза в статус с признаком «конечный»
"reactiondatefact": "2021-03-17T09:04:00.0000000Z", //фактическое время реагирования
"resolutiondatefact": null, //фактическое время решения
"sla": null, //идентификатор SLA
"reactiondateplan": null, //плановое время реагирования
"resolutionleftminutes": null, //оставшееся на выполнение время
"isreactionexpired": false, //признак того, что время реакции превышено
"resolutiondateplan": null, //плановое время решения
"isresolutionexpired": false, //признак того, что время решения превышено
"addfield_ stoimostNumber ": 10, //доп.поле «Стоимость», то, которое было обновлено в этом запросе
"createdat": "2021-03-17T09:04:31.1095880Z", //дата создания
"createdby": 583427, //идентификатор пользователя, создавшего заявку
"updatedat": "2021-08-11T12:55:30.0266429Z", //дата последнего обновления
"updatedby": "customer_19359" //идентификатор пользователя, обновившего заявку
},
"UsersDictionary": { //массив пользователей связанных с заявкой
"583427": "Супервизор1 admin "
},
"UserGroupsDictionary": { //массив групп пользователей связанных с заявкой
"176286": "ГруппаМенежд1"
},
"TaskHistoryUid": "03697c01-0f93-4ce9-9b9a-1e0b10794fe1",
"IsSuccess": true, //признак того, что запрос прошел успешно
"Message": null,
"ErrorType": null,
"CorrelationId": "38cbe3ae-2e36-42d1-afcb-2e02c53804b8",
"Data": null
}
Полная документация к методу в формате swagger (ChangeService API)
Задача
Получим заявки, связанные с заявкой №4453300
Решение
GET https://apigw.intradesk.ru/taskform/api/taskrelations/4453300?ApiKey=65247DBDE14C45A6A275DC1FC0
Ответ сервера:
[{
"id": 136998, // идентификатор дерева заявок
"updatedAt": "2021-03-17T10:52:27.5054670Z", //дата обновления
"tree": {
"number": 4453300, //номер заявки (родительской)
"children": [{ //список дочерних заявок
"number": 4455783, //номер заявки (дочерней)
"children": []
}
]
}
}
]
Для получения подробной информации по каждой заявке нужно использовать запрос описанный в статье «Получение списка заявок», указывая фильтр по номеру заявки "tasknumber".
Полная документация к методу в формате swagger (TaskForm API)
Задача
Укажем, что заявка с номером 44 является дочерней к заявке с номером 46.
Решение
PUT https://apigw.intradesk.ru/changes/taskrelations?ApiKey=65247DBDE14C45A6A275DC1FC0
Тело запроса:
{
"Tree": {
"Number": 46, //номер заявки, которая выше в структуре дерева
"Children": [ //список дочерних заявок
{
"Number": 44, //номер(а) заявок, которые ниже по структуре дерева
"Children": [] //для дочерней заявки тоже можно указать свои дочерние
}
]
}
}
Ответ сервера:
{
"Id": 156682, // идентификатор созданного дерева заявок
"UpdatedAt": "2021-07-29T12:00:11.1399774Z", //время создания
"IsSuccess": true,
"Message": null,
"ErrorType": null,
"CorrelationId": "00000000-0000-0000-0000-000000000000",
"Data": null
}
Для того чтобы "связать" в дереве сразу несколько заявок, нужно отправить аналогичный запрос в "Tree" указать все нужные связи.
Полная документация к методу в формате swagger (ChangeService API)
Задача
Создадим клиента (юр.лицо), заполнив поля.
Решение
POST https://apigw.intradesk.ru/settings/api/v3/clients/LegalEntities?ApiKey=65247DBDE14C45A6A275DC1FC0
Тело запроса:
Пример тела запроса на создание клиента
{
"name": "Инженерия+",
"description": "Разработка и сопровождение",
"email": "inj@company.com",
"web": "http://www.main.inj.org",
"address": "ул. Фрунзе 4а",
"phoneNumbersList": [
{
"phoneNumber": "+78001234568",
"phoneExt": "12",
"default": true
}
],
"domains": [],
"taxpayerNumber": null,
"contactPersonFirstName": "Василий",
"contactPersonEmail": "k1@test.com",
"contactPersonLastName": "Гунько",
"contactPersonMiddleName": null,
"contactPersonPhoneNumbersList": [
{
"phoneNumber": "+78001234567",
"phoneExt": "000",
"default": true
}
],
"timeZoneCode": "Europe/Moscow",
"fieldIdValues": [
{
"id": 1595,
"value": "two"
}
],
"userGroupTags": [
{
"id": 400581
}
],
"managerId": 915120
}
Ответ сервера:
Идентификатор созданного клиента (статус-код 200)
Полная документация к методу в формате swagger (Settings API)
Другие возможные параметры
POST https://apigw.intradesk.ru/settings/api/v3/clients/LegalEntities?ApiKey=65247DBDE14C45A6A275DC1FC0
Тело запроса:
{
//обязательные поля
"name" //строка, название клиента
"contactPersonFirstName" //строка, имя контактного лица
//необязательные поля
"description" //строка, описание клиента
"email" //строка, email клиента
"web" //строка, web-сайт клиента
"address" //строка, адрес клиента
"phoneNumbersList" //массив, телефонные номера
"domains" //массив строк, домены клиента
"taxpayerNumber" //строка, номер налогоплательщика (ИНН)
"contactPersonEmail" //строка, email контактного лица
"contactPersonLastName" //строка, фамилия контактного лица
"contactPersonMiddleName" //строка, отчество контактного лица
"contactPersonPhoneNumbersList" //массив, телефоны контактного лица
"timeZoneCode" // строка, часовой пояс (IANA)
"fieldIdValues" //массив, значения дополнительных полей
"userGroupTags" //массив, теги клиента
"managerId" // число, идентификатор пользователя-менеджера
}
Задача
Получим информацию о пользователе Иванове Петре Семеновиче, id которого равен 583427
Решение
GET https://apigw.intradesk.ru/taskform/api/users/583427/info/short?ApiKey=65247DBDE14C45A6A275DC1FC0
Ответ сервера:
{
"userType": 10, //тип пользователя, 10 – сотрудник, 20 – клиент
"id": 583427, // идентификатор пользователя
"name": "Иванов Петр Семенович ", // имя пользователя, состоит из фамилии, имени и отчества
"email": "ips@intra5.ru", // электронная почта
"additionalEmails": "[\"mysupport@mail.ru\"]", // массив дополнительных адресов электронных почт
"phoneNumbers": [ // массив телефонных номеров
{
"phoneNumber": "+78001234567", //номер телефона
"default": true, //признак того, что это основной номер пользователя
"phoneExt": null, //добавочный номер
"phoneInternational": "+7 800 123-45-67" //номер телефона в международном формате
},
{
"phoneNumber": "+78009876543",
"default": false,
"phoneExt": null,
"phoneInternational": "+7 800 987-65-43"
}
],
"activeTaskNumber": null, // номер активной заявки, если такая есть в данный момент
"activeTaskStartTime": null, // начало выполнение активной заявки, если такая есть
"groups": "[{\"id\" : 176287, \"name\" : \"Администраторы\", \"type\" : 30, \"isdefault\" : false}]", //сериализованный массив объектов, описывающий в каких группах состоит пользователь
"tags": " Информирование, Массовый инцидент ", //строка с тегами пользователя
"userFields": "[{\"Name\": \"Режим\", \"Type\": 3, \"Value\": \"2\"}]", //сериализованный массив объектов, описывающий значения настраиваемых полей пользователей
"emailConfirmed": false //признак, подтверждена ли электронная почта
}
Полная документация к методу в формате swagger (TaskForm API)
Задача
Получим информацию о компании "Второе бюро", Id которой равен 583427
Решение
GET https://apigw.intradesk.ru/taskform/api/clientcompanys/31972?ApiKey=65247DBDE14C45A6A275DC1FC0
Ответ сервера:
{
"id": 176282, // идентификатор компании
"name": "Второе бюро", //имя компании
"description": "", //описание компании
"additionalInfo": "дополнительная информация", //дополнительная информация
"domains": "[\"maintech\"]", //массив доменов компании
"address": "ул. Ленина 30б", //адрес компании
"web": "", //сайт компании
"phoneNumbers": [ //массив телефонных номеров
{
"phoneNumber": "+78001234567", //номер телефона
"default": true, //признак того, что это основной номер компании
"phoneExt": null, //добавочный номер
"phoneInternational": "+7 800 123-45-67" //номер телефона в международном формате
},
{
"phoneNumber": "+74992342134",
"default": false,
"phoneExt": null,
"phoneInternational": "+7 499 234-21-34"
}
],
"email": "", // электронная почта
"tags": "Информирование", //теги, которыми отмечена компания
"companyFields": "[{\"Name\": \"Режим\", \"Type\": 3, \"Value\": \"two\"}]", //значения доп. полей компании
"groupType": 10, //тип группы. 10 – компания(клиентская), 20 – группа сотрудников
"users": [ //пользователи в текущей группе
{
"id": 583440,
"name": "Иванов Николай Алексеевич "
}
]
}
Полная документация к методу в формате swagger (TaskForm API)
Задача
Установим пользователя-исполнителя с id равным 583437 и группу исполнителей с id равным 176284.
Номер изменяемой заявки = 35 (это значение получили в ответе на запрос создания заявки)
Решение
PUT https://apigw.intradesk.ru/changes/tasks?ApiKey=65247DBDE14C45A6A275DC1FC0
Тело запроса:
{
"number": 35,
"blocks": {
"executor": "{\"value\":{\"userid\":583437,\"groupid\":176284}}"
}
}
Ответ сервера:
Получаем статус ответа 200, значит изменение прошло успешно. В теле ответа поступили данные о заявке.
Полная документация к методу в формате swagger (ChangeService API)
Задача
Получим исполнителей, имя которых содержит подстроку «менедж», за исключение группы с id 61276 и за исключением пользователя с id 583432
Решение
GET https://apigw.intradesk.ru/hints/api/hints/executors?ApiKey=65247DBDE14C45A6A275DC1FC0&str=мен&excludeUserIds=583432&excludeGroupIds=61276
Ответ сервера:
[
{
"id": 583433, //идентификатор пользователя
"name": "Менеджер ночной смены", //имя пользователя
"hasgroupid": false, //признак того, что сотрудник состоит в группе, указанной в параметре "groupId"
"highlight": "[{\"field\":\"searchstring.standard\",\"value\":[\" Менеджер ночной смены nm@intra5\"]}]",
"type": 1, //тип, 1 - пользователь, 2 - группа
"isclient": false,
"isArchived": false //признак того, что пользователь удален (в архиве)
},
{
"id": 176286, //идентификатор группы
"name": "Группа Менеждеров", //имя группы
"hasgroupid": false, //признак того, что группа указана в параметре "groupId"
"highlight": "[{\"field\":\"searchstring.standard\",\"value\":[\"Группа Менеджеров \"]}]",
"type": 2, //тип, 1 - пользователь, 2 - группа
"isclient": false,
"isArchived": false //признак того, что группа удалена (в архиве)
}
]
Полная документация к методу в формате swagger (Hints API)
Другие возможные параметры
"str" - поисковая строка
"excludeUserIds" - в результатах поиска исключает указанные идентификаторы пользователей
"excludeGroupIds" - в результатах поиска исключает указанные идентификаторы групп сотрудников
"groupId" - идентификатор группы текущего назначенного Исполнителя пользователя (для поиска пользователей только внутри этой группы)
"top" - количество результатов в выдаче. По умолчанию 7
Задача
Создадим клиента (физ.лицо), заполнив поля.
Решение
POST https://apigw.intradesk.ru/settings/api/v3/clients/PhysicalPersons?ApiKey=65247DBDE14C45A6A275DC1FC0
Тело запроса:
Пример тела запроса на создание клиента
{
"description": "Разработка и сопровождение",
"address": "ул. Фрунзе 4а",
"contactPersonFirstName": "Василий",
"contactPersonEmail": "inj@company.com",
"contactPersonLastName": "Гунько",
"contactPersonMiddleName": "",
"contactPersonRoleId": 263947,
"contactPersonPhoneNumbersList": [
{
"phoneNumber": "+78001234567", //номер телефона
"phoneExt": "123", //добавочный номер
"default": true //признак того, что это основной номер пользователя
}
],
"timeZoneCode": "Europe/Moscow",
"fieldIdValues": [
{
"id": 1595,
"value": "two"
}
],
"userGroupTags": [
{
"id": 400581
}
],
"managerId": 915120
}
Ответ сервера:
Идентификатор созданного клиента (статус-код 200)
Полная документация к методу в формате swagger (Settings API)
Другие возможные параметры
POST https://apigw.intradesk.ru/settings/api/v3/clients/PhysicalPersons?ApiKey=65247DBDE14C45A6A275DC1FC0
Тело запроса:
{
//обязательные поля
"contactPersonFirstName" //строка, имя клиента
//необязательные поля
"description" //строка, описание клиента
"contactPersonEmail" //строка, email клиента
"address" //строка, адрес клиента
"contactPersonLastName" //строка, фамилия клиента
"contactPersonMiddleName" //строка, отчество клиента
"contactPersonPhoneNumbersList" //массив, телефоны клиента
"contactPersonRoleId" //число, идентификатор роли
"timeZoneCode" // строка, часовой пояс (IANA)
"fieldIdValues" //массив, значения дополнительных полей
"userGroupTags" //массив, теги клиента
"managerId" // число, идентификатор пользователя-менеджера
}
Задача
Создадим пользователя, заполнив поля и прикрепим его к клиенту(юр.лицу).
Решение
POST https://apigw.intradesk.ru/settings/api/v3/clients/LegalEntities/Users?ApiKey=65247DBDE14C45A6A275DC1FC0
Тело запроса:
{
"firstName": "Петр",
"lastName": "Тракторенко",
"email": "tpn@company.com",
"password": "111111",
"roleId": 145633,
"fieldIdValues": [
{
"id": 705,
"value": "два"
}
],
"middleName": "Николаевич",
"phoneNumbers": [
{
"phoneNumber": "+78001234677",
"phoneExt": null,
"default": true
}
],
"userGroups": [
{
"id": 182907,
"isDefault": true
}
],
"isArchived": false,
"fotoImage": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD…",
"additionalEmails": [
"npt@company.com"
],
"isNewFoto": true,
"timeZoneCode": "Europe/Moscow",
"userTags": [
{
"id": 279504
}
]
}
Ответ сервера:
Идентификатор созданного клиента (статус-код 200)
Полная документация к методу в формате swagger (Settings API)
Другие возможные параметры
POST https://apigw.intradesk.ru/settings/api/v3/clients/LegalEntities/Users?ApiKey=65247DBDE14C45A6A275DC1FC0
Тело запроса:
{
//обязательные поля
"firstName", //строка, имя пользователя
"userGroups": [ //массив объектов, компании, к которым прикреплен пользователь
{
"id", //число, идентификатор клиента
"isDefault" //признак, является ли клиент основным
}
]
//необязательные поля
"lastName", //строка, фамилия пользователя
"email", // строка, эл.почта пользователя
"password", // строка, пароль
"roleId", //число, идентификатор роли пользователя
"fieldIdValues": [ //значения доп.полей
{
"id" //число, идентификатор поля
"value" //разные типы, значения полей
}
],
"middleName", // строка, отчество пользователя
"phoneNumbers": [ //массив объектов, тел. номера
{
"phoneNumber", // строка, номер телефона
"phoneExt", // строка, добавочный номер
"default" //признак, является ли номер основным
}
],
"isArchived" //признак, удален ли пользователь(заархивирован)
"fotoImage", // строка, фото пользователя.
"additionalEmails": [], //массив строк, дополнительные эл.почты
"isNewFoto" //признак, что фото новое и нужно обновить
"timeZoneCode", // строка, часовой пояс
"userTags": [ //массив объектов, тегов
{
"id" //число, идентификатор тега
}
]
}
Задача
Обновить клиента "Петра Иванова" с id равным 288596.
Решение
PATCH https://apigw.intradesk.ru/settings/api/v3/clients/PhysicalPersons?ApiKey=65247DBDE14C45A6A275DC1FC0
Тело запроса:
{
"id": 288596,
"contactPersonFirstName": "Петр",
"contactPersonLastName": "Иванов",
"contactPersonMiddleName": "",
"contactPersonEmail": "my@company.ru",
"description": "",
"contactPersonPhoneNumbersList": [
{
"phoneNumber": "+78001234567", //номер телефона
"phoneExt": "000", //добавочный номер
"default": true //признак того, что это основной номер пользователя
}
],
"address": "Ленина 30б",
"timeZoneCode": "Europe/Moscow",
"fieldIdValues": [
{
"id": 1595, //идентификатор доп.поля
"value": "three" //значение доп.поля
}
],
"contactPersonFieldIdValues": [
{
"id": 1048, //идентификатор доп.поля клиента(пользователя)
"value": "три" //значение доп.поля клиента(пользователя)
}
],
"contactPersonRoleId": 263942,
"contactPersonAdditionalEmails": [
"sale.my@company.ru"
],
"userGroupTags": [
{
"id": 400577
}
],
"managerId": 915107,
"contactPersonUserTags": [
{
"id": 400581
}
],
"contactPersonIsNewFoto": true,
"contactPersonFotoImage": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEASABIAAD/2wBDAAMCAgICAgMCAgID"
}
Ответ сервера:
Видим, что статус-код 200, isSuccess = true. Значит изменения применились успешно.
Полная документация к методу в формате swagger (Settings API)
Другие возможные параметры
PATCH https://apigw.intradesk.ru/settings/api/v3/clients/PhysicalPersons?ApiKey=65247DBDE14C45A6A275DC1FC0
Тело запроса:
Обязательные поля:
"id" - идентификатора клиента для изменения.
"contactPersonFirstName" - имя клиента.
"contactPersonLastName" - фамилия клиента.
"managerId" - идентификатор пользователя-менеджера. Если не передать - значение будет обнулено.
{
"id" // число, идентификатор клиента
"contactPersonFirstName" //строка, имя клиента
"contactPersonLastName" //строка, фамилия клиента
"contactPersonMiddleName" //строка, отчество клиента
"contactPersonEmail" //строка, email клиента
"description" //строка, описание клиента
"contactPersonPhoneNumbersList" //массив, телефонные номера
"address" //строка, адрес клиента
"timeZoneCode" // строка, часовой пояс (IANA)
"fieldIdValues" //массив, значения дополнительных полей физ.лица
"contactPersonFieldIdValues" //массив, значения дополнительных полей клиента(пользователя)
"contactPersonRoleId" // число, идентификатор роли клиента(пользователя)
"contactPersonAdditionalEmails" //массив строк, значения дополнительных эл.почт клиента(пользователя)
"userGroupTags" //массив, теги клиента
"managerId" // число, идентификатор пользователя-менеджера,
"contactPersonUserTags" //массив, теги клиента(пользователя)
"contactPersonIsNewFoto" //признак того, что фото пользователя обновлено
"contactPersonFotoImage" //строка, фото пользователя
}
Задача
Получим жизненный цикл заявки с id = 4703096, который отсортирован по убыванию, первые 15 записей, в заданном промежутке дат, а события, произошедшие на заявке: добавление комментария (50), смена исполнителя (30) или смена статуса (10)
Решение
Ответ сервера:
{
"data": [
{
"id": 1055669, // идентификатор записи
"eventat": "2021-03-15T11:54:36.9286522Z", //дата события
"lifetimetype": 20, //тип события. 10 - заявка создана; 20 - заявка изменена; 30 - заявка эскалирована
"userid": 7387, // идентификатор пользователя, автора изменений
"username": "Иванова Настя", //имя пользователя, автора изменений
"events": {
"data": [
{
"isautomatic": false,
"blockname": "comment", //название блока заявки, в котором произошли изменения
"type": 50, //тип произошедшего на заявке события
"commentupdatedate": null,
"stringvalue": "В правой области карточки заявки появился скролл, причем он отображается наполовину. Его нужно либо скрыть совсем (как сейчас на Prod), либо отображать целиком", //поле для хранения измененного строкового значения
"datevalue": null, //поле для хранения измененного значения даты
"entityvalue": null, //поле для хранения измененного значения сложного типа, например, исполнителя заявки
"entitylanguagevalue": null,
"additionalfieldvalue": null
},
{
"isautomatic": false,
"blockname": "executor",
"type": 30,
"commentupdatedate": null,
"stringvalue": null,
"datevalue": null,
"entityvalue": {
"valuenew": {
"id": 8452,
"name": "Сидорин Иван"
},
"valueold": {
"id": 10037,
"name": "Крутов Кирилл"
}
},
"entitylanguagevalue": null,
"additionalfieldvalue": null
}
],
"count": 2
},
"correlationid": "e72ffca5-37d5-e35b-70a1-9d21c53dffee",
"uid": "be956567-45e9-4ce7-b4d4-b444df8e8e88"
},
{
"id": 1048384,
"eventat": "2021-03-11T12:41:30.3355437Z",
"lifetimetype": 20,
"userid": 0,
"username": "Система",
"events": {
"data": [
{
"isautomatic": false,
"blockname": "status",
"type": 10,
"commentupdatedate": null,
"stringvalue": null,
"datevalue": null,
"entityvalue": null,
"entitylanguagevalue": {
"valuenew": {
"id": 96,
"name": {
"ru": "ВыполнStage",
"en": null
}
},
"valueold": {
"id": 83,
"name": {
"ru": "ВыполнTest",
"en": null
}
}
},
"additionalfieldvalue": null
}
],
"count": 1
},
"correlationid": "9981080e-293a-4cd6-85fe-8e1eece66238",
"uid": "303f6bff-0726-4c45-99eb-23c9d051c5d5"
},
]
}
Полная документация к методу в формате swagger (TaskHistory API)
Другие возможные параметры
sortDirection - не обязательный; возможные значения Asc, Desc, по умолчанию Desc
top - не обязательный; по умолчанию 100
dateStart, dateEnd - не обязательны, используются для фильтрации по дате; если указаны, возвращают записи из истории с датой больше dateStart и меньше dateEnd
events - тип произошедшего на заявке события, возможно несколько значений через амперсанд. По умолчанию - все.
Доступные события для фильтрации:
ChangeStatus = 10,
ChangePriority = 20,
ChangeRating = 25,
ChangeExecutor = 30,
ChangeExecutorGroup = 40,
ChangeAdditionalData = 45,
AddComment = 50,
AddPrivateComment = 55,
AddObserver = 60,
AddCoordinator = 61,
AddObserverGroup = 65,
DeleteObserver = 70,
DeleteObserverGroup = 75,
AddFile = 80,
AddPrivateFile = 85,
DeleteFile = 90,
DeletePrivateFile = 95,
AddTag = 100,
AddAsset = 105,
DeleteTag = 110,
DeleteAsset = 115,
ChangeResolutionDatePlan = 120,
ChangeResolutionDateFact = 125,
ChangeResolutionLeftMinutes = 126,
ChangeReactionDatePlan = 130,
ChangeReactionDateFact = 135,
ResolutionTimeExpired = 136,
ReactionTimeExpired = 137,
ChangeClosedAt = 138,
ChangeService = 140,
ChangeTaskType = 150,
ChangeInitiator = 160,
ChangeClientId = 161,
ChangeInitiatorGroup = 165,
ChangeAdditionalField = 170,
ChangeCreatedAt = 180,
ChangeUpdatedAt = 185,
ChangeCreatedBy = 190,
ChangeUpdatedBy = 195,
ChangeName = 200,
ChangeDescription = 205,
ChangeWorkflow = 210,
AddExecutorNot = 220,
AddExecutorNotGroup = 225,
DeleteExecutorNot = 230,
DeleteExecutorNotGroup = 235,
ChangeSla=240,
ChangeLifetime = 250,
ChangeCreatedChannel = 260,
ChangeUpdatedChannel = 270,
Archive = 280,
AddedCoordinates = 290,
ExecutedMacrosOnTask = 300,
ChangeIsMassIncidentActive = 310,
ChangeMassIncident = 320,
ChangeCoordination = 330,
ChangePriorityCriticality = 340,
ChangePriorityInfluence = 350,
TaskEscalation = 400
Задача
Обновить клиента "Моя Компания" с id равным 288590.
Решение
PATCH https://apigw.intradesk.ru/settings/api/v3/clients/LegalEntities?ApiKey=65247DBDE14C45A6A275DC1FC0
Тело запроса:
{
"id": 288590,
"name": "Моя Компания",
"description": "",
"email": "my@company.ru",
"web": "http://my.company.ru",
"address": "Ленина 30б",
"phoneNumbersList": [
{
"phoneNumber": "+78001234567", //номер телефона
"phoneExt": "000", //добавочный номер
"default": true //признак того, что это основной номер клиента
}
],
"domains": [
"maintech"
],
"taxpayerNumber": "123456",
"timeZoneCode": "Europe/Moscow",
"fieldIdValues": [
{
"id": 1595, //идентификатор доп.поля
"value": "one" //значение доп.поля
}
],
"userGroupTags": [
{
"id": 400577
}
],
"contactPersonId": 915115,
"managerId": 915120
}
Ответ сервера:
Видим, что статус-код 200, isSuccess = true. Значит изменения применились успешно.
Полная документация к методу в формате swagger (Settings API)
Другие возможные параметры
PATCH https://apigw.intradesk.ru/settings/api/v3/clients/LegalEntities?ApiKey=65247DBDE14C45A6A275DC1FC0
Тело запроса:
Обязательные поля:
"id" - идентификатора клиента для изменения.
"managerId" - идентификатор пользователя-менеджера. Если не передать - значение будет обнулено.
{
"id" // число, идентификатор клиента
"name" //строка, название клиента
"description" //строка, описание клиента
"email" //строка, email клиента
"web" //строка, web-сайт клиента
"address" //строка, адрес клиента
"phoneNumbersList" //массив, телефонные номера
"domains" //массив строк, домены клиента
"taxpayerNumber" //строка, номер налогоплательщика (ИНН)
"timeZoneCode" // строка, часовой пояс (IANA)
"fieldIdValues" //массив, значения дополнительных полей
"userGroupTags" //массив, теги клиента (идентификатор и название)
"contactPersonId" // число, идентификатор контактного пользователя
"managerId" // число, идентификатор пользователя-менеджера
}
Задача
Получим список переходов статусов, кнопок для перевода статуса и макросы
Решение
POST https://apigw.intradesk.ru/rules/api/rules/?ApiKey=65247DBDE14C45A6A275DC1FC0
Тело запроса:
{
"input":{
"p_workflow":43,
"p_tasktype":68,
"p_status":80,
"p_tag":[
4497,
14760,
14999
],
"p_service":"1985/1707/",
"p_service_settingadminid":123,
"p_priority":31,
"p_initiator":9116,
"p_initiatorgroup": 3242,
"p_observer":[
9116
],
"p_observergroup":[
3197
],
"p_executor":9687,
"p_executorgroup":2356,
"p_creator":9116,
"p_usagecondition":[
4
]
},
"chainName":"EditTaskFormChain"
}
Ответ сервера:
{
"r_accesslist":[
{
"blockNames":[ // список названий полей для которых нужно использовать указанное ниже право доступа. Если для поля правило не найдено, то нужно использовать полномочия из правила где указана "*"
"tasktype"
],
"access":3, // 1 - запрещено, 2 - просмотр, 3 - изменение, 4 - не показывать на карточке, 60 - управление своими трудозатратами
"required":false, //поля, перечисленные в blockNames, обязательны для заполнения
"validationData":null,
"ruleId":"92"
},
{
"blockNames":[
"name"
],
"access":3,
"required":false,
"validationData":null,
"ruleId":"516"
},
{
"blockNames":[
"*"
],
"access":3,
"required":false,
"validationData":null,
"ruleId":null
}
],
"r_tostatus":[ //список статусов в которые можно перевести заявку
{
"statusId":73, //идентификатор статуса
"buttonName":"Открыта", //название для кнопки перехода
"buttonLegend":"", //подсказка, всплывающая на кнопке
"validationData":null,
"locationButton":20, //расположение кнопки. 20 - в меню заявки, 30 - вынести на панель, 10 - не показывать
"ruleId":"1235", //идентификатор правила
"duplicatebuttononpanel":false //признак, дублировать ли кнопку на панель
},
{
"statusId":84,
"buttonName":"Вынести на обработку",
"buttonLegend":"",
"validationData":null,
"locationButton":30,
"ruleId":"1239",
"duplicatebuttononpanel":true
}
],
"r_macroslist":[ //список макросов
{
"ruleId":"379", //идентификатор правила
"name":"Вернуть в \"открыта\" !", //название макроса
"description":null, //подсказка, всплывающая на кнопке
"duplicatebuttononpanel":true, //признак, дублировать ли кнопку на панель
"type":10, //тип макросв. 10 - произвольный макрос. 20 - для взятия в работу, 30 - для завершения выполнения работ по заявки
"forcesavetask":true, //признак автоматического сохранения заявки
"forcetostatus":73, //идентификатор статуса, в который будет переведена заявка
"data":{
"r_status_bymacros":{
"data":"73", //Id статуса в который нужно перевести заявку
"replace":true
}
}
}
]
}
Полная документация к методу в формате swagger (Rules API)
Другие возможные параметры
Тело запроса:
{
"input":{
"p_workflow", //число, идентификатор бизнес-процесса заявки, для которой получаем правила
"p_tasktype", // число, идентификатор типа заявки
"p_status", // число, идентификатор статуса заявки
"p_tag":[ ], //массив, идентификаторы тегов заявки
"p_service", //строка, путь сервиса заявки
"p_service_settingadminid", // число, идентификатор настройки админов сервиса (запрос дерева возвращает этот Id для каждого сервиса)
"p_priority", // число, идентификатор приоритета
"p_initiator", // число, идентификатор заявителя заявки
"p_initiatorgroup", // число, идентификатор компании заявителя
"p_observer":[ ], //массив, идентификаторы наблюдателей заявки
"p_observergroup":[ ], //массив, идентификаторы групп наблюдателей заявки
"p_executor", // число, идентификатор исполнителя заявки
"p_executorgroup", // число, идентификатор группы исполнителей заявки
"p_creator", // число, идентификатор создателя заявки
"p_usagecondition":[ ]
// перечисление, 4 - если заявка уже создана, 3 - если заявку только создаём
},
"chainName", // строка, "EditTaskFormChain" - если заявка уже существует, "CreateTaskFormChain" - если заявку только создаём
}
Задача
Получим трудозатраты для заявки с id равным 4703096
Решение
GET https://apigw.intradesk.ru/taskform/api/taskexpense/4703096?ApiKey=65247DBDE14C45A6A275DC1FC0
Ответ сервера:
[{
"id": 1905733, //идентификатор записи о списанных трудозатратах
"userId": 390724, //идентификатор пользователя, выполнявшего работу
"userName": "Васильев Александр", //имя пользователя, выполнявшего работу
"date": "2021-03-15T00:00:00.0000000Z", //дата выполнения работ
"minutes": 599, //списанное время (в минутах)
"comment": "Автоматически", //комментарий
"createdAt": "2021-03-15T06:58:55.6534430Z", //дата создания записи
"createdBy": "Система", //автор записи
"updatedAt": "2021-03-15T06:58:55.6534430Z", //дата изменения записи
"updatedBy": "Система", //автор изменения записи
"isArchived": false, //признак, удалена ли запись
"taskExpenseLog": []
}, {
"id": 1905732,
"userId": 390724,
"userName": "Васильев Александр",
"date": "2021-03-14T00:00:00.0000000Z",
"minutes": 1440,
"comment": "Автоматически",
"createdAt": "2021-03-15T06:58:55.6534360Z",
"createdBy": "Система",
"updatedAt": "2021-03-15T06:58:55.6534360Z",
"updatedBy": "Система",
"isArchived": false,
"taskExpenseLog": []
}, {
"id": 1905731,
"userId": 390724,
"userName": "Васильев Александр",
"date": "2021-03-13T00:00:00.0000000Z",
"minutes": 1440,
"comment": "Автоматически",
"createdAt": "2021-03-15T06:58:55.6534290Z",
"createdBy": "Система",
"updatedAt": "2021-03-15T06:58:55.6534290Z",
"updatedBy": "Система",
"isArchived": false,
"taskExpenseLog": []
}, {
"id": 1905730,
"userId": 390724,
"userName": "Васильев Александр",
"date": "2021-03-12T00:00:00.0000000Z",
"minutes": 428,
"comment": "Автоматически",
"createdAt": "2021-03-15T06:58:55.6534180Z",
"createdBy": "Система",
"updatedAt": "2021-03-15T06:58:55.6534180Z",
"updatedBy": "Система",
"isArchived": false,
"taskExpenseLog": []
}
]
Полная документация к методу в формате swagger (TaskForm API)
Задача
Отправим файл на сервер, получим его идентификатор и прикрепим этот файл к описанию новой заявки.
Решение
Для примера будем использовать приложение Postman. Выполним необходимые настройки и отправим файл.
POST https://apigw.intradesk.ru/files/api/tasks/0/files/target/Description?ApiKey=65247DBDE14C45A6A275DC1FC0
Ответ сервера:
[
{
"id":"604b6c742d34af0001f26723", //идентификатор загруженного файла
"entityType":"task", //тип объекта, к которому приложен файл. Task – заявка, kb - статья базы знаний
"entityId":0, //идентификатор объекта, к которому прикрепляется файл. Для отдельно загружаемых файлов – 0.
"name":"ButAtt (2).jpg", //имя файла
"contentType":"image/png", //тип файла
"size":15581, //размер файла в байтах
"target":20, //куда прикладывается файл. 20 – комментарий, 30 – описание, 40 – доп.поле с типой «файл»
"uploadedAt":"2021-03-12T13:28:20.435Z", //дата загрузки
"uploadedBy":"Супервизор" //автор загрузки
}
]
Далее создаем заявку, прикладываем отправленные на сервер файлы.
POST https://apigw.intradesk.ru/changes/v3/tasks?ApiKey=65247DBDE14C45A6A275DC1FC0
Тело запроса:
{
"blocks":{
"tasktype":"{\"value\":36283}",
"name":"{\"value\":\"Почистить снег\"}",
"priority":"{\"value\":75707}",
"description":"{\"value\":\"Ночью выпало много снега, нужно почистить двор 25 дома\"}",
"service":"{\"value\":\"115434/115438/\"}",
"attachments":"{\"value\":{\"addFiles\":[{\"name\":\"ButAtt.jpg\",\"id\":\"604b6c742d34af0001f26723\",\"contentType\":\"image/jpeg\",\"size\":43558,\"target\":20,\"uploadedAt\":\"2021-03-12T13:28:20.435Z \",\"uploadedBy\":\" Супервизор \"}],\"deleteFileIds\":[]}}"
}
}
Ответ сервера:
Получаем статус-код 201 (успешное создание) и данные о только что созданной заявке
Далее можем зайти на клиентский портал и убедиться, что была создана новая заявка, а к её описанию прикреплен файл
Полная документация к методу в формате swagger (Files API)
Другие возможные параметры
Для загрузки файлов для описания:
POST https://apigw.intradesk.ru/files/api/tasks/0/files/target/Description?ApiKey=65247DBDE14C45A6A275DC1FC0
Нужно использовать multipart-запросы.
Все загруженные файлы нужно указать в запросе создания/изменения заявки в теле, в блоке "attachments". Выполнить запрос к API для создания/изменения заявок. Подробнее о создании и изменении заявок в статьях.
POST https://apigw.intradesk.ru/changes/v3/tasks- для новых заявок
PUT https://apigw.intradesk.ru/changes/v3/tasks - для существующих заявок
Задача
Добавим комментарий и прикрепим файл к заявке номер 130.
Решение
Для примера будем использовать приложение Postman. Выполним необходимые настройки для отправки файла для заявки на сервер. Её id равен 4732344.
POST https://apigw.intradesk.ru/files/api/tasks/4732344/files/target/Comment?ApiKey=65247DBDE14C45A6A275DC1FC0
Ответ сервера:
[
{
"id":"611d0061bb982c0001b3ddf5", //идентификатор загруженного файла
"entityType":"task", //тип объекта, к которому приложен файл. Task – заявка, kb - статья базы знаний
"entityId":4732344, //идентификатор объекта, к которому прикрепляется файл.
"name":" ButAtt (2).jpg ", //имя файла
"contentType":"image/png", //тип файла
"size":15581, //размер файла в байтах
"target":30, //куда прикладывается файл. 20 – комментарий, 30 – описание, 40 – доп.поле с типой «файл»
"uploadedAt":"2021-08-18T12:43:14.147Z ", //дата загрузки
"uploadedBy":"customer_19359" //автор загрузки
}
]
Все загруженные для заявки файлы нужно указать в запросе на изменение, сериализовав массив в строку и разместив в блоке "attachments".
Добавим файлы к заявке.
PUT https://apigw.intradesk.ru/changes/v3/tasks?ApiKey=65247DBDE14C45A6A275DC1FC0
Тело запроса:
{
"number": 130,
"blocks":{
"comment":"{\"value\":\"Посмотрите приложенные изображения.\"}",
"attachments":"{\"value\":{\"addFiles\":[{\"name\":\"ButAtt.jpg\",\"id\":\"611d0061bb982c0001b3ddf5\",\"contentType\":\"image/jpeg\",\"size\":43558,\"target\":30,\"uploadedAt\":\"2021-08-18T12:43:14.147Z\",\"uploadedBy\":\"customer_19359\"}],\"deleteFileIds\":[]}}"
}
}
Ответ сервера:
Видим статус-код 200 (успех) и данные об измененной заявке
Зайдя на клиентский портал, видим новый комментарий с приложенным файломе
Полная документация к методу в формате swagger (Files API)
Другие возможные параметры
Для загрузки файлов для комментариев:
POST https://apigw.intradesk.ru/files/api/tasks/{идентификатор заявки}/files/target/Comment?ApiKey=65247DBDE14C45A6A275DC1FC0
Нужно использовать multipart-запросы.
Для изменения заявки:
PUT https://apigw.intradesk.ru/changes/v3/tasks?ApiKey=65247DBDE14C45A6A275DC1FC0. Подробнее в статье «Изменение заявки»
Задача
Выполним запрос, в котором получим первые 30 записей, отсортировав по дате обновления в порядке убывания, без поиска по текстовым полям и автором которых является пользователь с id = 583427
Решение
GET https://apigw.intradesk.ru/knowledgebase/odata/kb?ApiKey=65247DBDE14C45A6A275DC1FC0&$skip=0&$top=30&$orderby=updatedatdesc&searchStringMode=none&$filter=createdid eq 583427
Ответ сервера:
{
"@odata.count": 1, // общее количество найденных статей (игнорируя страницы с skip и top)
"value": [
{
"id": 5414, // идентификатор статьи
"name": "О правилах", // название статьи
"descriptionshort": "
<div><div style=\"line-height: .5;\" contenteditable=\"false\"> </div><intradesk_imag ...", // описание статьи, первые 90 символов (теги html присутствуют)
"createdat": "2021-04-15T14:25:02.6780000Z", // дата создания статьи
"createdby": "Назаренко Ольга Андреевна", // ФИО пользователя, создавшего статью
"createdid": 583427, // идентификатор пользователя, создавшего статью
"updatedat": "2021-04-15T14:25:03.6264798Z", // дата последнего изменения статьи
"updatedby": "Назаренко Ольга Андреевна", // ФИО пользователя, последним изменившего статью
updatedid": 957, // идентификатор пользователя, последним изменившего статью
"files": "[{\"id\":\"60784c43e66e7400016c3cff\",\"entityType\":\"kb\",\"entityId\":0,\"name\":\"Проверка_парса.docx\",\"contentType\":\"application/vnd.openxmlformats-officedocument.wordprocessingml.document\",\"size\":11810,\"target\":20,\"uploadedAt\":\"2021-04-15T14:22:59.589Z\",\"uploadedBy\":\"Назаренко Ольга Андреевна\",\"isNew\":true,\"isDeleted\":false}]", // Строка содержит информацию о файлах, приложенных к статье в виде json
"services": [78932, 222], // идентификаторы сервисов при правах видимости для сервисов
"tags": [188], // идентификаторы тегов
"rights": 40, // другие права видимости статьи (0 - нет доступа (если задан rigthsassignmentfromservice ), 10 - все, 20 - все клиенты, 30 - все сотрудники, 40 - только указанные группы)
"usergroups": [119649, 353], // список идентификаторов компаний и групп, которым видна статья. При выставлении прав доступа rights в положение "Только указанные группы"
"status": 10, // статус статьи (10 - Черновик, 20 - Опубликована)
"rigthsassignmentfromservice": false, // признак, правила видимости заданы от сервис (да\нет)
"_searchhighlights": null,
"isstatus": false,
"weight": 0,
"isarchived": false // признак, удалена ли статья (заархивирована)
}
],
"searchresult":null,
"dictionaries":[
{"id":188,"name":"Инцидент","type":"tags"},
{"id":119649,"name":"Группа Назаренко","type":"usergroup"},
{"id":353,"name":"Клиент МТС","type":"usergroup"}
],
"services":[
{"id":78932,"name":"Сервис обслуживания","path":"78932/"},
{"id":222,"name":"Сервис бухгалтерии","path":"222/"}
]
}
Полная документация к методу в формате swagger (Knowledgebase API)
Другие возможные параметры
$skip - количество записей, которое нужно пропустить, используется для постраничного листания
$top - количество компаний, которое нужно вернуть, используется для постраничного листания
$orderby - название поля для сортировки в списке
$filter - используется для фильтрации списка. Подробнее ниже в Фильтрация списка
$count - true - будет подсчитано количество статей, удовлетворяющих запросу
searchStringMode - поиск по текстовым полям статьи: названии, тексте статьи, названиях файлов, содержимом файлов. none - без поиска, fast - поиск по не точному совпадению, по основе слова; slow - поиск по точному совпадению
Фильтрация списка:
- поиск по текстовым полям (вместе с параметром searchStringMode)
$filter:(contains('_term','автомат))
Теги
-содержит любое из: $filter=((tags/any(s: s eq {tagid_1})) or (tags/any(s: s eq {tagid_2})) or... or (tags/any(s: s eq {tagid_N})))
Автор статьи
- один из: $filter=((createdid eq{userid_1}) or (createdid eq{userid_2}) or ... or (createdid eq{userid_N}))
Пользователь, который изменил статью
- один из: $filter=((updatedid eq{userid_1}) or (updatedid eq{userid_2}) or ... or (updatedid eq{userid_N}))
Опубликована:
да: $filter=(isStatus eq true)4
нет: $filter=(isStatus eq false)
Сервисы:
один из: (servicepath/any(s: s/id eq '{servicepath}'))
где {servicepath} - путь сервиса
Даты, примеры условий
- между: (({datefield} ge cast('{2019-11-01T21:00:00.000Z}', Edm.DateTimeOffset)) and ({datefield} le cast('{2019-12-01T21:00:00.000Z}', Edm.DateTimeOffset)))
- равно - (({datefield} ge cast('{2019-12-01T21:00:00.000Z}', Edm.DateTimeOffset))
- меньше или равно: ({datefield} le cast('2021-04-13T20:59:59.999Z', Edm.DateTimeOffset))
- больше или равно: ({datefield} ge cast('2021-04-12T21:00:00.000Z', Edm.DateTimeOffset))
Дата создания: {datefield}= createdat
Дата изменения: {datefield}= updatedat
даты нужно указывать в формате iso - 2019-12-01T21:00:00.000Z
Задача
Получим статью базы знаний (с кратким описанием), идентификатор которой равен 13138
Решение
GET https://apigw.intradesk.ru/knowledgebase/odata/kb?ApiKey=65247DBDE14C45A6A275DC1FC0&$filter=id eq 13138
Ответ сервера:
Видим, что присутствует поле «descriptionshort» и нет «description», а значение в этом поле заканчивается многоточием.
Полная документация к методу в формате swagger (Knowledgebase API)
Другие возможные параметры
Для получения информации о статьи по ее идентификатору, необходимо воспользоваться запросом на получение списка статей, с указанием фильтра (параметр $filter) по идентификатору.
Внимание! В таких запросах содержимое статьи сокращается.
GET https://apigw.intradesk.ru/knowledgebase/odata/kb?ApiKey=65247DBDE14C45A6A275DC1FC0&$filter=id eq {идентификатор статьи}
Подробнее о запросе и об ответе см. в статье «Получение списка статей базы знаний»
Задача
Получим статью базы знаний (с полным описанием), идентификатор которой равен 13138
Решение
GET https://apigw.intradesk.ru/knowledgebase/api/kb/13138/description?ApiKey=65247DBDE14C45A6A275DC1FC0
Ответ сервера:
{
"id": 7304, //идентификатор статьи
"description": "Для доступа к файлам используйте свои логин/пароль. Администрация" //содержимое статьи
}
Полная документация к методу в формате swagger (Knowledgebase API)
Другие возможные параметры
Для получения статей базы знаний с полным описанием используется следующий запрос:
GET https://apigw.intradesk.ru/knowledgebase/api/kb/{идентификатор статьи }/description?ApiKey=65247DBDE14C45A6A275DC1FC0
Задача
Изменим пользователя Петрова Аркадия с id=13 и ролью roleid=13, привязанного к клиенту(юр.лицу) с id=353
Решение
PATCH https://apigw.intradesk.ru/settings/api/v3/clients/LegalEntities/Users?ApiKey=65247DBDE14C45A6A275DC1FC0
Тело запроса:
{
"id": 13,
"firstName": "Аркадия",
"lastName": "Петрова",
"middleName": "Степановна",
"email": "iv@mycompany.org",
"userGroups": [
{
"isDefault": true,
"id": 353
}
],
"phoneNumbers": [
{
"phoneNumber": "+78001234567",
"default": true,
"phoneExt": null,
}
],
"isArchived": false,
"fotoImage":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAIAAAACUFjqAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAYSURBVChTYzx8+DADbsAEpXGAkSnNwAAAzUQCXbuxMToAAAAASUVORK5CYII=",
"timeZoneCode": "Europe/Moscow",
"additionalEmails": [
"iv@mail.ru"
],
"roleId": 145633,
"fieldIdValues": [
{
"id": 705,
"value": "два"
}
],
"isNewFoto": false,
"userTags": [
{
"id": 279504
}
]
}
Ответ сервера:
Сервер пришлет id изменяемого клиента и статус-код 200. Значит изменения применились успешно.
Полная документация к методу в формате swagger (Settings API)
Другие возможные параметры
PATCH https://apigw.intradesk.ru/settings/api/v3/clients/LegalEntities/Users?ApiKey=65247DBDE14C45A6A275DC1FC0
Тело запроса:
Обязательно указание поля "id" - идентификатора пользователя клиента для изменения.
{
"id", //число, идентификатор клиента
"firstName", //строка, имя клиента
"lastName", //строка, фамилия клиента
"middleName", //строка, отчество клиента
"email", //строка, электронная почта клиента
"userGroups": [ //массив объектов, идентификаторы групп
{
"isDefault", //признак, является ли компания основной
"id" //число, идентификатор компании
}
],
"phoneNumbers": [ //массив, телефонные номера
{
"phoneNumber", //строка, номер телефона
"default", //признак того, что это основной номер пользователя
"phoneExt", //строка, добавочный номер
}
],
"isArchived", //признак, удален ли клиент (заархивирован)
"fotoImage", //строка, фото клиента. Чтобы обновилось, необходимо также передать флаг "isNewLogo"
"timeZoneCode", //строка, часовой пояс
"additionalEmails", //массив строк, дополнительные эл.почты
"roleId", //число, идентификатор роли
"fieldIdValues": [ //массив объектов, значения для доп.полей
{
"id", //число, идентификатор доп.поля
"value", //различные типы, значение доп.поля
}
],
"isNewFoto", //признак, фото клиента обновлено.
"userTags": [ //массив объектов, идентификаторы тегов
{
"id" //число, идентификатор тега
}
]
}
Задача
Получим клиента, у которого id равен 288591
Решение
Ответ сервера:
Получим данные о запрашиваемом клиенте
Полная документация к методу в формате swagger (Settings API)
Другие возможные параметры
GET https://apigw.intradesk.ru/settings/odata/v2/Clients?ApiKey=65247DBDE14C45A6A275DC1FC0
Для получения информации о клиенте по его идентификатору, необходимо воспользоваться запросом на получение списка клиентов, с указанием фильтра (параметр $filter) по идентификатору.
Подробнее о запросе см. в статье «Получение списка клиентов»
Задача
Выполним запрос для получения клиентов, телефон которых равен '8001234567'.
Решение
GET https://apigw.intradesk.ru/settings/odata/v2/Clients?$filter=(contains(searchField, '8001234567'))&ApiKey=61329BA1030E49468DFB672AF6
Ответ сервера:
Получим данные о всех клиентов, у которых номер телефона подошел под запрашиваемую строку (в данном случай один клиент)
Полная документация к методу в формате swagger (Settings API)
Другие возможные параметры
GET https://apigw.intradesk.ru/settings/odata/v2/Clients?$filter=(contains(searchField, '8001234567'))&ApiKey=61329BA1030E49468DFB672AF6
Для получения информации о пользователе клиенте по его телефону, необходимо воспользоваться запросом на получение списка пользователей клиентов, с указанием фильтра (параметр $filter).
В результате может быть больше 1-ого клиента - чем больше цифр номера, тем точнее результат.
Подробнее о запросе см. в статье «Получение списка клиентов (пользователей)»
Задача
Получим первую запись (одну), отсортировав по имени, по убыванию, отфильтровав только не архивные (не удаленные) записи.
Решение
GET https://apigw.intradesk.ru/settings/odata/v2/Clients?ApiKey=61329BA1030E49468DFB672AF6&$skip=0&$top=1&$orderby= name desc&$filter=(isarchived eq false)
Ответ сервера:
{
"@odata.count": 2, //кол-во совпадений (игнорируя skip и top)
"value": [
{
"id": 288590, //идентификатор клиента
"clientType": 10, //тип клиента. 10 - юр.лицо, 20 - физ.лицо
"name": "Моя Компания", //название клиента
"contactPersonId": 915115, //идентификатор контактного лица
"contactPerson": { //данные контактного лица
"id": 915115, //идентификатор контактного лица
"name": null, //полное имя контактного лица
"lastName": "Иванов", //фамилия контактного лица
"firstName": "Петр", //имя контактного лица
"middleName": "", //отчество контактного лица
"roles": null, //роли контактного лица
"additionalEmails": [], //список доп. электронных почт контактного лица
"phoneNumbersList": [], //список телефонов контактного лица
"email": "c12@intra5.ru", //эл.почта контактного лица
"emailConfirmed": false, //признак, подтверждена ли эл.почта контактного лица
"userClientFieldValues": null, //значения доп.полей контактного лица
"fields": null //значения доп.полей контактного лица
},
"taxpayerNumber": "123456", // ИНН
"description": "", // описание
"address": "Ленина 30б", //адрес
"email": "my@company.ru", //эл.почта
"web": "http://my.company.ru", //web-сайт
"domains": [ //список доменов
"maintech"
],
"isArchived": false, //признак, удален ли(заархивирован) клиент
"groupTags": [ //массив тэгов клиента
{
"userGroupId": 288590, //идентификатор клиента
"tagId": 400577, //идентификатор тэга
"tag": {
"isArchived": false, //признак, удален ли(заархивирован) тэг
"id": 400577, //идентификатор тэга
"name": "Информирование" //название тэга
}
}
],
"phoneNumbersList": [ //массив телефонов клиента
{
"phoneNumber": "+78001234567", //номер телефона
"default": true, //признак того, что это основной номер пользователя
"phoneExt": "000", //добавочный номер
"phoneInternational": "+7 800 123-45-67" //номер телефона в международном формате
}
],
"timeZoneCode": "Europe/Moscow", //часовой пояс(IANA)
"userGroupFieldValues": [ //массив доп.полей клиента
{
"userGroupFieldId": 1595, //идентификатор доп.поля
"value": "one" //значение доп.поля
}
],
"fields": { //массив доп.полей клиента (алиас поля / значение)
"addfield_vypadaiushchaia_dopka_kompanii_v_5keSingleSelect": "one"
},
"updatedAt": "2022-02-03T09:08:36.3691610Z", //дата последнего обновления информации о клиенте
"updatedBy": "customer_34969", //автор последнего обновления информации о клиенте
"managerId": 915120, //идентификатор менеджера
"manager": { //данные менеджера
"id": 915120, //идентификатор менеджера
"updatedAt": "0001-01-01T00:00:00.0000000Z", //дата последнего обновления информации о менеджере
"name": "Петр Семенов ", //полное имя менеджера
"sortOrder": null, //порядок сортировки менеджера среди пользователей
"description": null, //описание менеджера
"isArchived": null, //признак, удален ли(заархивирован) менеджер
"searchString": null //значение для умного поиска для менеджера
}
}
]
}
Полная документация к методу в формате swagger (Settings API)
Другие возможные параметры
GET https://apigw.intradesk.ru/settings/odata/Clients?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=(PhoneNumbers/any())
- не заданы- $filter=(not PhoneNumbers/any())
Название
- содержит строку- $filter=(contains(name, 'строка поиска'))
Описание
- cодержит строку- $filter=(contains(description, 'строка поиска'))
Удалена
- да - $filter=(isArchived eq true)
- нет - $filter=(isArchived eq false)
Задача
Получим самую первую запись, отсортировав по убыванию по id, отфильтровав только не архивные (не удаленные) записи
Решение
Ответ сервера:
{
"@odata.count": 10, //кол-во совпадений (игнорируя top и skip)
"value": [ //массив данных по каждому попавшему в выборку клиенту
{
"id": 603176, //идентификатор клиента
"updatedAt": "2021-08-13T15:05:10.5768800Z", //дата последнего обновления
"name": "Гунько Василий Петрович", //ФИО клиента (составляется из 3х полей: имя, фамилия и отчество)
"firstName": "Василий", //имя клиента
"lastName": "Гунько ", //фамилия клиента
"middleName": "Петрович", //отчество клиента
"email": "inj5@company.com", //электронная почта клиента
"userName": "inj5@company.com", //имя клиента для входа в систему
"password": null, //пароль. Скрыт системой, просмотр не доступен
"type": 20, //тип. 20 – клиент, 10 - сотрудник
"clientType": 20, //тип клиента. 20 – физ.лицо, 10 - юр.лицо
"roles": [ //роли
{
"roleId": 145635
}
],
"groups": [ //компании, в которых числится клиент
{
"id": 432527,
"userGroupId": 182911,
"userId": 603176,
"userGroup": {
"id": 182911,
"name": "Инженерия"
},
"isDefault": true
}
],
"userTags": [ //теги, прикрепленные к клиенту
{
"userId": 603176,
"tagId": 279504,
"tag": {
"id": 279504,
"name": "Информирование"
}
}
],
"sortDirection": 0, //направление сортировки
"isArchived": false, //признак, не удален ли клиент (заархивирован)
"phoneNumbers": [ //телефонные номера
{
"phoneNumber": "+78001234567", //номер телефона
"default": true, //признак того, что это основной номер пользователя
"phoneExt": null, //добавочный номер
"phoneInternational": "+7 800 123-45-67" //номер телефона в международном формате
}
],
"workingScheduleId": null, //идентификатор рабочего расписания
"userClientFieldValues": [ //значения доп.полей
{
"userFieldId": 705,
"value": "три"
}
],
"fields": { //значения доп.полей
"addfield_rejimSingleSelect": "три"
},
"fotoImage": null, //строка, фотография клиента
"activeTaskNumber": null, //идентификатор текущей заявки
"updatedBy": "customer_19359", //автор последних изменений
"timeZoneCode": "Europe/Moscow", //часовой пояс
"emailConfirmed": false, //признак, подтверждена ли эл.почта
"additionalEmails": [] //список дополнительных эл.почт
}
]
}
Полная документация к методу в формате swagger (Settings API)
Другие возможные параметры
GET https://apigw.intradesk.ru/settings/odata/ClientUsers?ApiKey=65247DBDE14C45A6A275DC1FC0
Параметры запроса:
$skip - количество пользователей клиентов, которое нужно пропустить, используется для постраничного листания клиентов
$top - количество пользователей клиентов, которое нужно вернуть, используется для постраничного листания клиентов
$orderby - название поля для сортировки в списке
$filter - используется для фильтрации списка пользователей клиентов. “$filter=(isArchived eq false)" для вывода всех не удаленных записей (не архивных)
$count - true - будет подсчитано количество пользователей клиентов, удовлетворяющих запросу
Фильтрация списка
Аналог строки поиска (поиск совпадения строки в полях ФИО, телефоны, email, дополнительных полях типа текст и строка)
$filter=(contains(searchField, 'строка поиска'))
Поиск по почте
Указываем интересующий нас e-mail или его часть в фильтре: $filter=(contains(searchField, 'user@mail.com'))
Теги
содержит любое из: $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)
Тип клиента
- юр.лица - $filter=(cast(clientType , Edm.String) eq '10')
- физ.лица - $filter=(cast(clientType , Edm.String) eq '20')
Несколько условий можно объединять. Например, найти записи, в которых содержится подстрока "мой текст" и клиенты которых являются юр.лицами
$filter=(contains(searchField, 'мой текст')) and (cast(clientType , Edm.String) eq '10')
Задача
Удалим клиентов с идентификаторами 785 и 901.
Решение
DELETE https://apigw.intradesk.ru/settings/api/v3/clients/LegalEntities?ApiKey=65247DBDE14C45A6A275DC1FC0
Тело запроса:
{
"ids":[785, 901]
}
Ответ сервера:
{
"isSuccess": true,
"message": null,
"errorType": null
}
Полная документация к методу в формате swagger (Settings API)
Другие возможные параметры
DELETE https://apigw.intradesk.ru/settings/api/v3/clients/LegalEntities?ApiKey=65247DBDE14C45A6A275DC1FC0
Тело запроса:
{
"ids":[{companyid1}, {companyid2}, ..., {companyidN}]
}
"ids" - массив идентификаторов клиентов
Задача
Получим самую первую запись, отсортировав по убыванию по 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" //число, идентификатор тега
}
]
}
Задача
Удалим пользователей-клиентов с идентификаторами 785 и 901.
Решение
Тело запроса:
{
"ids":[785, 901]
}
Ответ сервера:
{
"isSuccess": true,
"message": null,
"errorType": null
}
Полная документация к методу в формате swagger (Settings API)
Другие возможные параметры
DELETE https://apigw.intradesk.ru/settings/api/v4/clients/LegalEntities/Users?ApiKey=65247DBDE14C45A6A275DC1FC0
Тело запроса:
{
"ids":[{userid1}, {userid2}, ..., {useridN}]
}
"ids" - массив идентификаторов пользователей-клиентов
Задача
Восстановим пользователя клиента с идентификатором 1234
Решение
Для физ.лиц:
PUT https://apigw.intradesk.ru/settings/api/v3/clients/PhysicalPersons/RestoreUser/00000?ApiKey=65247DBDE14C45A6A275DC
Для юр.лиц:
PUT https://apigw.intradesk.ru/settings/api/v3/clients/LegalEntities/Users/Restore/00000?ApiKey=65247DBDE14C45A6A275DC
Ответ сервера:
{
"isSuccess": true,
"message": null,
"errorType": null
}
Полная документация к методу в формате swagger (Settings API)
Другие возможные параметры
Для физ.лиц:
PUT https://apigw.intradesk.ru/settings/api/v3/clients/PhysicalPersons/RestoreUser/1234?ApiKey=65247DBDE14C45A6A275DC1FC1
Для юр.лиц:
PUT https://apigw.intradesk.ru/settings/api/v3/clients/LegalEntities/Users/Restore/1234?ApiKey=65247DBDE14C45A6A275DC
вместо 1234 указать нужный идентификатор пользователя
Основные задачи, которые решаются посредством API
- Интеграция с телефонией. Создание заявки по звонку.
- Прием/передача заявки в другую систему (HelpDesk, CRM и др.)
- Синхронизация статусов заявки, добавление комментариев.
- Обновление данных по клиентам, сотрудникам на основе другой системы.
В данном разделе представлены примеры решения СТАНДАРТНЫХ ЗАДАЧ посредством API.
Полная спецификация API в формате swagger представлена в сервисах:
- TaskHistory API
- Получить жизненный цикл заявки пример
- KnowledgeBase API
- Получить список статей БЗ пример
- Создать статью БЗ
- Изменить статью БЗ
- Users API
- Получить профиль авторизованного пользователя, его персональные настройки
Для быстрого старта попробуйте создание заявки по API.