REST API: Сложные фильтры контактов: различия между версиями
Материал из Planfix
Artem (обсуждение | вклад) Нет описания правки |
Artem (обсуждение | вклад) Нет описания правки |
||
| (не показано 10 промежуточных версий 2 участников) | |||
| Строка 10: | Строка 10: | ||
*'''value''' — значение фильтра, в зависимости от типа фильтра может быть строкой, числом или сложным объектом. | *'''value''' — значение фильтра, в зависимости от типа фильтра может быть строкой, числом или сложным объектом. | ||
*'''field''' — идентификатор пользовательского поля, используется для фильтров по пользовательским полям. | *'''field''' — идентификатор пользовательского поля, используется для фильтров по пользовательским полям. | ||
*'''subfilter''' — вложенный фильтр для фильтрации по значениям полей записи аналитик. | |||
<pre> | <pre> | ||
| Строка 50: | Строка 51: | ||
|- | |- | ||
|12 || Дата создания | |12 || Дата создания | ||
| rowspan=" | | rowspan="9" | | ||
*equal | *equal | ||
*notequal | *notequal | ||
*gt | *gt | ||
*lt | *lt | ||
| rowspan=" | | rowspan="9" | | ||
Объект : | Объект : | ||
<pre> | <pre> | ||
| Строка 105: | Строка 106: | ||
} | } | ||
</pre> | </pre> | ||
|- | |||
|38 || Дата последнего изменения | |||
|- | |- | ||
|4223 || Дата рождения (с учетом года) | |4223 || Дата рождения (с учетом года) | ||
| Строка 173: | Строка 175: | ||
|- | |- | ||
|4001 || Имя или фамилия контакта / название компании | |4001 || Имя или фамилия контакта / название компании | ||
| rowspan=" | | rowspan="8" | | ||
*equal | *equal | ||
*notequal | *notequal | ||
| rowspan=" | | rowspan="8" | string - осуществляется фильтр содержит / не содержит | ||
|- | |- | ||
|4002 || Должность | |4002 || Должность | ||
| Строка 184: | Строка 186: | ||
|4004 || Адрес | |4004 || Адрес | ||
|- | |- | ||
|4005 || Email | |4005 || Email (частичное вхождение) | ||
|- | |- | ||
|4221 || Дополнительный email | |4221 || Дополнительный email | ||
| Строка 193: | Строка 195: | ||
|- | |- | ||
|4101 || Пользовательское поле типа Строка | |4101 || Пользовательское поле типа Строка | ||
| | |||
*equal | |||
*notequal | |||
*have | |||
*nothave | |||
| string - осуществляется фильтр равно / не равно / содержит / не содержит | |||
|- | |- | ||
|4102 || Пользовательское поле типа Число | |4102 || Пользовательское поле типа Число | ||
| Строка 252: | Строка 260: | ||
*notequal | *notequal | ||
| int - номер шаблона, список шаблонов контактов можно получить методом /contact/templates | | int - номер шаблона, список шаблонов контактов можно получить методом /contact/templates | ||
|- | |||
|4019 || Пол контакта | |||
| | |||
*equal | |||
*notequal | |||
| string - пол контакта (NotDefined, Female, Male) | |||
|- | |- | ||
|4231 || Номер контакта | |4231 || Номер контакта | ||
| Строка 259: | Строка 273: | ||
| int - номер контакта | | int - номер контакта | ||
|- | |- | ||
|4233 || Идентификатор контакта (из XML API) | |||
| | |||
*equal | |||
*notequal | |||
| int - идентификатор контакта | |||
|- | |||
|93 || Значение поля записи аналитики | |||
| | |||
(в зависимости от типа поля) | |||
*equal | |||
*notequal | |||
*gt | |||
*lt | |||
*have | |||
*nothave | |||
| Значение поля аналитики по которому выполняется фильтрация, дополнительно в структуре фильтра надо передать поле subfilter, пример для фильтра поля аналитики типа Строка: | |||
<pre> | |||
{ | |||
"offset": 0, | |||
"pageSize": 100, | |||
"filters": [ | |||
{ | |||
"type": 93, | |||
"operator": "equal", | |||
"value": "Test value", | |||
"subfilter": { | |||
"dataTagId": 6, | |||
"filter": { | |||
"type": 3108, | |||
"field": 20 | |||
} | |||
} | |||
} | |||
], | |||
"fields": "id,name,dataTags" | |||
} | |||
</pre> | |||
где: | |||
*dataTagId — идентификатор аналитики. | |||
*filter — объект фильтра по этой аналитике. | |||
*type — тип фильтра, в данном случае сложный фильтр аналитики по полю типа Строка. | |||
*field — идентификатор поля аналитики, по которому выполняется фильтр. | |||
|- | |||
|4226 || Имя пользователя Telegram | |||
| | |||
*equal | |||
*notequal | |||
| string - имя пользователя (username, @username, <nowiki>https://t.me/username</nowiki>) | |||
|- | |||
|4234 || Идентификатор Telegram | |||
| | |||
*equal | |||
*notequal | |||
| int - идентификатор в Telegram | |||
|- | |||
|4026 || Email (точное соответствие) | |||
| | |||
*equal | |||
*notequal | |||
| string | |||
|} | |} | ||
== Перейти == | == Перейти == | ||
*[[REST API]] | *[[REST API]] | ||
Текущая версия от 11:17, 25 июня 2024
Сложные фильтры в REST API ПланФикса применяются в методе «/contact/list» при получении списка контактов. Фильтры контактов задаются следующим набором параметров:
- type — числовой идентификатор фильтра.
- operator — оператор фильтра, одно из значений списка (equal, notequal, gt, lt). У разных фильтров могут быть разные допустимые операторы.
- value — значение фильтра, в зависимости от типа фильтра может быть строкой, числом или сложным объектом.
- field — идентификатор пользовательского поля, используется для фильтров по пользовательским полям.
- subfilter — вложенный фильтр для фильтрации по значениям полей записи аналитик.
{
"type": 12,
"operator": "equal",
"value": {
"dateType": "otherDate",
"dateValue": "01-07-2022"
}
}
Пример запроса получения списка контактов с передачей нескольких фильтров (используется логика И):
{
"fields": "name",
"filters": [{
"type": 4223,
"operator": "equal",
"value": {
"dateType": "otherDate",
"dateValue": "01-12-1990"
}
},
{
"type": 1,
"operator": "equal",
"value": "user:5"
}
]
}
| Тип | Название | Операторы | Формат value |
|---|---|---|---|
| 12 | Дата создания |
|
Объект :
"value": {
"dateType": string,
"dateValue": string,
"dateFrom": string,
"dateTo": string
}
dateType принимает следующие значения:
Даты считаются переданными в часовом поясе сотрудника, от имени которого сделан запрос. Примеры: "value": {
"dateType": "thisWeek"
}
"value": {
"dateType": "otherRange",
"dateFrom": "02-07-2022",
"dateTo": "06-07-2022"
}
"value": {
"dateType": "otherDate_withTime",
"dateFrom": "30-06-2022 12:00",
}
|
| 38 | Дата последнего изменения | ||
| 4223 | Дата рождения (с учетом года) | ||
| 4011 | Дата рождения (без учета года) | ||
| 4213 | Контрагент в задачах с последней активностью | ||
| 4219 | Контрагент без задач с последней активностью | ||
| 4214 | Участвует в задачах с последней активностью | ||
| 4220 | Не участвует в задачах с последней активностью | ||
| 4103 | Пользовательское поле типа Дата | ||
| 1 | Добавил |
|
string - номер сотрудника/контакта/группы с префиксом.
Например: “user:1”, “contact:5”, “group:3” |
| 2 | Ответственный | ||
| 47 | Доступен пользователю | ||
| 48 | Может редактироваться пользователем | ||
| 4108 | Пользовательское поле типа Контакт | ||
| 4109 | Пользовательское поле типа Сотрудник | ||
| 4112 | Пользовательское поле типа Группа, сотрудник, контакт | ||
| 4113 | Пользовательское поле типа Список сотрудников | ||
| 4006 | Является компанией |
|
int - 1
boolean - true |
| 4007 | Является контактом | ||
| 4010 | С доступом в ПланФикс | ||
| 4012 | Может быть участником задач | ||
| 4017 | Не может быть участником задач | ||
| 4013 | Может быть контрагентом задач | ||
| 4018 | Не может быть контрагентом задач | ||
| 4201 | Контрагент без активных задач | ||
| 4202 | Не участвует в активных задачах | ||
| 4203 | Контрагент с активными задачами | ||
| 4204 | Участвует в активных задачах | ||
| 4205 | Контрагент в просроченных задачах | ||
| 4206 | Участвует в просроченных задачах | ||
| 4001 | Имя или фамилия контакта / название компании |
|
string - осуществляется фильтр содержит / не содержит |
| 4002 | Должность | ||
| 4003 | Телефон | ||
| 4004 | Адрес | ||
| 4005 | Email (частичное вхождение) | ||
| 4221 | Дополнительный email | ||
| 4014 | Имя контакта / Название компании | ||
| 4015 | Фамилия контакта | ||
| 4101 | Пользовательское поле типа Строка |
|
string - осуществляется фильтр равно / не равно / содержит / не содержит |
| 4102 | Пользовательское поле типа Число |
|
int |
| 4105 | Пользовательское поле типа Чек-бокс |
|
int - 1 / 0
boolean |
| 4106 | Пользовательское поле типа Список |
|
string |
| 4107 | Пользовательское поле типа Справочник |
|
int - идентификатор записи |
| 4114 | Пользовательское поле типа Набор записей справочника |
|
int - идентификатор записи, для условия по нескольким записям — идентификаторы через ; (точку с запятой) |
| 4111 | Пользовательское поле типа Набор значений |
|
string - значение, для условия по нескольким значениям - значения через ; (точку с запятой) |
| 4152 | Содержит значение в пользовательском поле |
|
int - идентификатор поля |
| 4153 | Не содержит значение в пользовательском поле | ||
| 4008 | Группа контактов |
|
int - идентификатор группы, можно получить методом /contact/groups |
| 4016 | Шаблон контакта |
|
int - номер шаблона, список шаблонов контактов можно получить методом /contact/templates |
| 4019 | Пол контакта |
|
string - пол контакта (NotDefined, Female, Male) |
| 4231 | Номер контакта |
|
int - номер контакта |
| 4233 | Идентификатор контакта (из XML API) |
|
int - идентификатор контакта |
| 93 | Значение поля записи аналитики |
(в зависимости от типа поля)
|
Значение поля аналитики по которому выполняется фильтрация, дополнительно в структуре фильтра надо передать поле subfilter, пример для фильтра поля аналитики типа Строка:
{
"offset": 0,
"pageSize": 100,
"filters": [
{
"type": 93,
"operator": "equal",
"value": "Test value",
"subfilter": {
"dataTagId": 6,
"filter": {
"type": 3108,
"field": 20
}
}
}
],
"fields": "id,name,dataTags"
}
где:
|
| 4226 | Имя пользователя Telegram |
|
string - имя пользователя (username, @username, https://t.me/username) |
| 4234 | Идентификатор Telegram |
|
int - идентификатор в Telegram |
| 4026 | Email (точное соответствие) |
|
string |