Skip to main content

Searching

Search Routes

  • Use POST routes ending with /search (other methods like GET, PUT, DELETE are not supported).
  • Not all fields are searchable. Non-searchable fields are listed under each route.
  • Multi-select Extended Attribute fields are not supported for search.

Search Operators

Comparison Operators

Operate on a single field:

  • equals
  • greaterthan / lessthan
  • greaterthanorequalto / lessthanorequalto
  • contains (case-insensitive, no wildcards/regex)
  • isNull / isNotNull (starting release 94)

Boolean Operators

Can be nested for precedence:

  • and
  • or
  • not

Collections & Integer Arrays

  • Search against fields containing multiple values, denoted by [].
  • Example collections: rights[], users[], roles[].

Examples: Search with Operators

Comparison Examples

  • Find users by login ID:
  {
"equals": {
"fieldName": "loginId",
"fieldValue": "jwallace"
}
}
  • Find attachments modified after 2016-10-09:
{
"greaterthan": {
"fieldName": "modifiedDate",
"fieldValue": "2016-10-09T20:16:24.723Z"
}
}
  • Find activities containing 'RD' in the name:
{
"contains": {
"fieldName": "name",
"fieldValue": "RD"
}
}

Boolean Operators

  • Modified date between 2016-09-09 and 2016-11-09:
{
"and": [
{
"greaterthanorequalto": {
"fieldName": "modifiedDate", "fieldValue": "2016-09-09T20:16:24.723Z"
}
},
{
"lessthanorequalto":
{
"fieldName": "modifiedDate", "fieldValue": "2016-11-09T20:16:24.723Z"
}
}
]
}
  • Owner ID = 455 OR name contains 'RD':
{
"or": [
{
"contains":
{
"fieldName": "name",
"fieldValue": "RD"
}
},
{
"equals":
{
"fieldName": "ownerID",
"fieldValue": 455
}
}
]
}

Nested Boolean Example

  • Activities where (name contains 'RD' OR ownerID = 455) AND activityID ≥ 4901:
{
"and": [
{
"or": [
{
"contains":
{
"fieldName": "name",
"fieldValue": "RD"
}
},
{
"equals":
{
"fieldName": "ownerID",
"fieldValue": 455
}
}
]
},
{
"greaterthanorequalto":
{
"fieldName": "activityID",
"fieldValue": 4901
}
}
]
}

Searching Collections

  • Example Collection:
{
"rights": [
{
"functionID": 1,
"domainID": 1
},
{
"functionID": 5,
"domainID": 1
}
]
}
  • Find users with domain rights 18, 24, or 697:
{
"equals": {
"collectionName": "rights",
"fieldName": "functionID",
"fieldValue": "[18, 24, 697]"
}
}

Searching Integer Arrays

  • Example Integer Array:

    • Attachments: projects[]
    • Users: groups[]
  • Find users in groups 105, 108, or 214:

{
"equals": {
"fieldName": "groups",
"fieldValue": "[105, 108, 214]"
}
}

Combining AND with Collections

  • Review tasks assigned to a user (UserID = 1) with no votes (VoteResult = 0):
{
"and": [
{ "equals": { "collectionName": "assignees", "fieldName": "userId", "fieldValue": "[1]" } },
{ "equals": { "collectionName": "assignees", "fieldName": "voteResult", "fieldValue": "[0]" } }
]
}
Limitation

This search treats fields independently. For grouped matching (e.g., UserID = 1 AND VoteResult = 0 in the same record), use nested array syntax.

{
"equals": {
"collectionName": "assignees",
"nested": [
{ "fieldName": "userId", "fieldValue": "1" },
{ "fieldName": "voteResult", "fieldValue": "0" }
]
}
}