REST API: Сложные фильтры контактов: различия между версиями

Материал из Planfix
Перейти к: навигация, поиск
(Новая страница: «{{#seo: |title=REST API: Сложные фильтры контактов |titlemode=append |keywords=планфикс, Фильтры контактов, апи,…»)
 
Нет описания правки
 
(не показано 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 Дата создания
  • equal
  • notequal
  • gt
  • lt

Объект :

 
"value": {
    "dateType": string,
    "dateValue": string,
    "dateFrom": string,
    "dateTo": string
}

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

Даты считаются переданными в часовом поясе сотрудника, от имени которого сделан запрос.

Примеры:

"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 Добавил
  • equal
  • notequal
string - номер сотрудника/контакта/группы с префиксом.

Например: “user:1”, “contact:5”, “group:3”

2 Ответственный
47 Доступен пользователю
48 Может редактироваться пользователем
4108 Пользовательское поле типа Контакт
4109 Пользовательское поле типа Сотрудник
4112 Пользовательское поле типа Группа, сотрудник, контакт
4113 Пользовательское поле типа Список сотрудников
4006 Является компанией
  • equal
int - 1

boolean - true

4007 Является контактом
4010 С доступом в ПланФикс
4012 Может быть участником задач
4017 Не может быть участником задач
4013 Может быть контрагентом задач
4018 Не может быть контрагентом задач
4201 Контрагент без активных задач
4202 Не участвует в активных задачах
4203 Контрагент с активными задачами
4204 Участвует в активных задачах
4205 Контрагент в просроченных задачах
4206 Участвует в просроченных задачах
4001 Имя или фамилия контакта / название компании
  • equal
  • notequal
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 Содержит значение в пользовательском поле
  • equal

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, пример для фильтра поля аналитики типа Строка:
{
  "offset": 0,
  "pageSize": 100,
  "filters": [
    {
      "type": 93,
      "operator": "equal",
      "value": "Test value",
      "subfilter": {
        "dataTagId": 6,
        "filter": {
          "type": 3108,
          "field": 20
        }
      }
    }
  ],
  "fields": "id,name,dataTags"
}

где:

  • dataTagId — идентификатор аналитики.
  • filter — объект фильтра по этой аналитике.
  • type — тип фильтра, в данном случае сложный фильтр аналитики по полю типа Строка.
  • field — идентификатор поля аналитики, по которому выполняется фильтр.
4226 Имя пользователя Telegram
  • equal
  • notequal
string - имя пользователя (username, @username, https://t.me/username)
4234 Идентификатор Telegram
  • equal
  • notequal
int - идентификатор в Telegram
4026 Email (точное соответствие)
  • equal
  • notequal
string

Перейти