Отличие API v.2 от API v.1 заключается в:
Добавлены возможности создания заявок, а так же работы с ними (выполнение действий над заявками).
Изменён способ аутентификации
Изменён формат запросов/ответов
Авторизация
Для работы с API, необходимо иметь token
, который генерируется в панели администрирования и может иметь срок действия. Метод аутентификации: JWT
. Вы можете использовать token
как в виде параметра token
тела запроса, так и в Header Authorization: Bearer <token>
.
Формат запросов и ответов
Для всех запросов используется метод POST
. Формат запросов: Content-Type: multipart/form-data;
. Во всех ответах формат: json
. В случае ошибки, обязательно возвращаются: message
, status_code
.
Дополнительный параметр sudo
В качестве наличия включённого атрибута sudo
, в настройках token
, при запросе возможно указывать id
пользователя, от которого производится действие с заявкой. В таком случае, все права на заявки берутся исключительно из настроек формы заявки id
пользователя указанного в sudo
. Если параметр sudo
выключен или отсутствует, то по умолчанию все действия будут производиться от пользователя, указанного в настройках конкретного token
.
Объекты
Заявки:
Просмотр возможных атрибутов для создания заявки
Просмотр списка возможных групп (кому)
Просмотр списка возможных тэгов
Просмотр списка возможных пользователей (кому)
Просмотр списка возможных SLA
Просмотр списка возможных дополнительных полей
Просмотр списка входящих заявок
Просмотр списка исходящих заявок
Просмотр списка архивных заявок
Добавление наблюдающего пользователя к заявке
Удаление наблюдающего пользователя к заявке
Блокирование/разблокирование заявки
Подтверждение/отмена проверки заявки после её выполнения
1.1 Создание пользователя
Endpoint: user/create
Создание пользователя
POST
/api/v2/user/create
Метод предназначен для создания пользователя
Request Body
200
Copy [
{
"id": 9,
"name": "admin@zen.comreer",
"email": "admin@zen.com",
"last_login": null,
"created_at": "2019-04-23 11:13:11",
"updated_at": "2019-04-23 11:13:11",
"deleted_at": null,
"active": "true"
}
]
Параметры запроса:
Пример ответа:
Copy [
{
"id": 9,
"name": "admin@zen.comreer",
"email": "admin@zen.com",
"last_login": null,
"created_at": "2019-04-23 11:13:11",
"updated_at": "2019-04-23 11:13:11",
"deleted_at": null,
"active": "true"
}
]
1.2 Поиск пользователя
Endpoint: user/find
Параметры запроса:
Пример ответа:
Copy [
{
"id": 9,
"name": "admin@zen.comreer",
"email": "admin@zen.com",
"last_login": null,
"created_at": "2019-04-23 11:13:11",
"updated_at": "2019-04-23 11:13:11",
"deleted_at": null,
"active": "true"
}
]
1.3 Просмотр пользователя
Endpoint: user
Параметры запроса:
Пример ответа:
Copy {
"user": {
"id": 1,
"name": "System Account",
"email": "admin@local",
"last_login": "2019-05-17 15:38:10",
"created_at": "2019-04-05 07:48:01",
"updated_at": "2019-05-17 15:38:10",
"deleted_at": null,
"active": "true"
},
"profile": {
"user_id": 1,
"user_img": null,
"user_cover": null,
"lang": "ru",
"full_name": "System Account",
"user_urlhash": "dQbM7AkSgr8m2PmQUM6CuHxCx",
"sms": null,
"pb": null,
"telephone": null,
"skype": null,
"address": null,
"position": "$request->profile['email']",
"birthdayDay": 1,
"birthdayMonth": 1,
"birthdayYear": 1950,
"email": "admin@local",
"facebook": null,
"twitter": null,
"website": null,
"about": null,
"skills": "",
"created_at": "2019-04-05 07:48:01",
"updated_at": "2019-05-06 14:24:03"
},
"role": {
"id": 1,
"created_at": "2019-04-05 07:48:01",
"updated_at": "2019-04-05 07:48:01",
"user_id": 1,
"role": "admin"
},
"group_admin": [
{
"id": 1,
"name": "Default group",
"description": "Default group",
"cover": null,
"icon": null,
"status": "public",
"description_full": null,
"slogan": null,
"address": null,
"tags": null,
"facebook": null,
"twitter": null,
"group_urlhash": "def_group",
"created_at": "2019-04-08 09:17:06",
"updated_at": "2019-04-08 09:17:06",
"pivot": {
"user_id": 1,
"group_id": 1,
"created_at": "2019-04-12 12:43:24",
"updated_at": "2019-04-12 12:43:24",
"status": "success",
"priviliges": "admin"
}
}
],
"group_user": [
{
"id": 1,
"name": "Default group",
"description": "Default group",
"cover": null,
"icon": null,
"status": "public",
"description_full": null,
"slogan": null,
"address": null,
"tags": null,
"facebook": null,
"twitter": null,
"group_urlhash": "def_group",
"created_at": "2019-04-08 09:17:06",
"updated_at": "2019-04-08 09:17:06",
"pivot": {
"user_id": 1,
"group_id": 1,
"created_at": "2019-04-12 12:43:24",
"updated_at": "2019-04-12 12:43:24",
"status": "success",
"priviliges": "user"
}
}
],
"contacts": [
{
"id": 10,
"user_id": 1,
"type": "email",
"primary": "true",
"value": "admin3@zenlix.com",
"created_at": "2019-04-15 08:11:47",
"updated_at": "2019-04-15 08:11:47"
},
{
"id": 11,
"user_id": 1,
"type": "email",
"primary": "false",
"value": "admin2@zenlix.com",
"created_at": "2019-04-15 08:11:47",
"updated_at": "2019-04-15 08:11:47"
}
],
"ticket_conf": {
"id": 1,
"created_at": "2019-04-05 07:48:01",
"updated_at": "2019-04-05 07:48:01",
"user_id": 1,
"ticket_form_id": 1,
"conf_params": "user",
"group_conf_id": null
},
"fields": [
{
"id": 1,
"created_at": "2019-04-12 13:11:27",
"updated_at": "2019-04-15 08:11:47",
"user_field_id": 1,
"user_id": 1,
"field_data": "$profileReq['profile']к"
},
{
"id": 2,
"created_at": "2019-04-12 13:20:31",
"updated_at": "2019-04-15 08:11:47",
"user_field_id": 2,
"user_id": 1,
"field_data": ""
}
]
}
2.1 Просмотр возможных атрибутов для создания заявки
Endpoint: ticket/precreate
Параметры запроса: -
Пример ответа:
Copy {
"prio": "true", Возможность установки приоритета заявки
"files": {
"active": "true", Возможность загрузки файлов
"types": "jpeg,png", Допустимые форматы файлов
"count": 3, Разрешённое к-во файлов
"size": 1024 Максимальный размер каждого файла
},
"deadline": "true", Возможность установки крайнего срока выполнения заявки
"watching": "true", Возможность установки наблюдающих за заявкой
"individual_ok": "true", Индивидуальное выполнение заявки
"check_after": "true", Возможность принять заявку после её выполнения
"create_user": "true", Возможность создавать пользователя
"target_group": [
{
"id": 1,
"name": "Группа 1"
}
],
"target_users": [
{
"id": 1,ID пользователей на которых разрешено создавать заявку
"name": "Группа 1"
}
],
"fields": [ Список дополнительных полей заявки
{
"id": 1,
"created_at": "2019-04-08 11:22:32",
"updated_at": "2019-04-08 11:22:32",
"name": "IP-адрес", Название поля
"f_type": "text", Тип поля
"required": "true", Обязательное поле
"field_name": "IP-адрес",
"field_value": null,
"field_placeholder": "IP-адрес",
"field_hash": "E3IQzkECnRqOQEZ9roKdg4ymRiImcuvYzruyti53"
}
],
"sla": [ Список допустимых SLA-планов
{
"id": 1,
"name": "Группа 1"
}
],
"subj": true, Возможность установки темы заявки
"msg": true, Возможность установки сообщения
"tags": true Возможность установки тэгов к заявке
}
2.2 Просмотр списка возможных групп (кому)
Endpoint: ticket/groups/list
Параметры запроса: -
Пример ответа:
Copy [
{
"id": 1,
"name": "Группа 1"
}
]
2.2.1 Просмотр списка возможных тэгов
Endpoint: ticket/tags/list
Параметры запроса: -
Пример ответа:
Copy [
{
"id": 1,
"name": "To Do"
}
]
2.3 Просмотр списка возможных пользователей (кому)
Endpoint: ticket/users/list
Параметры запроса: -
Пример ответа:
Copy [
{
"id": 1,
"name": "User Name"
}
]
2.4 Просмотр списка возможных SLA
Endpoint: ticket/sla/list
Параметры запроса: -
Пример ответа:
Copy [
{
"id": 1,
"name": "SLA 1"
}
]
2.5 Просмотр списка возможных дополнительных полей
Endpoint: ticket/custom_fields/list
Параметры запроса: -
Пример ответа:
Copy [
{
"id": 1,
"created_at": "2019-04-08 11:22:32",
"updated_at": "2019-04-08 11:22:32",
"name": "IP-адрес",
"f_type": "text",
"required": "true",
"field_name": "IP-адрес",
"field_value": null,
"field_placeholder": "IP-адрес",
"field_hash": "E3IQzkECnRqOQEZ9roKdg4ymRiImcuvYzruyti53"
}
]
2.6 Создание заявки
Endpoint: ticket/create
Параметры запроса:
Пример ответа:
Copy {
"id": 16,
"author_id": 1,
"code": "PS4X",
"client_id": null,
"prio": "normal",
"text": "test",
"subject": "test",
"tags": "1,2",
"urlhash": "7AC5eA2Knv",
"sla_id": null,
"target_group_id": null,
"deadline_time": null,
"inspect_after_ok": "false",
"individual_ok": "false",
"overtime": "false",
"planner_flag": "false",
"merge_flag": "false",
"deleted_at": null,
"status": "free",
"created_at": "2019-05-15 15:12:44",
"updated_at": "2019-05-17 16:30:16"
}
2.6.1 Просмотр заявки
Endpoint: ticket/show
Параметры запроса:
Пример ответа:
Copy {
"id": 16,
"author_id": 1,
"code": "PS4X",
"client_id": null,
"prio": "normal",
"text": "test",
"subject": "test",
"tags": "1,2",
"urlhash": "7AC5eA2Knv",
"sla_id": null,
"target_group_id": null,
"deadline_time": null,
"inspect_after_ok": "false",
"individual_ok": "false",
"overtime": "false",
"planner_flag": "false",
"merge_flag": "false",
"deleted_at": null,
"status": "free",
"created_at": "2019-05-15 15:12:44",
"updated_at": "2019-05-17 16:30:16"
}
2.7 Просмотр списка входящих заявок
Endpoint: ticket/list/in
Параметры запроса:
Пример ответа:
Copy {
"tickets": [
{
"code": "QS92",
"prio": "normal",
"subject": "test",
"author": {
"full_name": "System Account",
"user_urlhash": "dQbM7AkSgr8m2PmQUM6CuHxCx"
},
"created_at": {
"date": "2019-05-17 16:05:25.000000",
"timezone_type": 3,
"timezone": "Europe/Kiev"
},
"clients": [
{
"full_name": "System Account",
"user_urlhash": "dQbM7AkSgr8m2PmQUM6CuHxCx",
"id": 1
}
],
"tags": [
{
"name": "to do",
"id": 1
}
],
"targets": {
"group": null,
"users": [
{
"full_name": "System Account",
"user_urlhash": "dQbM7AkSgr8m2PmQUM6CuHxCx",
"id": 1
}
]
},
"ticket_status": "free",
"text": "test",
"tags": "api_v2",
"urlhash": "wT7V0b4J8B",
"overtime": "false",
"planner_flag": "false"
},
...
2.8 Просмотр списка исходящих заявок
Endpoint: ticket/list/out
Параметры запроса:
Пример ответа:
Copy {
"tickets": [
{
"code": "QS92",
"prio": "normal",
"subject": "test",
"author": {
"full_name": "System Account",
"user_urlhash": "dQbM7AkSgr8m2PmQUM6CuHxCx"
},
"created_at": {
"date": "2019-05-17 16:05:25.000000",
"timezone_type": 3,
"timezone": "Europe/Kiev"
},
"tags": [
{
"name": "to do",
"id": 1
}
],
"clients": [
{
"full_name": "System Account",
"user_urlhash": "dQbM7AkSgr8m2PmQUM6CuHxCx",
"id": 1
}
],
"targets": {
"group": null,
"users": [
{
"full_name": "System Account",
"user_urlhash": "dQbM7AkSgr8m2PmQUM6CuHxCx",
"id": 1
}
]
},
"ticket_status": "free",
"text": "test",
"tags": "api_v2",
"urlhash": "wT7V0b4J8B",
"overtime": "false",
"planner_flag": "false"
},
...
2.9 Просмотр списка архивных заявок
Endpoint: ticket/list/arch
Пример ответа:
Copy {
"tickets": [
{
"code": "QS92",
"prio": "normal",
"subject": "test",
"author": {
"full_name": "System Account",
"user_urlhash": "dQbM7AkSgr8m2PmQUM6CuHxCx"
},
"tags": [
{
"name": "to do",
"id": 1
}
],
"created_at": {
"date": "2019-05-17 16:05:25.000000",
"timezone_type": 3,
"timezone": "Europe/Kiev"
},
"clients": [
{
"full_name": "System Account",
"user_urlhash": "dQbM7AkSgr8m2PmQUM6CuHxCx",
"id": 1
}
],
"targets": {
"group": null,
"users": [
{
"full_name": "System Account",
"user_urlhash": "dQbM7AkSgr8m2PmQUM6CuHxCx",
"id": 1
}
]
},
"ticket_status": "free",
"text": "test",
"tags": "api_v2",
"urlhash": "wT7V0b4J8B",
"overtime": "false",
"planner_flag": "false"
},
...
2.10 Добавление наблюдающего пользователя к заявке
Endpoint: ticket/watching/add
Параметры запроса:
Пример ответа:
2.11 Удаление наблюдающего пользователя к заявке
Endpoint: ticket/watching/remove
Пример ответа:
2.12 Переадресация заявки
Endpoint: ticket/refer
Пример ответа:
Copy {
"id": 16,
"author_id": 1,
"code": "PS4X",
"client_id": null,
"prio": "normal",
"text": "test",
"subject": "test",
"tags": "1,2",
"urlhash": "7AC5eA2Knv",
"sla_id": null,
"target_group_id": null,
"deadline_time": null,
"inspect_after_ok": "false",
"individual_ok": "false",
"overtime": "false",
"planner_flag": "false",
"merge_flag": "false",
"deleted_at": null,
"status": "free",
"created_at": "2019-05-15 15:12:44",
"updated_at": "2019-05-17 16:30:16"
}
2.13 Блокирование/разблокирование заявки
Endpoint: ticket/toggle/work
Пример ответа:
Copy {
"id": 16,
"author_id": 1,
"code": "PS4X",
"client_id": null,
"prio": "normal",
"text": "test",
"subject": "test",
"tags": "api_v2",
"urlhash": "7AC5eA2Knv",
"sla_id": null,
"target_group_id": null,
"deadline_time": null,
"inspect_after_ok": "false",
"individual_ok": "false",
"overtime": "false",
"planner_flag": "false",
"merge_flag": "false",
"deleted_at": null,
"status": "free",
"created_at": "2019-05-15 15:12:44",
"updated_at": "2019-05-17 16:30:16"
}
2.14 Выполнение/отмена заявки
Endpoint: ticket/toggle/success
Пример ответа:
Copy {
"id": 16,
"author_id": 1,
"code": "PS4X",
"client_id": null,
"prio": "normal",
"text": "test",
"subject": "test",
"tags": "api_v2",
"urlhash": "7AC5eA2Knv",
"sla_id": null,
"target_group_id": null,
"deadline_time": null,
"inspect_after_ok": "false",
"individual_ok": "false",
"overtime": "false",
"planner_flag": "false",
"merge_flag": "false",
"deleted_at": null,
"status": "free",
"created_at": "2019-05-15 15:12:44",
"updated_at": "2019-05-17 16:30:16"
}
2.15 Объединение заявки
Endpoint: ticket/merge
Параметры запроса:
Пример ответа:
Copy {
"id": 16,
"author_id": 1,
"code": "PS4X",
"client_id": null,
"prio": "normal",
"text": "test",
"subject": "test",
"tags": "api_v2",
"urlhash": "7AC5eA2Knv",
"sla_id": null,
"target_group_id": null,
"deadline_time": null,
"inspect_after_ok": "false",
"individual_ok": "false",
"overtime": "false",
"planner_flag": "false",
"merge_flag": "false",
"deleted_at": null,
"status": "free",
"created_at": "2019-05-15 15:12:44",
"updated_at": "2019-05-17 16:30:16"
}
2.16 Подтверждение/отмена проверки заявки после её выполнения
Endpoint: ticket/approve
Параметры запроса:
Пример ответа:
Copy {
"id": 16,
"author_id": 1,
"code": "PS4X",
"client_id": null,
"prio": "normal",
"text": "test",
"subject": "test",
"tags": "api_v2",
"urlhash": "7AC5eA2Knv",
"sla_id": null,
"target_group_id": null,
"deadline_time": null,
"inspect_after_ok": "false",
"individual_ok": "false",
"overtime": "false",
"planner_flag": "false",
"merge_flag": "false",
"deleted_at": null,
"status": "free",
"created_at": "2019-05-15 15:12:44",
"updated_at": "2019-05-17 16:30:16"
}
2.17 Комментирование заявки
Endpoint: ticket/comment
Пример ответа:
Copy {
"text": "test",
"author_id": 1,
"ticket_id": 16,
"visible_client": "true",
"urlhash": "aKzZmyae2h",
"updated_at": "2019-05-17 22:13:36",
"created_at": "2019-05-17 22:13:36",
"id": 2
}
3.1 Вход
Endpoint: login
Пример ответа:
Copy {
"token": "7enCAXGbwyDTAAWwLIy6s6vKa3cy0PNb12QhSza6b4ajna4m4rpujpQ0lJ7dSZPV",
"user_info": {
"user": {
"id": 1,
"name": "System Account",
"email": "admin@local",
"last_login": "2019-11-06 07:56:16",
"created_at": "2019-04-05 07:48:01",
"updated_at": "2019-11-06 07:56:16",
"deleted_at": null,
"active": "true",
"profile": {
"user_id": 1,
"user_img": null,
"user_cover": null,
"lang": "ru",
"full_name": "System Account",
"user_urlhash": "dQbM7AkSgr8m2PmQUM6CuHxCx",
"sms": null,
"pb": null,
"telephone": null,
"skype": null,
"address": null,
"position": "\u0434\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u044c",
"birthdayDay": "1970-01-01 03:00:01",
"birthdayMonth": 1,
"birthdayYear": 1950,
"email": "admin@local.ru",
"facebook": null,
"twitter": null,
"website": null,
"about": null,
"skills": "",
"created_at": "2019-04-05 07:48:01",
"updated_at": "2019-10-14 17:25:02",
"birthday": null,
"telegram": null,
"telegramId": null,
"organization": null,
"nickname": "admin"
}
},
"profile": {
"user_id": 1,
"user_img": null,
"user_cover": null,
"lang": "ru",
"full_name": "System Account",
"user_urlhash": "dQbM7AkSgr8m2PmQUM6CuHxCx",
"sms": null,
"pb": null,
"telephone": null,
"skype": null,
"address": null,
"position": "\u0434\u043e\u043b\u0436\u043d\u043e\u0441\u0442\u044c",
"birthdayDay": "1970-01-01 03:00:01",
"birthdayMonth": 1,
"birthdayYear": 1950,
"email": "admin@local.ru",
"facebook": null,
"twitter": null,
"website": null,
"about": null,
"skills": "",
"created_at": "2019-04-05 07:48:01",
"updated_at": "2019-10-14 17:25:02",
"birthday": null,
"telegram": null,
"telegramId": null,
"organization": null,
"nickname": "admin"
},
"role": {
"id": 1,
"created_at": "2019-04-05 07:48:01",
"updated_at": "2019-04-05 07:48:01",
"user_id": 1,
"role": "admin"
},
"group_admin": [
{
"id": 1,
"name": "Default group`1",
"description": "Default group",
"cover": null,
"icon": null,
"status": "public",
"description_full": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b",
"slogan": null,
"address": null,
"tags": null,
"facebook": null,
"twitter": null,
"group_urlhash": "def_group",
"created_at": "2019-04-08 09:17:06",
"updated_at": "2019-10-02 14:10:56",
"pivot": {
"user_id": 1,
"group_id": 1,
"created_at": "2019-10-10 12:48:36",
"updated_at": "2019-10-10 12:48:36",
"status": "success",
"priviliges": "admin"
}
}
],
"group_user": [
{
"id": 1,
"name": "Default group`1",
"description": "Default group",
"cover": null,
"icon": null,
"status": "public",
"description_full": "\u041e\u043f\u0438\u0441\u0430\u043d\u0438\u0435 \u0434\u0430\u043d\u043d\u043e\u0439 \u0433\u0440\u0443\u043f\u043f\u044b",
"slogan": null,
"address": null,
"tags": null,
"facebook": null,
"twitter": null,
"group_urlhash": "def_group",
"created_at": "2019-04-08 09:17:06",
"updated_at": "2019-10-02 14:10:56",
"pivot": {
"user_id": 1,
"group_id": 1,
"created_at": "2019-10-10 12:48:36",
"updated_at": "2019-10-10 12:48:36",
"status": "success",
"priviliges": "user"
}
},
{
"id": 12,
"name": "HR",
"description": "HR",
"cover": null,
"icon": null,
"status": "public",
"description_full": null,
"slogan": null,
"address": null,
"tags": null,
"facebook": null,
"twitter": null,
"group_urlhash": "yMwZro3jBsvhZglDJiYC5HrMf68o3BSriLsw4N7E",
"created_at": "2019-09-16 07:13:56",
"updated_at": "2019-09-16 07:13:56",
"pivot": {
"user_id": 1,
"group_id": 12,
"created_at": "2019-10-02 14:20:51",
"updated_at": "2019-10-02 14:20:51",
"status": "success",
"priviliges": "user"
}
}
],
"contacts": [
{
"id": 67,
"user_id": 1,
"type": "email",
"primary": "true",
"value": "admin@local.ru",
"created_at": "2019-10-02 10:57:21",
"updated_at": "2019-10-02 14:12:48"
}
],
"ticket_conf": {
"id": 1,
"created_at": "2019-04-05 07:48:01",
"updated_at": "2019-10-02 14:12:48",
"user_id": 1,
"ticket_form_id": 1,
"conf_params": "user",
"group_conf_id": null
},
"fields": [
{
"id": 1,
"created_at": "2019-04-12 13:11:27",
"updated_at": "2019-06-09 19:48:54",
"user_field_id": 1,
"user_id": 1,
"field_data": "$profileReq['profile']\u043a"
},
{
"id": 2,
"created_at": "2019-04-12 13:20:31",
"updated_at": "2019-06-09 19:48:54",
"user_field_id": 2,
"user_id": 1,
"field_data": ""
}
],
"image": "https:\/\/demo.zenlix.com\/api\/v2\/files\/users\/img\/def_usr.png"
}
}
3.2 Выход
Endpoint: logout
Пример ответа:
Copy {
"msg": "success logout"
}
4. IP-телефония
4.1 Информация о входящем звонке
Endpoint: iptel/incoming?call_id=<callid>&call_tel=<call_tel>
Пример ответа:
4.2 Информация об ответе на входящий звонок
Endpoint: iptel/answered?call_id=<callid>&call_tel=<call_tel>&call_answer=<call_answer>
Пример ответа:
4.3 Информация о пропущенном звонке
Endpoint: iptel/missed?call_id=<callid>
Пример ответа: