where для bot.findLeads()
Базовая структура
Каждое условие внутри массива where имеет следующую структуру:
-
Простое условие: ['поле', 'значение'] — проверяет, равно ли поле заданному значению;
-
Условие с оператором: ['поле', 'оператор', 'значение'] — проверяет поле с использованием указанного оператора.
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 | Дата передачи оператору |
Пример использования:
where = [
['id', 145492],
['name', 'like', '%Иван%'],
['created_at', '>=', '2023-01-01']
]
Каналы (channels)
Для поиска по каналам используются поля channels.code и channels.id.
| Код | ID | Описание |
| unknown | 0 | Неизвестный канал |
| avito | 1 | Avito |
| 2 | ||
| 3 | ||
| livechatWidget | 4 | LiveChat Widget |
| skype | 5 | Skype |
| telegram | 6 | Telegram |
| 7 | ||
| viber | 8 | Viber |
| vk | 9 | VKontakte |
| 10 | ||
| youla | 11 | Youla |
| 12 | ||
| metabotWidget | 13 | MetaBot Widget |
| webim | 14 | Webim |
| jivoWidget | 15 | Jivo Widget |
| odnoklassniki | 16 | Odnoklassniki |
| apple_business_chat | 17 | Apple Business Chat |
Канал текущего лида можно получить с помощью метода lead.getMessengerCode().
Пример использования:
// Ищет только telegram
let where = [
['channels.code', 'telegram']
]
// Ищет telegram и whatsapp
let where = [
['channels.id', 'IN', [6, 10]]
]
Статусы лидов (leadstatuses)
Для поиска по статусам используются поля leadstatuses.name и leadstatuses.id.
Пример использования:
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, то можно не использовать |
Пример использования:
let where = [
['lead_attributes.attribute_type', 'variable'],
['lead_attributes.attribute_key', 'is_pay'],
['lead_attributes.attribute_value', '1']
]
Полный пример использования
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)
Нет комментариев