Фильтры пользователя используются в методе получения списка пользователей-лидов для получения не всех пользователей, а только нужного подмножества.
Визуальный редактор фильтров у нас есть на странице "Лиды". На этой странице описан их синтаксис.
Пример:
{
"type": "and",
"filters": [
{
"property_name": "$name",
"type": "known",
"value": {}
}
]
}
Фильтр представляет собой JSON-объект, который содержит два поля:
type (тип фильтра: and или or) и массив filters (массив непосредственно фильтров).
При использовании типа and пользователь удовлетворяет фильтру, если удовлетворяет всем фильтрам.
При or — если удовлетворяет хотя бы одному из фильтров.
На данный момент мы поддерживаем следующие типы фильтров:
Общее:
Числа:
Строки:
Булев:
Даты:
Список:
Универсален для всех типов данных. Имя имеет любое значение:
{
"type": "known",
"property_name": "$name",
"value": {}
}
Универсален для всех типов данных. Имя не определено:
{
"type": "unknown",
"property_name": "$name",
"value": {}
}
Количество сессий больше чем 5:
{
"type": "gt",
"property_name": "$sessions",
"value": {"value": 5}
}
Количество заказов больше 5 или не определено:
{
"type": "gt_or_unknown",
"property_name": "orders",
"value": {"value": 4}
}
Количество сессий меньше чем 5:
{
"type": "lt",
"property_name": "$sessions",
"value": {"value": 5}
}
Количество заказов меньше 5 или не определено:
{
"type": "lt_or_unknown",
"property_name": "orders",
"value": {"value": 5}
}
Количество сессий от 2 до 5 (включая обе границы):
{
"type": "range",
"property_name": "$sessions",
"value": {"value1": 2, "value2": 5}
}
Количество сессий равно 5:
{
"type": "eq",
"property_name": "$sessions",
"value": {"value": 5}
}
Количество сессий не равно 5:
{
"type": "neq",
"property_name": "$sessions",
"value": {"value": 5}
}
Имя равно "Maks" (без учета регистра):
{
"type": "str_eq",
"property_name": "$name",
"value": {"value": "Maks"}
}
Имя не равно "Maks" (без учета регистра):
{
"type": "str_neq",
"property_name": "$name",
"value": {"value": "Maks"}
}
Имя содержит "mak" (без учета регистра).
Допустимое количество символов в value: от 3 до 15 (включительно):
{
"type": "str_contains",
"property_name": "$name",
"value": {"value": "mak"}
}
Имя не содержит "mak" (без учета регистра).
Допустимое количество символов в value: от 3 до 15 (включительно):
{
"type": "str_notcontains",
"property_name": "$name",
"value": {"value": "mak"}
}
Свойство "Отписался от писем" имеет значение true:
{
"type": "bool_true",
"property_name": "$email_unsubscribed",
"value": {}
}
Свойство "Отписался от писем" имеет значение false:
{
"type": "bool_false",
"property_name": "$email_unsubscribed",
"value": {}
}
Дата последнего ответа больше чем 12 дней назад:
{
"type": "daysmore",
"property_name": "$last_reply",
"value": {
"value": 12,
"unit": "days"
}
}
Поле unit показывает единицу измерения для value.
Может принимать значения: minutes, hours, days, weeks.
Дата последнего ответа больше чем 12 дней назад или не определена (не отвечал ни разу):
{
"type": "daysmore_or_unknown",
"property_name": "$last_reply",
"value": {
"value": 12,
"unit": "days"
}
}
Поле unit показывает единицу измерения для value.
Может принимать значения: minutes, hours, days, weeks.
Дата последнего ответа меньше чем 12 дней назад:
{
"type": "daysless",
"property_name": "$last_reply",
"value": {
"value": 12,
"unit": "days"
}
}
Поле unit показывает единицу измерения для value.
Может принимать значения: minutes, hours, days, weeks.
Дата последнего ответа меньше чем 12 дней назад или не определена (не отвечал):
{
"type": "daysless_or_unknown",
"property_name": "$last_reply",
"value": {
"value": 12,
"unit": "days"
}
}
Поле unit показывает единицу измерения для value.
Может принимать значения: minutes, hours, days, weeks.
Кастомное свойство apps содержит элемент MyTestSite:
{
"type": "lcontains",
"property_name": "apps",
"value": {
"value": "MyTestSite"
}
}
Имя имеет любое значение и email содержит "gmail.com":
{
"type": "and",
"filters": [
{
"property_name": "$name",
"type": "known",
"value": {}
},
{
"property_name": "$email",
"type": "str_contains",
"value": {"value": "gmail.com"}
}
]
}
Количество сессий больше чем 20 или последний ответ меньше чем час назад:
{
"type": "or",
"filters": [
{
"property_name": "$sessions",
"type": "gt",
"value": {"value": 20}
},
{
"property_name": "$last_reply",
"type": "daysless",
"value": {"value": 1, "unit": "hours"}
}
]
}