Заявки
Меню заявок
В меню заявок можно попасть из раздела Заявки и персоны в верхнем меню бота, нажав в выпадающем списке на Заявки.
После перехода в меню заявок открывается таблица содержащая все заявки в боте.
Здесь можно просматривать таблицу, создавать новые заявки (1), редактировать информацию о уже существующих и удалять их (2), настраивать фильтры для удобного поиска нужных заявок (3).
По кнопке Экспорт в правом верхнем углу вы можете скачать таблицу заявок в виде .csv файла.
Создание заявки
При нажатии на кнопку Создать открывается окно настройки заявки со следующими полями:
- Заголовок - наименование заявки;
- Тип заявки - выпадающий список, в котором следует выбрать вид заявки (настраиваются в боте заранее);
- Статус - выпадающий список, в котором следует выбрать статус заявки (настраиваются в боте заранее);
Рекомендуем также ознакомиться с разделом Виды и статусы заявок
- Автор - выпадающий список, в котором следует выбрать персону автора заявки;
Рекомендуем также ознакомиться с разделом Персоны
- Клиент - выпадающий список, в котором следует выбрать персону клиента заявки;
- Исполнитель - выпадающий список, в котором следует выбрать персону исполнителя заявки;
- Описание - дополнительная информация о заявке.
Помимо вышеперечисленных полей в заявке могут быть произвольные поля, создаваемые заранее в специальном меню произвольных полей заявок.
Подробнее о произвольных полях заявок можно узнать из раздела Произвольные поля заявок
После создания заявка появится в таблице в меню заявок с автоматически заданным ей Id. Тут ее можно редактировать, удалить и просматривать историю изменений.
Редактирование заявок включает в себя те же поля, что при создании.
Лог заявок
При каждом редактировании заявки информация об изменениях в ней фиксируется в Логе заявок.
Просмотреть его можно по кнопке История изменений в операциях заявки
или из раздела Заявки и персоны в верхнем меню бота, нажав в выпадающем списке на Лог заявок.
После перехода по одной из кнопок открывается таблица содержащая все изменения всех когда либо существовавших в боте заявок.
В таблице отображаются изменения с указанием, что именно было изменено и когда (1). Тут же можно сортировать все изменения при помощи фильтров (2), что позволит быстрее искать нужные изменения.
Фильтры позволяют сортировать изменения по названию заявки и дате.
Фильтры заявок
Для быстрого и удобного поиска в меню заявок существуют фильтры. Настраивая их можно сократить список заявок по соответствующим параметрам.
Фильтры есть для названия, типа, статуса и группы статусов, а так же для времени создания заявки.
После выбора фильтров нужно нажать на кнопку Применить фильтр, и тогда в таблице останутся только заявки соответствующие заданным параметрам. Или же можно нажать на кнопку Сбросить фильтр и в таблице будут показаны все существующие в боте заявки.
JS
С заявками так же можно работать с помощью методов JS. Все методы дляи работыих с заявками
К заявкамописание можно обращатьсяпосмотреть изв JS следующими методами:
Найти id заявкиСправочнике по значениюфункциям поляJS
ticket.update($data): bool
ticket.getData(string $key): mixed|null
ticket.getCustomData(string $key): mixed|null
ticket.issetData(string $key): bool
ticket.isDataExist(string $key): bool
ticket.reloadCustomData(bool $isReloadModel = false): bool
ticket.setAllCustomData(array $customData): self
ticket.getAllCustomData(): array
ticket.setCustomData(string $key, $value): self
ticket.issetCustomData(string $key): bool
ticket.isCustomDataExist(string $key): bool
ticket.getTicketTypeName(): ?string
Получить ID статуса заявки
ticket.getStatusId(): ?int
ticket.getAttr("status_id"): ?int
Получить название статуса заявки
ticket.getStatusName(): ?string
Получить тип статуса заявки
ticket.getStatusType(): ?string
Приведение названия статуса к стандартному виду
ticket._sanitizeString($string): string
Проверить статус заявки
ticket.isInStatus($statusName): bool
Установить статус заявки по id
ticket.setStatusId(?int $statusId, ?int $personQueueIdForLog = null, ?string $personQueueTableForLog = null): bool
Установить статус заявки по имени
ticket.setStatusByName(string $statusName, ?int $personQueueIdForLog = null, ?string $personQueueTableForLog = null): bool
Загрузить заявку повторно
ticket.reloadTicket(): bool
Получить ID автора заявки
ticket.getAuthorPersonId(): ?int
Получить ID исполнителя заявки
ticket.getAssignedPersonId(): ?int
Получить ID клиента заявки
ticket.getClientPersonId(): ?int
Получить ФИО автора заявки
ticket.getAuthorPersonFullName(): string
Получить ФИО исполнителя заявки
ticket.getAssignedPersonFullName(): string
Получить ФИО клиента заявки
ticket.getClientPersonFullName(): string
Получить ID роли автора заявки
ticket.getAuthorPersonRoleId(): ?int
Получить ID роли исполнителя заявки
ticket.getAssignedPersonRoleId(): ?int
ticket.getClientPersonRoleId(): ?int
ticket.getAuthorPersonRoleName(): string
ticket.getAssignedPersonRoleName(): string
ticket.getClientPersonRoleName(): string
ticket.getAuthorPersonRoleTitle(): string
ticket.getAssignedPersonRoleTitle(): string
ticket.getClientPersonRoleTitle(): string
ticket.getAuthorPersonRoleFormattedTitle(): string
ticket.getAssignedPersonRoleFormattedTitle(): string
ticket.getClientPersonRoleFormattedTitle(): string
ticket.getPerson1Id(): ?int
ticket.getPerson2Id(): ?int
ticket.getPerson3Id(): ?int
ticket.setPerson1Id(?int $personId): bool
ticket.setPerson2Id(?int $personId): bool
ticket.setPerson3Id(?int $personId): bool
ticket.getTotalFormatted(): string
ticket.getSubtotalFormatted(): string
ticket.getTotalFeeFormatted(): string
ticket.getDeliveryFeeFormatted(): string
Заявка передается в скрипт v8 автоматически: определяется на основе текущей активной заявки лида (текущая (активная) заявка хранится в атрибутах лида в переменной sys_current_ticket_id) или передается по цепочке из триггера в другой триггер/скрипт, если первоначально был запущен триггер по событию связанному с заявкой.
Каждый из методов подробнее расписан ниже.
Создание заявки
bot.createTicket($data)Описание:
Создает в боте заявку с указанными полями.
Атрибуты:
author_person_id
client_person_id
assigned_person_id
description
Для избежания пересечения с полями заявки дополнительные поля по имени передаются отдельным блоком 'custom'.
Возвращает:
int - id созданной заявки в формате числа.
Пример:
let ticketData = {
'title': 'Создано в боте',
'ticket_type_id': 1006,
'status_id': 1017
'description': lead.getAttr('проблема')
};
ticketData.custom = {
'возраст': 99,
'рост': 199
};
let newTicketId = bot.createTicket(ticketData);Пример создания заявки с кастомным полем space типа выпадающий список:
let $space = 0;
if (lead.getAttr('space') == 'Квартира') {
$space = 1;
} else if (lead.getAttr('space') == 'Частный дом') {
$space = 2;
} else if (lead.getAttr('space') == 'Общежитие') {
$space = 3;
}
let ticketData = {
'title': 'Создано в боте'
};
ticketData.custom = {
'space': $space
}
let newTicketId = bot.createTicket(ticketData);Обновление заявки
bot.updateTicketById(int $ticketId, $data)Описание:
Обновляет заявку по id.
Атрибуты:
author_person_id
client_person_id
assigned_person_id
description
Возвращает:
bool - подтверждение обновления заявки.
Пример:
bot.updateTicketById(4527, {
'title': 'Создано в боте',
'ticket_type_id': 1013,
'status_id': 1096
})Получить максимальное количество отказов
bot.getMaxRejectsTicketCount()Описание:
Возвращает максимальное количество отказов от заявки.
Возвращает:
int - количество отказов в формате числа.
Пример:
let MaxRejects = bot.getMaxRejectsTicketCount();Поиск заявок
bot.findTickets($where = [], bool $findInAllBusinessBots = false, $orderBy = [], ?int $limit = null, ?int $offset = null)Описание:
Находит заявки в соответствии с указанными параметрами и возвращает их массив.
Атрибуты:
Возвращает:
array - массив с id всех найденных заявок.
Пример:
let tickets = bot.findTickets();
for (let i = 0; i < tickets.length; i++) {
lead.setAttr('tickets_' + i + '_tickets_title', tickets[i].getData('title'));
lead.setAttr('tickets_' + i + '_client_contacts', tickets[i].getCustomData('client_contacts'));
lead.setAttr('tickets_' + i + '_details', tickets[i].getCustomData('details'));
lead.setAttr('tickets_' + i + '_статус_имя', tickets[i].getCustomData('статус.имя'));
}
lead.setAttr('found_tickets_count', tickets.length);Найти id заявки по значению поля
bot.findTicketIdByCustomField(string $fieldName, $value)Описание:
Находит Id первой заявки, у которой поле $fieldName имеет значение $value.
Атрибуты:
Возвращает:
int - id найденной заявки в формате числа.
Пример:
let TicketId = bot.findTicketIdByCustomField('title', 'Заявка');Найти id вида заявки по наименованию
bot.getTicketTypeIdByName(string $typeName)Описание:
Находит id вида заявки по наименованию вида заявки.
Атрибуты:
Возвращает:
int - id вида заявки в формате числа.
Пример:
let TicketId = bot.findTicketIdByCustomField('Заявка');Найти id статуса заявки по наименованию
bot.getTicketStatusIdByName(string $statusName)Описание:
Находит id статуса заявки по наименованию статуса заявки.
Атрибуты:
Возвращает:
int - id статуса заявки в формате числа.
Пример:
let StatusId = bot.getTicketStatusIdByName('Статус');Установить текущую заявку
bot.setCurrentTicketById(?int $ticketId)Описание:
Устанавливает текущую заявку по id. Переменные с новым значением начинают работать со следующей команды после команды с вызовом bot.setCurrentTicketById.
Атрибуты:
Возвращает:
bool - подтверждение установки текущей заявки.
Пример:
bot.setCurrentTicketById(1432);Очистить лог назначения тикета персонам
bot.clearTicketAssignedPersonsLog()Описание:
Очищает лог назначения тикета персонам, чтобы можно было запустить один тикет повторно по той же очереди исполнителей.
Возвращает:
bool - подтверждение очистки лога.
Обновление заявки, через объект заявки
ticket.update($data)Описание:
Обновляет заявку соответствующую указанным данным.
Атрибуты:
author_person_id
client_person_id
assigned_person_id
description
Возвращает:
bool - подтверждение обновления заявки.
Пример:
let ticketData = {
'title': 'Создано в боте',
'ticket_type_id': 1013,
'status_id': 1096
};
ticketData.custom = {
'client_contacts': 'my contacts',
'details': 'some details'
};
let isUpdated = ticket.update(ticketData);
lead.setAttr('is_ticket_updated', isUpdated);Пример обновления одного поля заявки:
let ticket = bot.findTickets([['id', ticketId]])[0];
let ticketData = {
'client_comment': lead.getAttr('Отзыв')
};
ticket.update(ticketData);Получить значение данных заявки
ticket.getData(string $key)Описание:
Получить значение данных заявки по ключу или названию поля БД.
Атрибуты:
В качестве ключа можно указать:
Возвращает:
mixed - если значение найдено
или
null - если значение не найдено.
Пример:
let Data = ticket.getData('title');Считывание произвольных полей заявки
ticket.getCustomData(string $key)Описание:
Находит значение указанного типа произвольного поля заявки.
Атрибуты:
В качестве ключа можно указать:
Можно получить код значения, используя суффикс ".raw" к имени произвольного поля. Т.е. если в заявке установлено из опций поля с именем age второе значение:({"1": "18-25 лет","2": "25-30 лет","3": "30-35 лет","4": "35-40 лет","5": "Больше 40 лет","6": "Не важно" })то ticket.getCustomData('age') вернёт "25-30 лет", ticket.getCustomData('age.raw') вернёт "2".
Возвращает:
mixed - если значение найдено
или
null - если значение не найдено.
Пример:
let tickets = bot.findTickets();
for (let i = 0; i < tickets.length; i++) {
lead.setAttr('tickets_' + i + '_tickets_title', tickets[i].getData('title'));
lead.setAttr('tickets_' + i + '_client_contacts', tickets[i].getCustomData('client_contacts'));
lead.setAttr('tickets_' + i + '_details', tickets[i].getCustomData('details'));
lead.setAttr('tickets_' + i + '_статус_имя', tickets[i].getCustomData('статус.имя'));
}
lead.setAttr('found_tickets_count', tickets.length);Проверить наличие данных по заявке
ticket.issetData(string $key)или
ticket.isDataExist(string $key)Описание:
Проверяет существуют ли данные заявки по заданному ключу.
Атрибуты:
В качестве ключа можно указать:
Возвращает:
bool - подтверждение существования данных.
Пример:
let Data = ticket.issetData('title');или
let Data = ticket.isDataExist('title');Перезагрузка кастомных данных
ticket.reloadCustomData(bool $isReloadModel = false)Описание:
Перезагружает кастомные поля заявки.
Атрибуты:
Возвращает:
bool - подтверждение успешной перезагрузки.
Пример:
ticket.reloadCustomData(true);Переопределить список кастомных полей
ticket.setAllCustomData(array $customData)Описание:
Не переносится в БД. Будет переопределен массив кастомных полей в памяти, используется для внутренних целей задания значений полей.
Атрибуты:
Возвращает:
self - тип указанный при вызове метода.
Пример:
ticket.setAllCustomData([{
"место": "Место 01",
"время": "12:30"
}]);Получить список кастомных полей
ticket.getAllCustomData()Описание:
Возвращает значения всех кастомных полей.
Возвращает:
array - массив значений кастмных полей.
Установить значение кастомного поля
ticket.setCustomData(string $key, $value)Описание:
Устанавливает значение кастомного поля. Не сохраняется в БД.
Атрибуты:
В качестве ключа можно указать:
Возвращает:
self - тип указанный при вызове метода.
Пример:
ticket.setCustomData("место", "Место1");Имеет ли значение кастомное поле
ticket.issetCustomData(string $key)Описание:
Проверяет существует ли ключ и не имеет ли он значение null.
Атрибуты:
В качестве ключа можно указать:
Возвращает:
bool - подтверждение существования ключа.
Пример:
ticket.issetCustomData("время");Существует ли кастомное поле
ticket.isCustomDataExist(string $key)Описание:
Проверяет существует ли такой ключ в списке кастомных полей.
Атрибуты:
В качестве ключа можно указать:
Возвращает:
bool - подтверждение существования ключа.
Пример:
ticket.isCustomDataExist("место");Получить название типа заявки
ticket.getTicketTypeName()Описание:
Находит название типа заявки.
Возвращает:
string - название типа заявки.
Получить ID статуса заявки
ticket.getStatusId()или
ticket.getAttr("status_id")Описание:
Находит id статуса заявки.
Атрибуты:
Возвращает:
int - id статуса заявки.
Пример:
let StatusId = ticket.getStatusId();или
let StatusId = ticket.getAttr("status_id");Получить название статуса заявки
ticket.getStatusName()Описание:
Находит название статуса заявки.
Возвращает:
string - название статуса заявки.
Получить тип статуса заявки
ticket.getStatusType()Описание:
Находит тип статуса заявки.
Возвращает:
string - тип статуса заявки.
Пример:
let StatusType = ticket.getStatusType();Приведение названия статуса к стандартному виду
ticket._sanitizeString($string)Описание:
Вспомогательная функция используемая для приведения названия статуса к нижнему регистру и удаления лишних символов из названия.
Атрибуты:
Возвращает:
string - обновленное наименование статуса заявки.
В v8 скриптах не используется.
Проверить статус заявки
ticket.isInStatus($statusName)Описание:
Проверить, что заявка находится в статусе с именем $statusName.
Атрибуты:
Возвращает:
bool - подтверждение, что заявка находится в указанном статусе.
Пример:
let Status = ticket.isInStatus('Новая');Установить статус заявки по id
ticket.setStatusId(?int $statusId, ?int $personQueueIdForLog = null, ?string $personQueueTableForLog = null)Описание:
Устанавливает указанный статус для заявки по id.
Атрибуты:
Возвращает:
bool - подтверждение установки нового статуса.
Пример:
ticket.setStatusId(1163);Установить статус заявки по имени
ticket.setStatusByName(string $statusName, ?int $personQueueIdForLog = null, ?string $personQueueTableForLog = null)Описание:
Устанавливает указанный статус для заявки по имени.
Атрибуты:
Возвращает:
bool - подтверждение установки нового статуса.
Пример:
ticket.setStatusByName("Новая");Загрузить заявку повторно
ticket.reloadTicket()Описание:
Загрузить заявку повторно из БД. Автоматически выполняется, например, в случае изменения статуса заявки, назначении другого исполнителя и т.п.
Возвращает:
bool - подтверждение повторной загрузки заявки.
Пример:
ticket.reloadTicket();Получить ID автора заявки
ticket.getAuthorPersonId()Описание:
Возвращает id автора заявки.
Возвращает:
int - id автора заявки в формате числа.
Пример:
let AuthorId = ticket.getAuthorPersonId();Получить ID исполнителя заявки
ticket.getAssignedPersonId()Описание:
Возвращает id исполнителя заявки.
Возвращает:
int - id исполнителя заявки в формате числа.
Пример:
let AssignedId = ticket.getAssignedPersonId();Получить ID клиента заявки
ticket.getClientPersonId()Описание:
Возвращает id клиента заявки.
Возвращает:
int - id клиента заявки в формате числа.
Пример:
let ClientId = ticket.getClientPersonId();Получить ФИО автора заявки
ticket.getAuthorPersonFullName()Описание:
Возвращает ФИО автора заявки.
Возвращает:
string - ФИО автора заявки.
Пример:
let AuthorName = ticket.getAuthorPersonFullName();Получить ФИО исполнителя заявки
ticket.getAssignedPersonFullName()Описание:
Возвращает ФИО исполнителя заявки.
Возвращает:
string - ФИО исполнителя заявки.
Пример:
let AssignedName = ticket.getAssignedPersonFullName();Получить ФИО клиента заявки
ticket.getClientPersonFullName()Описание:
Возвращает ФИО клиента заявки.
Возвращает:
string - ФИО клиента заявки.
Пример:
let ClientName = ticket.getClientPersonFullName();Получить ID роли автора заявки
ticket.getAuthorPersonRoleId()Описание:
Возвращает ID роли автора заявки.
Возвращает:
int - ID роли автора заявки.
Пример:
let AuthorId = ticket.getAuthorPersonRoleId();Получить ID роли исполнителя заявки
ticket.getAssignedPersonRoleId()Описание:
Возвращает ID роли исполнителя заявки.
Возвращает:
int - ID роли исполнителя заявки.
Пример:
let AssignedId = ticket.getAssignedPersonRoleId();Получить ID роли клиента заявки
ticket.getClientPersonRoleId()Описание:
Возвращает ID роли клиента заявки.
Возвращает:
int - ID роли клиента заявки.
Пример:
let ClientId = ticket.getClientPersonRoleId();Получить имя роли автора заявки
ticket.getAuthorPersonRoleName()Описание:
Возвращает имя роли автора заявки.
Возвращает:
string - имя роли автора заявки.
Пример:
let AuthorName = ticket.getAuthorPersonRoleName();Получить имя роли исполнителя заявки
ticket.getAssignedPersonRoleName()Описание:
Возвращает имя роли исполнителя заявки.
Возвращает:
string - имя роли исполнителя заявки.
Пример:
let AssignedName = ticket.getAssignedPersonRoleName();Получить имя роли клиента заявки
ticket.getClientPersonRoleName()Описание:
Возвращает имя роли клиента заявки.
Возвращает:
string - имя роли клиента заявки.
Пример:
let ClientName = ticket.getClientPersonRoleName();Получить заголовок роли автора заявки
ticket.getAuthorPersonRoleTitle()Описание:
Возвращает заголовок роли автора заявки.
Возвращает:
string - заголовок роли автора заявки.
Пример:
let AuthorTitle = ticket.getAuthorPersonRoleTitle();Получить заголовок роли исполнителя заявки
ticket.getAssignedPersonRoleTitle()Описание:
Возвращает заголовок роли исполнителя заявки.
Возвращает:
string - заголовок роли исполнителя заявки.
Пример:
let AssignedTitle = ticket.getAssignedPersonRoleTitle();Получить заголовок роли клиента заявки
ticket.getClientPersonRoleTitle()Описание:
Возвращает заголовок роли клиента заявки.
Возвращает:
string - заголовок роли клиента заявки.
Пример:
let ClientTitle = ticket.getClientPersonRoleTitle();Получить форматированное название роли автора заявки
ticket.getAuthorPersonRoleFormattedTitle()Описание:
Возвращает форматированное название роли автора заявки.
Возвращает:
string - форматированное название роли автора заявки.
Пример:
let AuthorTitle = ticket.getAuthorPersonRoleFormattedTitle();Получить форматированное название роли исполнителя заявки
ticket.getAssignedPersonRoleFormattedTitle()Описание:
Возвращает форматированное название роли исполнителя заявки.
Возвращает:
string - форматированное название роли исполнителя заявки.
Пример:
let AssignedTitle = ticket.getAssignedPersonRoleFormattedTitle();Получить форматированное название роли клиента заявки
ticket.getClientPersonRoleFormattedTitle()Описание:
Возвращает форматированное название роли клиента заявки.
Возвращает:
string - форматированное название роли клиента заявки.
Пример:
let ClientTitle = ticket.getClientPersonRoleFormattedTitle();Получение id первой дополнительной персоны
ticket.getPerson1Id()Описание:
Возвращает id первой дополнительной персоны заявки.
Возвращает:
?int - id персоны в формате числа.
Получение id второй дополнительной персоны
ticket.getPerson2Id()Описание:
Возвращает id второй дополнительной персоны заявки.
Возвращает:
?int - id персоны в формате числа.
Получение id третьей дополнительной персоны
ticket.getPerson3Id()Описание:
Возвращает id третьей дополнительной персоны заявки.
Возвращает:
?int - id персоны в формате числа.
Установка id первой дополнительной персоны
ticket.setPerson1Id(?int $personId)Описание:
Устанавливает id первой дополнительной персоны заявки.
Атрибуты:
Возвращает:
bool - подтверждение установки значения.
Установка id второй дополнительной персоны
ticket.setPerson2Id(?int $personId)Описание:
Устанавливает id второй дополнительной персоны заявки.
Атрибуты:
Возвращает:
bool - подтверждение установки значения.
Установка id третьей дополнительной персоны
ticket.setPerson3Id(?int $personId)Описание:
Устанавливает id третьей дополнительной персоны заявки.
Атрибуты:
Возвращает:
bool - подтверждение установки значения.







