Перейти к основному контенту

Справочник всех функций

Получение данных бота

Метод Описание

bot.setAllData(array $data): self


Устанавливает значение всех данных текущего бота

bot.getAllData(): array


Возвращает все данные текущего бота

bot.setData(string $key, $value): self


Устанавливает значение данных текущего бота по ключу

bot.getData(string $key): mixed|null

Возвращает данные текущего бота по ключу

Возможные ключи: 

Работа с лидами

Методы bot

Метод Описание
bot.findLeads(array|object $columns = [], array|object $where = [], array|object $orderBy = [], int|null $limit = null, int|null $offset = null): array Находит лиды по указанным атрибутам

Методы lead

Метод Описание

lead.setAllData(array $data): self


Устанавливает значение всех данных лида

lead.getAllData(): array


Возвращает все данные лида

lead.setData(string $key, $value): self


Устанавливает значение данных лида по ключу

Возможные ключи: 

    id - id лида; identification - внешний id лида; manager_id - id менеджера привязанного к лиду; bot_id - id бота лида; channel_id - id канала лида; status_id - id статуса лида; extra - дополнения; is_mute - включен ли бот для лида; все системные поля лида (по английски).
    lead.getData(string $key): mixed|null

    Возвращает значение данных лида по ключу

    Возможные ключи: 

    • id - id лида;
    • identification - внешний id лида;
    • manager_id - id менеджера привязанного к лиду;
    • bot_id - id бота лида;
    • channel_id - id канала лида;
    • status_id - id статуса лида;
    • extra - ???дополнения;
    • is_mute - включен ли бот для лида;
    • все системные поля лида (по английски).

    lead.issetData(string $key): bool

    Проверяет наличие данных лида по ключу

    Возможные ключи: 

    • id - id лида;
    • identification - внешний id лида;
    • manager_id - id менеджера привязанного к лиду;
    • bot_id - id бота лида;
    • channel_id - id канала лида;
    • status_id - id статуса лида;
    • extra - ???дополнения;
    • is_mute - включен ли бот для лида;
    • все системные поля лида (по английски).

    lead.isDataExist(string $key): bool

    lead.getSerialNumber(): int|null Возвращает порядковый номер лида в текущем боте
    lead.getChannelCode(): string Возвращает код канала лида
    lead.isInlineButtonsAvailable(): bool|null Проверяет включены ли инлайн кнопки
    lead.isInlineButtonsAvailableGeneralChannelSetting(): bool|null Возвращает настройки кнопок канала

    Работа со скриптами

     Метод  Описание
    bot.scheduleScript(int|null $scriptId, int|null $leadId, int|null $ticketId = null, $jobParams = []): bool Планирует вызов скрипта
    bot.scheduleScriptByCode(string $scriptCode, int|null $leadId, int|null $ticketId = null, $jobParams = []): bool Планирует вызов скрипта по коду
    bot.getScriptIdByName(string|null $scriptName): int|null Возвращает ID скрипта по наименованию
    bot.getScriptIdByCode(string|null $scriptCode): int|null Возвращает ID скрипта по коду
    bot.getScriptCodeById(string|null $scriptId): int|null Возвращает код скрипта по ID
    bot.runScriptForLead(?int $scriptId, ?int $leadId, ?int $ticketId = null, $addToQueue = true, $jobParams = []): bool Запускает скрипт для лида по ID скрипта
    bot.runScriptByNameForLead(string|null $scriptName, int|null $leadId, int|null $ticketId = null, $addToQueue = true, $jobParams = []): bool Запускает скрипт для лида по наименованию скрипта
    bot.runScriptForPerson(int|null $scriptId, int|null $personId, int|null $ticketId = null, $addToQueue = true, $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   Очищает джобы по id скрипта
    bot.clearJobsByScriptName(string|null $scriptName, int|null $leadId = null): bool Очищает джобы по наименованию скрипта
    bot.clearJobsByScriptCode(string|null $scriptCode, int|null $leadId = null): bool Очищает джобы по коду скрипта

    Работа с атрибутами

    Методы bot

    Метод Описание
    bot.setAttr(string $key, string $value): self Устанавливает значение переменной бота
    bot.setAllAttr(array $data): self
    Устанавливает значение всех переменных бота
    bot.getAttr(string $key): mixed|null Возвращает значение переменной бота
    bot.getAllAttr(): array Возвращает массив всех переменных бота
    bot.getIntAttr(string $key, ?int|null $default = 0): int|null
    Возвращает значение int переменной бота
    bot.getFloatAttr(string $key, ?float|null $default = 0.0): float|null
    Возвращает значение float переменной бота
    bot.getBoolAttr(string $key, ?bool|null $default = false): bool|null
    Возвращает значение bool переменной бота
    bot.issetAttr(string $key): bool Проверяет наличие переменной бота
    bot.isAttrExist(string $key): bool
    bot.setAllJsonAttrs(array $data): self
    Устанавливает значение всех JSON переменных бота
    bot.getAllJsonAttrs(): array
    Возвращает значение всех JSON переменных бота
    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


    Устанавливает значение всех LiveTex переменных бота

    bot.setLiveTexAttr(string $key,string $value): self


    Устанавливает значение LiveTex переменной бота

    bot.getAllLiveTexAttrs(): array


    Возвращает значение всех LiveTex  переменных бота

    bot.getLiveTexAttr(string $key): mixed|null


    Возвращает значение LiveTex переменной бота

    Методы 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
    Возвращает значение int переменной лида
    lead.getFloatAttr(string $key, ?float|null $default = 0.0): float|null
    Возвращает значение float переменной лида
    lead.getBoolAttr(string $key, ?bool|null $default = false): bool|null
    Возвращает значение bool переменной лида
    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
    Устанавливает значение всех JSON переменных лида
    lead.getAllJsonAttrs(): array
    Возвращает значение всех JSON переменных лида
    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


    Устанавливает значение всех LiveTex переменных лида

    lead.setLiveTexAttr(string $key,string $value): self


    Устанавливает значение LiveTex переменной лида

    lead.getAllLiveTexAttrs(): array


    Возвращает значение всех LiveTex  переменных лида

    lead.getLiveTexAttr(string $key): mixed|null


    Возвращает значение LiveTex переменной лида

    Методы memory

    Метод Описание
    memory.setAttr(string $key, string $value): self Устанавливает значение временной переменной
    memory.getAttr(string $key): string|null Возвращает значение временной  переменной
    memory.getIntAttr(string $key, ?int|null $default = 0): int|null
    Возвращает значение int временной переменной
    memory.getFloatAttr(string $key, ?float|null $default = 0.0): float|null
    Возвращает значение float временной переменной
    memory.getBoolAttr(string $key, ?bool|null $default = false): bool|null
    Возвращает значение bool временной переменной
    memory.issetAttr(string $key): bool Проверяет наличие временной  переменной
    memory.isAttrExist(string $key): bool
    memory.setAllJsonAttrs(array $data): self
    Устанавливает значение всех временных JSON переменных
    memory.getAllJsonAttrs(): array
    Возвращает значение всех временных JSON переменных
    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


    Устанавливает значение всех временных LiveTex переменных лида

    memory.setLiveTexAttr(string $key,string $value): self


    Устанавливает значение временной LiveTex переменной лида

    memory.getAllLiveTexAttrs(): array


    Возвращает значение всех временных LiveTex  переменных лида

    memory.getLiveTexAttr(string $key): mixed|null


    Возвращает значение временной LiveTex переменной лида

    Работа с триггерами

    Метод Описание
    bot.scheduleTrigger(int|null $triggerId, int|null $leadId, int|null $ticketId = null, $jobParams = []): bool Планирует запуск триггера
    bot.scheduleTriggerByCode(string $triggerCode, int|null $leadId, int|null $ticketId = null, $jobParams = []): bool

    Планирует запуск триггера по коду

    bot.runTriggerForLead(?int $triggerId, ?int $leadId, ?int $ticketId = null, $addToQueue = true, $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.runTriggerByNameForLead(string|null $triggerName, int|null $leadId, int|null $ticketId = null, $addToQueue = true, $jobParams = []): bool

    Запускает триггер для лида по наименованию

    bot.runTriggerForPerson(int|null $triggerId, int|null $personId, int|null $ticketId = null, $addToQueue = true, $jobParams = []): bool

    Запускает триггер для персоны по ID

    bot.runTriggerByNameForPerson(string|null $triggerName, int|null $personId, int|null $ticketId = null, $addToQueue = true, $jobParams = []): bool

    Запускает триггер для персоны по наименованию

    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.clearTriggerJobsByScriptCode(string|null $scriptCode, int|null $leadId = null, int|null $ticketId = 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.getAllStatuses(): array
    Возвращает все статусы лида
    lead.getAllStatusesIndexedByName(): array
    Возвращает все наименования статусов лида
    lead.setStatusId(int $statusId, string $name): self
    Устанавливает id статуса лида
    lead.setStatusName(string $name): self
    Устанавливает наименование статуса лида
    lead.getStatusName(): string
    Возвращает наименование статуса лида
    lead.setStatus(int $statusId, string $name): self
    Устанавливает статус лида
    lead.setStatusById(int $statusId): self
    Устанавливает статус лида по id
    lead.issetStatusById(string $id): bool
    Проверяет существует ли статуса у лида по id
    lead.issetStatusByName(string $name): bool
    Проверяет существует ли статуса у лида по наименованию
    lead.getStatusIdByName(string $statusName): int
    Возвращает id статуса лида по наименованию
    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.setAllContexts(array $data): 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 заявки по наименованию вида заявки
    bot.getTicketTypeNameById(int|null $ticketTypeId): string|null Возвращает наименование заявки по id вида заявки
    bot.getTicketStatusIdByName(string $statusName): int|null Возвращает id заявки по наименованию статуса заявки
    bot.setCurrentTicketById(int|null $ticketId): bool Устанавливает указанную заявку как текущую
    bot.clearTicketAssignedPersonsLog(): bool Очищает лог назначения тикета персонам

    Методы ticket

    Метод Описание

    ticket.update($data): bool

    Обновляет заявку, через объект заявки

    ticket.setAllData(array $data): self


    Устанавливает значение всех данных заявки

    ticket.getAllData(): array


    Возвращает значение всех данных заявки

    ticket.setData(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.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.isInStatus($statusName): bool

        Проверяет статус заявки

        ticket.setStatusId(int|null $statusId, int|null $personQueueIdForLog = null, string|null $personQueueTableForLog = null): bool

        Устанавливает статус заявки по id

        ticket.setStatusByName(string $statusName, int|null $personQueueIdForLog = null, string|null $personQueueTableForLog = null): bool

        Устанавливает статус заявки по имени

        ticket.reloadTicket(): bool

        Загружает заявку повторно

        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


        Возвращает форматированную стоимость доставки

        ticket.getTicketLines(): ScriptTicketLine

        Возвращает массив объектов ScriptTicketLine

        Методы ScriptTicketLine

        Метод Описание
        ScriptTicketLine.reload(): bool Обновить данные по строке заявки из бд
        ScriptTicketLine.getId(): int|null
        Возвращает id ScriptTicketLine
        ScriptTicketLine.getTicketId(): int|null
        Возвращает id заявки
        ScriptTicketLine.getProductId(): int|null
        Возвращает id продукта заявки
        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.createdAtFormatted(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.reload(): bool  Обновить данные по продукту из бд
        ScriptProduct.getId(): int|null
        Возвращает id продукта
        ScriptProduct.getTitle(): string|null
        Возвращает наименование продукта
        ScriptProduct.getCode(): string|null
        Возвращает код продукта
        ScriptProduct.getPrice(): float|null
        Возвращает цену продукта
        ScriptProduct.getMainCategoryId(): int|null
        Возвращает id категории продукта
        ScriptProduct.getIsEnabled(): bool|null
        Проверяет активен ли продукт
        ScriptProduct.getIsAvailableInStock(): bool|null
        Проверяет есть ли продукт в наличии
        ScriptProduct.getUrl(): string|null
        Возвращает url продукта
        ScriptProduct.getThumbUrl(): string|null
        Возвращает thumb url продукта
        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.reload(): bool Перезагружает статус в БД
        ticketStatus.getId(): int
        Возвращает id статуса
        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

        bot.getDefaultPersonRoleId(): int|null

        Возвращает 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

        Устанавливает поле персоны по ключу

        В качестве ключа можно указать:

         
        • id - id персоны;
        • business_id - id бизнеса;
        • bot_id - id бота;
        • person_role_id - id роли;
        • is_external - значение поля Сотрудник/Клиент;
        • user_id - id пользователя;
        • firstname - имя;
        • lastname - фамилия;
        • middlename - отчество;
        • email - адрес электронной почты;
        • phone - номер телефона;
        • organization_name - название организации;
        • organization_address - адрес организации;
        • comment - комментарий;
        • created_at - дата создания;
        • updated_at - дата последнего редактирования;
        • deleted_at - дата удаления;
        • все системные поля персоны (по английски).
        person.getData(string $key)

        Возвращает значение данных персоны

        В качестве ключа можно указать:

         
        • id - id персоны;
        • business_id - id бизнеса;
        • bot_id - id бота;
        • person_role_id - id роли;
        • is_external - значение поля Сотрудник/Клиент;
        • user_id - id пользователя;
        • firstname - имя;
        • lastname - фамилия;
        • middlename - отчество;
        • email - адрес электронной почты;
        • phone - номер телефона;
        • organization_name - название организации;
        • organization_address - адрес организации;
        • comment - комментарий;
        • created_at - дата создания;
        • updated_at - дата последнего редактирования;
        • deleted_at - дата удаления;
        • все системные поля персоны (по английски).
        person.issetData(string $key): bool

        Проверяет наличие данных по персоне

        В качестве ключа можно указать:

         
        • id - id персоны;
        • business_id - id бизнеса;
        • bot_id - id бота;
        • person_role_id - id роли;
        • is_external - значение поля Сотрудник/Клиент;
        • user_id - id пользователя;
        • firstname - имя;
        • lastname - фамилия;
        • middlename - отчество;
        • email - адрес электронной почты;
        • phone - номер телефона;
        • organization_name - название организации;
        • organization_address - адрес организации;
        • comment - комментарий;
        • created_at - дата создания;
        • updated_at - дата последнего редактирования;
        • deleted_at - дата удаления;
        • все системные поля персоны (по английски).

        person.isDataExist(string $key): bool
        person.getLeads(bool $isFindInAllBusinessBots = false): array


        Возвращает лиды персоны

        person.getId(): int|null

        Возвращает ID персоны

        person.getFullName(): string

        Возвращает полное имя персоны



        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 Переносит исполнителя в конец очереди

        ticket.assignToPersonById(int|null $personId, int|null $personQueueIdForLog = null, string|null $personQueueTableForLog = null, int|null $assignAttemptForLog = null): bool

        Назначает исполнителя заявки

        ticket.assignToNextPersonAndMoveToEnd(): bool

        Назначает заявку следующему исполнителю и переносит его в конец очереди

        ticket.getAssignedPersonRejectsCount(int $personQueueId = null, string|null $personQueueTable = null): int|null

        Возвращает количество отказов от заявок

        ticket.setAssignedPersonRejectsCount(int $rejectsCount, int|null $personQueueId = null, string|null $personQueueTable = null): bool

        Устанавливает количество отказов от заявок

        ticket.incAssignedPersonRejectsCount(int|null $personQueueId = null, string|null $personQueueTable = null): 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.getId(): int
        Возвращает id очереди персон
        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.findByName(string $name, bool $isEnabled = null): ScriptPersonQueue|null
        Возвращает очередь исполнителей по наименованию
        personQueues.findAllByNames($names, bool $isEnabled = null, string $findNameOperator = 'IN', bool $isReturnCollection = false): ScriptPersonQueue[]|Collection
        Возвращает очереди исполнителей по наименованию
        personQueues.findByCode(string $code, bool $isEnabled = null, string $findCodeOperator = '='): ScriptPersonQueue|null
        Возвращает очередь исполнителей по коду
        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.setActiveNlpIntegrationById(int|null $nlpIntegrationId): bool
        Присваивает интеграцию лиду по id
        lead.hasActiveNlpIntegration(): bool
        Проверяет активна ли интеграция
        lead.getActiveNlpIntegrationId(): int|null
        Возвращает интеграцию по id
        lead.getActiveNlpIntegrationCode(): string|null
        Возвращает интеграцию по коду
        lead.getActiveOrFirstNlpIntegrationId(): int|null
        Возвращает активную или первую интеграцию по id
        lead.getActiveOrFirstNlpIntegrationCode(): string|null
        Возвращает активную или первую интеграцию по коду

        Работа с интеграциями

        Методы lead

        Метод Описание
        lead.getForwardEventTypeForFB(): string|null
        Возвращает тип события для ФБ

        Работа с кастомными таблицами

        Методы table

        Метод Описание
        table.createItem(string $tableName, array|object $data): ScriptCustomTableItem Создает запись в таблице

        table.find(string $tableName, array|object $columns = [], array|object $where = [], array|object $orderBy = [], int|null $limit = null, int|null $offset = null): array

        Ищет запись в таблице

        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

        Возвращает форматированную дату из произвольной строки

        item.reload(): bool

        Перезагружает данные записи из БД

        Работа с блокировками

        Метод Описание
        bot.getLockNameForBot(string $lockName, string $lockPrefix = ''): string Генерирует имя блокировки по боту
        bot.getLockNameForBusiness(string $lockName, string $lockPrefix = ''): string Генерирует имя блокировки по бизнесу
        bot.waitForBusinessLock(string $lockName, string $lockPrefix = '', int|null $ttlSec = null, $maxWaitSec = 300): bool Захватывает блокировку по бизнесу
        bot.waitForBotLock(string $lockName, string $lockPrefix = '', int|null $ttlSec = null, $maxWaitSec = 300): bool Захватывает блокировку по боту
        bot.releaseAllCurrentLocks(): bool Освобождает все блокировки захваченные в текущем скрипте
        bot.releaseCurrentLockForBusiness(string $lockName, string $lockPrefix = ''): bool Освобождает блокировку захваченную текущем скрипте по бизнесу
        bot.releaseCurrentLockForBot(string $lockName, string $lockPrefix = ''): bool Освобождает блокировку захваченную в текущем скрипте по боту
        bot.releaseLockForBusiness(string $lockName, string $lockPrefix = ''): bool Освобождает блокировку по бизнесу
        bot.releaseLockForBot(string $lockName, string $lockPrefix = ''): bool Освобождает блокировку по боту
        bot.hasLockForBusiness(string $lockName, string $lockPrefix = '', $checkValue = null): bool Проверяет существование блокировки по бизнесу
        bot.hasLockForBot(string $lockName, string $lockPrefix = '', $checkValue = null): bool Проверяет существование блокировки по боту

        Работа с контакт-центром

        Методы bot

        Метод Описание
        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

        Возвращает объект с параметрами последнего реквеста

        lead.getLang(): string|null


        Возвращает язык установленный в бизнесе

        lead.setLang(string|null $langCode): string|null


        Устанавливает язык в бизнесе

        lead.isLangExist(string $langCode, bool|null $isEnabled = true): bool


        Проверяет существует ли язык

        Методы 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

        Возвращает текст входящего сообщения или текст подписи к вложению

        bot.getWebhookJobId(): int|null

        Возвращает id вебхука зарегистрированного в очереди Метабот

        bot.getWebhookJobRecord(): BotWebhookQueueRecord|null

        Возвращает запись вебхука зарегистрированного в очереди Метабот

        bot.getWebhookJob(): array

        Возвращает информацию о вебхуке

        bot.getWebhookPayload(): array

        Возвращает payload входящего вебхука в виде массива

        bot.getLastResultPayload(): array|null

        Возвращает payload c данными о последнем ответе мессенджера в ввиде массива

        bot.getChannelData(string|null $key = null): array|null|mixed

        Возвращает настройки канала лида 

        bot.disableBuffer()

        Принудительное отключение буффера исходящих сообщений

        bot.enableBuffer()

        Принудительное включение буффера исходящих сообщений

        bot.flushBuffer()

        Принудительное освобождение буффера исходящих сообщений

        bot.getAllAttachments(string|null $filesMimeExcludeFilter = 'image|video'): array

        Возвращает вложения всех видов

        bot.getFiles(string|null $mimeIncludeFilter = null, string|null $mimeExcludeFilter = '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.sendText(string|null|mixed $messageText, array|object|null $apiAdditionalParams = null, bool $isDisableBuffer = true): bool

        Отправляет текст в мессенджер

        bot.sendMessage(string|null|mixed $messageText, array|object|null $buttons = null, array|object|null $attachments = null, array|object|null $apiAdditionalParams = null, bool $isDisableBuffer = true): bool

        Отправляет сообщение в мессенджер, сообщение может содержать текст, кнопки меню и вложения

        bot.sendButtons(string|null|mixed $messageText, array|object $buttons, array|object|null $apiAdditionalParams = null, bool $isDisableBuffer = true): bool

        Отправляет кнопки с сообщением в мессенджер

        bot.getTelegramFileInfoById(string|null $fileId, bool $isShowOriginalInfo = false): array|null

        Возвращает информацию о файле в Telegram по его id

        bot.sendTelegramAttachmentAndGetFileId(string|null $messageText, array|object|null $attachment, array|object|null $buttons = null, array|object|null $apiAdditionalParams = null): string|null

        Отправляет файл в телеграм и возвращает его id

        bot.editTelegramInlineKeyboard(int|string $chatId, int|string $messageId, string|null string $inlineMessageId, array|object|null $inlineKeyboardMarkup): array|null

        Редактирует кнопки меню уже отправленного в Telegram сообщения


        bot.removeTelegramInlineKeyboard(int|string $chatId, int|string $messageId, string|null $inlineMessageId = null): array|null

        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

        Метод Описание

        lead.getMessenger(): int

        Возвращает обозначение текущего мессенджера канала

        lead.getMessengerCode(): string

        Возвращает буквенное обозначение текущего мессенджера канала

        lead.getIdentification(): string|null

        Возвращает идентификатор лида во внешней системе

        lead.getIdentificationEntity(): string|null

        Возвращает дополнительный идентификатор лида во внешней системе

        Работа с GPT

        Методы bot

        Метод Описание
        bot.run(array|object|null $jobParams = []): bool Запускает скрипт в рамках текущего потока бота
        bot.stop(): bool Прерывает текущий скрипт
        bot.throw(string $message = '', int $code = 0): bool Создает искусственное падение скрипта
        bot.disableRepeatMessageText(): bool Отключает вывод сообщения для команды конструктора "Повтор" для текущего вебхука/задания
        bot.enableRepeatMessageText(): bool Включает вывод сообщения для команды конструктора "Повтор" для текущего вебхука/задания
        bot.isEnabledRepeatMessageText(): bool Проверяет включен или нет вывод сообщения для команды конструктора "Повтор" для текущего вебхука/задания
        bot.hideRepeatMessageButtons(): bool Отключает вывод меню для команды конструктора "Повтор" для текущего вебхука/задания
        bot.showRepeatMessageButtons(): bool Включает вывод меню для команды конструктора "Повтор" для текущего вебхука/задания
        bot.isShowRepeatMessageButtons(): bool Проверяет включен или нет вывод меню для команды конструктора "Повтор" для текущего вебхука/задания
        bot.getConversationQuestion(): OverridenQuestion|null Возвращает текущее состояние беседы
        bot.getCurrentScriptId(): int|null Возвращает ID текущего скрипта
        bot.getCurrentScriptCode(): string|null Возвращает код текущего скрипта
        bot.getCurrentCommandId(): int|null Возвращает код текущей команды
        bot.getConversationButtons(): array Возвращает текущие кнопки
        bot.getMenuItemsForScript(?string $scriptCode): array Возвращает все пункты меню скрипта
        bot.getMenuItemsForCurrentScript(): array Возвращает все пункты меню текущего скрипта
        bot.getButtonsForScript(?string $scriptCode, ?int $scriptId = null, bool $withRunScriptId = true): array Возвращает все кнопки скрипта
        bot.getButtonsForCurrentScript(bool $withRunScriptId = true): array Возвращает все кнопки текущего скрипта

        bot.findButtonByIncomingMessage(array|object $buttons, ?string $overrideIncomingMessage = null, bool $isLogFoundButton = true): array|null

        Находит кнопку которую "нажимает пользователь" по входящему сообщению
        bot.getScriptIdFromButtonsByIncomingMessage(array|object $buttons, ?string $overrideIncomingMessage = null, bool $isLogFoundButton = true): int|null Возвращает id скрипта по кнопке которую "нажимает пользователь"
        bot.getScriptCodeFromButtonsByIncomingMessage(array|object $buttons, ?string $overrideIncomingMessage = null, bool $isLogFoundButton = true): string|null
        Возвращает код скрипта по кнопке которую "нажимает пользователь"

        Методы api

        Метод Описание
        api.getLastErrorBody(bool $isAutoConvertToJson = true): string|array|null Возвращает содержимое API ответа, если внешнее API вернуло код ошибки
        api.enableContinueCallEndpointOnJsError(): bool Игнорирует ошибку в JS Body
        api.disableContinueCallEndpointOnJsError(): bool Отключает игнорирование ошибки в JS Body
        api.getIsContinueCallEndpointOnJsError(): bool Проверяет вкл. или выключено игнорирование ошибки в JS Body перед запуском внешнего api
        api.callApiOnlyByOkFlag(bool $value = true): bool Выполняет обращение по api, только если JS валиден
        api.onlyForOk(bool $value = true): bool
        api.isCallApiOnlyByOkFlag(): bool Проверяет включен или нет флаг isCallApiOnlyByOkFlag
        api.isOnlyForOk(): bool
        api.ok(bool $value = true): bool Указывает что JS валиден, для того чтобы выполнился запуск внешнего api
        api.isOk(): bool Проверяет валиден ли JS