REST API: Сложные фильтры контактов: различия между версиями
Материал из Planfix
Artem (обсуждение | вклад) (Новая страница: «{{#seo: |title=REST API: Сложные фильтры контактов |titlemode=append |keywords=планфикс, Фильтры контактов, апи,…») |
Artem (обсуждение | вклад) Нет описания правки |
||
(не показано 29 промежуточных версий 2 участников) | |||
Строка 10: | Строка 10: | ||
*'''value''' — значение фильтра, в зависимости от типа фильтра может быть строкой, числом или сложным объектом. | *'''value''' — значение фильтра, в зависимости от типа фильтра может быть строкой, числом или сложным объектом. | ||
*'''field''' — идентификатор пользовательского поля, используется для фильтров по пользовательским полям. | *'''field''' — идентификатор пользовательского поля, используется для фильтров по пользовательским полям. | ||
*'''subfilter''' — вложенный фильтр для фильтрации по значениям полей записи аналитик. | |||
<pre> | <pre> | ||
Строка 21: | Строка 22: | ||
} | } | ||
</pre> | </pre> | ||
Пример запроса получения списка контактов с передачей нескольких фильтров (используется логика И): | Пример запроса получения списка контактов с передачей нескольких фильтров (используется логика И): | ||
Строка 43: | Строка 45: | ||
} | } | ||
</pre> | </pre> | ||
{| class="wikitable" style="margin-top: 1em; width:100% " | |||
!width="40"|Тип !!width="200"| Название !! Операторы !! Формат value | |||
|- | |||
|12 || Дата создания | |||
| rowspan="9" | | |||
*equal | |||
*notequal | |||
*gt | |||
*lt | |||
| rowspan="9" | | |||
Объект : | |||
<pre> | |||
"value": { | |||
"dateType": string, | |||
"dateValue": string, | |||
"dateFrom": string, | |||
"dateTo": string | |||
} | |||
</pre> | |||
dateType принимает следующие значения: | |||
*today - сегодня | |||
*yesterday - вчера | |||
*tomorrow - завтра | |||
*thisWeek - текущая неделя | |||
*lastWeek | |||
*nextWeek | |||
*thisMonth | |||
*lastMonth | |||
*nextMonth | |||
*last - последние n дней, n передается в dateValue | |||
*next - следующие n дней, n передается в dateValue | |||
*in - через n дней, n передается в dateValue | |||
*otherDate - точная дата, дата передается в формате дд-мм-гггг в dateFrom | |||
*otherRange - точный период, даты передаются в формате дд-мм-гггг в dateFrom и dateTo | |||
*otherDate_withTime - точная дата-время, дата передается в формате "дд-мм-гггг чч:мм" в dateFrom | |||
*otherRange_withTime - точный период с заданным временем, даты передаются в формате "дд-мм-гггг чч:мм" в dateFrom и dateTo | |||
Даты считаются переданными в часовом поясе сотрудника, от имени которого сделан запрос. | |||
Примеры: | |||
<pre> | |||
"value": { | |||
"dateType": "thisWeek" | |||
} | |||
</pre> | |||
<pre> | |||
"value": { | |||
"dateType": "otherRange", | |||
"dateFrom": "02-07-2022", | |||
"dateTo": "06-07-2022" | |||
} | |||
</pre> | |||
<pre> | |||
"value": { | |||
"dateType": "otherDate_withTime", | |||
"dateFrom": "30-06-2022 12:00", | |||
} | |||
</pre> | |||
|- | |||
|38 || Дата последнего изменения | |||
|- | |||
|4223 || Дата рождения (с учетом года) | |||
|- | |||
|4011 || Дата рождения (без учета года) | |||
|- | |||
|4213 || Контрагент в задачах с последней активностью | |||
|- | |||
|4219 || Контрагент без задач с последней активностью | |||
|- | |||
|4214 || Участвует в задачах с последней активностью | |||
|- | |||
|4220 || Не участвует в задачах с последней активностью | |||
|- | |||
|4103 || Пользовательское поле типа Дата | |||
|- | |||
|1 || Добавил | |||
| rowspan="8" | | |||
*equal | |||
*notequal | |||
| rowspan="8" | string - номер сотрудника/контакта/группы с префиксом. | |||
Например: “user:1”, “contact:5”, “group:3” | |||
|- | |||
|2 || Ответственный | |||
|- | |||
|47 || Доступен пользователю | |||
|- | |||
|48 || Может редактироваться пользователем | |||
|- | |||
|4108 || Пользовательское поле типа Контакт | |||
|- | |||
|4109 || Пользовательское поле типа Сотрудник | |||
|- | |||
|4112 || Пользовательское поле типа Группа, сотрудник, контакт | |||
|- | |||
|4113 || Пользовательское поле типа Список сотрудников | |||
|- | |||
|4006 || Является компанией | |||
| rowspan="13" | | |||
*equal | |||
| rowspan="13" | int - 1 | |||
boolean - true | |||
|- | |||
|4007 || Является контактом | |||
|- | |||
|4010 || С доступом в ПланФикс | |||
|- | |||
|4012 || Может быть участником задач | |||
|- | |||
|4017 || Не может быть участником задач | |||
|- | |||
|4013 || Может быть контрагентом задач | |||
|- | |||
|4018 || Не может быть контрагентом задач | |||
|- | |||
|4201 || Контрагент без активных задач | |||
|- | |||
|4202 || Не участвует в активных задачах | |||
|- | |||
|4203 || Контрагент с активными задачами | |||
|- | |||
|4204 || Участвует в активных задачах | |||
|- | |||
|4205 || Контрагент в просроченных задачах | |||
|- | |||
|4206 || Участвует в просроченных задачах | |||
|- | |||
|4001 || Имя или фамилия контакта / название компании | |||
| rowspan="8" | | |||
*equal | |||
*notequal | |||
| rowspan="8" | string - осуществляется фильтр содержит / не содержит | |||
|- | |||
|4002 || Должность | |||
|- | |||
|4003 || Телефон | |||
|- | |||
|4004 || Адрес | |||
|- | |||
|4005 || Email (частичное вхождение) | |||
|- | |||
|4221 || Дополнительный email | |||
|- | |||
|4014 || Имя контакта / Название компании | |||
|- | |||
|4015 || Фамилия контакта | |||
|- | |||
|4101 || Пользовательское поле типа Строка | |||
| | |||
*equal | |||
*notequal | |||
*have | |||
*nothave | |||
| string - осуществляется фильтр равно / не равно / содержит / не содержит | |||
|- | |||
|4102 || Пользовательское поле типа Число | |||
| | |||
*equal | |||
*notequal | |||
*gt | |||
*lt | |||
| int | |||
|- | |||
|4105 || Пользовательское поле типа Чек-бокс | |||
| | |||
*equal | |||
*notequal | |||
| int - 1 / 0 | |||
boolean | |||
|- | |||
|4106 || Пользовательское поле типа Список | |||
| | |||
*equal | |||
*notequal | |||
| string | |||
|- | |||
|4107 || Пользовательское поле типа Справочник | |||
| | |||
*equal | |||
*notequal | |||
| int - идентификатор записи | |||
|- | |||
|4114 || Пользовательское поле типа Набор записей справочника | |||
| | |||
*equal | |||
*notequal | |||
| int - идентификатор записи, для условия по нескольким записям — идентификаторы через ; (точку с запятой) | |||
|- | |||
|4111 || Пользовательское поле типа Набор значений | |||
| | |||
*equal | |||
*notequal | |||
| string - значение, для условия по нескольким значениям - значения через ; (точку с запятой) | |||
|- | |||
|4152 || Содержит значение в пользовательском поле | |||
| rowspan="2"| | |||
*equal | |||
| rowspan="2"| | |||
int - идентификатор поля | |||
|- | |||
|4153 || Не содержит значение в пользовательском поле | |||
|- | |||
|4008 || Группа контактов | |||
| | |||
*equal | |||
*notequal | |||
| int - идентификатор группы, можно получить методом /contact/groups | |||
|- | |||
|4016 || Шаблон контакта | |||
| | |||
*equal | |||
*notequal | |||
| int - номер шаблона, список шаблонов контактов можно получить методом /contact/templates | |||
|- | |||
|4019 || Пол контакта | |||
| | |||
*equal | |||
*notequal | |||
| string - пол контакта (NotDefined, Female, Male) | |||
|- | |||
|4231 || Номер контакта | |||
| | |||
*equal | |||
*notequal | |||
| 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]] |
Текущая версия от 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 |