# where для bot.findLeads()
### Базовая структура
Каждое условие внутри массива **where** имеет следующую структуру:
- **Простое условие**: \['поле', 'значение'\] — проверяет, равно ли поле заданному значению;
- **Условие с оператором**: \['поле', 'оператор', 'значение'\] — проверяет поле с использованием указанного оператора.
```JavaScript
let where = [
['поле', 'значение'],
['поле', 'оператор', 'значение']
]
bot.findLeads([], where, [])
```
### Доступные категории полей
- Поля лидов;
- Каналы (channels);
- Статусы лидов (leadstatuses);
- Атрибуты лидов (lead\_attributes).
#### Поля лидов
Это основные поля, доступные для каждого лида.
Поле | Описание |
id | ID лида |
name | Имя лида |
identification | ID в мессенджере (например, Telegram ID) |
person\_id | ID персоны |
manager\_id | ID менеджера |
bot\_id | ID бота |
channel\_id | ID канала |
lang\_code | Код языка |
status\_id | ID статуса |
is\_mute | Включен ли бот для лида (0 или 1) |
is\_forwarded | Передан ли оператору (0 или 1) |
last\_activity | Дата последней активности |
last\_response | Timestamp последнего ответа |
messenger | ID мессенджера |
bot\_debug\_level | Уровень отладки бота (0 - обычный, 11 - админ) |
created\_at | Дата создания |
updated\_at | Дата обновления |
dialog\_id | ID диалога |
unread\_count | Количество непрочитанных сообщений |
forwarded\_at | Дата передачи оператору |
Пример использования:
```JavaScript
where = [
['id', 145492],
['name', 'like', '%Иван%'],
['created_at', '>=', '2023-01-01']
]
```
#### Каналы (channels)
Для поиска по каналам используются поля **channels.code** и **channels.id**.
Код | ID | Описание |
unknown | 0 | Неизвестный канал |
avito | 1 | Avito |
facebook | 2 | Facebook |
instagram | 3 | Instagram |
livechatWidget | 4 | LiveChat Widget |
skype | 5 | Skype |
telegram | 6 | Telegram |
twitter | 7 | Twitter |
viber | 8 | Viber |
vk | 9 | VKontakte |
whatsapp | 10 | WhatsApp |
youla | 11 | Youla |
wechat | 12 | WeChat |
metabotWidget | 13 | MetaBot Widget |
webim | 14 | Webim |
jivoWidget | 15 | Jivo Widget |
odnoklassniki | 16 | Odnoklassniki |
apple\_business\_chat | 17 | Apple Business Chat |
Канал текущего лида можно получить с помощью метода **lead.getMessengerCode()**.
Пример использования:
```JavaScript
// Ищет только telegram
let where = [
['channels.code', 'telegram']
]
// Ищет telegram и whatsapp
let where = [
['channels.id', 'IN', [6, 10]]
]
```
#### Статусы лидов (leadstatuses)
Для поиска по статусам используются поля **leadstatuses.name** и **leadstatuses.id**.
Пример использования:
```JavaScript
let where = [
['leadstatuses.name', 'Новый'],
['leadstatuses.id', 1]
]
```
Используйте вместо **leadstatuses.id** — **status\_id**, а вместо **channels.id** — **channel\_id**. Если вы выполняете большие операции это сократит время вычисления.
#### Атрибуты лидов (lead\_attributes)
Для поиска по атрибутам используются следующие поля:
Поле | Описание |
lead\_attributes.attribute\_type | Тип атрибута (tag, variable, system, json, context) |
lead\_attributes.attribute\_key | Ключ атрибута |
lead\_attributes.attribute\_value | Значение атрибута. Если type = tag, то можно не использовать |
Пример использования:
```JavaScript
let where = [
['lead_attributes.attribute_type', 'variable'],
['lead_attributes.attribute_key', 'is_pay'],
['lead_attributes.attribute_value', '1']
]
```
### Полный пример использования
```JavaScript
let where = [
['name', 'like', '%Иван%'],
['channels.code', 'telegram'],
['leadstatuses.name', 'Новый'],
['lead_attributes.attribute_type', 'tag'],
['lead_attributes.attribute_key', 'важный_клиент']
]
let leads = bot.findLeads([], where, [])
debug(leads)
```