Методы lead
- lead.getData()
- lead.issetData() и lead.isDataExist()
- lead.getSerialNumber()
- lead.getChannelCode()
- lead.setAttr()
- lead.getAttr()
- lead.getAllAttr()
- lead.issetAttr() и lead.isAttrExist()
- lead.deleteAttrs() и lead.deleteAttr()
- lead.forceDeleteAttrs() и lead.forceDeleteAttr()
- lead.deleteJsonAttrs() и lead.deleteJsonAttr()
- lead.forceDeleteJsonAttrs() и lead.forceDeleteJsonAttr()
- lead.isInStatus()
- lead.getStatusId()
- lead.isTagExist() и lead.issetTag()
- lead.getTag()
- lead.getAllTags()
- lead.addTags() и lead.addTag()
- lead.deleteTags() и lead.deleteTag()
- lead.forceDeleteTags() и lead.forceDeleteTag()
- lead.setForwarded()
- lead.getPersonId()
- lead.setPersonId()
- lead.createPersonForCurrentLead()
- lead.isContextExist() и lead.issetContext()
- lead.getContext()
- lead.getAllContexts()
- lead.setActiveNlpIntegrationByCode()
- lead.canAutoForward()
- lead.getNextOperators()
- lead.assignDialogToNextOperator()
- lead.assignDialogToOperator()
- lead.getLastRequest()
- lead.getMessengerCode()
- lead.getIdentification()
- lead.getIdentificationEntity()
- lead.getMessenger()
- lead.getAllData()
- lead.setData()
- lead.isInlineButtonsAvailable()
- lead.isInlineButtonsAvailableGeneralChannelSetting()
- lead.getIntAttr()
- lead.getFloatAttr()
- lead.getBoolAttr()
- lead.getJsonAttr()
- lead.getAllJsonAttrs()
- lead.setJsonAttr()
- lead.issetJsonAttr() и lead.isJsonAttrKeyExist()
- lead.setAllLiveTexAttrs()
- lead.setLiveTexAttr()
- lead.getLiveTexAttr()
- lead.getAllLiveTexAttrs()
- lead.setTag()
- lead.setContext()
- lead.getAllStatuses()
- lead.getAllStatusesIndexedByName()
- lead.setStatusId()
- lead.setStatusName()
- lead.getStatusName()
- lead.setStatus()
- lead.setStatusById()
- lead.issetStatusById()
- lead.issetStatusByName()
- lead.getStatusIdByName()
- lead.setStatusByName()
- lead.setActiveNlpIntegrationById()
- lead.hasActiveNlpIntegration()
- lead.getActiveNlpIntegrationId()
- lead.getActiveNlpIntegrationCode()
- lead.getActiveOrFirstNlpIntegrationCode()
- lead.getActiveOrFirstNlpIntegrationId()
- lead.getForwardEventTypeForFB()
- lead.getLang()
- lead.setLang()
- lead.isLangExist()
lead.getData()
Получить значение данных лида
lead.getData(string $key)
Описание:
Возвращает значение данных сущности лида по ключу.
Атрибуты:
Имя | Тип | Описание |
key | string | Ключ данных лида |
В качестве ключа можно указать:
- id - id лида;
- name - имя лида;
- identification - внешний id лида;
- identification_entity - внешний id сущности;
- person_id - id персоны лида;
- manager_id - id менеджера привязанного к лиду;
- bot_id - id бота лида;
- channel_id - id канала лида;
- lang_code - код языка;
- status_id - id статуса лида;
- extra
- last_message_payload
- identification - id последнего сообщения;
- event_name - код события, например, user_uttered, когда последнее сообщение - ответ пользователя;
- text - текст последнего сообщения;
- payload - данные последнего сообщения;
- timestamp - время отправки;
- session_id - id сессии;
- socket_id - id сокета;
- last_message_payload
- is_mute - включен ли бот для лида;
- last_message_date - дата последнего сообщения;
- active_nlp_integration_id - id активной NLP интеграции;
- last_activity - время последней активности;
- last_response - код последнего ответа;
- messenger - id мессенджера;
- bot_debug_level - уровень отладки бота;
- created_at - время создания;
- updated_at - время обновления;
- dialog_id - id диалога;
- unread_count - количество непрочитанных оператором сообщений;
- last_message - последнее сообщение;
- last_message_botlog_id - id последнего сообщения в логе.
Возвращает:
mixed - значение данных лида в формате, в котором они находятся в сущности
или
null - если таких данных не существует.
Пример:
let extra = lead.getData('extra');
lead.issetData() и lead.isDataExist()
Проверить наличие данных
lead.issetData(string $key)
или
lead.isDataExist(string $key)
Описание:
Проверяет существуют ли данные по ключу.
Атрибуты:
Имя | Тип | Описание |
key | string | Ключ данных лида |
В качестве ключа можно указать:
- id - id лида;
- name - имя лида;
- identification - внешний id лида;
- identification_entity - внешний id сущности;
- person_id - id персоны лида;
- manager_id - id менеджера привязанного к лиду;
- bot_id - id бота лида;
- channel_id - id канала лида;
- lang_code - код языка;
- status_id - id статуса лида;
- extra
- last_message_payload
- identification - id последнего сообщения;
- event_name - код события, например, user_uttered, когда последнее сообщение - ответ пользователя;
- text - текст последнего сообщения;
- payload - данные последнего сообщения;
- timestamp - время отправки;
- session_id - id сессии;
- socket_id - id сокета;
- last_message_payload
- is_mute - включен ли бот для лида;
- last_message_date - дата последнего сообщения;
- active_nlp_integration_id - id активной NLP интеграции;
- last_activity - время последней активности;
- last_response - код последнего ответа;
- messenger - id мессенджера;
- bot_debug_level - уровень отладки бота;
- created_at - время создания;
- updated_at - время обновления;
- dialog_id - id диалога;
- unread_count - количество непрочитанных оператором сообщений;
- last_message - последнее сообщение;
- last_message_botlog_id - id последнего сообщения в логе.
Возвращает:
bool - подтверждение существования данных.
Пример:
let data = lead.issetData('manager_id');
let altdata = lead.isDataExist('status_id');
lead.getSerialNumber()
Порядковый номер лида
lead.getSerialNumber()
Описание:
Возвращает порядковый номер лида в боте начиная с первого созданного.
Возвращает:
int - порядковый номер лида
или
null - если лид не найден.
Пример:
let num = lead.getSerialNumber();
lead.getChannelCode()
Код канала лида
lead.getChannelCode()
Описание:
Возвращает код канала лида (telegram, umnico, bitrix, и пр.)
Возвращает:
string - код канала лида в формате строки.
Коды которые может возвращать данная функция:
- 'unknown'
- 'avito'
- 'apple_business_chat'
- 'facebook'
- 'instagram'
- 'jivoWidget'
- 'livechatWidget'
- 'odnoklassniki'
- 'skype'
- 'telegram'
- 'twitter'
- 'viber'
- 'vk'
- 'wechat'
- 'whatsapp'
- 'youla'
- 'metabotWidget'
- 'webim'
lead.setAttr()
Установить значение переменной лида
lead.setAttr(string $key, string $value)
Описание:
Обновляет значение уже существующей переменной лида или создает новую переменную с указанным значением. Данные будут сохранены в БД.
Атрибуты:
Имя | Тип | Описание |
key | string | Наименование переменной |
value | string | Значение переменной |
Возвращает:
self - объект того же типа, в данном случае переменную, которая была создана.
Пример:
Создание переменной лида lead_attribute:
let lead = "Значение переменной лида";
let lead_attribute = lead.setAttr('lead_attribute', lead);
lead.getAttr()
Получить значение переменной лида
lead.getAttr(string $key)
Описание:
Возвращает значение уже существующей переменной лида.
Атрибуты:
Имя | Тип | Описание |
key | string | Наименование переменной |
Возвращает:
string - значение запрашиваемой переменной в виде строки
или
null - если переменная не была найдена.
Пример:
Получение значения переменной лида lead_attribute:
let lead_attribute_value = lead.getAttr('lead_attribute');
lead.getAllAttr()
Получить все переменные лида
lead.getAllAttr()
Описание:
Возвращает значение всех переменных лида.
Возвращает:
array - массив значений всех переменных.
Пример:
Получение значения всех переменных лида и вынесение из массива одного из значений:
let all_lead_attributes = lead.getAllAttr();
let lead_attribute = all_lead_attributes[3];
lead.issetAttr() и lead.isAttrExist()
Проверить наличие переменной лида
lead.issetAttr(string $key)
или
lead.isAttrExist(string $key)
Описание:
Проверяет существует ли переменная лида в боте.
Атрибуты:
Имя | Тип | Описание |
key | string | Наименование переменной |
Возвращает:
bool - подтверждение существования переменной.
Пример:
Проверка двумя способами существования переменной лида lead_attribute:
let lead_exists = lead.issetAttr('lead_attribute');
let lead_altexists = lead.isAttrExist('lead_attribute');
lead.deleteAttrs() и lead.deleteAttr()
Удаление переменных лида
lead.deleteAttrs(string|object|array|null $attrs, ?int $ticketId = null, $scriptRequestParams = [], bool $isForceDelete = false, bool $isSuppressTriggers = false)
или
lead.deleteAttr(string|object|array|null $attrs, ?int $ticketId = null, $scriptRequestParams = [], bool $isForceDelete = false, bool $isSuppressTriggers = false)
Описание:
Удаляет переменную из бота.
Атрибуты:
Имя | Тип | Описание |
attrs | string|object|array|null | Строка, представляющая собой список названий переменных (разделитель запятая). Можно указать вместо списка json объект или массив |
ticketId | ?int | Передает ticket в запускаемый триггер, который подписан на событие изменения/удаления переменной |
scriptRequestParams | object | Передает дополнительный параметры в запускаемый триггер , который подписан на событие изменения/удаления переменной |
isForceDelete | bool | Подавить запуск триггеров или нет, т.е. если передать true, и есть триггер подписанный на событие изменения/удаления переменной то он не будет запущен. |
isSuppressTriggers | bool | Не мягкое удаление. Если передано true, то переменная будет удалена из БД, иначе у удаляемого атрибута указывается признак что он удален, но в бд он остается |
Возвращает:
self - подтверждение удаления переменной.
Пример:
lead.deleteAttrs('var1, var2, var3', null, null, true);
lead.forceDeleteAttrs() и lead.forceDeleteAttr()
Принудительное удаление переменных лида из БД
lead.forceDeleteJsonAttrs(string|object|array|null $attrs, ?int $ticketId = null, $scriptRequestParams = [], bool $isSuppressTriggers = false)
или
lead.forceDeleteJsonAttr(string|object|array|null $attrs, ?int $ticketId = null, $scriptRequestParams = [], bool $isSuppressTriggers = false)
Описание:
Удаляет переменную из бота и БД.
Атрибуты:
Имя | Тип | Описание |
attrs | string|object|array|null | Строка, представляющая собой список названий переменных (разделитель запятая). Можно указать вместо списка json объект или массив |
ticketId | ?int | Передает ticket в запускаемый триггер, который подписан на событие изменения/удаления переменной |
scriptRequestParams | object | Передает дополнительный параметры в запускаемый триггер , который подписан на событие изменения/удаления переменной |
isSuppressTriggers | bool | Не мягкое удаление. Если передано true, то переменная будет удалена из БД, иначе у удаляемого атрибута указывается признак что он удален, но в бд он остается |
Возвращает:
self - подтверждение удаления переменной.
Пример:
lead.forceDeleteAttrs('var1, var2, var3');
lead.deleteJsonAttrs() и lead.deleteJsonAttr()
Удаление json-переменных лида
lead.deleteJsonAttrs(string|object|array|null $attrs, ?int $ticketId = null, $scriptRequestParams = [], bool $isForceDelete = false, bool $isSuppressTriggers = false)
или
lead.deleteJsonAttr(string|object|array|null $attrs, ?int $ticketId = null, $scriptRequestParams = [], bool $isForceDelete = false, bool $isSuppressTriggers = false)
Описание:
Удаляет json переменную из бота.
Атрибуты:
Имя | Тип | Описание |
attrs | string|object|array|null | Строка, представляющая собой список названий переменных (разделитель запятая). Можно указать вместо списка json объект или массив |
ticketId | ?int | Передает ticket в запускаемый триггер, который подписан на событие изменения/удаления переменной |
scriptRequestParams | object | Передает дополнительный параметры в запускаемый триггер , который подписан на событие изменения/удаления переменной |
isForceDelete | bool | Подавить запуск триггеров или нет, т.е. если передать true, и есть триггер подписанный на событие изменения/удаления переменной то он не будет запущен. |
isSuppressTriggers | bool | Не мягкое удаление. Если передано true, то переменная будет удалена из БД, иначе у удаляемого атрибута указывается признак что он удален, но в бд он остается |
Возвращает:
self - подтверждение удаления переменной.
Пример:
lead.deleteJsonAttrs('json_var1, json_var2, json_var3', null, null, true);
lead.forceDeleteJsonAttrs() и lead.forceDeleteJsonAttr()
Принудительное удаление json-переменных лида из БД
lead.forceDeleteJsonAttrs(string|object|array|null $attrs, ?int $ticketId = null, $scriptRequestParams = [], bool $isSuppressTriggers = false)
или
lead.forceDeleteJsonAttr(string|object|array|null $attrs, ?int $ticketId = null, $scriptRequestParams = [], bool $isSuppressTriggers = false)
Описание:
Удаляет json переменную из бота и БД.
Атрибуты:
Имя | Тип | Описание |
attrs | string|object|array|null | Строка, представляющая собой список названий переменных (разделитель запятая). Можно указать вместо списка json объект или массив |
ticketId | ?int | Передает ticket в запускаемый триггер, который подписан на событие изменения/удаления переменной |
scriptRequestParams | object | Передает дополнительный параметры в запускаемый триггер , который подписан на событие изменения/удаления переменной |
isSuppressTriggers | bool | Не мягкое удаление. Если передано true, то переменная будет удалена из БД, иначе у удаляемого атрибута указывается признак что он удален, но в бд он остается |
Возвращает:
self - подтверждение удаления переменной.
Пример:
lead.forceDeleteJsonAttrs('json_var1, json_var2, json_var3');
lead.isInStatus()
Проверка существования статуса у лида
lead.isInStatus(string $statusName)
Описание:
Проверить, что лид находится в статусе с указанным в методе именем.
Атрибуты:
Имя | Тип | Описание |
statusName | string | Наименование статуса |
Возвращает:
bool — подтверждение существования статуса.
lead.getStatusId()
Узнать id статуса лида
lead.getStatusId()
Описание:
Возвращает значение поля status_id лида.
Возвращает:
int — id статуса лида в форме числа
или
null — если у лида нет статуса.
lead.isTagExist() и lead.issetTag()
Проверить наличие тэга лида
lead.isTagExist($some_tag)
или
lead.issetTag($some_tag)
Описание:
Проверяет существование тега у лида.
Атрибуты:
Имя | Тип | Описание |
some_tag | string | Наименование тэга |
Возвращает:
bool - подтверждение существования тега.
Пример:
let TagExist = lead.isTagExist('тэг');
или
let TagExist = lead.issetTag('тэг');
lead.getTag()
Получить значение тэга лида
lead.getTag(string $key)
Описание:
Возвращает значение тэга лида по наименованию.
Атрибуты:
Имя | Тип | Описание |
key | string | Наименование тэга |
Возвращает:
string - если тэг активен
или
null - если тэг неактивен.
Пример:
let Tag = lead.getTag('тэг');
lead.getAllTags()
Получить массив всех тэгов лида
lead.getAllTags()
Описание:
Возвращает массив всех тэгов лида.
Возвращает:
array - массив наименований тэгов лида.
Пример:
let AllTags = lead.getAllTags();
let Tag2 = AllTags[1];
lead.addTags() и lead.addTag()
Добавление тэгов лида
lead.addTags(string|object|array|null $tags, ?int $ticketId = null, $scriptRequestParams = [], bool $isSuppressTriggers = false)
или
lead.addTag(string|object|array|null $tags, ?int $ticketId = null, $scriptRequestParams = [], bool $isSuppressTriggers = false)
Описание:
Добавляет тэг в бот.
Атрибуты:
Имя | Тип | Описание |
tags | string|object|array|null | Строка, представляющая собой список названий тэгов(разделитель запятая). Можно указать вместо списка json объект или массив |
ticketId | ?int | Передает ticket в запускаемый триггер, который подписан на событие изменения/удаления тэга |
scriptRequestParams | object | Передает дополнительный параметры в запускаемый триггер , который подписан на событие изменения/удаления тэга |
isSuppressTriggers | bool | Не мягкое удаление. Если передано true, то тэг будет удален из БД, иначе у удаляемого атрибута указывается признак что он удален, но в бд он остается |
Возвращает:
self - наименование созданного тэга.
Пример:
lead.addTags('new_tag', null, {"some_key": "some_value"});
lead.deleteTags() и lead.deleteTag()
Удаление тэгов лида
lead.deleteTags(string|object|array|null $tags, ?int $ticketId = null, $scriptRequestParams = [], bool $isForceDelete = false, bool $isSuppressTriggers = false)
или
lead.deleteTag(string|object|array|null $tags, ?int $ticketId = null, $scriptRequestParams = [], bool $isForceDelete = false, bool $isSuppressTriggers = false)
Описание:
Удаляет тэг из бота.
Атрибуты:
Имя | Тип | Описание |
tags | string|object|array|null | Строка, представляющая собой список названий тэгов (разделитель запятая). Можно указать вместо списка json объект или массив |
ticketId | ?int | Передает ticket в запускаемый триггер, который подписан на событие изменения/удаления тэга |
scriptRequestParams | object | Передает дополнительный параметры в запускаемый триггер , который подписан на событие изменения/удаления тэга |
isForceDelete | bool | Подавить запуск триггеров или нет, т.е. если передать true, и есть триггер подписанный на событие изменения/удаления тэга то он не будет запущен. |
isSuppressTriggers | bool | Не мягкое удаление. Если передано true, то тэг будет удален из БД, иначе у удаляемого атрибута указывается признак что он удален, но в бд он остается |
Возвращает:
self - подтверждение удаления тэга.
Пример:
lead.deleteTags('TAG_111, tag_222 , tag_333', null, null, true);
lead.forceDeleteTags() и lead.forceDeleteTag()
Принудительное удаление тэгов лидаиз БД
lead.forceDeleteTags(string|object|array|null $tags, ?int $ticketId = null, $scriptRequestParams = [], bool $isSuppressTriggers = false)
или
lead.forceDeleteTag(string|object|array|null $tags, ?int $ticketId = null, $scriptRequestParams = [], bool $isSuppressTriggers = false)
Описание:
Удаляет тэг из бота и БД.
Атрибуты:
Имя | Тип | Описание |
attrs | string|object|array|null | Строка, представляющая собой список названий переменных (разделитель запятая). Можно указать вместо списка json объект или массив |
ticketId | ?int | Передает ticket в запускаемый триггер, который подписан на событие изменения/удаления тэга |
scriptRequestParams | object | Передает дополнительный параметры в запускаемый триггер , который подписан на событие изменения/удаления тэга |
isSuppressTriggers | bool | Не мягкое удаление. Если передано true, то тэг будет удален из БД, иначе у удаляемого атрибута указывается признак что он удален, но в бд он остается |
Возвращает:
self - подтверждение удаления тэга.
Пример:
lead.forceDeleteTags('TAG_111, tag_222 , tag_333');
lead.setForwarded()
Переключить на оператора
lead.setForwarded(bool|int $state)
Описание:
Установка ($state == true) или сброс ($state == false) у лида признака “Переведён на оператора”.
Атрибуты:
Имя | Тип | Описание |
state | bool|int | При $state = true установка и при $state = false сброс признака “Переведён на оператора” |
Возвращает:
self - подтверждение установки или сброса в формате используемом при вызове метода.
lead.getPersonId()
Получить id персоны
lead.getPersonId()
Описание:
Возвращает id персоны лида.
Возвращает:
int - id персоны в формате числа
или
null - если персоны нет.
Пример:
let PersonId = lead.getPersonId();
lead.setAttr('PersonId', PersonId);
lead.setPersonId()
Привязать персону к лиду
lead.setPersonId(?int $personId)
Описание:
Привязывает к лиду персону с соответствующим id.
Атрибуты:
Имя | Тип | Описание |
personId |
int | Id персоны |
Возвращает:
bool - подтверждение успешной привязки персоны к лиду.
Пример:
lead.setPersonId(167435);
lead.createPersonForCurrentLead()
Создать персону для лида
lead.createPersonForCurrentLead($data)
Описание:
Создает персону для текущего лида в контексте которого запущен v8-скрипт.
Атрибуты:
Имя | Тип | Описание |
data |
json | Данные о персоне в формате json. Возможные поля расписаны ниже |
person_role_id |
integer | Id роли |
is_external |
bool |
Если не устанавливать по умолчанию будет установлено 1, означающее что персона является клиентом. А 0 означает что персона является работником бизнеса |
user_id |
integer | Id пользователя, привязываемого к персоне |
firstname |
string|null | Имя персоны |
lastname |
string|null | Фамилия персоны |
middlename |
string|null | Отчество персоны |
|
string|null | Адрес электронной почты персоны |
phone |
string|null | Номер телефона персоны |
organization_name |
string|null | Название организации |
organization_address |
string|null | Адрес организации |
comment |
string|null | Комментарий к персоне |
Возвращает:
int - id созданной персоны в формате числа.
Пример:
let newPersonId = lead.createPersonForCurrentLead({
'is_external': 1,
'firstname': 'Иван',
'lastname': 'Иванов'
})
lead.isContextExist() и lead.issetContext()
Проверить наличие контекста лида
lead.isContextExist(string $key)
или
lead.issetContext(string $key)
Описание:
Проверяет существование контекста у лида.
Атрибуты:
Имя | Тип | Описание |
key | string | Наименование контекста |
Возвращает:
bool - подтверждение существования контекста.
Пример:
let ContextExist = lead.isContextExist('контекст');
или
let ContextExist = lead.issetContext('контекст');
lead.getContext()
Получить значение контекста лида
lead.getContext(string $key)
Описание:
Возвращает значение контекста лида по наименованию.
Атрибуты:
Имя | Тип | Описание |
key | string | Наименование контекста |
Возвращает:
string - если контекст активен
или
null - если контекст неактивен.
Пример:
let Context = lead.getContext('контекст');
lead.getAllContexts()
Получить массив всех контекстов лида
lead.getAllContexts()
Описание:
Возвращает массив всех контекстов лида.
Возвращает:
array - массив наименований контекстов лида.
Пример:
let AllContexts = lead.getAllContexts();
let Context2 = AllContexts[1];
lead.setActiveNlpIntegrationByCode()
Присвоить интеграцию лиду по коду
lead.setActiveNlpIntegrationByCode(?string $integrationCode)
Описание:
Присваивает интеграцию лиду в соответствии с кодом интеграции.
Атрибуты:
Имя | Тип | Описание |
integrationCode | string | Код интеграции |
Возвращает:
bool - подтверждение присвоения интеграции.
lead.canAutoForward()
Узнать доступно ли авто-назначение оператора в данном скрипте
lead.canAutoForward()
Описание:
Функция необходима для исключения рекурсивного вызова назначения диалога на оператора, а также для исключения выполнения авто-назначения диалога на оператора, если оператор сам подключается к диалога из контакт-центра.
Результат выполнения данной функции аналогичен результату выполнения функции bot.canAutoForward(), функция в bot первична, в лиде функция добавлена для удобства.
Если оператор сам выполняет подключение к диалогу из контакт-центра, то результат функции аналогичен проверке:
return bot.getForwardEventType() !== 'forwarded_by_operator';
Но при этом lead.canAutoForward(): bool гарантирует что назначение заявки на оператора не вызвано рекурсивно.
Возвращает:
bool - подтверждение доступа к авто-назначению.
lead.getNextOperators()
Вернуть список следующих операторов
lead.getNextOperators(string $departmentCode = null, bool $isOnline = true, int|null $limit = 1, bool $useLocks = true)
Описание:
Возвращает список следующих операторов.
Полученный список будет отсортирован, по:
- Кол-ву диалогов на операторе;
- Дате последнего назначения/принятия диалога;
- ID оператора.
Атрибуты:
Имя | Тип | Описание |
departmentCode | string | Код отдела |
isOnline | bool | Должны ли операторы быть онлайн |
limit | int|null | Лимит возвращенных операторов. Чтобы получить всех операторов, указываем $limit=null |
useLocks | bool | Использовать ли блокировки |
Возвращает:
int - список операторов
или
null - если нет операторов.
lead.assignDialogToNextOperator()
Назначить диалог на следующего оператора
lead.assignDialogToNextOperator(string|null $departmentCode = null, bool $isOnline = true, bool $isForwardIfOperatorNotFound = true, bool $useLocks = true)
Описание:
Назначает диалог на следующего оператора полученного с помощью getNextOperators.
Варианты откуда может запускаться:
- оператор сам подключился к КЦ и в системном скрипте есть вызов данной функции - игнорируем ее вызов;
- функцию вызвали в другом скрипте и она также есть в системном скрипте - игнорируем ее вызов только из системного скрипта;
- функцию вызвали в системном скрипте - не игнорируем ее вызов.
Если вызываем функцию из системного скрипта перевода на оператора, то данная функция не выполняет перевод (так как он уже выполнен на момент запуска функции) и также не запускает системный скрипт (так как он уже запущен на момент запуска функции) - для этого есть внутренние механизмы отслеживания, откуда запущена функция, и по сути это исключает рекурсивный запуск функций, для этого и введена новая функция bot / lead.canAutoForward на самом деле выполнять данную проверку canAutoForward смысла нет, так как она выполняется автоматически внутри функций назначения оператора и автоматом отсечет рекурсивный вызов, но где может понадобиться использование canAutoForward - это для написания JavaScript условия - нужно ли отсылать уведомление лиду, о том что скрипт перевод на оператора: пример вызываем назначение на оператора в обычном скрипте, и в этом же скрипте уведомляем о то, что мы перевели на оператора, тогда при запуске системного скрипта Перевод на оператора вывод такого же сообщения нужно исключить.
Атрибуты:
Имя | Тип | Описание |
departmentCode | string | Код отдела |
isOnline | bool | Должны ли операторы быть онлайн |
isForwardIfOperatorNotFound | bool | Продолжить если оператор не найден |
useLocks | bool | Использовать ли блокировки |
Возвращает:
int - оператора
или
null - если не удалось назначить.
lead.assignDialogToOperator()
Назначить диалог на указанного оператора
lead.assignDialogToOperator(int|null $operatorId, bool $isForwardIfOperatorNotFound = true, bool $useLocks = true)
Описание:
Назначает диалог на указанного в методе оператора.
Если вызываем функцию из системного скрипта перевода на оператора, то данная функция не выполняет перевод (так как он уже выполнен на момент запуска функции) и также не запускает системный скрипт (так как он уже запущен на момент запуска функции).
Если вызываем функцию из обычного скрипта, то в данной точке сразу будет вызван системный скрипт (если он есть). Системный скрипт можно не создавать и обрабатывать все в точке вызова (можно через v8 плагина) или в отдельном обычном скрипте. Если в системном скрипте и скрипте в котором вызывает данную функцию есть отправка сообщений то необходимо вызывать bot.disableBuffer(), чтобы не нарушать последовательность сообщений. Но лучше отправлять сообщения только в одном из скриптов.
Атрибуты:
Имя | Тип | Описание |
operatorId | string | ID оператора |
limit | int|null | Лимит возвращенных операторов. Чтобы получить всех операторов, указываем $limit=null |
useLocks | bool | Использовать ли блокировки |
Возвращает:
int - оператора
или
null - если не удалось назначить оператора.
lead.getLastRequest()
Получить объект с параметрами последнего реквеста
lead.getLastRequest()
Описание:
Находит последний реквест и возвращает объект с его параметрами.
Возвращает:
ScriptRequest — последний реквест.
lead.getMessengerCode()
Получить буквенное обозначение текущего мессенджера канала
lead.getMessengerCode()
Описание:
Возвращает буквенное обозначение текущего мессенджера канала.
Возвращает:
string - буквенное обозначение текущего мессенджера канала.
Коды которые может возвращать данная функция:
- 'unknown'
- 'avito'
- 'apple_business_chat'
- 'facebook'
- 'instagram'
- 'jivoWidget'
- 'livechatWidget'
- 'odnoklassniki'
- 'skype'
- 'telegram'
- 'twitter'
- 'viber'
- 'vk'
- 'wechat'
- 'whatsapp'
- 'youla'
- 'metabotWidget'
- 'webim'
lead.getIdentification()
Получить идентификатор лида во внешней системе
lead.getIdentification()
Описание:
Возвращает идентификатор лида во внешней системе, т.е. в мессенджере, например для Telegram - это id чата клиента.
Возвращает:
string - идентификатор лида во внешней системе в формате строки
или
null - если идентификатор не найден.
lead.getIdentificationEntity()
Получить дополнительный идентификатор лида во внешней системе
lead.getIdentificationEntity()
Описание:
Возвращает дополнительный идентификатор лида во внешней системе, например используется для Bitrix24 – и возвращает ‘LEAD’ / ‘DEAL’.
Возвращает:
string - дополнительный идентификатор лида во внешней системе в формате строки
или
null - если нет составного идентификатора лида.
lead.getMessenger()
Получить текущий мессенджер
lead.getMessenger()
Описание:
Метод для получения обозначения текущего мессенджера канала.
Коды которые может возвращать данная функция:
- Unknown - 0
- Avito - 1
- Apple business chat - 17
- Facebook - 2
- Instagram - 3
- JivoWidget - 15
- LivechatWidget - 4
- Jdnoklassniki - 16
- Skype - 5
- Telegram - 6
- Twitter - 7
- Viber - 8
- VK - 9
- Wechat - 12
- Whatsapp - 10
- Юла - 11
- MetabotWidget - 13
- Webim - 14
Возвращает:
int - код канала.
lead.getAllData()
Получить все данные лида
lead.getAllData()
Описание:
Возвращает все данные лида.
Возвращает:
array - значение данных лида в формате массива:
- id - id лида;
- name - имя лида;
- identification - внешний id лида;
- identification_entity - внешний id сущности;
- person_id - id персоны лида;
- manager_id - id менеджера привязанного к лиду;
- bot_id - id бота лида;
- channel_id - id канала лида;
- lang_code - код языка;
- status_id - id статуса лида;
- extra
- last_message_payload
- identification - id последнего сообщения;
- event_name - код события, например, user_uttered, когда последнее сообщение - ответ пользователя;
- text - текст последнего сообщения;
- payload - данные последнего сообщения;
- timestamp - время отправки;
- session_id - id сессии;
- socket_id - id сокета;
- last_message_payload
- is_mute - включен ли бот для лида;
- last_message_date - дата последнего сообщения;
- active_nlp_integration_id - id активной NLP интеграции;
- last_activity - время последней активности;
- last_response - код последнего ответа;
- messenger - id мессенджера;
- bot_debug_level - уровень отладки бота;
- created_at - время создания;
- updated_at - время обновления;
- dialog_id - id диалога;
- unread_count - количество непрочитанных оператором сообщений;
- last_message - последнее сообщение;
- last_message_botlog_id - id последнего сообщения в логе.
Пример:
let extra = lead.getAllData();
lead.setData()
Установить значение данных лида
lead.setData(string $key, $value)
Описание:
Устанавливает значение данных лида по ключу.
Атрибуты:
Имя | Тип | Описание |
key | string | Ключ данных лида |
value | mixed | Значение данных |
В качестве ключа можно указать:
- id - id лида;
- name - имя лида;
- identification - внешний id лида;
- identification_entity - внешний id сущности;
- person_id - id персоны лида;
- manager_id - id менеджера привязанного к лиду;
- bot_id - id бота лида;
- channel_id - id канала лида;
- lang_code - код языка;
- status_id - id статуса лида;
- extra
- last_message_payload
- identification - id последнего сообщения;
- event_name - код события, например, user_uttered, когда последнее сообщение - ответ пользователя;
- text - текст последнего сообщения;
- payload - данные последнего сообщения;
- timestamp - время отправки;
- session_id - id сессии;
- socket_id - id сокета;
- last_message_payload
- is_mute - включен ли бот для лида;
- last_message_date - дата последнего сообщения;
- active_nlp_integration_id - id активной NLP интеграции;
- last_activity - время последней активности;
- last_response - код последнего ответа;
- messenger - id мессенджера;
- bot_debug_level - уровень отладки бота;
- created_at - время создания;
- updated_at - время обновления;
- dialog_id - id диалога;
- unread_count - количество непрочитанных оператором сообщений;
- last_message - последнее сообщение;
- last_message_botlog_id - id последнего сообщения в логе.
Возвращает:
self - значение данных лида в формате, в котором они находятся в сущности.
Пример:
let person_id = lead.setData('person_id', 34);
lead.isInlineButtonsAvailable()
Проверка включения инлайн кнопок
lead.isInlineButtonsAvailable()
Описание:
Проверяет включены ли инлайн кнопки.
Возвращает:
bool - 0, если не включены, 1, если включены
или
null - если таких данных не существует.
Пример:
let inlineButtons = lead.isInlineButtonsAvailable();
lead.isInlineButtonsAvailableGeneralChannelSetting()
Получить настройки кнопок канала
lead.isInlineButtonsAvailableGeneralChannelSetting()
Описание:
Возвращает настройки кнопок текущего канала лида.
Возвращает:
bool - 0, если не включены, 1, если включены
или
null - если таких данных не существует.
Пример:
let inlineButtons = lead.isInlineButtonsAvailableGeneralChannelSetting();
lead.getIntAttr()
Получить значение числовой переменной лида
lead.getIntAttr(string $key, ?int|null $default = 0)
Описание:
Возвращает значение уже существующей числовой переменной лида.
Атрибуты:
Имя | Тип | Описание |
key | string | Наименование переменной |
default | int | Дефолтное значение переменной |
Возвращает:
int - числовое значение запрашиваемой переменной
или
null - если переменная не была найдена.
Пример:
let lead_attribute_value = lead.getIntAttr('lead_attribute', 2);
lead.getFloatAttr()
Получить значение float переменной лида
lead.getFloatAttr(string $key, ?float|null $default = 0.0)
Описание:
Возвращает значение уже существующей float переменной лида.
Атрибуты:
Имя | Тип | Описание |
key | string | Наименование переменной |
default | float | Дефолтное значение |
Возвращает:
float - значение запрашиваемой float переменной
или
null - если переменная не была найдена.
Пример:
let lead_attribute_value = lead.getFloatAttr('lead_attribute', 0.1);
lead.getBoolAttr()
Получить значение bool переменной лида
lead.getBoolAttr(string $key, ?bool|null $default = false)
Описание:
Возвращает значение уже существующей bool переменной лида.
Атрибуты:
Имя | Тип | Описание |
key | string | Наименование переменной |
default | bool | Дефолтное значение |
Возвращает:
bool - значение запрашиваемой bool переменной
или
null - если переменная не была найдена.
Пример:
let lead_attribute_value = lead.getBoolAttr('lead_attribute', true);
lead.getJsonAttr()
Получить значение JSON переменной лида
lead.getJsonAttr(string $key)
Описание:
Возвращает значение уже существующей JSON переменной лида.
Атрибуты:
Имя | Тип | Описание |
key | string | Наименование переменной |
Возвращает:
mixed - значение запрашиваемой JSON переменной
или
null - если переменная не была найдена.
Пример:
let lead_attribute_value = lead.getJsonAttr('lead_attribute');
lead.getAllJsonAttrs()
Получить значение всех JSON переменных лида
lead.getAllJsonAttrs()
Описание:
Возвращает значение всех JSON переменных лида.
Возвращает:
array - массив JSON переменных лида.
Пример:
let lead_attribute_value = lead.getAllJsonAttrs();
lead.setJsonAttr()
Установить значение JSON переменной лида
lead.setJsonAttr(string $key, $value)
Описание:
Устанавливает значение JSON переменной лида.
Атрибуты:
Имя | Тип | Описание |
key | string | Наименование переменной |
value | mixed | JSON значение переменной |
Возвращает:
self - объект того же типа и значения, что задан в методе.
Пример:
let lead_attribute_value = lead.setJsonAttr('lead_attribute', {
"id": 2415,
"name": "Имя"
});
lead.issetJsonAttr() и lead.isJsonAttrKeyExist()
Проверить наличие JSON переменной лида
lead.issetJsonAttr(string $key)
и
lead.isJsonAttrKeyExist(string $key)
Описание:
Проверяет наличие JSON переменной лида.
Атрибуты:
Имя | Тип | Описание |
key | string | Наименование переменной |
Возвращает:
bool - подтверждение существования переменной.
Пример:
let lead_attribute_value = lead.issetJsonAttr('lead_attribute');
или
let lead_attribute_value = lead.isJsonAttrKeyExist('lead_attribute');
lead.setAllLiveTexAttrs()
Установить значение всех LiveTex переменных лида
lead.setAllLiveTexAttrs(string $value)
Описание:
Устанавливает значение всех LiveTex переменных лида.
Атрибуты:
Имя | Тип | Описание |
value | string | Значение переменной |
Возвращает:
self - объект того же типа и значения, что задан в методе.
Пример:
let lead_attribute_value = lead.setAllLiveTexAttrs('lead_value');
lead.setLiveTexAttr()
Установить значение LiveTex переменной лида
lead.setLiveTexAttr(string $key,string $value)
Описание:с
Устанавливает значение LiveTex переменной лида.
Атрибуты:
Имя | Тип | Описание |
key | string | Наименование переменной |
value | string | Значение переменной |
Возвращает:
self - объект того же типа и значения, что задан в методе.
Пример:
let lead_attribute_value = lead.setLiveTexAttr('lead_attribute', "lead_value");
lead.getLiveTexAttr()
Получить значение LiveTex переменной лида
lead.getLiveTexAttr(string $key)
Описание:
Возвращает значение уже существующей LiveTex переменной лида.
Атрибуты:
Имя | Тип | Описание |
key | string | Наименование переменной |
Возвращает:
mixed - значение запрашиваемой переменной
или
null - если переменная не была найдена.
Пример:
let lead_attribute_value = lead.getLiveTexAttr('lead_attribute');
lead.getAllLiveTexAttrs()
Получить значение всех LiveTex переменных лида
lead.getAllLiveTexAttrs()
Описание:
Возвращает значение всех LiveTex переменных лида.
Возвращает:
array - массив LiveTex переменных лида.
Пример:
let lead_attribute_value = lead.getAllLiveTexAttrs();
lead.setTag()
Установить значение тэга лида
lead.setTag(string $key, $value)
Описание:
Устанавливает значение тэга лида по наименованию.
Атрибуты:
Имя | Тип | Описание |
key | string | Наименование тэга |
value | mixed | Значение тэга |
Возвращает:
self - значение, указанное в методе.
Пример:
let Tag = lead.setTag('регистрация');
lead.setContext()
Установить значение контекста лида
lead.setContext(string $key, $value)
Описание:
Устанавливает значение контекста лида по наименованию.
Атрибуты:
Имя | Тип | Описание |
key | string | Наименование контекста |
value | mixed | Значение контекста |
Возвращает:
self - значение, указанное в методе.
Пример:
let Con = lead.setContext('контекст', "регистрация");
lead.getAllStatuses()
Узнать все статусы лида
lead.getAllStatuses()
Описание:
Возвращает все статусы лида.
Возвращает:
array — id статусов лида в формате массива.
lead.getAllStatusesIndexedByName()
Узнать все наименования статусов лида
lead.getAllStatusesIndexedByName()
Описание:
Возвращает все наименования статусов лида.
Возвращает:
array — массив наименований статусов лида.
lead.setStatusId()
Установить id статуса лида
lead.setStatusId(int $statusId, string $name)
Описание:
Устанавливает id статуса лида.
Атрибуты:
Имя | Тип | Описание |
statusId | int | Id статуса |
name | string | Наименование статуса |
Возвращает:
self — id статуса лида.
lead.setStatusName()
Установить наименование статуса лида
lead.setStatusName(string $name)
Описание:
Устанавливает наименование статуса лида.
Атрибуты:
Имя | Тип | Описание |
name | string | Наименование статуса |
Возвращает:
self — наименование статуса лида.
lead.getStatusName()
Узнать наименование статуса лида
lead.getStatusName()
Описание:
Возвращает наименование статуса лида.
Возвращает:
string — наименование статуса лида в формате строки.
lead.setStatus()
Установить статус лида
lead.setStatus(int $statusId, string $name)
Описание:
Устанавливает статус лида.
Атрибуты:
Имя | Тип | Описание |
statusId | int | Id статуса |
name | string | Наименование статуса |
Возвращает:
self — id статуса лида.
lead.setStatusById()
Установить статус лида по id
lead.setStatusById(int $statusId)
Описание:
Устанавливает статус лида по id.
Атрибуты:
Имя | Тип | Описание |
statusId | int | Id статуса |
Возвращает:
self — id статуса.
lead.issetStatusById()
Проверить существует ли статус у лида по id
lead.issetStatusById(string $id)
Описание:
Проверяет существует ли статус у лида по id.
Атрибуты:
Имя | Тип | Описание |
id | string | Id статуса |
Возвращает:
bool — подтверждение существования статуса.
lead.issetStatusByName()
Проверить существует ли статуса у лида по наименованию
lead.issetStatusByName(string $name)
Описание:
Проверяет существует ли статуса у лида по наименованию.
Атрибуты:
Имя | Тип | Описание |
name | string | Наименование статуса |
Возвращает:
bool — подтверждение существования статуса.
lead.getStatusIdByName()
Узнать id статуса лида по наименованию
lead.getStatusIdByName(string $statusName)
Описание:
Возвращает id статуса лида по наименованию.
Атрибуты:
Имя | Тип | Описание |
statusName | string | Наименование статуса |
Возвращает:
int — id статуса.
lead.setStatusByName()
Установить статус лида по наименованию
lead.setStatusByName(string $statusName)
Описание:
Устанавливает статус лида по наименованию.
Атрибуты:
Имя | Тип | Описание |
statusName | string | Наименование статуса |
Возвращает:
self — наименование статуса лида.
lead.setActiveNlpIntegrationById()
Присвоить интеграцию лиду по id
lead.setActiveNlpIntegrationById(int|null $nlpIntegrationId)
Описание:
Присваивает интеграцию лиду по id.
Атрибуты:
Имя | Тип | Описание |
nlpIntegrationId | int | Id интеграции |
Возвращает:
bool - подтверждение присвоения интеграции.
lead.hasActiveNlpIntegration()
Проверить активна ли интеграция
lead.hasActiveNlpIntegration()
Описание:
Проверяет активна ли интеграция.
Возвращает:
bool - подтверждение активности интеграции.
lead.getActiveNlpIntegrationId()
Получить интеграцию по id
lead.getActiveNlpIntegrationId(int|null $nlpIntegrationId)
Описание:
Возвращает интеграцию по id.
Атрибуты:
Имя | Тип | Описание |
nlpIntegrationId | int | Id интеграции |
Возвращает:
int - id интеграции
или
null - если таких данных нет.
lead.getActiveNlpIntegrationCode()
Получить интеграцию по коду
lead.getActiveNlpIntegrationCode(string|null $integrationCode)
Описание:
Возвращает интеграцию по коду.
Атрибуты:
Имя | Тип | Описание |
integrationCode | string | Код интеграции |
Возвращает:
string - код интеграции
или
null - если таких данных нет.
lead.getActiveOrFirstNlpIntegrationCode()
Получить активную или первую интеграцию по коду
lead.getActiveOrFirstNlpIntegrationCode(string|null $integrationCode)
Описание:
Возвращает активную или первую интеграцию по коду.
Атрибуты:
Имя | Тип | Описание |
integrationCode | string | Код интеграции |
Возвращает:
string - код интеграции
или
null - если таких данных нет.
lead.getActiveOrFirstNlpIntegrationId()
Получить активную или первую интеграцию по id
lead.getActiveOrFirstNlpIntegrationId(int|null $nlpIntegrationId)
Описание:
Возвращает активную или первую интеграцию по id.
Атрибуты:
Имя | Тип | Описание |
nlpIntegrationId | int | Id интеграции |
Возвращает:
int - id интеграции
или
null - если данные не найдены.
lead.getForwardEventTypeForFB()
Получить тип события для ФБ
lead.getForwardEventTypeForFB()
Описание:
Возвращает тип события для ФБ.
Возвращает:
string - тип события интеграции
или
null - если таких данных нет.
lead.getLang()
Получить язык установленный в бизнесе
lead.getLang()
Описание:
Возвращает язык установленный в бизнесе.
Возвращает:
string - код языка
или
null - если таких данных нет.
lead.setLang()
Установить язык в бизнесе
lead.setLang(string|null $langCode)
Описание:
Устанавливает язык в бизнесе.
Атрибуты:
Имя | Тип | Описание |
langCode | string | Код языка |
Возвращает:
string - код языка
или
null - если таких данных не существует.
lead.isLangExist()
Проверить существует ли язык
lead.isLangExist(string $langCode, bool|null $isEnabled = true)
Описание:
Проверяет существует ли язык.
Атрибуты:
Имя | Тип | Описание |
langCode | string | Код языка |
isEnabled | bool | Активность языка |
Возвращает:
bool - подтверждения существования языка.