You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Standard timestamp fields and Date custom attributes behave differently.
9066
-
9067
-
**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.
9068
-
9069
-
**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.
9070
-
9071
-
**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.
9072
-
9073
-
Only search queries behave this way. Responses always carry the full UNIX timestamp, and sorting uses the full value.
9066
+
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.
9067
+
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.
9068
+
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).
9069
+
This behaviour applies only to timestamps used in search queries. The search results will still contain the full UNIX timestamp and be sorted accordingly.
9074
9070
9075
9071
### Accepted Fields
9076
9072
@@ -9124,26 +9120,24 @@ paths:
9124
9120
9125
9121
### Accepted Operators
9126
9122
9127
-
{% admonition type="warning" name="Operators not supported on Date custom attributes" %}
9128
-
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.
9123
+
{% admonition type="warning" name="Searching based on `created_at`" %}
9124
+
You cannot use the `<=` or `>=` operators to search by `created_at`.
9129
9125
{% /admonition %}
9130
9126
9131
-
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.
| != | All except Date | Doesn't Equal<br>Also matches Contacts with no value set |
9137
-
| IN | All except Date, Datetime and tag_id | In<br>Shortcut for `OR` queries<br>Values must be in Array |
9138
-
| NIN | All except Date, Datetime and tag_id | Not In<br>Shortcut for `OR !` queries<br>Values must be in Array |
9139
-
| > | Integer<br>Float<br>Datetime<br>Date | Greater than<br>On Date custom attributes, matches from the start of the next day |
9140
-
| < | Integer<br>Float<br>Datetime<br>Date | Lower than<br>On Date custom attributes, matches before the start of the day |
9141
-
| >= | Integer<br>Float<br>Datetime | Greater than or equal to<br>Not supported on Date custom attributes |
9142
-
| <= | Integer<br>Float<br>Datetime | Lower than or equal to<br>Not supported on Date custom attributes |
9143
-
| ~ | String | Contains |
9144
-
| !~ | String | Doesn't Contain |
9145
-
| ^ | String | Starts With |
9146
-
| $ | String | Ends With |
9127
+
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).
- `datetime` fields (standard contact timestamps such as `created_at` and `last_seen_at`): `=`, `!=`, `<`, `>`, `<=`, `>=`. Filtering is on the exact second, in UTC.
38819
-
- `date` fields (Date custom attributes): `=`, `<`, `>` only. `!=`, `<=`, and `>=` are not supported and return an error. Values are truncated to a whole UTC day.
38972
+
description: The accepted operators you can use to define how you want to
38973
+
search for the value.
38820
38974
example: ">"
38821
38975
value:
38822
38976
oneOf:
@@ -40529,6 +40683,39 @@ components:
40529
40683
- url
40530
40684
- locale
40531
40685
- source_id
40686
+
update_team_members_request:
40687
+
description: |
40688
+
The request payload for updating a team's membership.
40689
+
`admin_ids` is the complete set of teammates who should be on the team once
40690
+
the request completes, not a list of changes to apply. Any teammate currently
40691
+
on the team but absent from `admin_ids` is removed.
40692
+
40693
+
Membership is the only part of a team this endpoint writes, and the request is
40694
+
read from the body: a parameter sent in the query string is rejected rather than
40695
+
applied. A team read from the API can be sent back whole, since the other fields
40696
+
of the representation are accepted as long as they are unchanged. Trying to
40697
+
change one of them returns a 400 rather than being ignored, as does any field a
40698
+
team does not have.
40699
+
40700
+
On a team that balances assignment across its members, teammates already on the
40701
+
team keep their current priority level and teammates being added join as primary
40702
+
members. Priority levels cannot be set here, so `admin_priority_level` follows
40703
+
from `admin_ids`: it is accepted when sent back unchanged and returns a 400 when
40704
+
the request tries to change it.
40705
+
type: object
40706
+
title: Update Team Members Request Payload
40707
+
properties:
40708
+
admin_ids:
40709
+
type: array
40710
+
description: The ids of every teammate who should be a member of the team.
40711
+
Must contain at least one id, and no more than 1000.
0 commit comments