Фильтры пользователя используются в методе получения списка пользователей-лидов для получения не всех пользователей, а только нужного подмножества.
Визуальный редактор фильтров у нас есть на странице "Лиды". На этой странице описан их синтаксис.
Пример:
{
"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"}
}
]
}