From 93e57273c52da952de0827d39384737e54c3f326 Mon Sep 17 00:00:00 2001 From: adisa narula Date: Mon, 17 Aug 2026 13:07:25 +0100 Subject: [PATCH 1/8] Correct contacts search operator docs for date fields The single_filter_search_request.operator enum falsely implies != is valid for every field type, and omits >= / <= which work on integer/float fields. Both are type-blind facts an OpenAPI enum can't express structurally (fields are dynamic, including custom attributes), so the enum stays a flat superset of all valid operators and the description now states validity per field type, including the date-field exception (=, IN, NIN, <, > only; !=, <=, >= 400). Also corrects the SearchContacts endpoint's "Searching for Timestamp Fields" and "Accepted Operators" prose to state the day-truncation and >-matches-next-day rule explicitly, and to generalize the created_at-only <=/>= admonition to all Date fields plus !=. Applied identically across all versions (2.7-2.16, Preview/0) since the operator/type validation is shared search infrastructure, not gated by public API version. --- descriptions/0/api.intercom.io.yaml | 49 +++++++++++++++----------- descriptions/2.10/api.intercom.io.yaml | 47 ++++++++++++++---------- descriptions/2.11/api.intercom.io.yaml | 47 ++++++++++++++---------- descriptions/2.12/api.intercom.io.yaml | 47 ++++++++++++++---------- descriptions/2.13/api.intercom.io.yaml | 47 ++++++++++++++---------- descriptions/2.14/api.intercom.io.yaml | 47 ++++++++++++++---------- descriptions/2.15/api.intercom.io.yaml | 47 ++++++++++++++---------- descriptions/2.16/api.intercom.io.yaml | 15 +++++--- descriptions/2.7/api.intercom.io.yaml | 47 ++++++++++++++---------- descriptions/2.8/api.intercom.io.yaml | 47 ++++++++++++++---------- descriptions/2.9/api.intercom.io.yaml | 47 ++++++++++++++---------- 11 files changed, 292 insertions(+), 195 deletions(-) diff --git a/descriptions/0/api.intercom.io.yaml b/descriptions/0/api.intercom.io.yaml index a4fca1a..531e7ce 100644 --- a/descriptions/0/api.intercom.io.yaml +++ b/descriptions/0/api.intercom.io.yaml @@ -9063,8 +9063,9 @@ paths: ### Searching for Timestamp Fields - All timestamp fields (created_at, updated_at etc.) are filtered by UTC calendar day in Contact Search. An equality (=) query on a timestamp matches any contact whose value falls on the same UTC day, so filtering by a value the API returned reliably matches that contact regardless of your workspace's timezone. Comparisons (>, <) are evaluated at UTC day granularity. - For example, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that will be interpreted as 1577836800 (January 1st, 2020 12:00 AM UTC). The search results will then include Contacts created from January 2nd, 2020 12:00 AM UTC onwards. + All timestamp fields (created_at, updated_at etc.) and Date custom attributes are truncated to a calendar day for Contact Search queries; sub-day precision (hour, minute, second) is not supported. On Preview/Unstable, the day boundary is always UTC, regardless of your workspace's timezone. + Because the value is truncated to a day, `=` matches the whole UTC day, `>` matches from the start of the *next* UTC day (not from the instant you submitted), and `<` matches everything before the start of that UTC day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return a 400 error. + For example, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that timestamp is truncated to 1577836800 (January 1st, 2020 12:00 AM UTC), and because `>` matches from the start of the next day, the search results include Contacts created from January 2nd, 2020 12:00 AM UTC onwards - not from 9:00 AM on January 1st. If you'd like to get contacts created on January 1st, 2020 (UTC) you should search with a created_at value equal (=) to 1577836800 (January 1st, 2020 12:00 AM UTC). This behaviour applies only to timestamps used in search queries. The search results will still contain the full UNIX timestamp and be sorted accordingly. @@ -9120,24 +9121,26 @@ paths: ### Accepted Operators - {% admonition type="warning" name="Searching based on `created_at`" %} - You cannot use the `<=` or `>=` operators to search by `created_at`. + {% admonition type="warning" name="Operators not supported on Date fields" %} + Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns a 400 error. {% /admonition %} - The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). The operator has to be compatible with the field's type (eg. you cannot search with `>` for a given string value as it's only compatible for integer's and dates). - - | Operator | Valid Types | Description | - | :------- | :------------------------------- | :--------------------------------------------------------------- | - | = | All | Equals | - | != | All | Doesn't Equal | - | IN | All | In
Shortcut for `OR` queries
Values must be in Array | - | NIN | All | Not In
Shortcut for `OR !` queries
Values must be in Array | - | > | Integer
Date (UNIX Timestamp) | Greater than | - | < | Integer
Date (UNIX Timestamp) | Lower than | - | ~ | String | Contains | - | !~ | String | Doesn't Contain | - | ^ | String | Starts With | - | $ | String | Ends With | + The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. + + | Operator | Valid Types | Description | + | :------- | :---------------------------------- | :----------------------------------------------------------------------| + | = | All | Equals | + | != | All except Date | Doesn't Equal | + | IN | All | In
Shortcut for `OR` queries
Values must be in Array | + | NIN | All | Not In
Shortcut for `OR !` queries
Values must be in Array | + | > | Integer
Float
Date | Greater than
On Date fields, matches from the start of the next day | + | < | Integer
Float
Date | Lower than
On Date fields, matches before the start of the day | + | >= | Integer
Float | Greater than or equal to
Not supported on Date fields | + | <= | Integer
Float | Lower than or equal to
Not supported on Date fields | + | ~ | String | Contains | + | !~ | String | Doesn't Contain | + | ^ | String | Starts With | + | $ | String | Ends With | responses: '200': description: successful @@ -38964,13 +38967,19 @@ components: - IN - NIN - "<" + - "<=" - ">" + - ">=" - "~" - "!~" - "^" - "$" - description: The accepted operators you can use to define how you want to - search for the value. + description: |- + The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type: + - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` + - `boolean` fields: `=`, `!=`, `IN`, `NIN` + - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` + - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return a 400 error. example: ">" value: oneOf: diff --git a/descriptions/2.10/api.intercom.io.yaml b/descriptions/2.10/api.intercom.io.yaml index 9899675..075571d 100644 --- a/descriptions/2.10/api.intercom.io.yaml +++ b/descriptions/2.10/api.intercom.io.yaml @@ -3676,8 +3676,9 @@ paths: ### Searching for Timestamp Fields - All timestamp fields (created_at, updated_at etc.) are indexed as Dates for Contact Search queries; Datetime queries are not currently supported. This means you can only query for timestamp fields by day - not hour, minute or second. The day a timestamp falls on is determined using your workspace's timezone, so the same query can return different results across workspaces in different timezones. Because timestamps are stored in UTC, filtering by a value the API returned may not match the originating contact when your workspace is not set to UTC. - For example, on a workspace set to UTC, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that will be interpreted as 1577836800 (January 1st, 2020 12:00 AM UTC). The search results will then include Contacts created from January 2nd, 2020 12:00 AM UTC onwards. On a workspace in another timezone, the day boundaries fall on that timezone's midnight instead. + All timestamp fields (created_at, updated_at etc.) and Date custom attributes are truncated to a calendar day for Contact Search queries; sub-day precision (hour, minute, second) is not supported. The day boundary is determined using your workspace's timezone, so the same query can return different results across workspaces in different timezones. + Because the value is truncated to a day, `=` matches the whole day, `>` matches from the start of the *next* day (not from the instant you submitted), and `<` matches everything before the start of that day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return a 400 error. + For example, on a workspace set to UTC, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that timestamp is truncated to 1577836800 (January 1st, 2020 12:00 AM UTC), and because `>` matches from the start of the next day, the search results include Contacts created from January 2nd, 2020 12:00 AM UTC onwards - not from 9:00 AM on January 1st. On a workspace in another timezone, the day boundaries fall on that timezone's midnight instead. If you'd like to get contacts created on January 1st, 2020 you should search with a created_at value equal (=) to 1577836800 (January 1st, 2020 12:00 AM UTC). This behaviour applies only to timestamps used in search queries. The search results will still contain the full UNIX timestamp and be sorted accordingly. @@ -3732,24 +3733,26 @@ paths: ### Accepted Operators - {% admonition type="warning" name="Searching based on `created_at`" %} - You cannot use the `<=` or `>=` operators to search by `created_at`. + {% admonition type="warning" name="Operators not supported on Date fields" %} + Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns a 400 error. {% /admonition %} - The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). The operator has to be compatible with the field's type (eg. you cannot search with `>` for a given string value as it's only compatible for integer's and dates). + The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. - | Operator | Valid Types | Description | - | :------- | :------------------------------- | :--------------------------------------------------------------- | - | = | All | Equals | - | != | All | Doesn't Equal | - | IN | All | In
Shortcut for `OR` queries
Values must be in Array | - | NIN | All | Not In
Shortcut for `OR !` queries
Values must be in Array | - | > | Integer
Date (UNIX Timestamp) | Greater than | - | < | Integer
Date (UNIX Timestamp) | Lower than | - | ~ | String | Contains | - | !~ | String | Doesn't Contain | - | ^ | String | Starts With | - | $ | String | Ends With | + | Operator | Valid Types | Description | + | :------- | :---------------------------------- | :----------------------------------------------------------------------| + | = | All | Equals | + | != | All except Date | Doesn't Equal | + | IN | All | In
Shortcut for `OR` queries
Values must be in Array | + | NIN | All | Not In
Shortcut for `OR !` queries
Values must be in Array | + | > | Integer
Float
Date | Greater than
On Date fields, matches from the start of the next day | + | < | Integer
Float
Date | Lower than
On Date fields, matches before the start of the day | + | >= | Integer
Float | Greater than or equal to
Not supported on Date fields | + | <= | Integer
Float | Lower than or equal to
Not supported on Date fields | + | ~ | String | Contains | + | !~ | String | Doesn't Contain | + | ^ | String | Starts With | + | $ | String | Ends With | responses: '200': description: successful @@ -15848,13 +15851,19 @@ components: - IN - NIN - "<" + - "<=" - ">" + - ">=" - "~" - "!~" - "^" - "$" - description: The accepted operators you can use to define how you want to - search for the value. + description: |- + The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type: + - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` + - `boolean` fields: `=`, `!=`, `IN`, `NIN` + - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` + - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return a 400 error. example: ">" value: oneOf: diff --git a/descriptions/2.11/api.intercom.io.yaml b/descriptions/2.11/api.intercom.io.yaml index 7fe9f8c..84ce1bf 100644 --- a/descriptions/2.11/api.intercom.io.yaml +++ b/descriptions/2.11/api.intercom.io.yaml @@ -3755,8 +3755,9 @@ paths: ### Searching for Timestamp Fields - All timestamp fields (created_at, updated_at etc.) are indexed as Dates for Contact Search queries; Datetime queries are not currently supported. This means you can only query for timestamp fields by day - not hour, minute or second. The day a timestamp falls on is determined using your workspace's timezone, so the same query can return different results across workspaces in different timezones. Because timestamps are stored in UTC, filtering by a value the API returned may not match the originating contact when your workspace is not set to UTC. - For example, on a workspace set to UTC, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that will be interpreted as 1577836800 (January 1st, 2020 12:00 AM UTC). The search results will then include Contacts created from January 2nd, 2020 12:00 AM UTC onwards. On a workspace in another timezone, the day boundaries fall on that timezone's midnight instead. + All timestamp fields (created_at, updated_at etc.) and Date custom attributes are truncated to a calendar day for Contact Search queries; sub-day precision (hour, minute, second) is not supported. The day boundary is determined using your workspace's timezone, so the same query can return different results across workspaces in different timezones. + Because the value is truncated to a day, `=` matches the whole day, `>` matches from the start of the *next* day (not from the instant you submitted), and `<` matches everything before the start of that day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return a 400 error. + For example, on a workspace set to UTC, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that timestamp is truncated to 1577836800 (January 1st, 2020 12:00 AM UTC), and because `>` matches from the start of the next day, the search results include Contacts created from January 2nd, 2020 12:00 AM UTC onwards - not from 9:00 AM on January 1st. On a workspace in another timezone, the day boundaries fall on that timezone's midnight instead. If you'd like to get contacts created on January 1st, 2020 you should search with a created_at value equal (=) to 1577836800 (January 1st, 2020 12:00 AM UTC). This behaviour applies only to timestamps used in search queries. The search results will still contain the full UNIX timestamp and be sorted accordingly. @@ -3811,24 +3812,26 @@ paths: ### Accepted Operators - {% admonition type="warning" name="Searching based on `created_at`" %} - You cannot use the `<=` or `>=` operators to search by `created_at`. + {% admonition type="warning" name="Operators not supported on Date fields" %} + Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns a 400 error. {% /admonition %} - The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). The operator has to be compatible with the field's type (eg. you cannot search with `>` for a given string value as it's only compatible for integer's and dates). + The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. - | Operator | Valid Types | Description | - | :------- | :------------------------------- | :--------------------------------------------------------------- | - | = | All | Equals | - | != | All | Doesn't Equal | - | IN | All | In
Shortcut for `OR` queries
Values must be in Array | - | NIN | All | Not In
Shortcut for `OR !` queries
Values must be in Array | - | > | Integer
Date (UNIX Timestamp) | Greater than | - | < | Integer
Date (UNIX Timestamp) | Lower than | - | ~ | String | Contains | - | !~ | String | Doesn't Contain | - | ^ | String | Starts With | - | $ | String | Ends With | + | Operator | Valid Types | Description | + | :------- | :---------------------------------- | :----------------------------------------------------------------------| + | = | All | Equals | + | != | All except Date | Doesn't Equal | + | IN | All | In
Shortcut for `OR` queries
Values must be in Array | + | NIN | All | Not In
Shortcut for `OR !` queries
Values must be in Array | + | > | Integer
Float
Date | Greater than
On Date fields, matches from the start of the next day | + | < | Integer
Float
Date | Lower than
On Date fields, matches before the start of the day | + | >= | Integer
Float | Greater than or equal to
Not supported on Date fields | + | <= | Integer
Float | Lower than or equal to
Not supported on Date fields | + | ~ | String | Contains | + | !~ | String | Doesn't Contain | + | ^ | String | Starts With | + | $ | String | Ends With | responses: '200': description: successful @@ -17308,13 +17311,19 @@ components: - IN - NIN - "<" + - "<=" - ">" + - ">=" - "~" - "!~" - "^" - "$" - description: The accepted operators you can use to define how you want to - search for the value. + description: |- + The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type: + - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` + - `boolean` fields: `=`, `!=`, `IN`, `NIN` + - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` + - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return a 400 error. example: ">" value: oneOf: diff --git a/descriptions/2.12/api.intercom.io.yaml b/descriptions/2.12/api.intercom.io.yaml index 70aac5a..e8dc5af 100644 --- a/descriptions/2.12/api.intercom.io.yaml +++ b/descriptions/2.12/api.intercom.io.yaml @@ -4289,8 +4289,9 @@ paths: ### Searching for Timestamp Fields - All timestamp fields (created_at, updated_at etc.) are indexed as Dates for Contact Search queries; Datetime queries are not currently supported. This means you can only query for timestamp fields by day - not hour, minute or second. The day a timestamp falls on is determined using your workspace's timezone, so the same query can return different results across workspaces in different timezones. Because timestamps are stored in UTC, filtering by a value the API returned may not match the originating contact when your workspace is not set to UTC. - For example, on a workspace set to UTC, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that will be interpreted as 1577836800 (January 1st, 2020 12:00 AM UTC). The search results will then include Contacts created from January 2nd, 2020 12:00 AM UTC onwards. On a workspace in another timezone, the day boundaries fall on that timezone's midnight instead. + All timestamp fields (created_at, updated_at etc.) and Date custom attributes are truncated to a calendar day for Contact Search queries; sub-day precision (hour, minute, second) is not supported. The day boundary is determined using your workspace's timezone, so the same query can return different results across workspaces in different timezones. + Because the value is truncated to a day, `=` matches the whole day, `>` matches from the start of the *next* day (not from the instant you submitted), and `<` matches everything before the start of that day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return a 400 error. + For example, on a workspace set to UTC, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that timestamp is truncated to 1577836800 (January 1st, 2020 12:00 AM UTC), and because `>` matches from the start of the next day, the search results include Contacts created from January 2nd, 2020 12:00 AM UTC onwards - not from 9:00 AM on January 1st. On a workspace in another timezone, the day boundaries fall on that timezone's midnight instead. If you'd like to get contacts created on January 1st, 2020 you should search with a created_at value equal (=) to 1577836800 (January 1st, 2020 12:00 AM UTC). This behaviour applies only to timestamps used in search queries. The search results will still contain the full UNIX timestamp and be sorted accordingly. @@ -4345,24 +4346,26 @@ paths: ### Accepted Operators - {% admonition type="warning" name="Searching based on `created_at`" %} - You cannot use the `<=` or `>=` operators to search by `created_at`. + {% admonition type="warning" name="Operators not supported on Date fields" %} + Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns a 400 error. {% /admonition %} - The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). The operator has to be compatible with the field's type (eg. you cannot search with `>` for a given string value as it's only compatible for integer's and dates). + The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. - | Operator | Valid Types | Description | - | :------- | :------------------------------- | :--------------------------------------------------------------- | - | = | All | Equals | - | != | All | Doesn't Equal | - | IN | All | In
Shortcut for `OR` queries
Values must be in Array | - | NIN | All | Not In
Shortcut for `OR !` queries
Values must be in Array | - | > | Integer
Date (UNIX Timestamp) | Greater than | - | < | Integer
Date (UNIX Timestamp) | Lower than | - | ~ | String | Contains | - | !~ | String | Doesn't Contain | - | ^ | String | Starts With | - | $ | String | Ends With | + | Operator | Valid Types | Description | + | :------- | :---------------------------------- | :----------------------------------------------------------------------| + | = | All | Equals | + | != | All except Date | Doesn't Equal | + | IN | All | In
Shortcut for `OR` queries
Values must be in Array | + | NIN | All | Not In
Shortcut for `OR !` queries
Values must be in Array | + | > | Integer
Float
Date | Greater than
On Date fields, matches from the start of the next day | + | < | Integer
Float
Date | Lower than
On Date fields, matches before the start of the day | + | >= | Integer
Float | Greater than or equal to
Not supported on Date fields | + | <= | Integer
Float | Lower than or equal to
Not supported on Date fields | + | ~ | String | Contains | + | !~ | String | Doesn't Contain | + | ^ | String | Starts With | + | $ | String | Ends With | responses: '200': description: successful @@ -17251,13 +17254,19 @@ components: - IN - NIN - "<" + - "<=" - ">" + - ">=" - "~" - "!~" - "^" - "$" - description: The accepted operators you can use to define how you want to - search for the value. + description: |- + The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type: + - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` + - `boolean` fields: `=`, `!=`, `IN`, `NIN` + - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` + - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return a 400 error. example: ">" value: oneOf: diff --git a/descriptions/2.13/api.intercom.io.yaml b/descriptions/2.13/api.intercom.io.yaml index d225578..8a64783 100644 --- a/descriptions/2.13/api.intercom.io.yaml +++ b/descriptions/2.13/api.intercom.io.yaml @@ -4810,8 +4810,9 @@ paths: ### Searching for Timestamp Fields - All timestamp fields (created_at, updated_at etc.) are indexed as Dates for Contact Search queries; Datetime queries are not currently supported. This means you can only query for timestamp fields by day - not hour, minute or second. The day a timestamp falls on is determined using your workspace's timezone, so the same query can return different results across workspaces in different timezones. Because timestamps are stored in UTC, filtering by a value the API returned may not match the originating contact when your workspace is not set to UTC. - For example, on a workspace set to UTC, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that will be interpreted as 1577836800 (January 1st, 2020 12:00 AM UTC). The search results will then include Contacts created from January 2nd, 2020 12:00 AM UTC onwards. On a workspace in another timezone, the day boundaries fall on that timezone's midnight instead. + All timestamp fields (created_at, updated_at etc.) and Date custom attributes are truncated to a calendar day for Contact Search queries; sub-day precision (hour, minute, second) is not supported. The day boundary is determined using your workspace's timezone, so the same query can return different results across workspaces in different timezones. + Because the value is truncated to a day, `=` matches the whole day, `>` matches from the start of the *next* day (not from the instant you submitted), and `<` matches everything before the start of that day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return a 400 error. + For example, on a workspace set to UTC, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that timestamp is truncated to 1577836800 (January 1st, 2020 12:00 AM UTC), and because `>` matches from the start of the next day, the search results include Contacts created from January 2nd, 2020 12:00 AM UTC onwards - not from 9:00 AM on January 1st. On a workspace in another timezone, the day boundaries fall on that timezone's midnight instead. If you'd like to get contacts created on January 1st, 2020 you should search with a created_at value equal (=) to 1577836800 (January 1st, 2020 12:00 AM UTC). This behaviour applies only to timestamps used in search queries. The search results will still contain the full UNIX timestamp and be sorted accordingly. @@ -4866,24 +4867,26 @@ paths: ### Accepted Operators - {% admonition type="warning" name="Searching based on `created_at`" %} - You cannot use the `<=` or `>=` operators to search by `created_at`. + {% admonition type="warning" name="Operators not supported on Date fields" %} + Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns a 400 error. {% /admonition %} - The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). The operator has to be compatible with the field's type (eg. you cannot search with `>` for a given string value as it's only compatible for integer's and dates). + The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. - | Operator | Valid Types | Description | - | :------- | :------------------------------- | :--------------------------------------------------------------- | - | = | All | Equals | - | != | All | Doesn't Equal | - | IN | All | In
Shortcut for `OR` queries
Values must be in Array | - | NIN | All | Not In
Shortcut for `OR !` queries
Values must be in Array | - | > | Integer
Date (UNIX Timestamp) | Greater than | - | < | Integer
Date (UNIX Timestamp) | Lower than | - | ~ | String | Contains | - | !~ | String | Doesn't Contain | - | ^ | String | Starts With | - | $ | String | Ends With | + | Operator | Valid Types | Description | + | :------- | :---------------------------------- | :----------------------------------------------------------------------| + | = | All | Equals | + | != | All except Date | Doesn't Equal | + | IN | All | In
Shortcut for `OR` queries
Values must be in Array | + | NIN | All | Not In
Shortcut for `OR !` queries
Values must be in Array | + | > | Integer
Float
Date | Greater than
On Date fields, matches from the start of the next day | + | < | Integer
Float
Date | Lower than
On Date fields, matches before the start of the day | + | >= | Integer
Float | Greater than or equal to
Not supported on Date fields | + | <= | Integer
Float | Lower than or equal to
Not supported on Date fields | + | ~ | String | Contains | + | !~ | String | Doesn't Contain | + | ^ | String | Starts With | + | $ | String | Ends With | responses: '200': description: successful @@ -18916,13 +18919,19 @@ components: - IN - NIN - "<" + - "<=" - ">" + - ">=" - "~" - "!~" - "^" - "$" - description: The accepted operators you can use to define how you want to - search for the value. + description: |- + The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type: + - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` + - `boolean` fields: `=`, `!=`, `IN`, `NIN` + - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` + - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return a 400 error. example: ">" value: oneOf: diff --git a/descriptions/2.14/api.intercom.io.yaml b/descriptions/2.14/api.intercom.io.yaml index 2b224f0..820e178 100644 --- a/descriptions/2.14/api.intercom.io.yaml +++ b/descriptions/2.14/api.intercom.io.yaml @@ -5772,8 +5772,9 @@ paths: ### Searching for Timestamp Fields - All timestamp fields (created_at, updated_at etc.) are indexed as Dates for Contact Search queries; Datetime queries are not currently supported. This means you can only query for timestamp fields by day - not hour, minute or second. The day a timestamp falls on is determined using your workspace's timezone, so the same query can return different results across workspaces in different timezones. Because timestamps are stored in UTC, filtering by a value the API returned may not match the originating contact when your workspace is not set to UTC. - For example, on a workspace set to UTC, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that will be interpreted as 1577836800 (January 1st, 2020 12:00 AM UTC). The search results will then include Contacts created from January 2nd, 2020 12:00 AM UTC onwards. On a workspace in another timezone, the day boundaries fall on that timezone's midnight instead. + All timestamp fields (created_at, updated_at etc.) and Date custom attributes are truncated to a calendar day for Contact Search queries; sub-day precision (hour, minute, second) is not supported. The day boundary is determined using your workspace's timezone, so the same query can return different results across workspaces in different timezones. + Because the value is truncated to a day, `=` matches the whole day, `>` matches from the start of the *next* day (not from the instant you submitted), and `<` matches everything before the start of that day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return a 400 error. + For example, on a workspace set to UTC, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that timestamp is truncated to 1577836800 (January 1st, 2020 12:00 AM UTC), and because `>` matches from the start of the next day, the search results include Contacts created from January 2nd, 2020 12:00 AM UTC onwards - not from 9:00 AM on January 1st. On a workspace in another timezone, the day boundaries fall on that timezone's midnight instead. If you'd like to get contacts created on January 1st, 2020 you should search with a created_at value equal (=) to 1577836800 (January 1st, 2020 12:00 AM UTC). This behaviour applies only to timestamps used in search queries. The search results will still contain the full UNIX timestamp and be sorted accordingly. @@ -5828,24 +5829,26 @@ paths: ### Accepted Operators - {% admonition type="warning" name="Searching based on `created_at`" %} - You cannot use the `<=` or `>=` operators to search by `created_at`. + {% admonition type="warning" name="Operators not supported on Date fields" %} + Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns a 400 error. {% /admonition %} - The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). The operator has to be compatible with the field's type (eg. you cannot search with `>` for a given string value as it's only compatible for integer's and dates). + The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. - | Operator | Valid Types | Description | - | :------- | :------------------------------- | :--------------------------------------------------------------- | - | = | All | Equals | - | != | All | Doesn't Equal | - | IN | All | In
Shortcut for `OR` queries
Values must be in Array | - | NIN | All | Not In
Shortcut for `OR !` queries
Values must be in Array | - | > | Integer
Date (UNIX Timestamp) | Greater than | - | < | Integer
Date (UNIX Timestamp) | Lower than | - | ~ | String | Contains | - | !~ | String | Doesn't Contain | - | ^ | String | Starts With | - | $ | String | Ends With | + | Operator | Valid Types | Description | + | :------- | :---------------------------------- | :----------------------------------------------------------------------| + | = | All | Equals | + | != | All except Date | Doesn't Equal | + | IN | All | In
Shortcut for `OR` queries
Values must be in Array | + | NIN | All | Not In
Shortcut for `OR !` queries
Values must be in Array | + | > | Integer
Float
Date | Greater than
On Date fields, matches from the start of the next day | + | < | Integer
Float
Date | Lower than
On Date fields, matches before the start of the day | + | >= | Integer
Float | Greater than or equal to
Not supported on Date fields | + | <= | Integer
Float | Lower than or equal to
Not supported on Date fields | + | ~ | String | Contains | + | !~ | String | Doesn't Contain | + | ^ | String | Starts With | + | $ | String | Ends With | responses: '200': description: successful @@ -21567,13 +21570,19 @@ components: - IN - NIN - "<" + - "<=" - ">" + - ">=" - "~" - "!~" - "^" - "$" - description: The accepted operators you can use to define how you want to - search for the value. + description: |- + The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type: + - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` + - `boolean` fields: `=`, `!=`, `IN`, `NIN` + - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` + - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return a 400 error. example: ">" value: oneOf: diff --git a/descriptions/2.15/api.intercom.io.yaml b/descriptions/2.15/api.intercom.io.yaml index 84f2b72..895ccf9 100644 --- a/descriptions/2.15/api.intercom.io.yaml +++ b/descriptions/2.15/api.intercom.io.yaml @@ -5695,8 +5695,9 @@ paths: ### Searching for Timestamp Fields - All timestamp fields (created_at, updated_at etc.) are indexed as Dates for Contact Search queries; Datetime queries are not currently supported. This means you can only query for timestamp fields by day - not hour, minute or second. The day a timestamp falls on is determined using your workspace's timezone, so the same query can return different results across workspaces in different timezones. Because timestamps are stored in UTC, filtering by a value the API returned may not match the originating contact when your workspace is not set to UTC. - For example, on a workspace set to UTC, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that will be interpreted as 1577836800 (January 1st, 2020 12:00 AM UTC). The search results will then include Contacts created from January 2nd, 2020 12:00 AM UTC onwards. On a workspace in another timezone, the day boundaries fall on that timezone's midnight instead. + All timestamp fields (created_at, updated_at etc.) and Date custom attributes are truncated to a calendar day for Contact Search queries; sub-day precision (hour, minute, second) is not supported. The day boundary is determined using your workspace's timezone, so the same query can return different results across workspaces in different timezones. + Because the value is truncated to a day, `=` matches the whole day, `>` matches from the start of the *next* day (not from the instant you submitted), and `<` matches everything before the start of that day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return a 400 error. + For example, on a workspace set to UTC, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that timestamp is truncated to 1577836800 (January 1st, 2020 12:00 AM UTC), and because `>` matches from the start of the next day, the search results include Contacts created from January 2nd, 2020 12:00 AM UTC onwards - not from 9:00 AM on January 1st. On a workspace in another timezone, the day boundaries fall on that timezone's midnight instead. If you'd like to get contacts created on January 1st, 2020 you should search with a created_at value equal (=) to 1577836800 (January 1st, 2020 12:00 AM UTC). This behaviour applies only to timestamps used in search queries. The search results will still contain the full UNIX timestamp and be sorted accordingly. @@ -5751,24 +5752,26 @@ paths: ### Accepted Operators - {% admonition type="warning" name="Searching based on `created_at`" %} - You cannot use the `<=` or `>=` operators to search by `created_at`. + {% admonition type="warning" name="Operators not supported on Date fields" %} + Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns a 400 error. {% /admonition %} - The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). The operator has to be compatible with the field's type (eg. you cannot search with `>` for a given string value as it's only compatible for integer's and dates). + The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. - | Operator | Valid Types | Description | - | :------- | :------------------------------- | :--------------------------------------------------------------- | - | = | All | Equals | - | != | All | Doesn't Equal | - | IN | All | In
Shortcut for `OR` queries
Values must be in Array | - | NIN | All | Not In
Shortcut for `OR !` queries
Values must be in Array | - | > | Integer
Date (UNIX Timestamp) | Greater than | - | < | Integer
Date (UNIX Timestamp) | Lower than | - | ~ | String | Contains | - | !~ | String | Doesn't Contain | - | ^ | String | Starts With | - | $ | String | Ends With | + | Operator | Valid Types | Description | + | :------- | :---------------------------------- | :----------------------------------------------------------------------| + | = | All | Equals | + | != | All except Date | Doesn't Equal | + | IN | All | In
Shortcut for `OR` queries
Values must be in Array | + | NIN | All | Not In
Shortcut for `OR !` queries
Values must be in Array | + | > | Integer
Float
Date | Greater than
On Date fields, matches from the start of the next day | + | < | Integer
Float
Date | Lower than
On Date fields, matches before the start of the day | + | >= | Integer
Float | Greater than or equal to
Not supported on Date fields | + | <= | Integer
Float | Lower than or equal to
Not supported on Date fields | + | ~ | String | Contains | + | !~ | String | Doesn't Contain | + | ^ | String | Starts With | + | $ | String | Ends With | responses: '200': description: successful @@ -22548,13 +22551,19 @@ components: - IN - NIN - "<" + - "<=" - ">" + - ">=" - "~" - "!~" - "^" - "$" - description: The accepted operators you can use to define how you want to - search for the value. + description: |- + The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type: + - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` + - `boolean` fields: `=`, `!=`, `IN`, `NIN` + - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` + - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return a 400 error. example: ">" value: oneOf: diff --git a/descriptions/2.16/api.intercom.io.yaml b/descriptions/2.16/api.intercom.io.yaml index 5b27176..3ad8538 100644 --- a/descriptions/2.16/api.intercom.io.yaml +++ b/descriptions/2.16/api.intercom.io.yaml @@ -8742,8 +8742,9 @@ paths: ### Searching for Timestamp Fields - All timestamp fields (created_at, updated_at etc.) are filtered by UTC calendar day in Contact Search. An equality (=) query on a timestamp matches any contact whose value falls on the same UTC day, so filtering by a value the API returned reliably matches that contact regardless of your workspace's timezone. Comparisons (>, <) are evaluated at UTC day granularity. - For example, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that will be interpreted as 1577836800 (January 1st, 2020 12:00 AM UTC). The search results will then include Contacts created from January 2nd, 2020 12:00 AM UTC onwards. + All timestamp fields (created_at, updated_at etc.) and Date custom attributes are truncated to a calendar day for Contact Search queries; sub-day precision (hour, minute, second) is not supported. The day boundary is always UTC, regardless of your workspace's timezone, so the same query returns the same results across workspaces in every timezone. + Because the value is truncated to a day, `=` matches the whole UTC day, `>` matches from the start of the *next* UTC day (not from the instant you submitted), and `<` matches everything before the start of that UTC day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return a 400 error. + For example, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that timestamp is truncated to 1577836800 (January 1st, 2020 12:00 AM UTC), and because `>` matches from the start of the next day, the search results include Contacts created from January 2nd, 2020 12:00 AM UTC onwards - not from 9:00 AM on January 1st. If you'd like to get contacts created on January 1st, 2020 (UTC) you should search with a created_at value equal (=) to 1577836800 (January 1st, 2020 12:00 AM UTC). This behaviour applies only to timestamps used in search queries. The search results will still contain the full UNIX timestamp and be sorted accordingly. @@ -33288,13 +33289,19 @@ components: - IN - NIN - "<" + - "<=" - ">" + - ">=" - "~" - "!~" - "^" - "$" - description: The accepted operators you can use to define how you want to - search for the value. + description: |- + The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type: + - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` + - `boolean` fields: `=`, `!=`, `IN`, `NIN` + - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` + - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return a 400 error. example: ">" value: oneOf: diff --git a/descriptions/2.7/api.intercom.io.yaml b/descriptions/2.7/api.intercom.io.yaml index 19ea31b..068a4a3 100644 --- a/descriptions/2.7/api.intercom.io.yaml +++ b/descriptions/2.7/api.intercom.io.yaml @@ -3894,8 +3894,9 @@ paths: ### Searching for Timestamp Fields - All timestamp fields (created_at, updated_at etc.) are indexed as Dates for Contact Search queries; Datetime queries are not currently supported. This means you can only query for timestamp fields by day - not hour, minute or second. The day a timestamp falls on is determined using your workspace's timezone, so the same query can return different results across workspaces in different timezones. Because timestamps are stored in UTC, filtering by a value the API returned may not match the originating contact when your workspace is not set to UTC. - For example, on a workspace set to UTC, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that will be interpreted as 1577836800 (January 1st, 2020 12:00 AM UTC). The search results will then include Contacts created from January 2nd, 2020 12:00 AM UTC onwards. On a workspace in another timezone, the day boundaries fall on that timezone's midnight instead. + All timestamp fields (created_at, updated_at etc.) and Date custom attributes are truncated to a calendar day for Contact Search queries; sub-day precision (hour, minute, second) is not supported. The day boundary is determined using your workspace's timezone, so the same query can return different results across workspaces in different timezones. + Because the value is truncated to a day, `=` matches the whole day, `>` matches from the start of the *next* day (not from the instant you submitted), and `<` matches everything before the start of that day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return a 400 error. + For example, on a workspace set to UTC, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that timestamp is truncated to 1577836800 (January 1st, 2020 12:00 AM UTC), and because `>` matches from the start of the next day, the search results include Contacts created from January 2nd, 2020 12:00 AM UTC onwards - not from 9:00 AM on January 1st. On a workspace in another timezone, the day boundaries fall on that timezone's midnight instead. If you'd like to get contacts created on January 1st, 2020 you should search with a created_at value equal (=) to 1577836800 (January 1st, 2020 12:00 AM UTC). This behaviour applies only to timestamps used in search queries. The search results will still contain the full UNIX timestamp and be sorted accordingly. @@ -3950,24 +3951,26 @@ paths: ### Accepted Operators - {% admonition type="warning" name="Searching based on `created_at`" %} - You cannot use the `<=` or `>=` operators to search by `created_at`. + {% admonition type="warning" name="Operators not supported on Date fields" %} + Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns a 400 error. {% /admonition %} - The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). The operator has to be compatible with the field's type (eg. you cannot search with `>` for a given string value as it's only compatible for integer's and dates). + The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. - | Operator | Valid Types | Description | - | :------- | :------------------------------- | :--------------------------------------------------------------- | - | = | All | Equals | - | != | All | Doesn't Equal | - | IN | All | In
Shortcut for `OR` queries
Values must be in Array | - | NIN | All | Not In
Shortcut for `OR !` queries
Values must be in Array | - | > | Integer
Date (UNIX Timestamp) | Greater than | - | < | Integer
Date (UNIX Timestamp) | Lower than | - | ~ | String | Contains | - | !~ | String | Doesn't Contain | - | ^ | String | Starts With | - | $ | String | Ends With | + | Operator | Valid Types | Description | + | :------- | :---------------------------------- | :----------------------------------------------------------------------| + | = | All | Equals | + | != | All except Date | Doesn't Equal | + | IN | All | In
Shortcut for `OR` queries
Values must be in Array | + | NIN | All | Not In
Shortcut for `OR !` queries
Values must be in Array | + | > | Integer
Float
Date | Greater than
On Date fields, matches from the start of the next day | + | < | Integer
Float
Date | Lower than
On Date fields, matches before the start of the day | + | >= | Integer
Float | Greater than or equal to
Not supported on Date fields | + | <= | Integer
Float | Lower than or equal to
Not supported on Date fields | + | ~ | String | Contains | + | !~ | String | Doesn't Contain | + | ^ | String | Starts With | + | $ | String | Ends With | responses: '200': description: successful @@ -13847,13 +13850,19 @@ components: - IN - NIN - "<" + - "<=" - ">" + - ">=" - "~" - "!~" - "^" - "$" - description: The accepted operators you can use to define how you want to - search for the value. + description: |- + The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type: + - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` + - `boolean` fields: `=`, `!=`, `IN`, `NIN` + - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` + - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return a 400 error. example: ">" value: oneOf: diff --git a/descriptions/2.8/api.intercom.io.yaml b/descriptions/2.8/api.intercom.io.yaml index d8f84ed..3500845 100644 --- a/descriptions/2.8/api.intercom.io.yaml +++ b/descriptions/2.8/api.intercom.io.yaml @@ -3894,8 +3894,9 @@ paths: ### Searching for Timestamp Fields - All timestamp fields (created_at, updated_at etc.) are indexed as Dates for Contact Search queries; Datetime queries are not currently supported. This means you can only query for timestamp fields by day - not hour, minute or second. The day a timestamp falls on is determined using your workspace's timezone, so the same query can return different results across workspaces in different timezones. Because timestamps are stored in UTC, filtering by a value the API returned may not match the originating contact when your workspace is not set to UTC. - For example, on a workspace set to UTC, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that will be interpreted as 1577836800 (January 1st, 2020 12:00 AM UTC). The search results will then include Contacts created from January 2nd, 2020 12:00 AM UTC onwards. On a workspace in another timezone, the day boundaries fall on that timezone's midnight instead. + All timestamp fields (created_at, updated_at etc.) and Date custom attributes are truncated to a calendar day for Contact Search queries; sub-day precision (hour, minute, second) is not supported. The day boundary is determined using your workspace's timezone, so the same query can return different results across workspaces in different timezones. + Because the value is truncated to a day, `=` matches the whole day, `>` matches from the start of the *next* day (not from the instant you submitted), and `<` matches everything before the start of that day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return a 400 error. + For example, on a workspace set to UTC, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that timestamp is truncated to 1577836800 (January 1st, 2020 12:00 AM UTC), and because `>` matches from the start of the next day, the search results include Contacts created from January 2nd, 2020 12:00 AM UTC onwards - not from 9:00 AM on January 1st. On a workspace in another timezone, the day boundaries fall on that timezone's midnight instead. If you'd like to get contacts created on January 1st, 2020 you should search with a created_at value equal (=) to 1577836800 (January 1st, 2020 12:00 AM UTC). This behaviour applies only to timestamps used in search queries. The search results will still contain the full UNIX timestamp and be sorted accordingly. @@ -3950,24 +3951,26 @@ paths: ### Accepted Operators - {% admonition type="warning" name="Searching based on `created_at`" %} - You cannot use the `<=` or `>=` operators to search by `created_at`. + {% admonition type="warning" name="Operators not supported on Date fields" %} + Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns a 400 error. {% /admonition %} - The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). The operator has to be compatible with the field's type (eg. you cannot search with `>` for a given string value as it's only compatible for integer's and dates). + The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. - | Operator | Valid Types | Description | - | :------- | :------------------------------- | :--------------------------------------------------------------- | - | = | All | Equals | - | != | All | Doesn't Equal | - | IN | All | In
Shortcut for `OR` queries
Values must be in Array | - | NIN | All | Not In
Shortcut for `OR !` queries
Values must be in Array | - | > | Integer
Date (UNIX Timestamp) | Greater than | - | < | Integer
Date (UNIX Timestamp) | Lower than | - | ~ | String | Contains | - | !~ | String | Doesn't Contain | - | ^ | String | Starts With | - | $ | String | Ends With | + | Operator | Valid Types | Description | + | :------- | :---------------------------------- | :----------------------------------------------------------------------| + | = | All | Equals | + | != | All except Date | Doesn't Equal | + | IN | All | In
Shortcut for `OR` queries
Values must be in Array | + | NIN | All | Not In
Shortcut for `OR !` queries
Values must be in Array | + | > | Integer
Float
Date | Greater than
On Date fields, matches from the start of the next day | + | < | Integer
Float
Date | Lower than
On Date fields, matches before the start of the day | + | >= | Integer
Float | Greater than or equal to
Not supported on Date fields | + | <= | Integer
Float | Lower than or equal to
Not supported on Date fields | + | ~ | String | Contains | + | !~ | String | Doesn't Contain | + | ^ | String | Starts With | + | $ | String | Ends With | responses: '200': description: successful @@ -13871,13 +13874,19 @@ components: - IN - NIN - "<" + - "<=" - ">" + - ">=" - "~" - "!~" - "^" - "$" - description: The accepted operators you can use to define how you want to - search for the value. + description: |- + The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type: + - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` + - `boolean` fields: `=`, `!=`, `IN`, `NIN` + - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` + - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return a 400 error. example: ">" value: oneOf: diff --git a/descriptions/2.9/api.intercom.io.yaml b/descriptions/2.9/api.intercom.io.yaml index c8e7366..2230795 100644 --- a/descriptions/2.9/api.intercom.io.yaml +++ b/descriptions/2.9/api.intercom.io.yaml @@ -3894,8 +3894,9 @@ paths: ### Searching for Timestamp Fields - All timestamp fields (created_at, updated_at etc.) are indexed as Dates for Contact Search queries; Datetime queries are not currently supported. This means you can only query for timestamp fields by day - not hour, minute or second. The day a timestamp falls on is determined using your workspace's timezone, so the same query can return different results across workspaces in different timezones. Because timestamps are stored in UTC, filtering by a value the API returned may not match the originating contact when your workspace is not set to UTC. - For example, on a workspace set to UTC, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that will be interpreted as 1577836800 (January 1st, 2020 12:00 AM UTC). The search results will then include Contacts created from January 2nd, 2020 12:00 AM UTC onwards. On a workspace in another timezone, the day boundaries fall on that timezone's midnight instead. + All timestamp fields (created_at, updated_at etc.) and Date custom attributes are truncated to a calendar day for Contact Search queries; sub-day precision (hour, minute, second) is not supported. The day boundary is determined using your workspace's timezone, so the same query can return different results across workspaces in different timezones. + Because the value is truncated to a day, `=` matches the whole day, `>` matches from the start of the *next* day (not from the instant you submitted), and `<` matches everything before the start of that day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return a 400 error. + For example, on a workspace set to UTC, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that timestamp is truncated to 1577836800 (January 1st, 2020 12:00 AM UTC), and because `>` matches from the start of the next day, the search results include Contacts created from January 2nd, 2020 12:00 AM UTC onwards - not from 9:00 AM on January 1st. On a workspace in another timezone, the day boundaries fall on that timezone's midnight instead. If you'd like to get contacts created on January 1st, 2020 you should search with a created_at value equal (=) to 1577836800 (January 1st, 2020 12:00 AM UTC). This behaviour applies only to timestamps used in search queries. The search results will still contain the full UNIX timestamp and be sorted accordingly. @@ -3950,24 +3951,26 @@ paths: ### Accepted Operators - {% admonition type="warning" name="Searching based on `created_at`" %} - You cannot use the `<=` or `>=` operators to search by `created_at`. + {% admonition type="warning" name="Operators not supported on Date fields" %} + Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns a 400 error. {% /admonition %} - The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). The operator has to be compatible with the field's type (eg. you cannot search with `>` for a given string value as it's only compatible for integer's and dates). + The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. - | Operator | Valid Types | Description | - | :------- | :------------------------------- | :--------------------------------------------------------------- | - | = | All | Equals | - | != | All | Doesn't Equal | - | IN | All | In
Shortcut for `OR` queries
Values must be in Array | - | NIN | All | Not In
Shortcut for `OR !` queries
Values must be in Array | - | > | Integer
Date (UNIX Timestamp) | Greater than | - | < | Integer
Date (UNIX Timestamp) | Lower than | - | ~ | String | Contains | - | !~ | String | Doesn't Contain | - | ^ | String | Starts With | - | $ | String | Ends With | + | Operator | Valid Types | Description | + | :------- | :---------------------------------- | :----------------------------------------------------------------------| + | = | All | Equals | + | != | All except Date | Doesn't Equal | + | IN | All | In
Shortcut for `OR` queries
Values must be in Array | + | NIN | All | Not In
Shortcut for `OR !` queries
Values must be in Array | + | > | Integer
Float
Date | Greater than
On Date fields, matches from the start of the next day | + | < | Integer
Float
Date | Lower than
On Date fields, matches before the start of the day | + | >= | Integer
Float | Greater than or equal to
Not supported on Date fields | + | <= | Integer
Float | Lower than or equal to
Not supported on Date fields | + | ~ | String | Contains | + | !~ | String | Doesn't Contain | + | ^ | String | Starts With | + | $ | String | Ends With | responses: '200': description: successful @@ -15224,13 +15227,19 @@ components: - IN - NIN - "<" + - "<=" - ">" + - ">=" - "~" - "!~" - "^" - "$" - description: The accepted operators you can use to define how you want to - search for the value. + description: |- + The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type: + - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` + - `boolean` fields: `=`, `!=`, `IN`, `NIN` + - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` + - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return a 400 error. example: ">" value: oneOf: From 7b1d125548c94669295c941f29ea89a14d557154 Mon Sep 17 00:00:00 2001 From: adisa narula Date: Wed, 19 Aug 2026 10:37:51 +0100 Subject: [PATCH 2/8] Correct the date-filter error code and the 2.16 day-boundary wording Production QA on the contact search date filters showed two things the previous wording got wrong: unsupported operators return 422, not 400, and version 2.16 places a contact's value in a day using the workspace timezone, not UTC (the UTC anchoring is gated on a change that has not been released). Co-Authored-By: Claude Opus 5 (1M context) --- descriptions/0/api.intercom.io.yaml | 6 +++--- descriptions/2.10/api.intercom.io.yaml | 6 +++--- descriptions/2.11/api.intercom.io.yaml | 6 +++--- descriptions/2.12/api.intercom.io.yaml | 6 +++--- descriptions/2.13/api.intercom.io.yaml | 6 +++--- descriptions/2.14/api.intercom.io.yaml | 6 +++--- descriptions/2.15/api.intercom.io.yaml | 6 +++--- descriptions/2.16/api.intercom.io.yaml | 8 ++++---- descriptions/2.7/api.intercom.io.yaml | 6 +++--- descriptions/2.8/api.intercom.io.yaml | 6 +++--- descriptions/2.9/api.intercom.io.yaml | 6 +++--- 11 files changed, 34 insertions(+), 34 deletions(-) diff --git a/descriptions/0/api.intercom.io.yaml b/descriptions/0/api.intercom.io.yaml index 531e7ce..cf75c55 100644 --- a/descriptions/0/api.intercom.io.yaml +++ b/descriptions/0/api.intercom.io.yaml @@ -9064,7 +9064,7 @@ paths: ### Searching for Timestamp Fields All timestamp fields (created_at, updated_at etc.) and Date custom attributes are truncated to a calendar day for Contact Search queries; sub-day precision (hour, minute, second) is not supported. On Preview/Unstable, the day boundary is always UTC, regardless of your workspace's timezone. - Because the value is truncated to a day, `=` matches the whole UTC day, `>` matches from the start of the *next* UTC day (not from the instant you submitted), and `<` matches everything before the start of that UTC day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return a 400 error. + Because the value is truncated to a day, `=` matches the whole UTC day, `>` matches from the start of the *next* UTC day (not from the instant you submitted), and `<` matches everything before the start of that UTC day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return an error. For example, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that timestamp is truncated to 1577836800 (January 1st, 2020 12:00 AM UTC), and because `>` matches from the start of the next day, the search results include Contacts created from January 2nd, 2020 12:00 AM UTC onwards - not from 9:00 AM on January 1st. If you'd like to get contacts created on January 1st, 2020 (UTC) you should search with a created_at value equal (=) to 1577836800 (January 1st, 2020 12:00 AM UTC). This behaviour applies only to timestamps used in search queries. The search results will still contain the full UNIX timestamp and be sorted accordingly. @@ -9122,7 +9122,7 @@ paths: ### Accepted Operators {% admonition type="warning" name="Operators not supported on Date fields" %} - Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns a 400 error. + Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns an error. {% /admonition %} The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. @@ -38979,7 +38979,7 @@ components: - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `boolean` fields: `=`, `!=`, `IN`, `NIN` - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return a 400 error. + - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return an error. example: ">" value: oneOf: diff --git a/descriptions/2.10/api.intercom.io.yaml b/descriptions/2.10/api.intercom.io.yaml index 075571d..f9a2c2c 100644 --- a/descriptions/2.10/api.intercom.io.yaml +++ b/descriptions/2.10/api.intercom.io.yaml @@ -3677,7 +3677,7 @@ paths: ### Searching for Timestamp Fields All timestamp fields (created_at, updated_at etc.) and Date custom attributes are truncated to a calendar day for Contact Search queries; sub-day precision (hour, minute, second) is not supported. The day boundary is determined using your workspace's timezone, so the same query can return different results across workspaces in different timezones. - Because the value is truncated to a day, `=` matches the whole day, `>` matches from the start of the *next* day (not from the instant you submitted), and `<` matches everything before the start of that day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return a 400 error. + Because the value is truncated to a day, `=` matches the whole day, `>` matches from the start of the *next* day (not from the instant you submitted), and `<` matches everything before the start of that day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return an error. For example, on a workspace set to UTC, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that timestamp is truncated to 1577836800 (January 1st, 2020 12:00 AM UTC), and because `>` matches from the start of the next day, the search results include Contacts created from January 2nd, 2020 12:00 AM UTC onwards - not from 9:00 AM on January 1st. On a workspace in another timezone, the day boundaries fall on that timezone's midnight instead. If you'd like to get contacts created on January 1st, 2020 you should search with a created_at value equal (=) to 1577836800 (January 1st, 2020 12:00 AM UTC). This behaviour applies only to timestamps used in search queries. The search results will still contain the full UNIX timestamp and be sorted accordingly. @@ -3734,7 +3734,7 @@ paths: ### Accepted Operators {% admonition type="warning" name="Operators not supported on Date fields" %} - Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns a 400 error. + Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns an error. {% /admonition %} The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. @@ -15863,7 +15863,7 @@ components: - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `boolean` fields: `=`, `!=`, `IN`, `NIN` - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return a 400 error. + - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return an error. example: ">" value: oneOf: diff --git a/descriptions/2.11/api.intercom.io.yaml b/descriptions/2.11/api.intercom.io.yaml index 84ce1bf..21bc1bb 100644 --- a/descriptions/2.11/api.intercom.io.yaml +++ b/descriptions/2.11/api.intercom.io.yaml @@ -3756,7 +3756,7 @@ paths: ### Searching for Timestamp Fields All timestamp fields (created_at, updated_at etc.) and Date custom attributes are truncated to a calendar day for Contact Search queries; sub-day precision (hour, minute, second) is not supported. The day boundary is determined using your workspace's timezone, so the same query can return different results across workspaces in different timezones. - Because the value is truncated to a day, `=` matches the whole day, `>` matches from the start of the *next* day (not from the instant you submitted), and `<` matches everything before the start of that day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return a 400 error. + Because the value is truncated to a day, `=` matches the whole day, `>` matches from the start of the *next* day (not from the instant you submitted), and `<` matches everything before the start of that day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return an error. For example, on a workspace set to UTC, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that timestamp is truncated to 1577836800 (January 1st, 2020 12:00 AM UTC), and because `>` matches from the start of the next day, the search results include Contacts created from January 2nd, 2020 12:00 AM UTC onwards - not from 9:00 AM on January 1st. On a workspace in another timezone, the day boundaries fall on that timezone's midnight instead. If you'd like to get contacts created on January 1st, 2020 you should search with a created_at value equal (=) to 1577836800 (January 1st, 2020 12:00 AM UTC). This behaviour applies only to timestamps used in search queries. The search results will still contain the full UNIX timestamp and be sorted accordingly. @@ -3813,7 +3813,7 @@ paths: ### Accepted Operators {% admonition type="warning" name="Operators not supported on Date fields" %} - Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns a 400 error. + Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns an error. {% /admonition %} The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. @@ -17323,7 +17323,7 @@ components: - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `boolean` fields: `=`, `!=`, `IN`, `NIN` - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return a 400 error. + - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return an error. example: ">" value: oneOf: diff --git a/descriptions/2.12/api.intercom.io.yaml b/descriptions/2.12/api.intercom.io.yaml index e8dc5af..ab8d0b1 100644 --- a/descriptions/2.12/api.intercom.io.yaml +++ b/descriptions/2.12/api.intercom.io.yaml @@ -4290,7 +4290,7 @@ paths: ### Searching for Timestamp Fields All timestamp fields (created_at, updated_at etc.) and Date custom attributes are truncated to a calendar day for Contact Search queries; sub-day precision (hour, minute, second) is not supported. The day boundary is determined using your workspace's timezone, so the same query can return different results across workspaces in different timezones. - Because the value is truncated to a day, `=` matches the whole day, `>` matches from the start of the *next* day (not from the instant you submitted), and `<` matches everything before the start of that day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return a 400 error. + Because the value is truncated to a day, `=` matches the whole day, `>` matches from the start of the *next* day (not from the instant you submitted), and `<` matches everything before the start of that day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return an error. For example, on a workspace set to UTC, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that timestamp is truncated to 1577836800 (January 1st, 2020 12:00 AM UTC), and because `>` matches from the start of the next day, the search results include Contacts created from January 2nd, 2020 12:00 AM UTC onwards - not from 9:00 AM on January 1st. On a workspace in another timezone, the day boundaries fall on that timezone's midnight instead. If you'd like to get contacts created on January 1st, 2020 you should search with a created_at value equal (=) to 1577836800 (January 1st, 2020 12:00 AM UTC). This behaviour applies only to timestamps used in search queries. The search results will still contain the full UNIX timestamp and be sorted accordingly. @@ -4347,7 +4347,7 @@ paths: ### Accepted Operators {% admonition type="warning" name="Operators not supported on Date fields" %} - Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns a 400 error. + Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns an error. {% /admonition %} The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. @@ -17266,7 +17266,7 @@ components: - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `boolean` fields: `=`, `!=`, `IN`, `NIN` - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return a 400 error. + - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return an error. example: ">" value: oneOf: diff --git a/descriptions/2.13/api.intercom.io.yaml b/descriptions/2.13/api.intercom.io.yaml index 8a64783..4ce00b8 100644 --- a/descriptions/2.13/api.intercom.io.yaml +++ b/descriptions/2.13/api.intercom.io.yaml @@ -4811,7 +4811,7 @@ paths: ### Searching for Timestamp Fields All timestamp fields (created_at, updated_at etc.) and Date custom attributes are truncated to a calendar day for Contact Search queries; sub-day precision (hour, minute, second) is not supported. The day boundary is determined using your workspace's timezone, so the same query can return different results across workspaces in different timezones. - Because the value is truncated to a day, `=` matches the whole day, `>` matches from the start of the *next* day (not from the instant you submitted), and `<` matches everything before the start of that day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return a 400 error. + Because the value is truncated to a day, `=` matches the whole day, `>` matches from the start of the *next* day (not from the instant you submitted), and `<` matches everything before the start of that day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return an error. For example, on a workspace set to UTC, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that timestamp is truncated to 1577836800 (January 1st, 2020 12:00 AM UTC), and because `>` matches from the start of the next day, the search results include Contacts created from January 2nd, 2020 12:00 AM UTC onwards - not from 9:00 AM on January 1st. On a workspace in another timezone, the day boundaries fall on that timezone's midnight instead. If you'd like to get contacts created on January 1st, 2020 you should search with a created_at value equal (=) to 1577836800 (January 1st, 2020 12:00 AM UTC). This behaviour applies only to timestamps used in search queries. The search results will still contain the full UNIX timestamp and be sorted accordingly. @@ -4868,7 +4868,7 @@ paths: ### Accepted Operators {% admonition type="warning" name="Operators not supported on Date fields" %} - Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns a 400 error. + Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns an error. {% /admonition %} The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. @@ -18931,7 +18931,7 @@ components: - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `boolean` fields: `=`, `!=`, `IN`, `NIN` - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return a 400 error. + - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return an error. example: ">" value: oneOf: diff --git a/descriptions/2.14/api.intercom.io.yaml b/descriptions/2.14/api.intercom.io.yaml index 820e178..a5679d9 100644 --- a/descriptions/2.14/api.intercom.io.yaml +++ b/descriptions/2.14/api.intercom.io.yaml @@ -5773,7 +5773,7 @@ paths: ### Searching for Timestamp Fields All timestamp fields (created_at, updated_at etc.) and Date custom attributes are truncated to a calendar day for Contact Search queries; sub-day precision (hour, minute, second) is not supported. The day boundary is determined using your workspace's timezone, so the same query can return different results across workspaces in different timezones. - Because the value is truncated to a day, `=` matches the whole day, `>` matches from the start of the *next* day (not from the instant you submitted), and `<` matches everything before the start of that day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return a 400 error. + Because the value is truncated to a day, `=` matches the whole day, `>` matches from the start of the *next* day (not from the instant you submitted), and `<` matches everything before the start of that day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return an error. For example, on a workspace set to UTC, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that timestamp is truncated to 1577836800 (January 1st, 2020 12:00 AM UTC), and because `>` matches from the start of the next day, the search results include Contacts created from January 2nd, 2020 12:00 AM UTC onwards - not from 9:00 AM on January 1st. On a workspace in another timezone, the day boundaries fall on that timezone's midnight instead. If you'd like to get contacts created on January 1st, 2020 you should search with a created_at value equal (=) to 1577836800 (January 1st, 2020 12:00 AM UTC). This behaviour applies only to timestamps used in search queries. The search results will still contain the full UNIX timestamp and be sorted accordingly. @@ -5830,7 +5830,7 @@ paths: ### Accepted Operators {% admonition type="warning" name="Operators not supported on Date fields" %} - Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns a 400 error. + Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns an error. {% /admonition %} The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. @@ -21582,7 +21582,7 @@ components: - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `boolean` fields: `=`, `!=`, `IN`, `NIN` - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return a 400 error. + - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return an error. example: ">" value: oneOf: diff --git a/descriptions/2.15/api.intercom.io.yaml b/descriptions/2.15/api.intercom.io.yaml index 895ccf9..aefa722 100644 --- a/descriptions/2.15/api.intercom.io.yaml +++ b/descriptions/2.15/api.intercom.io.yaml @@ -5696,7 +5696,7 @@ paths: ### Searching for Timestamp Fields All timestamp fields (created_at, updated_at etc.) and Date custom attributes are truncated to a calendar day for Contact Search queries; sub-day precision (hour, minute, second) is not supported. The day boundary is determined using your workspace's timezone, so the same query can return different results across workspaces in different timezones. - Because the value is truncated to a day, `=` matches the whole day, `>` matches from the start of the *next* day (not from the instant you submitted), and `<` matches everything before the start of that day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return a 400 error. + Because the value is truncated to a day, `=` matches the whole day, `>` matches from the start of the *next* day (not from the instant you submitted), and `<` matches everything before the start of that day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return an error. For example, on a workspace set to UTC, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that timestamp is truncated to 1577836800 (January 1st, 2020 12:00 AM UTC), and because `>` matches from the start of the next day, the search results include Contacts created from January 2nd, 2020 12:00 AM UTC onwards - not from 9:00 AM on January 1st. On a workspace in another timezone, the day boundaries fall on that timezone's midnight instead. If you'd like to get contacts created on January 1st, 2020 you should search with a created_at value equal (=) to 1577836800 (January 1st, 2020 12:00 AM UTC). This behaviour applies only to timestamps used in search queries. The search results will still contain the full UNIX timestamp and be sorted accordingly. @@ -5753,7 +5753,7 @@ paths: ### Accepted Operators {% admonition type="warning" name="Operators not supported on Date fields" %} - Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns a 400 error. + Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns an error. {% /admonition %} The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. @@ -22563,7 +22563,7 @@ components: - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `boolean` fields: `=`, `!=`, `IN`, `NIN` - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return a 400 error. + - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return an error. example: ">" value: oneOf: diff --git a/descriptions/2.16/api.intercom.io.yaml b/descriptions/2.16/api.intercom.io.yaml index 3ad8538..525d042 100644 --- a/descriptions/2.16/api.intercom.io.yaml +++ b/descriptions/2.16/api.intercom.io.yaml @@ -8742,10 +8742,10 @@ paths: ### Searching for Timestamp Fields - All timestamp fields (created_at, updated_at etc.) and Date custom attributes are truncated to a calendar day for Contact Search queries; sub-day precision (hour, minute, second) is not supported. The day boundary is always UTC, regardless of your workspace's timezone, so the same query returns the same results across workspaces in every timezone. - Because the value is truncated to a day, `=` matches the whole UTC day, `>` matches from the start of the *next* UTC day (not from the instant you submitted), and `<` matches everything before the start of that UTC day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return a 400 error. + All timestamp fields (created_at, updated_at etc.) and Date custom attributes are truncated to a calendar day for Contact Search queries; sub-day precision (hour, minute, second) is not supported. A contact's value is placed in a day using your workspace's timezone, so the same query can return different results across workspaces in different timezones. + Because the value is truncated to a day, `=` matches the whole day, `>` matches from the start of the *next* day (not from the instant you submitted), and `<` matches everything before the start of that day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return an error. For example, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that timestamp is truncated to 1577836800 (January 1st, 2020 12:00 AM UTC), and because `>` matches from the start of the next day, the search results include Contacts created from January 2nd, 2020 12:00 AM UTC onwards - not from 9:00 AM on January 1st. - If you'd like to get contacts created on January 1st, 2020 (UTC) you should search with a created_at value equal (=) to 1577836800 (January 1st, 2020 12:00 AM UTC). + If you'd like to get contacts created on January 1st, 2020 you should search with a created_at value equal (=) to 1577836800 (January 1st, 2020 12:00 AM UTC). This behaviour applies only to timestamps used in search queries. The search results will still contain the full UNIX timestamp and be sorted accordingly. ### Accepted Fields @@ -33301,7 +33301,7 @@ components: - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `boolean` fields: `=`, `!=`, `IN`, `NIN` - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return a 400 error. + - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return an error. example: ">" value: oneOf: diff --git a/descriptions/2.7/api.intercom.io.yaml b/descriptions/2.7/api.intercom.io.yaml index 068a4a3..83105ba 100644 --- a/descriptions/2.7/api.intercom.io.yaml +++ b/descriptions/2.7/api.intercom.io.yaml @@ -3895,7 +3895,7 @@ paths: ### Searching for Timestamp Fields All timestamp fields (created_at, updated_at etc.) and Date custom attributes are truncated to a calendar day for Contact Search queries; sub-day precision (hour, minute, second) is not supported. The day boundary is determined using your workspace's timezone, so the same query can return different results across workspaces in different timezones. - Because the value is truncated to a day, `=` matches the whole day, `>` matches from the start of the *next* day (not from the instant you submitted), and `<` matches everything before the start of that day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return a 400 error. + Because the value is truncated to a day, `=` matches the whole day, `>` matches from the start of the *next* day (not from the instant you submitted), and `<` matches everything before the start of that day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return an error. For example, on a workspace set to UTC, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that timestamp is truncated to 1577836800 (January 1st, 2020 12:00 AM UTC), and because `>` matches from the start of the next day, the search results include Contacts created from January 2nd, 2020 12:00 AM UTC onwards - not from 9:00 AM on January 1st. On a workspace in another timezone, the day boundaries fall on that timezone's midnight instead. If you'd like to get contacts created on January 1st, 2020 you should search with a created_at value equal (=) to 1577836800 (January 1st, 2020 12:00 AM UTC). This behaviour applies only to timestamps used in search queries. The search results will still contain the full UNIX timestamp and be sorted accordingly. @@ -3952,7 +3952,7 @@ paths: ### Accepted Operators {% admonition type="warning" name="Operators not supported on Date fields" %} - Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns a 400 error. + Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns an error. {% /admonition %} The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. @@ -13862,7 +13862,7 @@ components: - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `boolean` fields: `=`, `!=`, `IN`, `NIN` - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return a 400 error. + - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return an error. example: ">" value: oneOf: diff --git a/descriptions/2.8/api.intercom.io.yaml b/descriptions/2.8/api.intercom.io.yaml index 3500845..8b8221e 100644 --- a/descriptions/2.8/api.intercom.io.yaml +++ b/descriptions/2.8/api.intercom.io.yaml @@ -3895,7 +3895,7 @@ paths: ### Searching for Timestamp Fields All timestamp fields (created_at, updated_at etc.) and Date custom attributes are truncated to a calendar day for Contact Search queries; sub-day precision (hour, minute, second) is not supported. The day boundary is determined using your workspace's timezone, so the same query can return different results across workspaces in different timezones. - Because the value is truncated to a day, `=` matches the whole day, `>` matches from the start of the *next* day (not from the instant you submitted), and `<` matches everything before the start of that day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return a 400 error. + Because the value is truncated to a day, `=` matches the whole day, `>` matches from the start of the *next* day (not from the instant you submitted), and `<` matches everything before the start of that day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return an error. For example, on a workspace set to UTC, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that timestamp is truncated to 1577836800 (January 1st, 2020 12:00 AM UTC), and because `>` matches from the start of the next day, the search results include Contacts created from January 2nd, 2020 12:00 AM UTC onwards - not from 9:00 AM on January 1st. On a workspace in another timezone, the day boundaries fall on that timezone's midnight instead. If you'd like to get contacts created on January 1st, 2020 you should search with a created_at value equal (=) to 1577836800 (January 1st, 2020 12:00 AM UTC). This behaviour applies only to timestamps used in search queries. The search results will still contain the full UNIX timestamp and be sorted accordingly. @@ -3952,7 +3952,7 @@ paths: ### Accepted Operators {% admonition type="warning" name="Operators not supported on Date fields" %} - Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns a 400 error. + Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns an error. {% /admonition %} The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. @@ -13886,7 +13886,7 @@ components: - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `boolean` fields: `=`, `!=`, `IN`, `NIN` - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return a 400 error. + - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return an error. example: ">" value: oneOf: diff --git a/descriptions/2.9/api.intercom.io.yaml b/descriptions/2.9/api.intercom.io.yaml index 2230795..156ac9c 100644 --- a/descriptions/2.9/api.intercom.io.yaml +++ b/descriptions/2.9/api.intercom.io.yaml @@ -3895,7 +3895,7 @@ paths: ### Searching for Timestamp Fields All timestamp fields (created_at, updated_at etc.) and Date custom attributes are truncated to a calendar day for Contact Search queries; sub-day precision (hour, minute, second) is not supported. The day boundary is determined using your workspace's timezone, so the same query can return different results across workspaces in different timezones. - Because the value is truncated to a day, `=` matches the whole day, `>` matches from the start of the *next* day (not from the instant you submitted), and `<` matches everything before the start of that day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return a 400 error. + Because the value is truncated to a day, `=` matches the whole day, `>` matches from the start of the *next* day (not from the instant you submitted), and `<` matches everything before the start of that day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return an error. For example, on a workspace set to UTC, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that timestamp is truncated to 1577836800 (January 1st, 2020 12:00 AM UTC), and because `>` matches from the start of the next day, the search results include Contacts created from January 2nd, 2020 12:00 AM UTC onwards - not from 9:00 AM on January 1st. On a workspace in another timezone, the day boundaries fall on that timezone's midnight instead. If you'd like to get contacts created on January 1st, 2020 you should search with a created_at value equal (=) to 1577836800 (January 1st, 2020 12:00 AM UTC). This behaviour applies only to timestamps used in search queries. The search results will still contain the full UNIX timestamp and be sorted accordingly. @@ -3952,7 +3952,7 @@ paths: ### Accepted Operators {% admonition type="warning" name="Operators not supported on Date fields" %} - Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns a 400 error. + Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns an error. {% /admonition %} The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. @@ -15239,7 +15239,7 @@ components: - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `boolean` fields: `=`, `!=`, `IN`, `NIN` - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return a 400 error. + - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return an error. example: ">" value: oneOf: From d6d5031474671e9cac5308925402ed309d2ed853 Mon Sep 17 00:00:00 2001 From: adisa narula Date: Wed, 19 Aug 2026 13:06:08 +0100 Subject: [PATCH 3/8] Split standard timestamps from Date custom attributes in the search date docs Preview now filters standard contact timestamps on the exact second and accepts !=, >= and <= on them, while Date custom attributes stay whole-day and reject those three. Verified in production on 2026-08-19. Also drops IN and NIN from the documented date operators, since they are not usable on date fields. --- descriptions/0/api.intercom.io.yaml | 33 +++++++++++++------------- descriptions/2.10/api.intercom.io.yaml | 8 +++---- descriptions/2.11/api.intercom.io.yaml | 8 +++---- descriptions/2.12/api.intercom.io.yaml | 8 +++---- descriptions/2.13/api.intercom.io.yaml | 8 +++---- descriptions/2.14/api.intercom.io.yaml | 8 +++---- descriptions/2.15/api.intercom.io.yaml | 8 +++---- descriptions/2.16/api.intercom.io.yaml | 2 +- descriptions/2.7/api.intercom.io.yaml | 8 +++---- descriptions/2.8/api.intercom.io.yaml | 8 +++---- descriptions/2.9/api.intercom.io.yaml | 8 +++---- 11 files changed, 54 insertions(+), 53 deletions(-) diff --git a/descriptions/0/api.intercom.io.yaml b/descriptions/0/api.intercom.io.yaml index cf75c55..4996e0c 100644 --- a/descriptions/0/api.intercom.io.yaml +++ b/descriptions/0/api.intercom.io.yaml @@ -9063,11 +9063,11 @@ paths: ### Searching for Timestamp Fields - All timestamp fields (created_at, updated_at etc.) and Date custom attributes are truncated to a calendar day for Contact Search queries; sub-day precision (hour, minute, second) is not supported. On Preview/Unstable, the day boundary is always UTC, regardless of your workspace's timezone. - Because the value is truncated to a day, `=` matches the whole UTC day, `>` matches from the start of the *next* UTC day (not from the instant you submitted), and `<` matches everything before the start of that UTC day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return an error. - For example, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that timestamp is truncated to 1577836800 (January 1st, 2020 12:00 AM UTC), and because `>` matches from the start of the next day, the search results include Contacts created from January 2nd, 2020 12:00 AM UTC onwards - not from 9:00 AM on January 1st. - If you'd like to get contacts created on January 1st, 2020 (UTC) you should search with a created_at value equal (=) to 1577836800 (January 1st, 2020 12:00 AM UTC). - This behaviour applies only to timestamps used in search queries. The search results will still contain the full UNIX timestamp and be sorted accordingly. + Standard timestamp fields (created_at, updated_at, last_seen_at etc.) are filtered on the exact second, in UTC. `=` matches only Contacts whose value is that exact second, and `>`, `<`, `>=` and `<=` compare against the exact instant you pass - the value is not rounded or truncated. These fields report a type of `datetime` on the Data Attributes endpoint. + Date custom attributes behave differently: they are still truncated to a whole calendar day, and the day boundary is always UTC regardless of your workspace's timezone. On a Date custom attribute, `=` matches the whole UTC day, `>` matches from the start of the *next* UTC day (not from the instant you submitted), and `<` matches everything before the start of that UTC day. The `!=`, `>=`, and `<=` operators are not supported on Date custom attributes and return an error. + For example, searching for a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC) returns Contacts created after that exact instant. Passing the same value for a Date custom attribute truncates it to 1577836800 (January 1st, 2020 12:00 AM UTC), so the results include Contacts from January 2nd, 2020 12:00 AM UTC onwards. + Note that `!=` on a standard timestamp also matches Contacts that have no value set for that field. + Search results always contain the full UNIX timestamp and are sorted on the full value. ### Accepted Fields @@ -9121,22 +9121,22 @@ paths: ### Accepted Operators - {% admonition type="warning" name="Operators not supported on Date fields" %} - Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns an error. + {% admonition type="warning" name="Operators not supported on Date custom attributes" %} + Date custom attributes do not support the `!=`, `>=`, or `<=` operators. Using them returns an error. Standard timestamp fields (`created_at`, `updated_at` etc.) do support these operators, and are filtered on the exact second. {% /admonition %} - The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. + The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. Searching by `tag_id` supports only the `=` and `!=` operators. | Operator | Valid Types | Description | | :------- | :---------------------------------- | :----------------------------------------------------------------------| | = | All | Equals | - | != | All except Date | Doesn't Equal | - | IN | All | In
Shortcut for `OR` queries
Values must be in Array | - | NIN | All | Not In
Shortcut for `OR !` queries
Values must be in Array | - | > | Integer
Float
Date | Greater than
On Date fields, matches from the start of the next day | - | < | Integer
Float
Date | Lower than
On Date fields, matches before the start of the day | - | >= | Integer
Float | Greater than or equal to
Not supported on Date fields | - | <= | Integer
Float | Lower than or equal to
Not supported on Date fields | + | != | All except Date | Doesn't Equal
Also matches Contacts with no value set | + | IN | All except Date, Datetime and tag_id | In
Shortcut for `OR` queries
Values must be in Array | + | NIN | All except Date, Datetime and tag_id | Not In
Shortcut for `OR !` queries
Values must be in Array | + | > | Integer
Float
Datetime
Date | Greater than
On Date custom attributes, matches from the start of the next day | + | < | Integer
Float
Datetime
Date | Lower than
On Date custom attributes, matches before the start of the day | + | >= | Integer
Float
Datetime | Greater than or equal to
Not supported on Date custom attributes | + | <= | Integer
Float
Datetime | Lower than or equal to
Not supported on Date custom attributes | | ~ | String | Contains | | !~ | String | Doesn't Contain | | ^ | String | Starts With | @@ -38979,7 +38979,8 @@ components: - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `boolean` fields: `=`, `!=`, `IN`, `NIN` - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return an error. + - `datetime` fields (standard contact timestamps such as `created_at` and `last_seen_at`): `=`, `!=`, `<`, `>`, `<=`, `>=`. Filtering is on the exact second, in UTC. + - `date` fields (Date custom attributes): `=`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return an error. Values are truncated to a whole UTC day. example: ">" value: oneOf: diff --git a/descriptions/2.10/api.intercom.io.yaml b/descriptions/2.10/api.intercom.io.yaml index f9a2c2c..dbd7d5e 100644 --- a/descriptions/2.10/api.intercom.io.yaml +++ b/descriptions/2.10/api.intercom.io.yaml @@ -3737,14 +3737,14 @@ paths: Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns an error. {% /admonition %} - The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. + The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. Searching by `tag_id` supports only the `=` and `!=` operators. | Operator | Valid Types | Description | | :------- | :---------------------------------- | :----------------------------------------------------------------------| | = | All | Equals | | != | All except Date | Doesn't Equal | - | IN | All | In
Shortcut for `OR` queries
Values must be in Array | - | NIN | All | Not In
Shortcut for `OR !` queries
Values must be in Array | + | IN | All except Date and tag_id | In
Shortcut for `OR` queries
Values must be in Array | + | NIN | All except Date and tag_id | Not In
Shortcut for `OR !` queries
Values must be in Array | | > | Integer
Float
Date | Greater than
On Date fields, matches from the start of the next day | | < | Integer
Float
Date | Lower than
On Date fields, matches before the start of the day | | >= | Integer
Float | Greater than or equal to
Not supported on Date fields | @@ -15863,7 +15863,7 @@ components: - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `boolean` fields: `=`, `!=`, `IN`, `NIN` - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return an error. + - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `<`, `>` only. `!=`, `<=`, `>=`, `IN`, and `NIN` are not supported and return an error. example: ">" value: oneOf: diff --git a/descriptions/2.11/api.intercom.io.yaml b/descriptions/2.11/api.intercom.io.yaml index 21bc1bb..b698f77 100644 --- a/descriptions/2.11/api.intercom.io.yaml +++ b/descriptions/2.11/api.intercom.io.yaml @@ -3816,14 +3816,14 @@ paths: Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns an error. {% /admonition %} - The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. + The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. Searching by `tag_id` supports only the `=` and `!=` operators. | Operator | Valid Types | Description | | :------- | :---------------------------------- | :----------------------------------------------------------------------| | = | All | Equals | | != | All except Date | Doesn't Equal | - | IN | All | In
Shortcut for `OR` queries
Values must be in Array | - | NIN | All | Not In
Shortcut for `OR !` queries
Values must be in Array | + | IN | All except Date and tag_id | In
Shortcut for `OR` queries
Values must be in Array | + | NIN | All except Date and tag_id | Not In
Shortcut for `OR !` queries
Values must be in Array | | > | Integer
Float
Date | Greater than
On Date fields, matches from the start of the next day | | < | Integer
Float
Date | Lower than
On Date fields, matches before the start of the day | | >= | Integer
Float | Greater than or equal to
Not supported on Date fields | @@ -17323,7 +17323,7 @@ components: - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `boolean` fields: `=`, `!=`, `IN`, `NIN` - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return an error. + - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `<`, `>` only. `!=`, `<=`, `>=`, `IN`, and `NIN` are not supported and return an error. example: ">" value: oneOf: diff --git a/descriptions/2.12/api.intercom.io.yaml b/descriptions/2.12/api.intercom.io.yaml index ab8d0b1..f5e1b95 100644 --- a/descriptions/2.12/api.intercom.io.yaml +++ b/descriptions/2.12/api.intercom.io.yaml @@ -4350,14 +4350,14 @@ paths: Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns an error. {% /admonition %} - The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. + The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. Searching by `tag_id` supports only the `=` and `!=` operators. | Operator | Valid Types | Description | | :------- | :---------------------------------- | :----------------------------------------------------------------------| | = | All | Equals | | != | All except Date | Doesn't Equal | - | IN | All | In
Shortcut for `OR` queries
Values must be in Array | - | NIN | All | Not In
Shortcut for `OR !` queries
Values must be in Array | + | IN | All except Date and tag_id | In
Shortcut for `OR` queries
Values must be in Array | + | NIN | All except Date and tag_id | Not In
Shortcut for `OR !` queries
Values must be in Array | | > | Integer
Float
Date | Greater than
On Date fields, matches from the start of the next day | | < | Integer
Float
Date | Lower than
On Date fields, matches before the start of the day | | >= | Integer
Float | Greater than or equal to
Not supported on Date fields | @@ -17266,7 +17266,7 @@ components: - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `boolean` fields: `=`, `!=`, `IN`, `NIN` - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return an error. + - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `<`, `>` only. `!=`, `<=`, `>=`, `IN`, and `NIN` are not supported and return an error. example: ">" value: oneOf: diff --git a/descriptions/2.13/api.intercom.io.yaml b/descriptions/2.13/api.intercom.io.yaml index 4ce00b8..3d31dbf 100644 --- a/descriptions/2.13/api.intercom.io.yaml +++ b/descriptions/2.13/api.intercom.io.yaml @@ -4871,14 +4871,14 @@ paths: Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns an error. {% /admonition %} - The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. + The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. Searching by `tag_id` supports only the `=` and `!=` operators. | Operator | Valid Types | Description | | :------- | :---------------------------------- | :----------------------------------------------------------------------| | = | All | Equals | | != | All except Date | Doesn't Equal | - | IN | All | In
Shortcut for `OR` queries
Values must be in Array | - | NIN | All | Not In
Shortcut for `OR !` queries
Values must be in Array | + | IN | All except Date and tag_id | In
Shortcut for `OR` queries
Values must be in Array | + | NIN | All except Date and tag_id | Not In
Shortcut for `OR !` queries
Values must be in Array | | > | Integer
Float
Date | Greater than
On Date fields, matches from the start of the next day | | < | Integer
Float
Date | Lower than
On Date fields, matches before the start of the day | | >= | Integer
Float | Greater than or equal to
Not supported on Date fields | @@ -18931,7 +18931,7 @@ components: - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `boolean` fields: `=`, `!=`, `IN`, `NIN` - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return an error. + - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `<`, `>` only. `!=`, `<=`, `>=`, `IN`, and `NIN` are not supported and return an error. example: ">" value: oneOf: diff --git a/descriptions/2.14/api.intercom.io.yaml b/descriptions/2.14/api.intercom.io.yaml index a5679d9..6fba00d 100644 --- a/descriptions/2.14/api.intercom.io.yaml +++ b/descriptions/2.14/api.intercom.io.yaml @@ -5833,14 +5833,14 @@ paths: Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns an error. {% /admonition %} - The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. + The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. Searching by `tag_id` supports only the `=` and `!=` operators. | Operator | Valid Types | Description | | :------- | :---------------------------------- | :----------------------------------------------------------------------| | = | All | Equals | | != | All except Date | Doesn't Equal | - | IN | All | In
Shortcut for `OR` queries
Values must be in Array | - | NIN | All | Not In
Shortcut for `OR !` queries
Values must be in Array | + | IN | All except Date and tag_id | In
Shortcut for `OR` queries
Values must be in Array | + | NIN | All except Date and tag_id | Not In
Shortcut for `OR !` queries
Values must be in Array | | > | Integer
Float
Date | Greater than
On Date fields, matches from the start of the next day | | < | Integer
Float
Date | Lower than
On Date fields, matches before the start of the day | | >= | Integer
Float | Greater than or equal to
Not supported on Date fields | @@ -21582,7 +21582,7 @@ components: - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `boolean` fields: `=`, `!=`, `IN`, `NIN` - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return an error. + - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `<`, `>` only. `!=`, `<=`, `>=`, `IN`, and `NIN` are not supported and return an error. example: ">" value: oneOf: diff --git a/descriptions/2.15/api.intercom.io.yaml b/descriptions/2.15/api.intercom.io.yaml index aefa722..54a3110 100644 --- a/descriptions/2.15/api.intercom.io.yaml +++ b/descriptions/2.15/api.intercom.io.yaml @@ -5756,14 +5756,14 @@ paths: Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns an error. {% /admonition %} - The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. + The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. Searching by `tag_id` supports only the `=` and `!=` operators. | Operator | Valid Types | Description | | :------- | :---------------------------------- | :----------------------------------------------------------------------| | = | All | Equals | | != | All except Date | Doesn't Equal | - | IN | All | In
Shortcut for `OR` queries
Values must be in Array | - | NIN | All | Not In
Shortcut for `OR !` queries
Values must be in Array | + | IN | All except Date and tag_id | In
Shortcut for `OR` queries
Values must be in Array | + | NIN | All except Date and tag_id | Not In
Shortcut for `OR !` queries
Values must be in Array | | > | Integer
Float
Date | Greater than
On Date fields, matches from the start of the next day | | < | Integer
Float
Date | Lower than
On Date fields, matches before the start of the day | | >= | Integer
Float | Greater than or equal to
Not supported on Date fields | @@ -22563,7 +22563,7 @@ components: - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `boolean` fields: `=`, `!=`, `IN`, `NIN` - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return an error. + - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `<`, `>` only. `!=`, `<=`, `>=`, `IN`, and `NIN` are not supported and return an error. example: ">" value: oneOf: diff --git a/descriptions/2.16/api.intercom.io.yaml b/descriptions/2.16/api.intercom.io.yaml index 525d042..7fd9195 100644 --- a/descriptions/2.16/api.intercom.io.yaml +++ b/descriptions/2.16/api.intercom.io.yaml @@ -33301,7 +33301,7 @@ components: - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `boolean` fields: `=`, `!=`, `IN`, `NIN` - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return an error. + - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `<`, `>` only. `!=`, `<=`, `>=`, `IN`, and `NIN` are not supported and return an error. example: ">" value: oneOf: diff --git a/descriptions/2.7/api.intercom.io.yaml b/descriptions/2.7/api.intercom.io.yaml index 83105ba..98d2701 100644 --- a/descriptions/2.7/api.intercom.io.yaml +++ b/descriptions/2.7/api.intercom.io.yaml @@ -3955,14 +3955,14 @@ paths: Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns an error. {% /admonition %} - The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. + The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. Searching by `tag_id` supports only the `=` and `!=` operators. | Operator | Valid Types | Description | | :------- | :---------------------------------- | :----------------------------------------------------------------------| | = | All | Equals | | != | All except Date | Doesn't Equal | - | IN | All | In
Shortcut for `OR` queries
Values must be in Array | - | NIN | All | Not In
Shortcut for `OR !` queries
Values must be in Array | + | IN | All except Date and tag_id | In
Shortcut for `OR` queries
Values must be in Array | + | NIN | All except Date and tag_id | Not In
Shortcut for `OR !` queries
Values must be in Array | | > | Integer
Float
Date | Greater than
On Date fields, matches from the start of the next day | | < | Integer
Float
Date | Lower than
On Date fields, matches before the start of the day | | >= | Integer
Float | Greater than or equal to
Not supported on Date fields | @@ -13862,7 +13862,7 @@ components: - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `boolean` fields: `=`, `!=`, `IN`, `NIN` - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return an error. + - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `<`, `>` only. `!=`, `<=`, `>=`, `IN`, and `NIN` are not supported and return an error. example: ">" value: oneOf: diff --git a/descriptions/2.8/api.intercom.io.yaml b/descriptions/2.8/api.intercom.io.yaml index 8b8221e..ef019d8 100644 --- a/descriptions/2.8/api.intercom.io.yaml +++ b/descriptions/2.8/api.intercom.io.yaml @@ -3955,14 +3955,14 @@ paths: Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns an error. {% /admonition %} - The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. + The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. Searching by `tag_id` supports only the `=` and `!=` operators. | Operator | Valid Types | Description | | :------- | :---------------------------------- | :----------------------------------------------------------------------| | = | All | Equals | | != | All except Date | Doesn't Equal | - | IN | All | In
Shortcut for `OR` queries
Values must be in Array | - | NIN | All | Not In
Shortcut for `OR !` queries
Values must be in Array | + | IN | All except Date and tag_id | In
Shortcut for `OR` queries
Values must be in Array | + | NIN | All except Date and tag_id | Not In
Shortcut for `OR !` queries
Values must be in Array | | > | Integer
Float
Date | Greater than
On Date fields, matches from the start of the next day | | < | Integer
Float
Date | Lower than
On Date fields, matches before the start of the day | | >= | Integer
Float | Greater than or equal to
Not supported on Date fields | @@ -13886,7 +13886,7 @@ components: - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `boolean` fields: `=`, `!=`, `IN`, `NIN` - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return an error. + - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `<`, `>` only. `!=`, `<=`, `>=`, `IN`, and `NIN` are not supported and return an error. example: ">" value: oneOf: diff --git a/descriptions/2.9/api.intercom.io.yaml b/descriptions/2.9/api.intercom.io.yaml index 156ac9c..951862b 100644 --- a/descriptions/2.9/api.intercom.io.yaml +++ b/descriptions/2.9/api.intercom.io.yaml @@ -3955,14 +3955,14 @@ paths: Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns an error. {% /admonition %} - The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. + The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. Searching by `tag_id` supports only the `=` and `!=` operators. | Operator | Valid Types | Description | | :------- | :---------------------------------- | :----------------------------------------------------------------------| | = | All | Equals | | != | All except Date | Doesn't Equal | - | IN | All | In
Shortcut for `OR` queries
Values must be in Array | - | NIN | All | Not In
Shortcut for `OR !` queries
Values must be in Array | + | IN | All except Date and tag_id | In
Shortcut for `OR` queries
Values must be in Array | + | NIN | All except Date and tag_id | Not In
Shortcut for `OR !` queries
Values must be in Array | | > | Integer
Float
Date | Greater than
On Date fields, matches from the start of the next day | | < | Integer
Float
Date | Lower than
On Date fields, matches before the start of the day | | >= | Integer
Float | Greater than or equal to
Not supported on Date fields | @@ -15239,7 +15239,7 @@ components: - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `boolean` fields: `=`, `!=`, `IN`, `NIN` - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `IN`, `NIN`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return an error. + - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `<`, `>` only. `!=`, `<=`, `>=`, `IN`, and `NIN` are not supported and return an error. example: ">" value: oneOf: From cd811f96f32d33bbb6826959f5358ac5af875cee Mon Sep 17 00:00:00 2001 From: adisa narula Date: Wed, 19 Aug 2026 14:08:07 +0100 Subject: [PATCH 4/8] Break the search timestamp guidance into readable paragraphs The five lines rendered as one wall of text, since consecutive markdown lines join into a single paragraph. Splits it into short paragraphs with a bulleted operator list and a labelled example, and normalises the wording that had drifted between versions. --- descriptions/0/api.intercom.io.yaml | 14 +++++++++----- descriptions/2.10/api.intercom.io.yaml | 22 +++++++++++++++++----- descriptions/2.11/api.intercom.io.yaml | 22 +++++++++++++++++----- descriptions/2.12/api.intercom.io.yaml | 22 +++++++++++++++++----- descriptions/2.13/api.intercom.io.yaml | 22 +++++++++++++++++----- descriptions/2.14/api.intercom.io.yaml | 22 +++++++++++++++++----- descriptions/2.15/api.intercom.io.yaml | 22 +++++++++++++++++----- descriptions/2.16/api.intercom.io.yaml | 22 +++++++++++++++++----- descriptions/2.7/api.intercom.io.yaml | 22 +++++++++++++++++----- descriptions/2.8/api.intercom.io.yaml | 22 +++++++++++++++++----- descriptions/2.9/api.intercom.io.yaml | 22 +++++++++++++++++----- 11 files changed, 179 insertions(+), 55 deletions(-) diff --git a/descriptions/0/api.intercom.io.yaml b/descriptions/0/api.intercom.io.yaml index 4996e0c..462d6f9 100644 --- a/descriptions/0/api.intercom.io.yaml +++ b/descriptions/0/api.intercom.io.yaml @@ -9063,11 +9063,15 @@ paths: ### Searching for Timestamp Fields - Standard timestamp fields (created_at, updated_at, last_seen_at etc.) are filtered on the exact second, in UTC. `=` matches only Contacts whose value is that exact second, and `>`, `<`, `>=` and `<=` compare against the exact instant you pass - the value is not rounded or truncated. These fields report a type of `datetime` on the Data Attributes endpoint. - Date custom attributes behave differently: they are still truncated to a whole calendar day, and the day boundary is always UTC regardless of your workspace's timezone. On a Date custom attribute, `=` matches the whole UTC day, `>` matches from the start of the *next* UTC day (not from the instant you submitted), and `<` matches everything before the start of that UTC day. The `!=`, `>=`, and `<=` operators are not supported on Date custom attributes and return an error. - For example, searching for a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC) returns Contacts created after that exact instant. Passing the same value for a Date custom attribute truncates it to 1577836800 (January 1st, 2020 12:00 AM UTC), so the results include Contacts from January 2nd, 2020 12:00 AM UTC onwards. - Note that `!=` on a standard timestamp also matches Contacts that have no value set for that field. - Search results always contain the full UNIX timestamp and are sorted on the full value. + Standard timestamp fields and Date custom attributes behave differently. + + **Standard timestamp fields** (`created_at`, `updated_at`, `last_seen_at` etc.) are filtered on the exact second, in UTC. `=` matches only Contacts whose value is that exact second, and `>`, `<`, `>=` and `<=` compare against the exact instant you pass - the value is not rounded or truncated. These fields report a type of `datetime` on the Data Attributes endpoint. Note that `!=` also matches Contacts with no value set for the field. + + **Date custom attributes** are matched by calendar day, and the day boundary is always UTC regardless of your workspace's timezone. `=` matches the whole UTC day, `>` matches from the start of the *next* UTC day, and `<` matches everything before the start of that day. The `!=`, `>=`, `<=`, `IN` and `NIN` operators are not supported on these fields and return an error. + + **Example.** Searching for `created_at` greater than `1577869200` (January 1st, 2020 9:00 AM UTC) returns Contacts created after that exact instant. Passing the same value for a Date custom attribute truncates it to `1577836800` (January 1st, 2020 12:00 AM UTC), so those results begin from January 2nd, 2020 12:00 AM UTC. + + Only search queries behave this way. Responses always carry the full UNIX timestamp, and sorting uses the full value. ### Accepted Fields diff --git a/descriptions/2.10/api.intercom.io.yaml b/descriptions/2.10/api.intercom.io.yaml index dbd7d5e..e3d8e6d 100644 --- a/descriptions/2.10/api.intercom.io.yaml +++ b/descriptions/2.10/api.intercom.io.yaml @@ -3676,11 +3676,23 @@ paths: ### Searching for Timestamp Fields - All timestamp fields (created_at, updated_at etc.) and Date custom attributes are truncated to a calendar day for Contact Search queries; sub-day precision (hour, minute, second) is not supported. The day boundary is determined using your workspace's timezone, so the same query can return different results across workspaces in different timezones. - Because the value is truncated to a day, `=` matches the whole day, `>` matches from the start of the *next* day (not from the instant you submitted), and `<` matches everything before the start of that day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return an error. - For example, on a workspace set to UTC, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that timestamp is truncated to 1577836800 (January 1st, 2020 12:00 AM UTC), and because `>` matches from the start of the next day, the search results include Contacts created from January 2nd, 2020 12:00 AM UTC onwards - not from 9:00 AM on January 1st. On a workspace in another timezone, the day boundaries fall on that timezone's midnight instead. - If you'd like to get contacts created on January 1st, 2020 you should search with a created_at value equal (=) to 1577836800 (January 1st, 2020 12:00 AM UTC). - This behaviour applies only to timestamps used in search queries. The search results will still contain the full UNIX timestamp and be sorted accordingly. + Timestamp fields (`created_at`, `updated_at` etc.) and Date custom attributes are matched by calendar day. Sub-day precision (hour, minute, second) is not supported. + + The day boundary uses **your workspace's timezone**, so the same query can return different results on two workspaces in different timezones. + + Because the value is truncated to a day: + + * `=` matches the whole day. + * `>` matches from the start of the *next* day, not from the instant you passed. + * `<` matches everything before the start of that day. + + The `!=`, `>=`, `<=`, `IN` and `NIN` operators are not supported on Date fields and return an error. + + **Example**, on a workspace set to UTC. Searching for `created_at` greater than `1577869200` (January 1st, 2020 9:00 AM UTC) truncates that value to `1577836800` (January 1st, 2020 12:00 AM UTC). Because `>` starts at the next day, the results begin from January 2nd, 2020 12:00 AM UTC - not from 9:00 AM on January 1st. On a workspace in another timezone, the boundaries fall on that timezone's midnight instead. + + To get contacts created on January 1st, 2020, search for `created_at` equal to `1577836800`. + + Only search queries behave this way. Responses still carry the full UNIX timestamp, and sorting uses the full value. ### Accepted Fields diff --git a/descriptions/2.11/api.intercom.io.yaml b/descriptions/2.11/api.intercom.io.yaml index b698f77..7e350f2 100644 --- a/descriptions/2.11/api.intercom.io.yaml +++ b/descriptions/2.11/api.intercom.io.yaml @@ -3755,11 +3755,23 @@ paths: ### Searching for Timestamp Fields - All timestamp fields (created_at, updated_at etc.) and Date custom attributes are truncated to a calendar day for Contact Search queries; sub-day precision (hour, minute, second) is not supported. The day boundary is determined using your workspace's timezone, so the same query can return different results across workspaces in different timezones. - Because the value is truncated to a day, `=` matches the whole day, `>` matches from the start of the *next* day (not from the instant you submitted), and `<` matches everything before the start of that day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return an error. - For example, on a workspace set to UTC, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that timestamp is truncated to 1577836800 (January 1st, 2020 12:00 AM UTC), and because `>` matches from the start of the next day, the search results include Contacts created from January 2nd, 2020 12:00 AM UTC onwards - not from 9:00 AM on January 1st. On a workspace in another timezone, the day boundaries fall on that timezone's midnight instead. - If you'd like to get contacts created on January 1st, 2020 you should search with a created_at value equal (=) to 1577836800 (January 1st, 2020 12:00 AM UTC). - This behaviour applies only to timestamps used in search queries. The search results will still contain the full UNIX timestamp and be sorted accordingly. + Timestamp fields (`created_at`, `updated_at` etc.) and Date custom attributes are matched by calendar day. Sub-day precision (hour, minute, second) is not supported. + + The day boundary uses **your workspace's timezone**, so the same query can return different results on two workspaces in different timezones. + + Because the value is truncated to a day: + + * `=` matches the whole day. + * `>` matches from the start of the *next* day, not from the instant you passed. + * `<` matches everything before the start of that day. + + The `!=`, `>=`, `<=`, `IN` and `NIN` operators are not supported on Date fields and return an error. + + **Example**, on a workspace set to UTC. Searching for `created_at` greater than `1577869200` (January 1st, 2020 9:00 AM UTC) truncates that value to `1577836800` (January 1st, 2020 12:00 AM UTC). Because `>` starts at the next day, the results begin from January 2nd, 2020 12:00 AM UTC - not from 9:00 AM on January 1st. On a workspace in another timezone, the boundaries fall on that timezone's midnight instead. + + To get contacts created on January 1st, 2020, search for `created_at` equal to `1577836800`. + + Only search queries behave this way. Responses still carry the full UNIX timestamp, and sorting uses the full value. ### Accepted Fields diff --git a/descriptions/2.12/api.intercom.io.yaml b/descriptions/2.12/api.intercom.io.yaml index f5e1b95..7e8c828 100644 --- a/descriptions/2.12/api.intercom.io.yaml +++ b/descriptions/2.12/api.intercom.io.yaml @@ -4289,11 +4289,23 @@ paths: ### Searching for Timestamp Fields - All timestamp fields (created_at, updated_at etc.) and Date custom attributes are truncated to a calendar day for Contact Search queries; sub-day precision (hour, minute, second) is not supported. The day boundary is determined using your workspace's timezone, so the same query can return different results across workspaces in different timezones. - Because the value is truncated to a day, `=` matches the whole day, `>` matches from the start of the *next* day (not from the instant you submitted), and `<` matches everything before the start of that day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return an error. - For example, on a workspace set to UTC, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that timestamp is truncated to 1577836800 (January 1st, 2020 12:00 AM UTC), and because `>` matches from the start of the next day, the search results include Contacts created from January 2nd, 2020 12:00 AM UTC onwards - not from 9:00 AM on January 1st. On a workspace in another timezone, the day boundaries fall on that timezone's midnight instead. - If you'd like to get contacts created on January 1st, 2020 you should search with a created_at value equal (=) to 1577836800 (January 1st, 2020 12:00 AM UTC). - This behaviour applies only to timestamps used in search queries. The search results will still contain the full UNIX timestamp and be sorted accordingly. + Timestamp fields (`created_at`, `updated_at` etc.) and Date custom attributes are matched by calendar day. Sub-day precision (hour, minute, second) is not supported. + + The day boundary uses **your workspace's timezone**, so the same query can return different results on two workspaces in different timezones. + + Because the value is truncated to a day: + + * `=` matches the whole day. + * `>` matches from the start of the *next* day, not from the instant you passed. + * `<` matches everything before the start of that day. + + The `!=`, `>=`, `<=`, `IN` and `NIN` operators are not supported on Date fields and return an error. + + **Example**, on a workspace set to UTC. Searching for `created_at` greater than `1577869200` (January 1st, 2020 9:00 AM UTC) truncates that value to `1577836800` (January 1st, 2020 12:00 AM UTC). Because `>` starts at the next day, the results begin from January 2nd, 2020 12:00 AM UTC - not from 9:00 AM on January 1st. On a workspace in another timezone, the boundaries fall on that timezone's midnight instead. + + To get contacts created on January 1st, 2020, search for `created_at` equal to `1577836800`. + + Only search queries behave this way. Responses still carry the full UNIX timestamp, and sorting uses the full value. ### Accepted Fields diff --git a/descriptions/2.13/api.intercom.io.yaml b/descriptions/2.13/api.intercom.io.yaml index 3d31dbf..6840442 100644 --- a/descriptions/2.13/api.intercom.io.yaml +++ b/descriptions/2.13/api.intercom.io.yaml @@ -4810,11 +4810,23 @@ paths: ### Searching for Timestamp Fields - All timestamp fields (created_at, updated_at etc.) and Date custom attributes are truncated to a calendar day for Contact Search queries; sub-day precision (hour, minute, second) is not supported. The day boundary is determined using your workspace's timezone, so the same query can return different results across workspaces in different timezones. - Because the value is truncated to a day, `=` matches the whole day, `>` matches from the start of the *next* day (not from the instant you submitted), and `<` matches everything before the start of that day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return an error. - For example, on a workspace set to UTC, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that timestamp is truncated to 1577836800 (January 1st, 2020 12:00 AM UTC), and because `>` matches from the start of the next day, the search results include Contacts created from January 2nd, 2020 12:00 AM UTC onwards - not from 9:00 AM on January 1st. On a workspace in another timezone, the day boundaries fall on that timezone's midnight instead. - If you'd like to get contacts created on January 1st, 2020 you should search with a created_at value equal (=) to 1577836800 (January 1st, 2020 12:00 AM UTC). - This behaviour applies only to timestamps used in search queries. The search results will still contain the full UNIX timestamp and be sorted accordingly. + Timestamp fields (`created_at`, `updated_at` etc.) and Date custom attributes are matched by calendar day. Sub-day precision (hour, minute, second) is not supported. + + The day boundary uses **your workspace's timezone**, so the same query can return different results on two workspaces in different timezones. + + Because the value is truncated to a day: + + * `=` matches the whole day. + * `>` matches from the start of the *next* day, not from the instant you passed. + * `<` matches everything before the start of that day. + + The `!=`, `>=`, `<=`, `IN` and `NIN` operators are not supported on Date fields and return an error. + + **Example**, on a workspace set to UTC. Searching for `created_at` greater than `1577869200` (January 1st, 2020 9:00 AM UTC) truncates that value to `1577836800` (January 1st, 2020 12:00 AM UTC). Because `>` starts at the next day, the results begin from January 2nd, 2020 12:00 AM UTC - not from 9:00 AM on January 1st. On a workspace in another timezone, the boundaries fall on that timezone's midnight instead. + + To get contacts created on January 1st, 2020, search for `created_at` equal to `1577836800`. + + Only search queries behave this way. Responses still carry the full UNIX timestamp, and sorting uses the full value. ### Accepted Fields diff --git a/descriptions/2.14/api.intercom.io.yaml b/descriptions/2.14/api.intercom.io.yaml index 6fba00d..ff2b50c 100644 --- a/descriptions/2.14/api.intercom.io.yaml +++ b/descriptions/2.14/api.intercom.io.yaml @@ -5772,11 +5772,23 @@ paths: ### Searching for Timestamp Fields - All timestamp fields (created_at, updated_at etc.) and Date custom attributes are truncated to a calendar day for Contact Search queries; sub-day precision (hour, minute, second) is not supported. The day boundary is determined using your workspace's timezone, so the same query can return different results across workspaces in different timezones. - Because the value is truncated to a day, `=` matches the whole day, `>` matches from the start of the *next* day (not from the instant you submitted), and `<` matches everything before the start of that day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return an error. - For example, on a workspace set to UTC, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that timestamp is truncated to 1577836800 (January 1st, 2020 12:00 AM UTC), and because `>` matches from the start of the next day, the search results include Contacts created from January 2nd, 2020 12:00 AM UTC onwards - not from 9:00 AM on January 1st. On a workspace in another timezone, the day boundaries fall on that timezone's midnight instead. - If you'd like to get contacts created on January 1st, 2020 you should search with a created_at value equal (=) to 1577836800 (January 1st, 2020 12:00 AM UTC). - This behaviour applies only to timestamps used in search queries. The search results will still contain the full UNIX timestamp and be sorted accordingly. + Timestamp fields (`created_at`, `updated_at` etc.) and Date custom attributes are matched by calendar day. Sub-day precision (hour, minute, second) is not supported. + + The day boundary uses **your workspace's timezone**, so the same query can return different results on two workspaces in different timezones. + + Because the value is truncated to a day: + + * `=` matches the whole day. + * `>` matches from the start of the *next* day, not from the instant you passed. + * `<` matches everything before the start of that day. + + The `!=`, `>=`, `<=`, `IN` and `NIN` operators are not supported on Date fields and return an error. + + **Example**, on a workspace set to UTC. Searching for `created_at` greater than `1577869200` (January 1st, 2020 9:00 AM UTC) truncates that value to `1577836800` (January 1st, 2020 12:00 AM UTC). Because `>` starts at the next day, the results begin from January 2nd, 2020 12:00 AM UTC - not from 9:00 AM on January 1st. On a workspace in another timezone, the boundaries fall on that timezone's midnight instead. + + To get contacts created on January 1st, 2020, search for `created_at` equal to `1577836800`. + + Only search queries behave this way. Responses still carry the full UNIX timestamp, and sorting uses the full value. ### Accepted Fields diff --git a/descriptions/2.15/api.intercom.io.yaml b/descriptions/2.15/api.intercom.io.yaml index 54a3110..2fe1335 100644 --- a/descriptions/2.15/api.intercom.io.yaml +++ b/descriptions/2.15/api.intercom.io.yaml @@ -5695,11 +5695,23 @@ paths: ### Searching for Timestamp Fields - All timestamp fields (created_at, updated_at etc.) and Date custom attributes are truncated to a calendar day for Contact Search queries; sub-day precision (hour, minute, second) is not supported. The day boundary is determined using your workspace's timezone, so the same query can return different results across workspaces in different timezones. - Because the value is truncated to a day, `=` matches the whole day, `>` matches from the start of the *next* day (not from the instant you submitted), and `<` matches everything before the start of that day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return an error. - For example, on a workspace set to UTC, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that timestamp is truncated to 1577836800 (January 1st, 2020 12:00 AM UTC), and because `>` matches from the start of the next day, the search results include Contacts created from January 2nd, 2020 12:00 AM UTC onwards - not from 9:00 AM on January 1st. On a workspace in another timezone, the day boundaries fall on that timezone's midnight instead. - If you'd like to get contacts created on January 1st, 2020 you should search with a created_at value equal (=) to 1577836800 (January 1st, 2020 12:00 AM UTC). - This behaviour applies only to timestamps used in search queries. The search results will still contain the full UNIX timestamp and be sorted accordingly. + Timestamp fields (`created_at`, `updated_at` etc.) and Date custom attributes are matched by calendar day. Sub-day precision (hour, minute, second) is not supported. + + The day boundary uses **your workspace's timezone**, so the same query can return different results on two workspaces in different timezones. + + Because the value is truncated to a day: + + * `=` matches the whole day. + * `>` matches from the start of the *next* day, not from the instant you passed. + * `<` matches everything before the start of that day. + + The `!=`, `>=`, `<=`, `IN` and `NIN` operators are not supported on Date fields and return an error. + + **Example**, on a workspace set to UTC. Searching for `created_at` greater than `1577869200` (January 1st, 2020 9:00 AM UTC) truncates that value to `1577836800` (January 1st, 2020 12:00 AM UTC). Because `>` starts at the next day, the results begin from January 2nd, 2020 12:00 AM UTC - not from 9:00 AM on January 1st. On a workspace in another timezone, the boundaries fall on that timezone's midnight instead. + + To get contacts created on January 1st, 2020, search for `created_at` equal to `1577836800`. + + Only search queries behave this way. Responses still carry the full UNIX timestamp, and sorting uses the full value. ### Accepted Fields diff --git a/descriptions/2.16/api.intercom.io.yaml b/descriptions/2.16/api.intercom.io.yaml index 7fd9195..44159b5 100644 --- a/descriptions/2.16/api.intercom.io.yaml +++ b/descriptions/2.16/api.intercom.io.yaml @@ -8742,11 +8742,23 @@ paths: ### Searching for Timestamp Fields - All timestamp fields (created_at, updated_at etc.) and Date custom attributes are truncated to a calendar day for Contact Search queries; sub-day precision (hour, minute, second) is not supported. A contact's value is placed in a day using your workspace's timezone, so the same query can return different results across workspaces in different timezones. - Because the value is truncated to a day, `=` matches the whole day, `>` matches from the start of the *next* day (not from the instant you submitted), and `<` matches everything before the start of that day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return an error. - For example, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that timestamp is truncated to 1577836800 (January 1st, 2020 12:00 AM UTC), and because `>` matches from the start of the next day, the search results include Contacts created from January 2nd, 2020 12:00 AM UTC onwards - not from 9:00 AM on January 1st. - If you'd like to get contacts created on January 1st, 2020 you should search with a created_at value equal (=) to 1577836800 (January 1st, 2020 12:00 AM UTC). - This behaviour applies only to timestamps used in search queries. The search results will still contain the full UNIX timestamp and be sorted accordingly. + Timestamp fields (`created_at`, `updated_at` etc.) and Date custom attributes are matched by calendar day. Sub-day precision (hour, minute, second) is not supported. + + The day boundary uses **your workspace's timezone**, so the same query can return different results on two workspaces in different timezones. + + Because the value is truncated to a day: + + * `=` matches the whole day. + * `>` matches from the start of the *next* day, not from the instant you passed. + * `<` matches everything before the start of that day. + + The `!=`, `>=`, `<=`, `IN` and `NIN` operators are not supported on Date fields and return an error. + + **Example**, on a workspace set to UTC. Searching for `created_at` greater than `1577869200` (January 1st, 2020 9:00 AM UTC) truncates that value to `1577836800` (January 1st, 2020 12:00 AM UTC). Because `>` starts at the next day, the results begin from January 2nd, 2020 12:00 AM UTC - not from 9:00 AM on January 1st. On a workspace in another timezone, the boundaries fall on that timezone's midnight instead. + + To get contacts created on January 1st, 2020, search for `created_at` equal to `1577836800`. + + Only search queries behave this way. Responses still carry the full UNIX timestamp, and sorting uses the full value. ### Accepted Fields diff --git a/descriptions/2.7/api.intercom.io.yaml b/descriptions/2.7/api.intercom.io.yaml index 98d2701..70594b9 100644 --- a/descriptions/2.7/api.intercom.io.yaml +++ b/descriptions/2.7/api.intercom.io.yaml @@ -3894,11 +3894,23 @@ paths: ### Searching for Timestamp Fields - All timestamp fields (created_at, updated_at etc.) and Date custom attributes are truncated to a calendar day for Contact Search queries; sub-day precision (hour, minute, second) is not supported. The day boundary is determined using your workspace's timezone, so the same query can return different results across workspaces in different timezones. - Because the value is truncated to a day, `=` matches the whole day, `>` matches from the start of the *next* day (not from the instant you submitted), and `<` matches everything before the start of that day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return an error. - For example, on a workspace set to UTC, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that timestamp is truncated to 1577836800 (January 1st, 2020 12:00 AM UTC), and because `>` matches from the start of the next day, the search results include Contacts created from January 2nd, 2020 12:00 AM UTC onwards - not from 9:00 AM on January 1st. On a workspace in another timezone, the day boundaries fall on that timezone's midnight instead. - If you'd like to get contacts created on January 1st, 2020 you should search with a created_at value equal (=) to 1577836800 (January 1st, 2020 12:00 AM UTC). - This behaviour applies only to timestamps used in search queries. The search results will still contain the full UNIX timestamp and be sorted accordingly. + Timestamp fields (`created_at`, `updated_at` etc.) and Date custom attributes are matched by calendar day. Sub-day precision (hour, minute, second) is not supported. + + The day boundary uses **your workspace's timezone**, so the same query can return different results on two workspaces in different timezones. + + Because the value is truncated to a day: + + * `=` matches the whole day. + * `>` matches from the start of the *next* day, not from the instant you passed. + * `<` matches everything before the start of that day. + + The `!=`, `>=`, `<=`, `IN` and `NIN` operators are not supported on Date fields and return an error. + + **Example**, on a workspace set to UTC. Searching for `created_at` greater than `1577869200` (January 1st, 2020 9:00 AM UTC) truncates that value to `1577836800` (January 1st, 2020 12:00 AM UTC). Because `>` starts at the next day, the results begin from January 2nd, 2020 12:00 AM UTC - not from 9:00 AM on January 1st. On a workspace in another timezone, the boundaries fall on that timezone's midnight instead. + + To get contacts created on January 1st, 2020, search for `created_at` equal to `1577836800`. + + Only search queries behave this way. Responses still carry the full UNIX timestamp, and sorting uses the full value. ### Accepted Fields diff --git a/descriptions/2.8/api.intercom.io.yaml b/descriptions/2.8/api.intercom.io.yaml index ef019d8..35a37fe 100644 --- a/descriptions/2.8/api.intercom.io.yaml +++ b/descriptions/2.8/api.intercom.io.yaml @@ -3894,11 +3894,23 @@ paths: ### Searching for Timestamp Fields - All timestamp fields (created_at, updated_at etc.) and Date custom attributes are truncated to a calendar day for Contact Search queries; sub-day precision (hour, minute, second) is not supported. The day boundary is determined using your workspace's timezone, so the same query can return different results across workspaces in different timezones. - Because the value is truncated to a day, `=` matches the whole day, `>` matches from the start of the *next* day (not from the instant you submitted), and `<` matches everything before the start of that day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return an error. - For example, on a workspace set to UTC, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that timestamp is truncated to 1577836800 (January 1st, 2020 12:00 AM UTC), and because `>` matches from the start of the next day, the search results include Contacts created from January 2nd, 2020 12:00 AM UTC onwards - not from 9:00 AM on January 1st. On a workspace in another timezone, the day boundaries fall on that timezone's midnight instead. - If you'd like to get contacts created on January 1st, 2020 you should search with a created_at value equal (=) to 1577836800 (January 1st, 2020 12:00 AM UTC). - This behaviour applies only to timestamps used in search queries. The search results will still contain the full UNIX timestamp and be sorted accordingly. + Timestamp fields (`created_at`, `updated_at` etc.) and Date custom attributes are matched by calendar day. Sub-day precision (hour, minute, second) is not supported. + + The day boundary uses **your workspace's timezone**, so the same query can return different results on two workspaces in different timezones. + + Because the value is truncated to a day: + + * `=` matches the whole day. + * `>` matches from the start of the *next* day, not from the instant you passed. + * `<` matches everything before the start of that day. + + The `!=`, `>=`, `<=`, `IN` and `NIN` operators are not supported on Date fields and return an error. + + **Example**, on a workspace set to UTC. Searching for `created_at` greater than `1577869200` (January 1st, 2020 9:00 AM UTC) truncates that value to `1577836800` (January 1st, 2020 12:00 AM UTC). Because `>` starts at the next day, the results begin from January 2nd, 2020 12:00 AM UTC - not from 9:00 AM on January 1st. On a workspace in another timezone, the boundaries fall on that timezone's midnight instead. + + To get contacts created on January 1st, 2020, search for `created_at` equal to `1577836800`. + + Only search queries behave this way. Responses still carry the full UNIX timestamp, and sorting uses the full value. ### Accepted Fields diff --git a/descriptions/2.9/api.intercom.io.yaml b/descriptions/2.9/api.intercom.io.yaml index 951862b..bcbc26d 100644 --- a/descriptions/2.9/api.intercom.io.yaml +++ b/descriptions/2.9/api.intercom.io.yaml @@ -3894,11 +3894,23 @@ paths: ### Searching for Timestamp Fields - All timestamp fields (created_at, updated_at etc.) and Date custom attributes are truncated to a calendar day for Contact Search queries; sub-day precision (hour, minute, second) is not supported. The day boundary is determined using your workspace's timezone, so the same query can return different results across workspaces in different timezones. - Because the value is truncated to a day, `=` matches the whole day, `>` matches from the start of the *next* day (not from the instant you submitted), and `<` matches everything before the start of that day. The `!=`, `>=`, and `<=` operators are not supported on Date fields and return an error. - For example, on a workspace set to UTC, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that timestamp is truncated to 1577836800 (January 1st, 2020 12:00 AM UTC), and because `>` matches from the start of the next day, the search results include Contacts created from January 2nd, 2020 12:00 AM UTC onwards - not from 9:00 AM on January 1st. On a workspace in another timezone, the day boundaries fall on that timezone's midnight instead. - If you'd like to get contacts created on January 1st, 2020 you should search with a created_at value equal (=) to 1577836800 (January 1st, 2020 12:00 AM UTC). - This behaviour applies only to timestamps used in search queries. The search results will still contain the full UNIX timestamp and be sorted accordingly. + Timestamp fields (`created_at`, `updated_at` etc.) and Date custom attributes are matched by calendar day. Sub-day precision (hour, minute, second) is not supported. + + The day boundary uses **your workspace's timezone**, so the same query can return different results on two workspaces in different timezones. + + Because the value is truncated to a day: + + * `=` matches the whole day. + * `>` matches from the start of the *next* day, not from the instant you passed. + * `<` matches everything before the start of that day. + + The `!=`, `>=`, `<=`, `IN` and `NIN` operators are not supported on Date fields and return an error. + + **Example**, on a workspace set to UTC. Searching for `created_at` greater than `1577869200` (January 1st, 2020 9:00 AM UTC) truncates that value to `1577836800` (January 1st, 2020 12:00 AM UTC). Because `>` starts at the next day, the results begin from January 2nd, 2020 12:00 AM UTC - not from 9:00 AM on January 1st. On a workspace in another timezone, the boundaries fall on that timezone's midnight instead. + + To get contacts created on January 1st, 2020, search for `created_at` equal to `1577836800`. + + Only search queries behave this way. Responses still carry the full UNIX timestamp, and sorting uses the full value. ### Accepted Fields From 78db1c2c3e7684370283a6dc8fa9ec66d882767d Mon Sep 17 00:00:00 2001 From: adisa narula Date: Wed, 19 Aug 2026 14:29:31 +0100 Subject: [PATCH 5/8] Stop documenting tag_id as accepting the full set of string operators tag_id takes only = and !=; IN, NIN and the string-match operators all return invalid_operator. The shared schema description grouped it with plain string fields, which contradicted the endpoint table. --- descriptions/0/api.intercom.io.yaml | 3 ++- descriptions/2.10/api.intercom.io.yaml | 3 ++- descriptions/2.11/api.intercom.io.yaml | 3 ++- descriptions/2.12/api.intercom.io.yaml | 3 ++- descriptions/2.13/api.intercom.io.yaml | 3 ++- descriptions/2.14/api.intercom.io.yaml | 3 ++- descriptions/2.15/api.intercom.io.yaml | 3 ++- descriptions/2.16/api.intercom.io.yaml | 3 ++- descriptions/2.7/api.intercom.io.yaml | 3 ++- descriptions/2.8/api.intercom.io.yaml | 3 ++- descriptions/2.9/api.intercom.io.yaml | 3 ++- 11 files changed, 22 insertions(+), 11 deletions(-) diff --git a/descriptions/0/api.intercom.io.yaml b/descriptions/0/api.intercom.io.yaml index 462d6f9..1a7088b 100644 --- a/descriptions/0/api.intercom.io.yaml +++ b/descriptions/0/api.intercom.io.yaml @@ -38980,7 +38980,8 @@ components: - "$" description: |- The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type: - - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` + - `string` fields: `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` + - `tag_id`: `=` and `!=` only. Every other operator returns an error. - `boolean` fields: `=`, `!=`, `IN`, `NIN` - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - `datetime` fields (standard contact timestamps such as `created_at` and `last_seen_at`): `=`, `!=`, `<`, `>`, `<=`, `>=`. Filtering is on the exact second, in UTC. diff --git a/descriptions/2.10/api.intercom.io.yaml b/descriptions/2.10/api.intercom.io.yaml index e3d8e6d..3fe796f 100644 --- a/descriptions/2.10/api.intercom.io.yaml +++ b/descriptions/2.10/api.intercom.io.yaml @@ -15872,7 +15872,8 @@ components: - "$" description: |- The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type: - - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` + - `string` fields: `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` + - `tag_id`: `=` and `!=` only. Every other operator returns an error. - `boolean` fields: `=`, `!=`, `IN`, `NIN` - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `<`, `>` only. `!=`, `<=`, `>=`, `IN`, and `NIN` are not supported and return an error. diff --git a/descriptions/2.11/api.intercom.io.yaml b/descriptions/2.11/api.intercom.io.yaml index 7e350f2..55bef87 100644 --- a/descriptions/2.11/api.intercom.io.yaml +++ b/descriptions/2.11/api.intercom.io.yaml @@ -17332,7 +17332,8 @@ components: - "$" description: |- The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type: - - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` + - `string` fields: `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` + - `tag_id`: `=` and `!=` only. Every other operator returns an error. - `boolean` fields: `=`, `!=`, `IN`, `NIN` - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `<`, `>` only. `!=`, `<=`, `>=`, `IN`, and `NIN` are not supported and return an error. diff --git a/descriptions/2.12/api.intercom.io.yaml b/descriptions/2.12/api.intercom.io.yaml index 7e8c828..90e81d8 100644 --- a/descriptions/2.12/api.intercom.io.yaml +++ b/descriptions/2.12/api.intercom.io.yaml @@ -17275,7 +17275,8 @@ components: - "$" description: |- The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type: - - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` + - `string` fields: `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` + - `tag_id`: `=` and `!=` only. Every other operator returns an error. - `boolean` fields: `=`, `!=`, `IN`, `NIN` - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `<`, `>` only. `!=`, `<=`, `>=`, `IN`, and `NIN` are not supported and return an error. diff --git a/descriptions/2.13/api.intercom.io.yaml b/descriptions/2.13/api.intercom.io.yaml index 6840442..6164d15 100644 --- a/descriptions/2.13/api.intercom.io.yaml +++ b/descriptions/2.13/api.intercom.io.yaml @@ -18940,7 +18940,8 @@ components: - "$" description: |- The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type: - - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` + - `string` fields: `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` + - `tag_id`: `=` and `!=` only. Every other operator returns an error. - `boolean` fields: `=`, `!=`, `IN`, `NIN` - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `<`, `>` only. `!=`, `<=`, `>=`, `IN`, and `NIN` are not supported and return an error. diff --git a/descriptions/2.14/api.intercom.io.yaml b/descriptions/2.14/api.intercom.io.yaml index ff2b50c..2104ed6 100644 --- a/descriptions/2.14/api.intercom.io.yaml +++ b/descriptions/2.14/api.intercom.io.yaml @@ -21591,7 +21591,8 @@ components: - "$" description: |- The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type: - - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` + - `string` fields: `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` + - `tag_id`: `=` and `!=` only. Every other operator returns an error. - `boolean` fields: `=`, `!=`, `IN`, `NIN` - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `<`, `>` only. `!=`, `<=`, `>=`, `IN`, and `NIN` are not supported and return an error. diff --git a/descriptions/2.15/api.intercom.io.yaml b/descriptions/2.15/api.intercom.io.yaml index 2fe1335..164016d 100644 --- a/descriptions/2.15/api.intercom.io.yaml +++ b/descriptions/2.15/api.intercom.io.yaml @@ -22572,7 +22572,8 @@ components: - "$" description: |- The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type: - - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` + - `string` fields: `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` + - `tag_id`: `=` and `!=` only. Every other operator returns an error. - `boolean` fields: `=`, `!=`, `IN`, `NIN` - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `<`, `>` only. `!=`, `<=`, `>=`, `IN`, and `NIN` are not supported and return an error. diff --git a/descriptions/2.16/api.intercom.io.yaml b/descriptions/2.16/api.intercom.io.yaml index 44159b5..1583fd2 100644 --- a/descriptions/2.16/api.intercom.io.yaml +++ b/descriptions/2.16/api.intercom.io.yaml @@ -33310,7 +33310,8 @@ components: - "$" description: |- The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type: - - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` + - `string` fields: `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` + - `tag_id`: `=` and `!=` only. Every other operator returns an error. - `boolean` fields: `=`, `!=`, `IN`, `NIN` - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `<`, `>` only. `!=`, `<=`, `>=`, `IN`, and `NIN` are not supported and return an error. diff --git a/descriptions/2.7/api.intercom.io.yaml b/descriptions/2.7/api.intercom.io.yaml index 70594b9..bc4b05f 100644 --- a/descriptions/2.7/api.intercom.io.yaml +++ b/descriptions/2.7/api.intercom.io.yaml @@ -13871,7 +13871,8 @@ components: - "$" description: |- The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type: - - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` + - `string` fields: `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` + - `tag_id`: `=` and `!=` only. Every other operator returns an error. - `boolean` fields: `=`, `!=`, `IN`, `NIN` - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `<`, `>` only. `!=`, `<=`, `>=`, `IN`, and `NIN` are not supported and return an error. diff --git a/descriptions/2.8/api.intercom.io.yaml b/descriptions/2.8/api.intercom.io.yaml index 35a37fe..cf6ddf0 100644 --- a/descriptions/2.8/api.intercom.io.yaml +++ b/descriptions/2.8/api.intercom.io.yaml @@ -13895,7 +13895,8 @@ components: - "$" description: |- The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type: - - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` + - `string` fields: `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` + - `tag_id`: `=` and `!=` only. Every other operator returns an error. - `boolean` fields: `=`, `!=`, `IN`, `NIN` - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `<`, `>` only. `!=`, `<=`, `>=`, `IN`, and `NIN` are not supported and return an error. diff --git a/descriptions/2.9/api.intercom.io.yaml b/descriptions/2.9/api.intercom.io.yaml index bcbc26d..415c55f 100644 --- a/descriptions/2.9/api.intercom.io.yaml +++ b/descriptions/2.9/api.intercom.io.yaml @@ -15248,7 +15248,8 @@ components: - "$" description: |- The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type: - - `string` fields (including tags): `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` + - `string` fields: `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` + - `tag_id`: `=` and `!=` only. Every other operator returns an error. - `boolean` fields: `=`, `!=`, `IN`, `NIN` - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `<`, `>` only. `!=`, `<=`, `>=`, `IN`, and `NIN` are not supported and return an error. From 71921b53a3e5e499ec5a3470c45bb4beeae3d371 Mon Sep 17 00:00:00 2001 From: adisa narula Date: Wed, 19 Aug 2026 14:46:32 +0100 Subject: [PATCH 6/8] Drop the Preview version changes; they ship in a separate PR --- descriptions/0/api.intercom.io.yaml | 59 +++++++++++------------------ 1 file changed, 22 insertions(+), 37 deletions(-) diff --git a/descriptions/0/api.intercom.io.yaml b/descriptions/0/api.intercom.io.yaml index 1a7088b..a4fca1a 100644 --- a/descriptions/0/api.intercom.io.yaml +++ b/descriptions/0/api.intercom.io.yaml @@ -9063,15 +9063,10 @@ paths: ### Searching for Timestamp Fields - Standard timestamp fields and Date custom attributes behave differently. - - **Standard timestamp fields** (`created_at`, `updated_at`, `last_seen_at` etc.) are filtered on the exact second, in UTC. `=` matches only Contacts whose value is that exact second, and `>`, `<`, `>=` and `<=` compare against the exact instant you pass - the value is not rounded or truncated. These fields report a type of `datetime` on the Data Attributes endpoint. Note that `!=` also matches Contacts with no value set for the field. - - **Date custom attributes** are matched by calendar day, and the day boundary is always UTC regardless of your workspace's timezone. `=` matches the whole UTC day, `>` matches from the start of the *next* UTC day, and `<` matches everything before the start of that day. The `!=`, `>=`, `<=`, `IN` and `NIN` operators are not supported on these fields and return an error. - - **Example.** Searching for `created_at` greater than `1577869200` (January 1st, 2020 9:00 AM UTC) returns Contacts created after that exact instant. Passing the same value for a Date custom attribute truncates it to `1577836800` (January 1st, 2020 12:00 AM UTC), so those results begin from January 2nd, 2020 12:00 AM UTC. - - Only search queries behave this way. Responses always carry the full UNIX timestamp, and sorting uses the full value. + All timestamp fields (created_at, updated_at etc.) are filtered by UTC calendar day in Contact Search. An equality (=) query on a timestamp matches any contact whose value falls on the same UTC day, so filtering by a value the API returned reliably matches that contact regardless of your workspace's timezone. Comparisons (>, <) are evaluated at UTC day granularity. + For example, if you search for all Contacts with a created_at value greater (>) than 1577869200 (the UNIX timestamp for January 1st, 2020 9:00 AM UTC), that will be interpreted as 1577836800 (January 1st, 2020 12:00 AM UTC). The search results will then include Contacts created from January 2nd, 2020 12:00 AM UTC onwards. + If you'd like to get contacts created on January 1st, 2020 (UTC) you should search with a created_at value equal (=) to 1577836800 (January 1st, 2020 12:00 AM UTC). + This behaviour applies only to timestamps used in search queries. The search results will still contain the full UNIX timestamp and be sorted accordingly. ### Accepted Fields @@ -9125,26 +9120,24 @@ paths: ### Accepted Operators - {% admonition type="warning" name="Operators not supported on Date custom attributes" %} - Date custom attributes do not support the `!=`, `>=`, or `<=` operators. Using them returns an error. Standard timestamp fields (`created_at`, `updated_at` etc.) do support these operators, and are filtered on the exact second. + {% admonition type="warning" name="Searching based on `created_at`" %} + You cannot use the `<=` or `>=` operators to search by `created_at`. {% /admonition %} - The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. Searching by `tag_id` supports only the `=` and `!=` operators. - - | Operator | Valid Types | Description | - | :------- | :---------------------------------- | :----------------------------------------------------------------------| - | = | All | Equals | - | != | All except Date | Doesn't Equal
Also matches Contacts with no value set | - | IN | All except Date, Datetime and tag_id | In
Shortcut for `OR` queries
Values must be in Array | - | NIN | All except Date, Datetime and tag_id | Not In
Shortcut for `OR !` queries
Values must be in Array | - | > | Integer
Float
Datetime
Date | Greater than
On Date custom attributes, matches from the start of the next day | - | < | Integer
Float
Datetime
Date | Lower than
On Date custom attributes, matches before the start of the day | - | >= | Integer
Float
Datetime | Greater than or equal to
Not supported on Date custom attributes | - | <= | Integer
Float
Datetime | Lower than or equal to
Not supported on Date custom attributes | - | ~ | String | Contains | - | !~ | String | Doesn't Contain | - | ^ | String | Starts With | - | $ | String | Ends With | + The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). The operator has to be compatible with the field's type (eg. you cannot search with `>` for a given string value as it's only compatible for integer's and dates). + + | Operator | Valid Types | Description | + | :------- | :------------------------------- | :--------------------------------------------------------------- | + | = | All | Equals | + | != | All | Doesn't Equal | + | IN | All | In
Shortcut for `OR` queries
Values must be in Array | + | NIN | All | Not In
Shortcut for `OR !` queries
Values must be in Array | + | > | Integer
Date (UNIX Timestamp) | Greater than | + | < | Integer
Date (UNIX Timestamp) | Lower than | + | ~ | String | Contains | + | !~ | String | Doesn't Contain | + | ^ | String | Starts With | + | $ | String | Ends With | responses: '200': description: successful @@ -38971,21 +38964,13 @@ components: - IN - NIN - "<" - - "<=" - ">" - - ">=" - "~" - "!~" - "^" - "$" - description: |- - The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type: - - `string` fields: `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - - `tag_id`: `=` and `!=` only. Every other operator returns an error. - - `boolean` fields: `=`, `!=`, `IN`, `NIN` - - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - - `datetime` fields (standard contact timestamps such as `created_at` and `last_seen_at`): `=`, `!=`, `<`, `>`, `<=`, `>=`. Filtering is on the exact second, in UTC. - - `date` fields (Date custom attributes): `=`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return an error. Values are truncated to a whole UTC day. + description: The accepted operators you can use to define how you want to + search for the value. example: ">" value: oneOf: From e57eddbfeb2c456104143581ec3133a75d7bd5b6 Mon Sep 17 00:00:00 2001 From: adisa narula Date: Wed, 19 Aug 2026 15:03:39 +0100 Subject: [PATCH 7/8] Leave float out of the operator docs --- descriptions/2.10/api.intercom.io.yaml | 10 +++++----- descriptions/2.11/api.intercom.io.yaml | 10 +++++----- descriptions/2.12/api.intercom.io.yaml | 10 +++++----- descriptions/2.13/api.intercom.io.yaml | 10 +++++----- descriptions/2.14/api.intercom.io.yaml | 10 +++++----- descriptions/2.15/api.intercom.io.yaml | 10 +++++----- descriptions/2.16/api.intercom.io.yaml | 2 +- descriptions/2.7/api.intercom.io.yaml | 10 +++++----- descriptions/2.8/api.intercom.io.yaml | 10 +++++----- descriptions/2.9/api.intercom.io.yaml | 10 +++++----- 10 files changed, 46 insertions(+), 46 deletions(-) diff --git a/descriptions/2.10/api.intercom.io.yaml b/descriptions/2.10/api.intercom.io.yaml index 3fe796f..476f95c 100644 --- a/descriptions/2.10/api.intercom.io.yaml +++ b/descriptions/2.10/api.intercom.io.yaml @@ -3757,10 +3757,10 @@ paths: | != | All except Date | Doesn't Equal | | IN | All except Date and tag_id | In
Shortcut for `OR` queries
Values must be in Array | | NIN | All except Date and tag_id | Not In
Shortcut for `OR !` queries
Values must be in Array | - | > | Integer
Float
Date | Greater than
On Date fields, matches from the start of the next day | - | < | Integer
Float
Date | Lower than
On Date fields, matches before the start of the day | - | >= | Integer
Float | Greater than or equal to
Not supported on Date fields | - | <= | Integer
Float | Lower than or equal to
Not supported on Date fields | + | > | Integer
Date | Greater than
On Date fields, matches from the start of the next day | + | < | Integer
Date | Lower than
On Date fields, matches before the start of the day | + | >= | Integer | Greater than or equal to
Not supported on Date fields | + | <= | Integer | Lower than or equal to
Not supported on Date fields | | ~ | String | Contains | | !~ | String | Doesn't Contain | | ^ | String | Starts With | @@ -15875,7 +15875,7 @@ components: - `string` fields: `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `tag_id`: `=` and `!=` only. Every other operator returns an error. - `boolean` fields: `=`, `!=`, `IN`, `NIN` - - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` + - `integer` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `<`, `>` only. `!=`, `<=`, `>=`, `IN`, and `NIN` are not supported and return an error. example: ">" value: diff --git a/descriptions/2.11/api.intercom.io.yaml b/descriptions/2.11/api.intercom.io.yaml index 55bef87..16514b0 100644 --- a/descriptions/2.11/api.intercom.io.yaml +++ b/descriptions/2.11/api.intercom.io.yaml @@ -3836,10 +3836,10 @@ paths: | != | All except Date | Doesn't Equal | | IN | All except Date and tag_id | In
Shortcut for `OR` queries
Values must be in Array | | NIN | All except Date and tag_id | Not In
Shortcut for `OR !` queries
Values must be in Array | - | > | Integer
Float
Date | Greater than
On Date fields, matches from the start of the next day | - | < | Integer
Float
Date | Lower than
On Date fields, matches before the start of the day | - | >= | Integer
Float | Greater than or equal to
Not supported on Date fields | - | <= | Integer
Float | Lower than or equal to
Not supported on Date fields | + | > | Integer
Date | Greater than
On Date fields, matches from the start of the next day | + | < | Integer
Date | Lower than
On Date fields, matches before the start of the day | + | >= | Integer | Greater than or equal to
Not supported on Date fields | + | <= | Integer | Lower than or equal to
Not supported on Date fields | | ~ | String | Contains | | !~ | String | Doesn't Contain | | ^ | String | Starts With | @@ -17335,7 +17335,7 @@ components: - `string` fields: `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `tag_id`: `=` and `!=` only. Every other operator returns an error. - `boolean` fields: `=`, `!=`, `IN`, `NIN` - - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` + - `integer` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `<`, `>` only. `!=`, `<=`, `>=`, `IN`, and `NIN` are not supported and return an error. example: ">" value: diff --git a/descriptions/2.12/api.intercom.io.yaml b/descriptions/2.12/api.intercom.io.yaml index 90e81d8..10329ed 100644 --- a/descriptions/2.12/api.intercom.io.yaml +++ b/descriptions/2.12/api.intercom.io.yaml @@ -4370,10 +4370,10 @@ paths: | != | All except Date | Doesn't Equal | | IN | All except Date and tag_id | In
Shortcut for `OR` queries
Values must be in Array | | NIN | All except Date and tag_id | Not In
Shortcut for `OR !` queries
Values must be in Array | - | > | Integer
Float
Date | Greater than
On Date fields, matches from the start of the next day | - | < | Integer
Float
Date | Lower than
On Date fields, matches before the start of the day | - | >= | Integer
Float | Greater than or equal to
Not supported on Date fields | - | <= | Integer
Float | Lower than or equal to
Not supported on Date fields | + | > | Integer
Date | Greater than
On Date fields, matches from the start of the next day | + | < | Integer
Date | Lower than
On Date fields, matches before the start of the day | + | >= | Integer | Greater than or equal to
Not supported on Date fields | + | <= | Integer | Lower than or equal to
Not supported on Date fields | | ~ | String | Contains | | !~ | String | Doesn't Contain | | ^ | String | Starts With | @@ -17278,7 +17278,7 @@ components: - `string` fields: `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `tag_id`: `=` and `!=` only. Every other operator returns an error. - `boolean` fields: `=`, `!=`, `IN`, `NIN` - - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` + - `integer` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `<`, `>` only. `!=`, `<=`, `>=`, `IN`, and `NIN` are not supported and return an error. example: ">" value: diff --git a/descriptions/2.13/api.intercom.io.yaml b/descriptions/2.13/api.intercom.io.yaml index 6164d15..9e12dc4 100644 --- a/descriptions/2.13/api.intercom.io.yaml +++ b/descriptions/2.13/api.intercom.io.yaml @@ -4891,10 +4891,10 @@ paths: | != | All except Date | Doesn't Equal | | IN | All except Date and tag_id | In
Shortcut for `OR` queries
Values must be in Array | | NIN | All except Date and tag_id | Not In
Shortcut for `OR !` queries
Values must be in Array | - | > | Integer
Float
Date | Greater than
On Date fields, matches from the start of the next day | - | < | Integer
Float
Date | Lower than
On Date fields, matches before the start of the day | - | >= | Integer
Float | Greater than or equal to
Not supported on Date fields | - | <= | Integer
Float | Lower than or equal to
Not supported on Date fields | + | > | Integer
Date | Greater than
On Date fields, matches from the start of the next day | + | < | Integer
Date | Lower than
On Date fields, matches before the start of the day | + | >= | Integer | Greater than or equal to
Not supported on Date fields | + | <= | Integer | Lower than or equal to
Not supported on Date fields | | ~ | String | Contains | | !~ | String | Doesn't Contain | | ^ | String | Starts With | @@ -18943,7 +18943,7 @@ components: - `string` fields: `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `tag_id`: `=` and `!=` only. Every other operator returns an error. - `boolean` fields: `=`, `!=`, `IN`, `NIN` - - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` + - `integer` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `<`, `>` only. `!=`, `<=`, `>=`, `IN`, and `NIN` are not supported and return an error. example: ">" value: diff --git a/descriptions/2.14/api.intercom.io.yaml b/descriptions/2.14/api.intercom.io.yaml index 2104ed6..51dc374 100644 --- a/descriptions/2.14/api.intercom.io.yaml +++ b/descriptions/2.14/api.intercom.io.yaml @@ -5853,10 +5853,10 @@ paths: | != | All except Date | Doesn't Equal | | IN | All except Date and tag_id | In
Shortcut for `OR` queries
Values must be in Array | | NIN | All except Date and tag_id | Not In
Shortcut for `OR !` queries
Values must be in Array | - | > | Integer
Float
Date | Greater than
On Date fields, matches from the start of the next day | - | < | Integer
Float
Date | Lower than
On Date fields, matches before the start of the day | - | >= | Integer
Float | Greater than or equal to
Not supported on Date fields | - | <= | Integer
Float | Lower than or equal to
Not supported on Date fields | + | > | Integer
Date | Greater than
On Date fields, matches from the start of the next day | + | < | Integer
Date | Lower than
On Date fields, matches before the start of the day | + | >= | Integer | Greater than or equal to
Not supported on Date fields | + | <= | Integer | Lower than or equal to
Not supported on Date fields | | ~ | String | Contains | | !~ | String | Doesn't Contain | | ^ | String | Starts With | @@ -21594,7 +21594,7 @@ components: - `string` fields: `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `tag_id`: `=` and `!=` only. Every other operator returns an error. - `boolean` fields: `=`, `!=`, `IN`, `NIN` - - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` + - `integer` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `<`, `>` only. `!=`, `<=`, `>=`, `IN`, and `NIN` are not supported and return an error. example: ">" value: diff --git a/descriptions/2.15/api.intercom.io.yaml b/descriptions/2.15/api.intercom.io.yaml index 164016d..9cecf41 100644 --- a/descriptions/2.15/api.intercom.io.yaml +++ b/descriptions/2.15/api.intercom.io.yaml @@ -5776,10 +5776,10 @@ paths: | != | All except Date | Doesn't Equal | | IN | All except Date and tag_id | In
Shortcut for `OR` queries
Values must be in Array | | NIN | All except Date and tag_id | Not In
Shortcut for `OR !` queries
Values must be in Array | - | > | Integer
Float
Date | Greater than
On Date fields, matches from the start of the next day | - | < | Integer
Float
Date | Lower than
On Date fields, matches before the start of the day | - | >= | Integer
Float | Greater than or equal to
Not supported on Date fields | - | <= | Integer
Float | Lower than or equal to
Not supported on Date fields | + | > | Integer
Date | Greater than
On Date fields, matches from the start of the next day | + | < | Integer
Date | Lower than
On Date fields, matches before the start of the day | + | >= | Integer | Greater than or equal to
Not supported on Date fields | + | <= | Integer | Lower than or equal to
Not supported on Date fields | | ~ | String | Contains | | !~ | String | Doesn't Contain | | ^ | String | Starts With | @@ -22575,7 +22575,7 @@ components: - `string` fields: `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `tag_id`: `=` and `!=` only. Every other operator returns an error. - `boolean` fields: `=`, `!=`, `IN`, `NIN` - - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` + - `integer` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `<`, `>` only. `!=`, `<=`, `>=`, `IN`, and `NIN` are not supported and return an error. example: ">" value: diff --git a/descriptions/2.16/api.intercom.io.yaml b/descriptions/2.16/api.intercom.io.yaml index 1583fd2..1f8cbd7 100644 --- a/descriptions/2.16/api.intercom.io.yaml +++ b/descriptions/2.16/api.intercom.io.yaml @@ -33313,7 +33313,7 @@ components: - `string` fields: `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `tag_id`: `=` and `!=` only. Every other operator returns an error. - `boolean` fields: `=`, `!=`, `IN`, `NIN` - - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` + - `integer` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `<`, `>` only. `!=`, `<=`, `>=`, `IN`, and `NIN` are not supported and return an error. example: ">" value: diff --git a/descriptions/2.7/api.intercom.io.yaml b/descriptions/2.7/api.intercom.io.yaml index bc4b05f..1c3ad7f 100644 --- a/descriptions/2.7/api.intercom.io.yaml +++ b/descriptions/2.7/api.intercom.io.yaml @@ -3975,10 +3975,10 @@ paths: | != | All except Date | Doesn't Equal | | IN | All except Date and tag_id | In
Shortcut for `OR` queries
Values must be in Array | | NIN | All except Date and tag_id | Not In
Shortcut for `OR !` queries
Values must be in Array | - | > | Integer
Float
Date | Greater than
On Date fields, matches from the start of the next day | - | < | Integer
Float
Date | Lower than
On Date fields, matches before the start of the day | - | >= | Integer
Float | Greater than or equal to
Not supported on Date fields | - | <= | Integer
Float | Lower than or equal to
Not supported on Date fields | + | > | Integer
Date | Greater than
On Date fields, matches from the start of the next day | + | < | Integer
Date | Lower than
On Date fields, matches before the start of the day | + | >= | Integer | Greater than or equal to
Not supported on Date fields | + | <= | Integer | Lower than or equal to
Not supported on Date fields | | ~ | String | Contains | | !~ | String | Doesn't Contain | | ^ | String | Starts With | @@ -13874,7 +13874,7 @@ components: - `string` fields: `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `tag_id`: `=` and `!=` only. Every other operator returns an error. - `boolean` fields: `=`, `!=`, `IN`, `NIN` - - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` + - `integer` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `<`, `>` only. `!=`, `<=`, `>=`, `IN`, and `NIN` are not supported and return an error. example: ">" value: diff --git a/descriptions/2.8/api.intercom.io.yaml b/descriptions/2.8/api.intercom.io.yaml index cf6ddf0..50a63b9 100644 --- a/descriptions/2.8/api.intercom.io.yaml +++ b/descriptions/2.8/api.intercom.io.yaml @@ -3975,10 +3975,10 @@ paths: | != | All except Date | Doesn't Equal | | IN | All except Date and tag_id | In
Shortcut for `OR` queries
Values must be in Array | | NIN | All except Date and tag_id | Not In
Shortcut for `OR !` queries
Values must be in Array | - | > | Integer
Float
Date | Greater than
On Date fields, matches from the start of the next day | - | < | Integer
Float
Date | Lower than
On Date fields, matches before the start of the day | - | >= | Integer
Float | Greater than or equal to
Not supported on Date fields | - | <= | Integer
Float | Lower than or equal to
Not supported on Date fields | + | > | Integer
Date | Greater than
On Date fields, matches from the start of the next day | + | < | Integer
Date | Lower than
On Date fields, matches before the start of the day | + | >= | Integer | Greater than or equal to
Not supported on Date fields | + | <= | Integer | Lower than or equal to
Not supported on Date fields | | ~ | String | Contains | | !~ | String | Doesn't Contain | | ^ | String | Starts With | @@ -13898,7 +13898,7 @@ components: - `string` fields: `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `tag_id`: `=` and `!=` only. Every other operator returns an error. - `boolean` fields: `=`, `!=`, `IN`, `NIN` - - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` + - `integer` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `<`, `>` only. `!=`, `<=`, `>=`, `IN`, and `NIN` are not supported and return an error. example: ">" value: diff --git a/descriptions/2.9/api.intercom.io.yaml b/descriptions/2.9/api.intercom.io.yaml index 415c55f..c45719d 100644 --- a/descriptions/2.9/api.intercom.io.yaml +++ b/descriptions/2.9/api.intercom.io.yaml @@ -3975,10 +3975,10 @@ paths: | != | All except Date | Doesn't Equal | | IN | All except Date and tag_id | In
Shortcut for `OR` queries
Values must be in Array | | NIN | All except Date and tag_id | Not In
Shortcut for `OR !` queries
Values must be in Array | - | > | Integer
Float
Date | Greater than
On Date fields, matches from the start of the next day | - | < | Integer
Float
Date | Lower than
On Date fields, matches before the start of the day | - | >= | Integer
Float | Greater than or equal to
Not supported on Date fields | - | <= | Integer
Float | Lower than or equal to
Not supported on Date fields | + | > | Integer
Date | Greater than
On Date fields, matches from the start of the next day | + | < | Integer
Date | Lower than
On Date fields, matches before the start of the day | + | >= | Integer | Greater than or equal to
Not supported on Date fields | + | <= | Integer | Lower than or equal to
Not supported on Date fields | | ~ | String | Contains | | !~ | String | Doesn't Contain | | ^ | String | Starts With | @@ -15251,7 +15251,7 @@ components: - `string` fields: `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `tag_id`: `=` and `!=` only. Every other operator returns an error. - `boolean` fields: `=`, `!=`, `IN`, `NIN` - - `integer` and `float` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` + - `integer` fields: `=`, `!=`, `IN`, `NIN`, `<`, `>`, `<=`, `>=` - `date` fields (all standard timestamp attributes and date custom attributes): `=`, `<`, `>` only. `!=`, `<=`, `>=`, `IN`, and `NIN` are not supported and return an error. example: ">" value: From 0906f082afb3661f8ab26cfe3769abe5b7186f1c Mon Sep 17 00:00:00 2001 From: adisa narula Date: Wed, 19 Aug 2026 15:56:09 +0100 Subject: [PATCH 8/8] Match the merged developer-docs contacts search date filtering docs Co-Authored-By: Claude Opus 5 (1M context) --- descriptions/2.10/api.intercom.io.yaml | 2 +- descriptions/2.11/api.intercom.io.yaml | 2 +- descriptions/2.12/api.intercom.io.yaml | 2 +- descriptions/2.13/api.intercom.io.yaml | 2 +- descriptions/2.14/api.intercom.io.yaml | 2 +- descriptions/2.15/api.intercom.io.yaml | 2 +- descriptions/2.16/api.intercom.io.yaml | 34 ++++++++++++++------------ descriptions/2.7/api.intercom.io.yaml | 2 +- descriptions/2.8/api.intercom.io.yaml | 2 +- descriptions/2.9/api.intercom.io.yaml | 2 +- 10 files changed, 27 insertions(+), 25 deletions(-) diff --git a/descriptions/2.10/api.intercom.io.yaml b/descriptions/2.10/api.intercom.io.yaml index 476f95c..20299b9 100644 --- a/descriptions/2.10/api.intercom.io.yaml +++ b/descriptions/2.10/api.intercom.io.yaml @@ -15871,7 +15871,7 @@ components: - "^" - "$" description: |- - The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type: + The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type. The breakdown below is for Contacts search; the other search endpoints that share this schema accept a different set per field: - `string` fields: `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `tag_id`: `=` and `!=` only. Every other operator returns an error. - `boolean` fields: `=`, `!=`, `IN`, `NIN` diff --git a/descriptions/2.11/api.intercom.io.yaml b/descriptions/2.11/api.intercom.io.yaml index 16514b0..0f47765 100644 --- a/descriptions/2.11/api.intercom.io.yaml +++ b/descriptions/2.11/api.intercom.io.yaml @@ -17331,7 +17331,7 @@ components: - "^" - "$" description: |- - The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type: + The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type. The breakdown below is for Contacts search; the other search endpoints that share this schema accept a different set per field: - `string` fields: `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `tag_id`: `=` and `!=` only. Every other operator returns an error. - `boolean` fields: `=`, `!=`, `IN`, `NIN` diff --git a/descriptions/2.12/api.intercom.io.yaml b/descriptions/2.12/api.intercom.io.yaml index 10329ed..e2d6e12 100644 --- a/descriptions/2.12/api.intercom.io.yaml +++ b/descriptions/2.12/api.intercom.io.yaml @@ -17274,7 +17274,7 @@ components: - "^" - "$" description: |- - The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type: + The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type. The breakdown below is for Contacts search; the other search endpoints that share this schema accept a different set per field: - `string` fields: `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `tag_id`: `=` and `!=` only. Every other operator returns an error. - `boolean` fields: `=`, `!=`, `IN`, `NIN` diff --git a/descriptions/2.13/api.intercom.io.yaml b/descriptions/2.13/api.intercom.io.yaml index 9e12dc4..5655f8b 100644 --- a/descriptions/2.13/api.intercom.io.yaml +++ b/descriptions/2.13/api.intercom.io.yaml @@ -18939,7 +18939,7 @@ components: - "^" - "$" description: |- - The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type: + The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type. The breakdown below is for Contacts search; the other search endpoints that share this schema accept a different set per field: - `string` fields: `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `tag_id`: `=` and `!=` only. Every other operator returns an error. - `boolean` fields: `=`, `!=`, `IN`, `NIN` diff --git a/descriptions/2.14/api.intercom.io.yaml b/descriptions/2.14/api.intercom.io.yaml index 51dc374..d4c631b 100644 --- a/descriptions/2.14/api.intercom.io.yaml +++ b/descriptions/2.14/api.intercom.io.yaml @@ -21590,7 +21590,7 @@ components: - "^" - "$" description: |- - The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type: + The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type. The breakdown below is for Contacts search; the other search endpoints that share this schema accept a different set per field: - `string` fields: `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `tag_id`: `=` and `!=` only. Every other operator returns an error. - `boolean` fields: `=`, `!=`, `IN`, `NIN` diff --git a/descriptions/2.15/api.intercom.io.yaml b/descriptions/2.15/api.intercom.io.yaml index 9cecf41..e31feab 100644 --- a/descriptions/2.15/api.intercom.io.yaml +++ b/descriptions/2.15/api.intercom.io.yaml @@ -22571,7 +22571,7 @@ components: - "^" - "$" description: |- - The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type: + The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type. The breakdown below is for Contacts search; the other search endpoints that share this schema accept a different set per field: - `string` fields: `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `tag_id`: `=` and `!=` only. Every other operator returns an error. - `boolean` fields: `=`, `!=`, `IN`, `NIN` diff --git a/descriptions/2.16/api.intercom.io.yaml b/descriptions/2.16/api.intercom.io.yaml index 1f8cbd7..df2d4a8 100644 --- a/descriptions/2.16/api.intercom.io.yaml +++ b/descriptions/2.16/api.intercom.io.yaml @@ -8812,24 +8812,26 @@ paths: ### Accepted Operators - {% admonition type="warning" name="Searching based on `created_at`" %} - You cannot use the `<=` or `>=` operators to search by `created_at`. + {% admonition type="warning" name="Operators not supported on Date fields" %} + Date fields (`created_at`, `updated_at`, and any Date custom attribute) do not support the `!=`, `>=`, or `<=` operators. Using them returns an error. {% /admonition %} - The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). The operator has to be compatible with the field's type (eg. you cannot search with `>` for a given string value as it's only compatible for integer's and dates). + The table below shows the operators you can use to define how you want to search for the value. The operator should be put in as a string (`"="`). Which operators are valid depends on the field's type - see the "Valid Types" column below. Searching by `tag_id` supports only the `=` and `!=` operators. - | Operator | Valid Types | Description | - | :------- | :------------------------------- | :--------------------------------------------------------------- | - | = | All | Equals | - | != | All | Doesn't Equal | - | IN | All | In
Shortcut for `OR` queries
Values must be in Array | - | NIN | All | Not In
Shortcut for `OR !` queries
Values must be in Array | - | > | Integer
Date (UNIX Timestamp) | Greater than | - | < | Integer
Date (UNIX Timestamp) | Lower than | - | ~ | String | Contains | - | !~ | String | Doesn't Contain | - | ^ | String | Starts With | - | $ | String | Ends With | + | Operator | Valid Types | Description | + | :------- | :---------------------------------- | :----------------------------------------------------------------------| + | = | All | Equals | + | != | All except Date | Doesn't Equal | + | IN | All except Date and tag_id | In
Shortcut for `OR` queries
Values must be in Array | + | NIN | All except Date and tag_id | Not In
Shortcut for `OR !` queries
Values must be in Array | + | > | Integer
Date | Greater than
On Date fields, matches from the start of the next day | + | < | Integer
Date | Lower than
On Date fields, matches before the start of the day | + | >= | Integer | Greater than or equal to
Not supported on Date fields | + | <= | Integer | Lower than or equal to
Not supported on Date fields | + | ~ | String | Contains | + | !~ | String | Doesn't Contain | + | ^ | String | Starts With | + | $ | String | Ends With | responses: '200': description: successful @@ -33309,7 +33311,7 @@ components: - "^" - "$" description: |- - The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type: + The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type. The breakdown below is for Contacts search; the other search endpoints that share this schema accept a different set per field: - `string` fields: `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `tag_id`: `=` and `!=` only. Every other operator returns an error. - `boolean` fields: `=`, `!=`, `IN`, `NIN` diff --git a/descriptions/2.7/api.intercom.io.yaml b/descriptions/2.7/api.intercom.io.yaml index 1c3ad7f..2a43f6d 100644 --- a/descriptions/2.7/api.intercom.io.yaml +++ b/descriptions/2.7/api.intercom.io.yaml @@ -13870,7 +13870,7 @@ components: - "^" - "$" description: |- - The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type: + The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type. The breakdown below is for Contacts search; the other search endpoints that share this schema accept a different set per field: - `string` fields: `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `tag_id`: `=` and `!=` only. Every other operator returns an error. - `boolean` fields: `=`, `!=`, `IN`, `NIN` diff --git a/descriptions/2.8/api.intercom.io.yaml b/descriptions/2.8/api.intercom.io.yaml index 50a63b9..566fbe0 100644 --- a/descriptions/2.8/api.intercom.io.yaml +++ b/descriptions/2.8/api.intercom.io.yaml @@ -13894,7 +13894,7 @@ components: - "^" - "$" description: |- - The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type: + The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type. The breakdown below is for Contacts search; the other search endpoints that share this schema accept a different set per field: - `string` fields: `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `tag_id`: `=` and `!=` only. Every other operator returns an error. - `boolean` fields: `=`, `!=`, `IN`, `NIN` diff --git a/descriptions/2.9/api.intercom.io.yaml b/descriptions/2.9/api.intercom.io.yaml index c45719d..fe8d8ac 100644 --- a/descriptions/2.9/api.intercom.io.yaml +++ b/descriptions/2.9/api.intercom.io.yaml @@ -15247,7 +15247,7 @@ components: - "^" - "$" description: |- - The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type: + The accepted operators you can use to define how you want to search for the value. Operator support depends on the field's data type. The breakdown below is for Contacts search; the other search endpoints that share this schema accept a different set per field: - `string` fields: `=`, `!=`, `IN`, `NIN`, `~`, `!~`, `^`, `$` - `tag_id`: `=` and `!=` only. Every other operator returns an error. - `boolean` fields: `=`, `!=`, `IN`, `NIN`