Задача
Создать заявку: «Не работает сервер X». Пометить её тегом “monitoring”
Решение
Продемонстрируем решение в общеизвестной программе тестирования API - Postman.
Для начала в разделе Настройки -> Теги создайте тег “monitoring”. В нашем примере система присвоила ему ID=33290.

Post запрос будет вида:
POST https://apigw.intradesk.ru/changes/v3/tasks?ApiKey=1B42B8691ABB40AA961451D9ACЗначение Apikey можно получить в системе в разделе: Настройки -> Интеграции -> Apikey
Тело запроса:
{
"blocks": {
"name": "{\"value\":\"Не работает сервер X1. Просьба починить.\"}",
"description": "{\"value\":\"Даже не запускается. Лампочки не горят.\"}",
"tags": "{\"value\":[56899]}"
},
"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/v3/tasks/?ApiKey=65247DBDE14C45A6A275DC1FC0
Значение Apikey можно получить в системе в разделе: Настройки -> Интеграции -> Apikey
Установить Content-Type = «application/json»
Важно: Для раздела заявок, используя ApiKey, есть возможность указать пользователя, от имени которого изменения будут зафиксированы в системе. Нужно передать аргумент userid, соответствующий нужному пользователю
Например:
PUT https://apigw.intradesk.ru/changes/v3/tasks/?ApiKey=65247DBDE14C45A6A275DC1FC0&userid=123456
Тело запроса:
{
"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/v3/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'))
Была переоткрыта, чекбокс (да/нет) . Находилась ли заявка в статусе с признаком "Конечный"
- установлен. Odata формат = (isreopened eq true)
Поля-флаги, которые не входят в фильтр, но тоже дают возможность отсеять по некоторым признакам:
Архивность. Является ли заявка заархивированной (удаленной). Такие заявки не отображаются на списке в интерфейсе Intradesk
- isIncludeArchive=true/false
Пример: /tasklist/odata/v3/tasks?$isIncludeArchive=true
См. также Описание полей заявки, Получение списка заявок
Задача
Получить данные заявки c номером 31.
Решение
Get запрос будет вида:
https://apigw.intradesk.ru/tasklist/odata/v3/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/v3/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/v3/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)