Справочник всех функций
Получение данных бота
| Метод | Описание |
| bot.getData(string $key): mixed|null |
Возвращает данные текущего бота по ключу Возможные ключи: |
Работа с лидами
Методы bot
| Метод | Описание |
| bot.findLeads($columns = [], $where = [], $orderBy = [], int|null $limit = null, int|null $offset = null): array | Находит лиды по указанным атрибутам |
Методы lead
| Метод | Описание |
| lead.getData(string $key): mixed|null |
Возвращает значение данных лида по ключу Возможные ключи:
|
|
Проверяет наличие данных лида по ключу Возможные ключи:
|
|
| lead.getSerialNumber(): int|null | Возвращает порядковый номер лида в текущем боте |
| lead.getChannelCode(): string | Возвращает код канала лида |
Работа со скриптами
| Метод | Описание |
| bot.scheduleScript(int|null $scriptId, int|null $leadId, int|null $ticketId = null, $jobParams = []): bool | Планирует вызов скрипта |
Запускает скрипт для персоны по ID скрипта bot.runScriptByNameForPerson(string|null $scriptName, int|null $personId, int|null $ticketId = null, $addToQueue = true, $jobParams = []): bool Запускает скрипт для персоны по наименованию скрипта bot.runScriptByCodeForLead(string|null $scriptCode, int|null $leadId, int |null$ticketId = null, $addToQueue = true, $jobParams = []): bool Запускает скрипт для лида по коду bot.runScriptByCodeForPerson(string|null $scriptCode, int|null $personId, int|null $ticketId = null, $addToQueue = true, $jobParams = []): bool Запускает скрипт для персоны по коду bot.clearJobsByScriptId(int|null $scriptId, int|null $leadId = null): bool
Работа с атрибутами
Методы bot
| Метод | Описание |
| bot.setAttr(string $key, string $value): self | Устанавливает значение переменной бота |
bot.getAttr(string $key): mixed|null Возвращает значение переменной бота bot.getAllAttr(): array Возвращает массив всех переменных бота bot.getIntAttr(string $key, ?int|null $default = 0): int|null
bot.getFloatAttr(string $key, ?float|null $default = 0.0): float|null
bot.getBoolAttr(string $key, ?bool|null $default = false): bool|null
bot.issetAttr(string $key): bool Проверяет наличие переменной бота
bot.isAttrExist(string $key): bool bot.setAllJsonAttrs(array $data): self
bot.getAllJsonAttrs(): array
bot.setJsonAttr(string $key, $value): self Устанавливает значение JSON переменной бота bot.getJsonAttr(string $key): mixed|null Возвращает значение JSON переменной бота
bot.issetJsonAttr(string $key): bool
Проверяет наличие JSON переменной ботаbot.isJsonAttrKeyExist(string $key): bool
bot.setAllLiveTexAttrs(string $value): self
bot.setLiveTexAttr(string $key,string $value): self
bot.getAllLiveTexAttrs(): array
bot.getLiveTexAttr(string $key): mixed|null
Методы lead
| Метод | Описание |
| lead.setAttr(string $key, string $value): self | Устанавливает значение переменной лида |
| lead.setAllAttr(array $data): self |
lead.getAttr(string $key): string|null Возвращает значение переменной лида lead.getAllAttr(): array Возвращает все переменные лида lead.getIntAttr(string $key, ?int|null $default = 0): int|null
lead.getFloatAttr(string $key, ?float|null $default = 0.0): float|null
lead.getBoolAttr(string $key, ?bool|null $default = false): bool|null
lead.issetAttr(string $key): bool Проверяет наличие переменной лида
lead.isAttrExist(string $key): bool lead.deleteAttrs(string|object|array|null $attrs, int|null $ticketId = null, $scriptRequestParams = [], bool $isForceDelete = false, bool $isSuppressTriggers = false): self Удаляет переменную/переменные лида
lead.deleteAttr(string|object|array|null $attrs, int|null $ticketId = null, $scriptRequestParams = [], bool $isForceDelete = false, bool $isSuppressTriggers = false): self lead.forceDeleteAttrs(string|object|array|null $attrs, int|null $ticketId = null, $scriptRequestParams = [], bool $isSuppressTriggers = false): self Принудительно удаляет переменную/переменные лида из БД
lead.forceDeleteAttr(string|object|array|null $attrs, int|null $ticketId = null, $scriptRequestParams = [], bool $isSuppressTriggers = false): self lead.setAllJsonAttrs(array $data): self
lead.getAllJsonAttrs(): array
lead.setJsonAttr(string $key, $value): self Устанавливает значение JSON переменной лида lead.getJsonAttr(string $key): mixed|null Возвращает значение JSON переменной лида lead.issetJsonAttr(string $key): bool Проверяет наличие JSON переменной лида
lead.isJsonAttrKeyExist(string $key): bool lead.deleteJsonAttrs(string|object|array|null $attrs, int|null $ticketId = null, $scriptRequestParams = [], bool $isForceDelete = false, bool $isSuppressTriggers = false): self Удаляет json-переменную/json-переменные лида
lead.deleteJsonAttr(string|object|array|null $attrs, int|null $ticketId = null, $scriptRequestParams = [], bool $isForceDelete = false, bool $isSuppressTriggers = false): self lead.forceDeleteJsonAttrs(string|object|array|null $attrs, int|null $ticketId = null, $scriptRequestParams = [], bool $isSuppressTriggers = false): self Принудительно удаляет json-переменную/json-переменные лида из БД
lead.forceDeleteJsonAttr(string|object|array|null $attrs, int|null $ticketId = null, $scriptRequestParams = [], bool $isSuppressTriggers = false): self
lead.setAllLiveTexAttrs(string $value): self
lead.setLiveTexAttr(string $key,string $value): self
lead.getAllLiveTexAttrs(): array
lead.getLiveTexAttr(string $key): mixed|null
Методы memory
| Метод | Описание |
| memory.setAttr(string $key, string $value): self | Устанавливает значение временной переменной |
| memory.getAttr(string $key): string|null | Возвращает значение временной переменной |
| memory.getIntAttr(string $key, ?int|null $default = 0): int|null |
memory.getFloatAttr(string $key, ?float|null $default = 0.0): float|null
memory.getBoolAttr(string $key, ?bool|null $default = false): bool|null
memory.issetAttr(string $key): bool Проверяет наличие временной переменной
memory.isAttrExist(string $key): bool memory.setAllJsonAttrs(array $data): self
memory.getAllJsonAttrs(): array
memory.setJsonAttr(string $key, $value): self Устанавливает значение временной JSON переменной memory.getJsonAttr(string $key): mixed|null Возвращает значение временной JSON переменной memory.issetJsonAttr(string $key): bool Проверяет наличие временной JSON переменной
memory.isJsonAttrKeyExist(string $key): bool
memory.setAllLiveTexAttrs(string $value): self
memory.setLiveTexAttr(string $key,string $value): self
memory.getAllLiveTexAttrs(): array
memory.getLiveTexAttr(string $key): mixed|null
Работа с триггерами
| Метод | Описание |
| bot.scheduleTrigger(int|null $triggerId, int|null $leadId, int|null $ticketId = null, $jobParams = []): bool | Планирует запуск триггера |
Планирует запуск триггера по коду
Запускает триггер для лида по ID триггера bot.runTriggerByCodeForLead(string|null $triggerCode, int|null $leadId, int|null $ticketId = null, $addToQueue = true, $jobParams = []): bool Планирует запуск триггера по коду bot.runTriggerByCodeForPerson(string|null $triggerCode, int|null $personId, int|null $ticketId = null, $addToQueue = true, $jobParams = []): bool Планирует запуск триггера по коду для последнего лида персоны bot.clearTriggerJobsForLead(int|null $leadId, int|null $ticketId = null): bool Удаляет триггеры для лидаbot.clearTriggerJobsForAllPersonLeads(int|null $personId, int|null $ticketId = null): bool
Удаляет триггеры для всех лидов персоныbot.getTriggerIdByName(string|null $triggerName): int|null
Возвращает ID триггера по наименованиюbot.getTriggerIdByCode(string|null $triggerCode): int|null
Возвращает ID Триггера по Кодуbot.clearTriggerJobsByScriptId(int|null $scriptId, int|null $leadId = null): bool
Очищает джобы триггера по id скрипта
bot.clearTriggerJobsByScriptName(string|null $scriptName, int|null $leadId = null): bool
Очищает джобы триггера по наименованию скрипта
bot.clearTriggerJobsById(int|null $triggerId, int|null $leadId = null): bool
Очищает джобы по id триггера
bot.clearTriggerJobsByCode(string|null $triggerCode, int|null $leadId = null): bool
Очищает джобы по коду триггера
bot.clearTriggerJobsByCodeForAllPersonLeads(string|null $triggerCode, int|null $personId): bool
Удаляет триггеры для всех лидов персоны по кодуbot.clearTriggerJobsByName(string|null $triggerName, int|null $leadId = null): bool
Очищает джобы по наименованию триггера
Очищает джобы по коду скрипта
bot.clearTriggerJobsByIdForTicket(int|null $triggerId, int|null $ticketId): bool
Очищает джобы по id триггера и ID заявки
bot.clearTriggerJobsByNameForTicket(string|null $triggerName, int|null $ticketId): bool
Очищает джобы по наименованию триггера и ID заявки
bot.clearTriggerJobsByCodeForTicket(string|null $triggerCode, int|null $ticketId): bool
Очищает джобы по коду триггера и ID заявки
Работа со статусами
| Метод | Описание |
| lead.isInStatus(string $statusName): bool | Проверяет существует ли статуса у лида |
| lead.getStatusId(): int|null | Возвращает id статуса лида |
lead.getAllStatusesIndexedByName(): array
lead.setStatusId(int $statusId, string $name): self
lead.setStatusName(string $name): self
lead.getStatusName(): string
lead.setStatus(int $statusId, string $name): self
lead.setStatusById(int $statusId): self
lead.issetStatusById(string $id): bool
lead.issetStatusByName(string $name): bool
lead.getStatusIdByName(string $statusName): int
lead.setStatusByName(string $statusName): self
Работа с рассылками
| Метод | Описание |
| bot.scheduleBroadcast(int|null $broadcastId, int|null $ticketId = null, $jobParams = []): bool | Планирует запуск рассылки |
| bot.scheduleBroadcastByCode(string|null $broadcastCode, int|null $ticketId = null, $jobParams = []): bool | Планирует запуск рассылки по коду |
| bot.getBroadcastIdByCode(string|null $broadcastCode): int|null | Возвращает ID рассылки по коду |
Работа с тэгами
| Метод | Описание |
| lead.isTagExist('some_tag'): bool | Проверяет наличие тэга лида |
| lead.issetTag('some_tag'): bool | |
| lead.setTag(string $key, $value): self |
lead.getTag(string $key): string|null Возвращает значение тэга лида lead.setAllTags(array $data): self
lead.getAllTags(): array Возвращает массив всех тэгов лида lead.addTags(string|object|array|null $tags, int $ticketId = null, $scriptRequestParams = [], bool $isSuppressTriggers = false): self Добавляет тэги лиду
lead.addTag(string|object|array|null $tags, int|null $ticketId = null, $scriptRequestParams = [], bool $isSuppressTriggers = false): self lead.deleteTags(string|object|array|null $tags, int|null $ticketId = null, $scriptRequestParams = [], bool $isForceDelete = false, bool $isSuppressTriggers = false): self Удаляет тэги лида
lead.deleteTag(string|object|array|null $tags, int|null $ticketId = null, $scriptRequestParams = [], bool $isForceDelete = false, bool $isSuppressTriggers = false): self lead.forceDeleteTags(string|object|array|null $tags, int|null $ticketId = null, $scriptRequestParams = [], bool $isSuppressTriggers = false): self Принудительно удаляет тэги лида из БД
lead.forceDeleteTag(string|object|array|null $tags, int|null $ticketId = null, $scriptRequestParams = [], bool $isSuppressTriggers = false): self
Работа с контекстами
| Метод | Описание |
lead.setContext(string $key, $value): self
lead.isContextExist('some_tag'): bool Проверяет наличие контекста лида
lead.issetContext('some_tag'): bool lead.getContext(string $key): string|null Возвращает значение контекста лида lead.getAllContexts(): array Возвращает массив всех контекстов лида
Работа с переключением на оператора
Методы bot
| Метод | Описание |
| bot.getForwardEventType(): bool |
Проверяет кто переключил на оператора |
| bot.isForwardedToOperator(): bool |
Проверяет переключения на оператора |
Методы lead
| Метод | Описание |
| lead.setForwarded(bool|int $state): self |
Переключает бот на оператора |
Работа с заявками
Методы bot
| Метод | Описание |
| bot.createTicket($data): int|null | Создает заявку |
| bot.updateTicketById(int $ticketId, $data): bool | Обновляет заявку |
| bot.getMaxRejectsTicketCount(): int|null | Возвращает максимальное количество отказов |
| bot.findTickets($where = [], bool $findInAllBusinessBots = false, $orderBy = [], int|null $limit = null, int|null $offset = null): array | Находит заявку по заданным атрибутам |
| bot.findTicketIdByCustomField(string $fieldName, $value): int|null |
Возвращает id заявки по значению поля |
| bot.getTicketTypeIdByName(string $typeName): int|null | Возвращает id заявки по наименованию вида заявки |
Методы ticket
| Метод | Описание |
| Обновляет заявку, через объект заявки |
ticket.setAllData(array $data): self
ticket.getAllData(): array
ticket.setData(string $key, $value): self
ticket.getData(string $key): mixed|null
Возвращает значение данных заявки по ключу
В качестве ключа можно указать:
- id - id заявки;
- business_id - id бизнеса;
- bot_id - id бота;
- author_person_id - id автора заявки;
- client_person_id - id клиента заявки;
- assigned_person_id - id исполнителя заявки;
- ticket_type_id - id вида заявки, виды заявки создаются вручную;
- payment_type_id - id способа оплаты. Доступные значения:
- 0 - PAYMENT_TYPE_NONE;
- 1 - PAYMENT_TYPE_ROBOKASSA;
- 2 - PAYMENT_TYPE_YANDEXKASSA;
- 3 - PAYMENT_TYPE_CASH;
- status_id - id статуса заявки;
- title - заголовок заявки;
- description - описание заявки;
- created_at - время создания заявки;
- updated_at - время обновления заявки;
- deleted_at - время удаления заявки;
- все системные поля заявки (по английски).
ticket.getCustomData(string $key): mixed|null
Считывает произвольные поля заявки по ключу
В качестве ключа можно указать:
- названия всех произвольных полей заявки;
- id - id заявки;
- business_id - id бизнеса;
- bot_id - id бота;
- author_person_id - id автора заявки;
- client_person_id - id клиента заявки;
- assigned_person_id - id исполнителя заявки;
- ticket_type_id - id вида заявки, виды заявки создаются вручную;
- payment_type_id - id способа оплаты. Доступные значения:
- 0 - PAYMENT_TYPE_NONE;
- 1 - PAYMENT_TYPE_ROBOKASSA;
- 2 - PAYMENT_TYPE_YANDEXKASSA;
- 3 - PAYMENT_TYPE_CASH;
- status_id - id статуса заявки;
- title - заголовок заявки;
- description - описание заявки;
- created_at - время создания заявки;
- updated_at - время обновления заявки;
- deleted_at - время удаления заявки;
- все системные поля заявки (по английски).
ticket.issetData(string $key): bool
Проверяет наличие данных по заявке по ключу
В качестве ключа можно указать:
- id - id заявки;
- business_id - id бизнеса;
- bot_id - id бота;
- author_person_id - id автора заявки;
- client_person_id - id клиента заявки;
- assigned_person_id - id исполнителя заявки;
- ticket_type_id - id вида заявки, виды заявки создаются вручную;
- payment_type_id - id способа оплаты. Доступные значения:
- 0 - PAYMENT_TYPE_NONE;
- 1 - PAYMENT_TYPE_ROBOKASSA;
- 2 - PAYMENT_TYPE_YANDEXKASSA;
- 3 - PAYMENT_TYPE_CASH;
- status_id - id статуса заявки;
- title - заголовок заявки;
- description - описание заявки;
- created_at - время создания заявки;
- updated_at - время обновления заявки;
- deleted_at - время удаления заявки;
- все системные поля заявки (по английски).
ticket.isDataExist(string $key): bool
ticket.reloadCustomData(bool $isReloadModel = false): bool
Перезагружает кастомные данныеticket.loadCustomDataIfNotLoaded(bool $isReloadModel = false): bool
ticket.setAllCustomData(array $customData): self
ticket.getAllCustomData(): array
Возвращает список кастомных полейticket.setCustomData(string $key, $value): self
Устанавливает значение кастомного поля
В качестве ключа можно указать:
- названия всех произвольных полей заявки;
- id - id заявки;
- business_id - id бизнеса;
- bot_id - id бота;
- author_person_id - id автора заявки;
- client_person_id - id клиента заявки;
- assigned_person_id - id исполнителя заявки;
- ticket_type_id - id вида заявки, виды заявки создаются вручную;
- payment_type_id - id способа оплаты. Доступные значения:
- 0 - PAYMENT_TYPE_NONE;
- 1 - PAYMENT_TYPE_ROBOKASSA;
- 2 - PAYMENT_TYPE_YANDEXKASSA;
- 3 - PAYMENT_TYPE_CASH;
- status_id - id статуса заявки;
- title - заголовок заявки;
- description - описание заявки;
- created_at - время создания заявки;
- updated_at - время обновления заявки;
- deleted_at - время удаления заявки;
- все системные поля заявки (по английски).
ticket.issetCustomData(string $key): bool
Проверяет имеет ли значение кастомное поле
В качестве ключа можно указать:
- названия всех произвольных полей заявки;
- id - id заявки;
- business_id - id бизнеса;
- bot_id - id бота;
- author_person_id - id автора заявки;
- client_person_id - id клиента заявки;
- assigned_person_id - id исполнителя заявки;
- ticket_type_id - id вида заявки, виды заявки создаются вручную;
- payment_type_id - id способа оплаты. Доступные значения:
- 0 - PAYMENT_TYPE_NONE;
- 1 - PAYMENT_TYPE_ROBOKASSA;
- 2 - PAYMENT_TYPE_YANDEXKASSA;
- 3 - PAYMENT_TYPE_CASH;
- status_id - id статуса заявки;
- title - заголовок заявки;
- description - описание заявки;
- created_at - время создания заявки;
- updated_at - время обновления заявки;
- deleted_at - время удаления заявки;
- все системные поля заявки (по английски).
ticket.isCustomDataExist(string $key): bool
Проверяет существует ли кастомное поле
В качестве ключа можно указать:
- названия всех произвольных полей заявки;
- id - id заявки;
- business_id - id бизнеса;
- bot_id - id бота;
- author_person_id - id автора заявки;
- client_person_id - id клиента заявки;
- assigned_person_id - id исполнителя заявки;
- ticket_type_id - id вида заявки, виды заявки создаются вручную;
- payment_type_id - id способа оплаты. Доступные значения:
- 0 - PAYMENT_TYPE_NONE;
- 1 - PAYMENT_TYPE_ROBOKASSA;
- 2 - PAYMENT_TYPE_YANDEXKASSA;
- 3 - PAYMENT_TYPE_CASH;
- status_id - id статуса заявки;
- title - заголовок заявки;
- description - описание заявки;
- created_at - время создания заявки;
- updated_at - время обновления заявки;
- deleted_at - время удаления заявки;
- все системные поля заявки (по английски).
ticket.getTicketTypeName(): string|null
Возвращает название типа заявкиticket.getStatusId(): int|null
Возвращает ID статуса заявки
ticket.getAttr('status_id'): int|null
ticket.getStatusName(): string|null
Возвращает название статуса заявки
ticket.getStatusType(): string|null
Возвращает тип статуса заявки
ticket._sanitizeString($string): string
Приводит название статуса к стандартному виду
ticket.isInStatus($statusName): bool
Проверяет статус заявки
Устанавливает статус заявки по id
Устанавливает статус заявки по имени
Загружает заявку повторно
ticket.getAuthorPersonId(): int|null
Возвращает ID автора заявки
ticket.getAssignedPersonId(): int|null
Возвращает ID исполнителя заявки
ticket.getClientPersonId(): int|null
Возвращает ID клиента заявки
ticket.getAuthorPersonFullName(): string
Возвращает ФИО автора заявки
ticket.getAssignedPersonFullName(): string
Возвращает ФИО исполнителя заявки
ticket.getClientPersonFullName(): string
Возвращает ФИО клиента заявки
ticket.getAuthorPersonRoleId(): int|null
Возвращает ID роли автора заявки
ticket.getAssignedPersonRoleId(): int|null
Возвращает ID роли исполнителя заявки
ticket.getClientPersonRoleId(): int|null
Возвращает ID роли клиента заявки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|null
Возвращает id первой дополнительной персоныticket.getPerson2Id(): int|null
Возвращает id второй дополнительной персоныticket.getPerson3Id(): int|null
Возвращает id третьей дополнительной персоныticket.setPerson1Id(int|null $personId): bool
Устанавливает id первой дополнительной персоныticket.setPerson2Id(int|null $personId): bool
Устанавливает id второй дополнительной персоныticket.setPerson3Id(int|null $personId): bool
Устанавливает id третьей дополнительной персоныticket.getTotalFormatted(): string
ticket.getSubtotalFormatted(): string
ticket.getTotalFeeFormatted(): string
ticket.getDeliveryFeeFormatted(): string
Методы ScriptTicketLine
ScriptTicketLine.getTicketId(): int|null
ScriptTicketLine.getProductId(): int|null
ScriptTicketLine.getProduct(): ScriptProduct|null
ScriptTicketLine.getQuantity(): int|null
ScriptTicketLine.getPrice(): float
ScriptTicketLine.getPriceFormatted(): string
ScriptTicketLine.getPriceDateFormatted(string $format = 'Y-m-d H:i:s', string|null $timeZone = null): string|null
ScriptTicketLine.priceDateFormatted(string $format = 'Y-m-d H:i:s', string|null $timeZone = null): string|null
ScriptTicketLine.getFee(): float
ScriptTicketLine.getFeeFormatted(): string
ScriptTicketLine.getSubtotal(): float
ScriptTicketLine.getSubtotalFormatted(): string
ScriptTicketLine.getCreatedAtFormatted(string $format = 'Y-m-d H:i:s', string|null $timeZone = null): string|null
ScriptTicketLine.getUpdatedAtFormatted(string $format = 'Y-m-d H:i:s', string|null $timeZone = null): string|null
ScriptTicketLine.updatedAtFormatted(string $format = 'Y-m-d H:i:s', string|null $timeZone = null): string|null
ScriptTicketLine.getDeletedAtFormatted(string $format = 'Y-m-d H:i:s', string|null $timeZone = null): string|null
ScriptTicketLine.deletedAtFormatted(string $format = 'Y-m-d H:i:s', string|null $timeZone = null): string|null
Методы ScriptProduct
ScriptProduct.getTitle(): string|null
ScriptProduct.getCode(): string|null
ScriptProduct.getPrice(): float|null
ScriptProduct.getMainCategoryId(): int|null
ScriptProduct.getIsEnabled(): bool|null
ScriptProduct.getIsAvailableInStock(): bool|null
ScriptProduct.getUrl(): string|null
ScriptProduct.getThumbUrl(): string|null
ScriptProduct.getPriceFormatted(): string|null
ScriptProduct.getCreatedAtFormatted(string $format = 'Y-m-d H:i:s', string|null $timeZone = null): string|null
ScriptProduct.createdAtFormatted(string $format = 'Y-m-d H:i:s', string|null $timeZone = null): string|null
ScriptProduct.getUpdatedAtFormatted(string $format = 'Y-m-d H:i:s', string|null $timeZone = null): string|null
ScriptProduct.updatedAtFormatted(string $format = 'Y-m-d H:i:s', string|null $timeZone = null): string|null
ScriptProduct.getDeletedAtFormatted(string $format = 'Y-m-d H:i:s', string|null $timeZone = null): string|null
ScriptProduct.deletedAtFormatted(string $format = 'Y-m-d H:i:s', string|null $timeZone = null): string|null
Работа со статусами
Методы ticketStatus
ticketStatus.getName(): string
ticketStatus.getType(): string|null
ticketStatus.getOrderPos(): int
ticketStatus.isSameStatusName($statusName): bool
ticketStatus.getCreatedAtFormatted(string $format = 'Y-m-d H:i:s', string|null $timeZone = null): string|null
ticketStatus.createdAtFormatted(string $format = 'Y-m-d H:i:s', string|null $timeZone = null): string|null
ticketStatus.getUpdatedAtFormatted(string $format = 'Y-m-d H:i:s', string|null $timeZone = null): string|null
ticketStatus.updatedAtFormatted(string $format = 'Y-m-d H:i:s', string|null $timeZone = null): string|null
ticketStatus.getDeletedAtFormatted(string $format = 'Y-m-d H:i:s', string|null $timeZone = null): string|null
ticketStatus.deletedAtFormatted(string $format = 'Y-m-d H:i:s', string|null $timeZone = null): string|null
Методы ticketStatuses
| Метод | Описание |
| ticketStatuses.reload(): bool | Перезагружает все статусы из БД |
| ticketStatuses.getCollection(): Collection|null | Возвращает Laravel Collection |
| ticketStatuses.find(array|object|null $where, bool $isReturnCollection = false): ScriptTicketStatus|null | Возвращает статусы заявок |
| ticketStatuses.findById(string|int|null $id): ScriptTicketStatus|null | Возвращает статус по ID |
| ticketStatuses.findByName(string $name): ScriptTicketStatus|null | Возвращает статус по имени |
| ticketStatuses.findAllByNames(string|array|object|null $names, string $operator = '=', bool $isReturnCollection = false): Collection|null | Возвращает статусы по имени |
| ticketStatuses.findAllByTypes(string|array|object|null $types, string $operator = '=', bool $isReturnCollection = false): Collection|null | Возвращает статусы по типу статуса |
Работа с персонами
Методы bot
| Метод | Описание |
| bot.createPerson($data): int|null | Создает персону |
| bot.findPersons($where = [], $orderBy = [], int|null $limit = null, int|null $offset = null, bool $isLogErrorIfManyPersonsFound = false): array | Возвращает данные персон соответствующих атрибутам |
| bot.updatePersonById(int $personId, $data): bool |
Обновляет персону по id |
| bot.deletePersonById(int $personId): bool |
Удаляет персону по id |
Возвращает id персоны по умолчанию
Методы lead
| Метод | Описание |
| lead.getPersonId(): int|null | Возвращает id персоны |
| lead.setPersonId(int|null $personId): bool | Привязывает персону к лиду |
| lead.createPersonForCurrentLead($data): int|null |
Создает персону для лида |
Методы person
| Метод | Описание |
| person.update($data): bool |
Обновляет данные персоны |
| person.delete(): bool |
Удаляет персону |
| person.getAllData(): array |
Возвращает все поля персоны |
| person.setData(string $key, $value): self |
Устанавливает поле персоны по ключу В качестве ключа можно указать:
|
| person.getData(string $key) |
Возвращает значение данных персоны В качестве ключа можно указать:
|
| person.issetData(string $key): bool |
Проверяет наличие данных по персоне В качестве ключа можно указать:
|
| person.isDataExist(string $key): bool | |
| person.getLeads(bool $isFindInAllBusinessBots = false): array |
Возвращает ID персоны
Возвращает полное имя персоны
person.getFIO(): string
person.getRoleId(): int|nullВозвращает ID роли персоны
person.getRoleName(): stringВозвращает название роли персоны
person.getRoleTitle(): stringВозвращает заголовок роли персоны
person.getRoleFormattedTitle(): stringВозвращает форматированное название роли персоны.
person.getPhone(): string|nullВозвращает номер телефона персоны
person.setPhone(string|null $phone): boolУстанавливает номер телефона персоны
person.getEmail(): string|nullВозвращает почту персоны
Работа с очередями исполнителей
Методы ticket
| Метод | Описание |
| ticket.assignToNextQueuePerson(int $queueMode = 1, int|null $personQueueId = null, string|null $personQueueTable = null, int|null $currentAssignAttempt = null, bool $isIncRejectsCount = true, bool $isMoveToEndIfRejectsExceed = true): bool | Назначает заявку следующему исполнителю |
| ticket.moveAssignedPersonToEndOfQueue(int $queueMode = 1, int|null $personQueueId = null, string|null $personQueueTable = null, bool $isResetRejectsCount = true): bool | Переносит исполнителя в конец очереди |
|
Назначает исполнителя заявки |
|
|
Назначает заявку следующему исполнителю и переносит его в конец очереди |
|
|
Возвращает количество отказов от заявок |
|
|
Устанавливает количество отказов от заявок |
|
|
Увеличивает количество отказов от заявок |
Методы person
| Метод | Описание |
| person.addToQueue(int|null $personQueueId = null, string|null $personQueueTable = null, int|null $ticketTypeId = null, bool $isActive = true, int $rejectsCount = 0): int|null | Добавляет персону в очередь |
| person.removeFromQueue(int|null $personQueueId = null, string|null $personQueueTable = null, int|null $ticketTypeId = null): bool | Удаляет персону из очереди |
| person.moveToEndOfQueue(int $queueMode = 1, int|null $personQueueId = null, string|null $personQueueTable = null, int|null $ticketTypeId = null, bool $isResetRejectsCount = true): bool | Перемещает персону в конец очереди |
| person.setIsActiveInQueue(bool $isActive = true): bool | Активирует/деактивирует персону в очереди |
Методы personQueue
personQueue.getCode(): string
personQueue.getIsEnabled(): bool
personQueue.getName(): string
personQueue.isSameName($name): bool
personQueue.getCreatedAtFormatted(string $format = 'Y-m-d H:i:s', string|null $timeZone = null): string|null
personQueue.createdAtFormatted(string $format = 'Y-m-d H:i:s', string|null $timeZone = null): string|null
personQueue.getUpdatedAtFormatted(string $format = 'Y-m-d H:i:s', string|null $timeZone = null): string|null
personQueue.updatedAtFormatted(string $format = 'Y-m-d H:i:s', string|null $timeZone = null): string|null
Методы personQueues
| Метод | Описание |
| personQueues.find($where, bool $isReturnCollection = false): ScriptPersonQueue[]|Collection | Возвращает очередь исполнителей |
| personQueues.findById(string|int|null $id): ScriptPersonQueue|null |
Возвращает очередь исполнителей по id |
| personQueues. |
Возвращает очереди исполнителей по
Возвращает очередь исполнителей по коду personQueues.findAllByCodes($codes, bool $isEnabled = null, string $findCodeOperator = 'IN', bool $isReturnCollection = false): ScriptPersonQueue[]|Collection
Возвращает очереди исполнителей по коду personQueues.reload(): bool Обновляет очередь исполнителей personQueues.getCollection(): Collection|null Возвращает коллекцию очередей
Работа с интеграциями NLP
Методы bot
| Метод | Описание |
| bot.getIntegrationIdByCode(string|null $integrationCode): int|null |
Возвращает id интеграции бота по коду |
| bot.getEnabledIntegrationIdByCode(string|null $integrationCode): int|null | Возвращает id включенной интеграции бота по коду |
| bot.isEnabledIntegrationById(int|null $integrationId): bool |
Проверяет активность интеграции по id |
| bot.isEnabledIntegrationByCode(string|null $integrationCode): bool |
Проверяет активность интеграции по коду |
Методы lead
| Метод | Описание |
| lead.setActiveNlpIntegrationByCode(string|null $integrationCode): bool | Присваивает интеграцию лиду по коду |
lead.hasActiveNlpIntegration(): bool
lead.getActiveNlpIntegrationId(): int|null
lead.getActiveNlpIntegrationCode(): string|null
lead.getActiveOrFirstNlpIntegrationId(): int|null
lead.getActiveOrFirstNlpIntegrationCode(): string|null
Работа с интеграциями
Методы lead
Возвращает тип события для ФБ
Работа с кастомными таблицами
Методы table
| Метод | Описание |
| table.createItem(string $tableName, array|object $data): ScriptCustomTableItem | Создает запись в таблице |
| Ищет запись в таблице | |
|
table.count(string $tableName, array|object $where = []): int |
Подсчитывает количество записей |
| table.sum(string $tableName, string $column, array|object $where = []): int |
Подсчитывает сумму значений по полю |
| table.max(string $tableName, string $column, array|object $where = []): mixed|null |
Ищет максимальное значение по полю |
Методы item
За объект item принимаем запись кастомной таблицы полученную с помощью table.createItem или table.find.
| Метод | Описание |
| item.update(array|object $data): bool |
Обновляет записи в таблице |
| item.delete(): bool |
Удаляет записи из таблицы |
| item.getDateFormatted(string $fieldName, string $format = 'Y-m-d H:i:s', string|null $timeZone = null): string|null |
Возвращает форматированную дату по названию поля |
| item.getDateFormattedString(string|DateTimeInterface $date, string $toFormat = 'Y-m-d H:i:s', string|null $fromFormat = 'Y-m-d H:i:s', string|null $toTimeZone = null, string|null $fromTimeZone = null): string|null |
Возвращает форматированную дату из произвольной строки |
|
Перезагружает данные записи из БД |
Работа с блокировками
Работа с контакт-центром
Методы bot
| Метод | Описание |
| bot.getForwardEventType(): string|null |
Возвращает строку "forwarded_by_operator" если действие выполнено оператором или null для контакт-центра |
| bot.canAutoForward(): bool |
Узнает доступно ли авто-назначение оператора в данном скрипте |
Методы lead
| Метод | Описание |
| lead.canAutoForward(): bool |
Узнает доступно ли авто-назначение оператора в данном скрипте |
| lead.getNextOperators(string $departmentCode = null, bool $isOnline = true, int|null $limit = 1, bool $useLocks = true): int|null |
Возвращает список следующих операторов |
| lead.assignDialogToNextOperator(string|null $departmentCode = null, bool $isOnline = true, bool $isForwardIfOperatorNotFound = true, bool $useLocks = true): int|null |
Назначает диалог на следующего оператора полученного с помощью getNextOperators |
| lead.assignDialogToOperator(int|null $operatorId, bool $isForwardIfOperatorNotFound = true, bool $useLocks = true): int|null |
Назначает диалог на указанного в методе оператора |
Работа с API
Методы bot
| Метод | Описание |
| bot.scheduleJob($jobParams = []): bool |
Планирует любую задачу |
Методы lead
| Метод | Описание |
| lead.getLastRequest(): ScriptRequest|null |
Возвращает объект с параметрами последнего реквеста |
Методы request
За объект request принимаем объект с параметрами последнего реквеста полученный с помощью lead.getLastRequest.
| Метод | Описание |
| request.json |
Доступ к json параметрам в виде javascript json-обьекта |
| request.asJson(): ScriptRequest|null | |
| request.array | Доступ к json параметрам в виде javascript json-обьекта |
| request.asArray(): array | |
| request.string | Входящие параметры в виде json обьекта |
| request.asString(): string |
Методы last_request
За объект last_request принимаем объект с параметрами последнего реквеста полученный с помощью lead.getLastRequest.
| Метод | Описание |
| last_request.json |
Доступ к последнему реквесту в виде javascript json-обьекта |
| last_request.asJson(): ScriptRequest|null | |
| last_request.array | Доступ к последнему реквесту в виде массива |
| last_request.asArray(): array | |
| last_request.string | Доступ к последнему реквесту в виде json обьекта |
| last_request.asString(): string |
Методы api
| Метод | Описание |
| api.callEndpoint( string $externalApiEndpointCode, string|null $uri = null, string|null $method = null, string|null $format = null, array|object|string|null $body = null, array|object|string|null $headers = [], array|object|string|null $requestOptions = [], array|object|string|null $httpClientConfig = [], string|null $proxyUrl = null ): array|string|null |
Вызывает внешнее API из чат-бота |
| api.request(string $method, string $uri, $requestOptions = [], $httpClientConfig = [], $body = null, $jsonBody = null, $headers = [], bool $isForceAddJsonHeaders = false): ResponseInterface|null|mixed |
Выполняет HTTP запрос, с помощью Guzzle |
| api.post(string $uri, $body = [], $requestOptions = [], $headers = [], $httpClientConfig = []): string|null |
Выполняет HTTP POST запрос, с помощью Guzzle |
| api.get(string $uri, $requestOptions = [], $headers = [], $httpClientConfig = []): string|null |
Выполняет HTTP GET запрос, с помощью Guzzle |
| api.getJson(string $uri, $jsonBody = [], $headers = [], $requestOptions = [], $httpClientConfig = []): array|null |
Выполняет HTTP POST запрос с jsonBody, с помощью Guzzle |
| api.postJson(string $uri, $jsonBody = [], $headers = [], $requestOptions = [], $httpClientConfig = []): array|null |
Выполняет HTTP GET запрос с jsonBody, с помощью Guzzle |
| api.getHttpConfig(): array |
Возвращает HTTP Config |
| api.setHttpConfig($config): self |
Устанавливает HTTP Config |
| api.getRequestOptions(): array |
Возвращает параметры HTTP запроса |
| api.setRequestOptions($options): self |
Устанавливает параметры HTTP запроса |
| api.getHeaders(): array |
Возвращает заголовки HTTP запроса |
| api.setHeaders($headers): self |
Устанавливает заголовки HTTP запроса |
| api.getProxyUrl(): string|null |
Возвращает Proxy Url HTTP запроса |
| api.setProxyUrl($proxyUrl): self |
Устанавливает Proxy Url HTTP запроса |
| api.getLastResponse(): mixed|ResponseInterface|null |
Возвращает последний ответ HTTP запроса |
| api.getLastResponseCode(): int |
Возвращает код последнего ответа HTTP запроса |
| api.getLastResponseContent(): string|null |
Возвращает содержимое последнего ответа HTTP запроса |
| api.getLastJsonResponse(): array|null |
Возвращает последний ответ HTTP запроса в формате JSON |
| api.enableExceptions(): self |
Включает исключения для HTTP запросов |
|
api.disableExceptions(): self |
Выключает исключения для HTTP запросов |
|
api.setTimeout(float $timeout): self |
Устанавливает время задержки для HTTP запросов |
|
api.getTimeout(): float |
Возвращает время задержки для HTTP запросов |
|
api.isExceptionThrown(): bool |
|
|
api.isConnectExceptionThrown(): bool |
|
|
api.getLastResponseTime(): float |
Возвращает время последнего ответа HTTP запроса |
api.getLastErrorBody(bool $isAutoConvertToJson = true): string|array|null
Возвращает содержимое ошибки последнего ответа HTTP запроса
api.enableContinueCallEndpointOnJsError(): self
Включает вызов эндпоинта при ошибке JS
api.disableContinueCallEndpointOnJsError(): self
Выключает вызов эндпоинта при ошибке JS
api.getIsContinueCallEndpointOnJsError(): bool
Возвращает режим вызова эндпоинта при ошибке JS
Работа с файлами
Методы bot
| Метод | Описание |
|
bot.getIncomingMessage(bool $useOutputFilter = false): string |
Возвращает текст входящего сообщения или текст подписи к вложению |
| Возвращает id вебхука зарегистрированного в очереди Метабот |
bot.getWebhookJobRecord(): BotWebhookQueueRecord|null
Возвращает запись вебхука зарегистрированного в очереди Метабот Возвращает информацию о вебхукеbot.getWebhookPayload(): array
Возвращает payload входящего вебхука в виде массива
bot.getLastResultPayload(): array|null
Возвращает payload c данными о последнем ответе мессенджера в ввиде массиваbot.getChannelData(string|null $key = null): array|null|mixed
Возвращает настройки канала лидаПринудительное отключение буффера исходящих сообщений
Принудительное включение буффера исходящих сообщений
Принудительное освобождение буффера исходящих сообщений
bot.getAllAttachments(string|null $filesMimeExcludeFilter = 'image|video'): array
Возвращает вложения всех видов Возвращает все вложения, которые распознаны как файлbot.getImages(string|null $mimeIncludeFilter = 'image'): array
Возвращает все изображения, а также файлы, которые распознаны как изображениеbot.getVideos(string|null $mimeIncludeFilter = 'video'): array
Возвращает все видео, а также файлы, которые распознаны как видеоbot.sendPayload(string|null $endpoint, array|object $payload): array|string|mixed
Отправляет payload в мессенджерОтправляет текст в мессенджер
Отправляет сообщение в мессенджер, сообщение может содержать текст, кнопки меню и вложения
Отправляет кнопки с сообщением в мессенджер
bot.getTelegramFileInfoById(string|null $fileId, bool $isShowOriginalInfo = false): array|null
Возвращает информацию о файле в Telegram по его id
Отправляет файл в телеграм и возвращает его id
Редактирует кнопки меню уже отправленного в Telegram сообщения
bot.getTelegramLastMessageId(): int|null
Возвращает ID последнего сообщения, отправленного в Telegram
bot.setCdnConfig(array|object|null $cdnConfig = null): bool
Устанавливает конфиг для доступа к CDN
bot.getCdnConfig(): array|null
Возвращает текущий конфиг CDN
bot.getFileInfoByUrl(string $fileUrl): array
Возвращает информацию о файле по URL
bot.downloadFileFromUrl(string $fileUrl): string|array
Скачивает файл с URL и загружает в хранилище файлов Метабот для вашего бизнеса
bot.downloadTmpFileFromUrl(string $fileUrl): string|array
Скачивает файл с URL и загружает во временное хранилище файлов Метабот для вашего бизнеса
bot.removeFile(string $fileUrl): string|null
Удаляет файл по URL из хранилища файлов Метабот для вашего бизнеса
bot.removeTmpFile(string $fileUrl): string|null
Удаляет файл по URL из временного хранилища файлов Метабот для вашего бизнеса
bot.uploadFileToCdnAndGetNewUrl(string $fileUrl, array|object|null $cdnConfig = null): array
Заливает файл на CDN и возвращает новую ссылку
bot.removeFileFromCdn(string $fileUrl, $cdnConfig = null)
Удаляет файл из CDN
Методы lead
| Метод | Описание |
| Возвращает обозначение текущего мессенджера канала | |
| Возвращает буквенное обозначение текущего мессенджера канала | |
| Возвращает идентификатор лида во внешней системе | |
| Возвращает дополнительный идентификатор лида во внешней системе |
Работа с GPT
Методы bot
bot.findButtonByIncomingMessage(array|object $buttons, ?string $overrideIncomingMessage = null, bool $isLogFoundButton = true): array|null
Возвращает код скрипта по кнопке которую "нажимает пользователь"