Персоны
Персона — это карточка с данными о пользователе. К персоне привязывается активный лид пользователя.
Меню персон
В меню персон можно попасть из раздела Заявки и персоны в верхнем меню бота, нажав в выпадающем списке на Персоны.
После перехода в меню персон открывается таблица содержащая всех персон бизнеса.
Здесь можно просматривать таблицу, создавать новых персон (1), редактировать информацию о уже существующих и удалять их (2), настраивать фильтры для удобного поиска нужных персон (3).
Создание персоны
При нажатии на кнопку Создать открывается окно настройки персоны со следующими полями:
- Имя - имя персоны;
- Фамилия - фамилия персоны;
- Отчество - отчество персоны;
- E-mail - адрес электронной почты персоны;
- Телефон - номер телефона персоны;
- Сотрудник/Клиент - опция в которой можно выбрать кем является персона в боте: Сотрудником бизнеса (внутренней персоной) или Клиентом (внешней персоной);
- Название организации - название организации, в которой работает персона;
- Адрес организации - адрес организации, в которой работает персона;
- Роль - выпадающий список, в котором следует выбрать роль персоны существующую в боте;
- Web-пользователь - выпадающий список, в котором можно привязать персону к web-пользователю;
- Комментарий - описание персоны или дополнительная информация.
После создания персона появится в таблице в меню персон с автоматически заданным ей Id. Тут ее можно редактировать и удалить.
Редактирование персон включает в себя те же поля, что при создании.
Фильтры
Для быстрого и удобного поиска в меню персон существуют фильтры. Настраивая их, можно сократить список персон по соответствующим параметрам.
Фильтры есть для всех полей существующих в окне создания персоны, а так же для времени создания и обновления персоны.
После выбора фильтров нужно нажать на кнопку Применить фильтр, и тогда в таблице останутся только персоны соответствующие заданным параметрам. Или же можно нажать на кнопку Сбросить фильтр и в таблице будут показаны все существующие в бизнесе персоны.
Импорт
Если у вас уже есть таблица персон, то вы можете импортировать ее из .csv файла при помощи функции Импорт в правом верхнем углу меню персон:
При нажатии открывается окно импорта персон с возможностью выбрать файл .csv и загрузить его.
После загрузки все персоны из файла будут добавлены в таблицу меню персон.
JS методы для работы с персонами
К персонам можно обращаться из JS следующими методами:
Название метода | Метод |
Создание персоны | bot.createPerson($data): ?int |
Поиск персоны | bot.findPersons($where = [], $orderBy = [], ?int $limit = null, ?int $offset = null, bool $isLogErrorIfManyPersonsFound = false): array |
Обновить персону по id |
bot.updatePersonById(int $personId, $data): bool |
Удалить персону по id |
bot.deletePersonById(int $personId): bool |
Получить id персоны | lead.getPersonId(): ?int |
Привязать персону к лиду | lead.setPersonId(?int $personId): bool |
Создать персону для лида |
lead.createPersonForCurrentLead($data): ?int |
|
|
Обновить персону |
person.update($data): bool |
Удалить персону |
person.delete(): bool |
Получить все поля персоны |
person.getAllData(): array |
Установить поле персоны |
person.setData(string $key, $value): self |
Получить значение данных персоны |
person.getData(string $key) |
Проверить наличие данных по персоне |
person.issetData(string $key): bool |
person.isDataExist(string $key): bool | |
Получить ID персоны |
person.getId(): ?int |
Получить полное имя персоны |
person.getFullName(): string |
Получить ID роли персоны |
person.getRoleId(): ?int |
Получить название роли персоны |
person.getRoleName(): string |
Получить заголовок роли персоны |
person.getRoleTitle(): string |
Получить форматированное название роли персоны. |
person.getRoleFormattedTitle(): string |
Получить номер телефона персоны |
person.getPhone(): ?string |
Установить номер телефона персоны |
person.setPhone(?string $phone): bool |
Получить почту персоны |
person.getEmail(): ?string |
Если у персоны нет роли ИЛИ у лида нет персоны то v8 возвращает Роль персоны по умолчанию (настраивается в боте). Это применимо как к получению имени роли так и ее ID.
Каждый из методов подробнее расписан ниже.
Создание персоны
bot.createPerson($data)
Описание:
Создает в боте персону с указанными полями.
Атрибуты:
Имя | Тип | Описание |
data |
json | Данные о персоне в формате json. Возможные поля расписаны ниже |
lead_id |
integer|null | Id лида, к которому будет привязана персона |
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 = bot.createPerson({
'lead_id': 2356,
'is_external': 1,
'lastname': 'Иванов'
});
Поиск персоны
bot.findPersons($where = [], $orderBy = [], ?int $limit = null, ?int $offset = null, bool $isLogErrorIfManyPersonsFound = false)
Описание:
Находит персоны в соответствии с указанными параметрами и возвращает их массив.
Атрибуты:
Имя | Тип | Описание |
where |
array | Параметр по которому будет проверяться соответствие с найденными персонами |
orderBy |
array | Параметр сортирующий найденные персоны |
limit |
?int | Максимальное количество персон, которое будет возвращено |
offset |
?int | Параметр показывающий с какой по счету найденной персоны начать возвращать значения |
isLogErrorIfManyPersonsFound |
bool | Возвращать ли лог с ошибкой, если найдено больше персон чем указано в limit |
Возвращает:
array - массив с id всех найденных персон.
Пример:
//let persons = bot.findPersons([["firstname", "Alex"]], {}, null, null, true);
//let persons = bot.findPersons([["firstname", "Alex"], ["is_external", "=", 0]], {}, null, null, true);
//let persons = bot.findPersons([["persons.firstname", "=", "Alex"], ["persons.is_external", "=", 0], ["person_roles.name", "=", "test"]], {}, null, null, true);
let persons = bot.findPersons([["firstname", "Alex"]]);
for (let i = 0; i < persons.length; i++) {
lead.setAttr('person_' + i + '_role_name', persons[i].getRoleName());
}
lead.setAttr('found_persons_count', persons.length);
Обновить персону по id
bot.updatePersonById(int $personId, $data)
Описание:
Обновляет поля персоны в соответствии с БД.
Атрибуты:
Имя | Тип | Описание |
personId |
int | ID персоны |
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 | Комментарий к персоне |
Возвращает:
bool - подтверждение обновления данных.
Пример:
bot.updatePersonById(15624, {
'is_external': 1,
'firstname': 'Иван',
'lastname': 'Иванов'
});
Удалить персону по id
bot.deletePersonById(int $personId)
Описание:
Удаляет персону по id.
Атрибуты:
Имя | Тип | Описание |
personId |
int | ID персоны |
Возвращает:
bool - подтверждение удаления персоны.
Пример:
bot.deletePersonById(24376);
Получить id персоны
lead.getPersonId()
Описание:
Возвращает id персоны лида.
Возвращает:
int - id персоны в формате числа.
Пример:
let PersonId = lead.getPersonId();
lead.setAttr('PersonId', PersonId);
Привязать персону к лиду
lead.setPersonId(?int $personId)
Описание:
Привязывает к лиду персону с соответствующим id.
Атрибуты:
Имя | Тип | Описание |
personId |
int | Id персоны |
Возвращает:
bool - подтверждение успешной привязки персоны к лиду.
Пример:
lead.setPersonId(167435);
Создать персону для лида
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': 'Иванов'
})
Обновить персону
person.update($data)
Описание:
Обновляет данные персоны в соответствии с БД.
Атрибуты:
Имя | Тип | Описание |
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 | Комментарий к персоне |
Возвращает:
bool - подтверждение обновления данных.
Пример:
person.update({
'is_external': 1,
'firstname': 'Иван',
'lastname': 'Иванов'
});
Удалить персону
person.delete()
Описание:
Удаляет персону лида.
Возвращает:
bool - подтверждение удаления персоны.
Получить все поля персоны
person.getAllData()
Описание:
Возвращает значения всех полей персоны лида в виде массива.
Возвращает:
array - массив всех значений полей персоны.
Пример:
let AllData = person.getAllData();
let Data2 = AllData[1];
Установить поле персоны
person.setData(string $key, $value)
Описание:
Заполняет указанное поле персоны лида указанным значением.
Атрибуты:
Имя | Тип | Описание |
key |
string | Ключ наименование поля |
value |
mixed | Значение вводимое в поле |
В качестве ключа можно указать:
- 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 - дата удаления;
- все системные поля персоны (по английски).
Возвращает:
self - значение отредактированного поля в соответствующем формате.
Пример:
person.setData('email', 'user@mail.ru');
Получить значение данных персоны
person.getData(string $key)
Описание:
Возвращает значение данных персоны по ключу или названию поля БД.
Атрибуты:
Имя | Тип | Описание |
key |
string | Ключ наименование поля |
В качестве ключа можно указать:
- 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 - дата удаления;
- все системные поля персоны (по английски).
Возвращает:
self - значение запрашиваемого поля в соответствующем формате.
Пример:
let createdAt = person.getData('created_at');
Проверить наличие данных по персоне
person.issetData(string $key)
или
person.isDataExist(string $key)
Описание:
Проверяет существование данных персоны лида.
Атрибуты:
Имя | Тип | Описание |
key |
string | Ключ наименование поля |
В качестве ключа можно указать:
- id - id персоны;
- business_id - id бизнеса;
- bot_id - id бота;
- person_role_id - id роли;
- is_external - значение поля Сотрудник/Клиент;
- user_id - id пользователя;
- firstname - имя;
- lastname - фамилия;
- middlename - отчество;
- email - адрес электронной почты;
- phone - номер телефона;
- comment - комментарий;
- created_at - дата создания;
- updated_at - дата последнего редактирования;
- deleted_at - дата удаления;
- все системные поля персоны (по английски).
Возвращает:
bool - подтверждение существования данных.
Пример:
let DataExist = person.issetData('phone');
или
let DataExist = person.isDataExist('phone');
Получить ID персоны
person.getId()
Описание:
Возвращает id персоны привязанной к лиду.
Возвращает:
int - id персоны в формате числа.
Пример:
let PersonId = person.getId();
lead.setAttr('PersonId', PersonId);
Получить полное имя персоны
person.getFullName()
Описание:
Возвращает полное имя персоны лида в виде Фамилия + Имя + Отчество.
Возвращает:
string - полное имя персоны.
Пример:
let PersonName = person.getFullName();
lead.setAttr('PersonName', PersonName);
Получить ID роли персоны
person.getRoleId()
Описание:
Возвращает id роли привязанной к персоне лида.
Возвращает:
int - id роли персоны в формате числа.
Пример:
let RoleId = person.getRoleId();
lead.setAttr('RoleId', RoleId);
Получить название роли персоны
person.getRoleName()
Описание:
Возвращает название роли привязанной к персоне лида.
Возвращает:
string - название роли персоны.
Пример:
let RoleName = person.getRoleName();
lead.setAttr('RoleName', RoleName);
Получить заголовок роли персоны
person.getRoleTitle()
Описание:
Возвращает заголовок роли привязанной к персоне лида.
Возвращает:
string - заголовок роли персоны.
Пример:
let RoleTitle = person.getRoleTitle();
lead.setAttr('RoleTitle', RoleTitle);
Получить форматированное название роли персоны
person.getRoleFormattedTitle()
Описание:
Возвращает форматированное название роли персоны лида.
Будет возвращено:
- Заголовок роли, если он указан, иначе
- Имя роли, если оно указано, иначе
- ID роли.
Возвращает:
string - форматированное название роли персоны.
Пример:
let FormattedTitle = person.getRoleFormattedTitle();
lead.setAttr('FormattedTitle', FormattedTitle);
Получить номер телефона персоны
person.getPhone()
Описание:
Находит номер телефона персоны лида.
Возвращает:
string - номер телефона персоны в формате строки.
Установить номер телефона персоны
person.setPhone(?string $phone)
Описание:
Устанавливает значение номера телефона персоны лида.
Атрибуты:
Имя | Тип | Описание |
phone |
string | Номер телефона |
Возвращает:
bool - подтверждение установки значения.
Пример:
person.setPhone('+71234567890');
Получить почту персоны
person.getEmail()
Описание:
Находит адрес электронной почты персоны лида.
Возвращает:
string - адрес электронной почты персоны в формате строки.
Нет комментариев