This article contains tables listing and describing data property keywords and values that can be used, along with common search operators, to narrow your search results. There are also sections describing more advanced search methods and formatting.
This article is aimed at administrators and support managers with full access to the data in Zendesk Support. If you're an agent, start with Searching the data in Zendesk Support and refer back to this reference article if you want to perform more advanced searches.
This article includes the following topics on advanced search methods:
This article includes the following reference tables:
- Search operators
- Ticket property keywords
- User property keywords
- Organization property keywords
- Group property keywords
- Satisfaction rating searchable values
Search terms and terminology
Search terms
Search terms are user-defined words, phrases, or values. Examples:
- 3245227
- Greenbriar
- serial number
- "Jane Doe"
Search terms are case-insensitive. For example, "App" and "app" return the same results.
A single-word search term returns a result if it appears in the data as follows:
- a single word
- a single word in a longer phrase
- the prefix of a longer word
The search term will not return a result if it appears in the data as follows:
- in the middle of a word
- at the end of a word
For example, the search term "top" would match "top", "top tier", "Top Ten Trucking", "Tip-Top Mops", "Big Top Entertainment", and "Dessert Toppings, Inc". It would not match "Desktop Solutions" or "One-Stop Publishing".
Please upgrade my account
Property keywords
You can narrow your results by combining property keywords with search terms and operators. Example:
status<solved
A property keyword is the name of a property in a ticket, a user, an organization, or a group. Examples:
- assignee
- created
- name
See the following property keyword references for all the properties and details about each:
Example property searches:
Search | Property keyword | Returns |
---|---|---|
priority>normal | priority | Tickets with a priority of high or urgent |
subject:2fa | subject | Tickets with the search term 2fa in the subject |
email:jdoe@example.com | The user with the email jdoe@example.com |
Some properties have predefined values. For example, the ticket status property has the following predefined values: new, open, pending, hold, solved, closed. You can only search by these values. Example search: status:open
. See the property keyword references for details about each property.
Other properties accept user-defined search terms. Example: subject:2fa
. See Search terms. The same matching rules apply for property searches with the exception of prefix matching. Results are not returned if the search term appears as the prefix of a longer word. For example, the search term "tier" would return results for "tier 1" and "tier 2" but not "tiered".
You can search for multiple values of a single property by including the property keyword multiple times in a query. Example:
tags:silver tags:bronze
Search uses OR logic for matching in this case. The previous example returns results that contain either the tag "silver" or the tag "bronze".
Example search
The following search expression looks for anything with the tag "vip" that was created before May 1, 2019:
tags:vip created<2019-05-01
- tags is a property keyword indicating you're searching only within a specific data property, in this case a tag.
- : is the "equal to" operator indicating the tag property value needs to be equal to the subsequent search term. Note that there's no space before or after the :.
- vip is the search term.
- created is a property keyword indicating you're searching the created data property for items created relative to a certain date.
- < is the "less than" operator indicating you're searching for records created before a certain date.
- 2015-05-01 is a search term indicating the date you want to use.
Searching for properties that contain no data
none
as the search term, along with the group, tags, via, organization, or assignee keywords, as in this example:
assignee:none
This returns all unassigned tickets.
Searching by date and time
Date property keywords - created, updated, solved, and due date) can be combined with search operators to return data from a specific date, before a certain date, and after a certain date. To search dates in any locale, use the format YYYY-MM-DD. You can also use locale-specific formats such as MM/DD/YYYY in the United States.
created<2011-05-01
due_date>2010-01-10
solved:2010-01-10
You can also use the <= or >= operators to indicate less-than-or-equal-to and greater-than-or-equal-to respectively.
Searching with combined dates and times
created>2015-09-01T12:00:00-08:00 updated<2015-09-01T12:00:00Z
The first example above searches for anything created after September 1, 2015 at 12:00 p.m. (Pacific Standard Time).
The second example above searches for anything updated before September 1, 2015 at 12:00 p.m. (UTC).
Searching within a date/time range
created>2014-08-01 created<2014-08-05
You can also include specific times in your search range. The following example searches for anything created between August 1, 2014 at 11:59 p.m. (UTC) and August 4, 2014 at midnight (UTC):
created>2014-08-01T23:59:00Z created<2014-08-04T23:59:59Z
Searching with relative times
You can search for a time relative to the present time, using the time units hours, minutes, days, weeks, months, or years. The following search returns anything created in the last four hours:
created>4hours
Sorting search results
order_by:field
sort:asc
orsort:desc
created
commented
priority
status
ticket_type
Using the order_by
and sort
keywords is equivalent to using the API parameters sort_by
and sort_order
.
Using the 'type' keyword
For API searches, one of the tools you have available for narrowing your search results is the type
keyword. It is used to explicitly declare that you want to search for one of the following types:
- ticket
- user
- organization
- group
- entry or topic (forums)
Using the type
keyword means that you are explicitly searching on the type you specify. For example, you can search for all the users that belong to the customer's organization using this search statement:
type:user organization:customers
If you instead searched for organization:customers
you would also get all the tickets that have requesters who belong to this organization. This is because searches that do not explicitly specify type return results for all types, including tickets (and organization is a ticket property).
Using type:user
, your search returns all users that belong to the Customers organization. So, you're narrowing your search to the user type and excluding tickets.
While organizations and groups are properties of the user object, they have their own properties that can be searched as well. The following query allows you search only for organization tags, excluding tags of the same name that may be used in other elements of your Zendesk Support instance such as tickets and forum topics.
type:organization tags:premium
Using the 'user' keyword
To search for a user's profile data, you have the following two options.
user
keyword:
user:amyOr, using the
type:user
keyword:
type:user amy
For more information about the user
keyword and how it's different from the type:user
keyword, see the section about The user and type keywords in Searching users, groups, and organizations.
Search FAQ
- How soon can new data be searched?
When you add new data to Zendesk Support, it typically takes about a minute before it's indexed and can be searched.
- How does punctuation affect search?
Punctuation characters are generally not included in searches.
- Are there limitations to wildcard searches?
You can only do wildcard searches when combined with property keywords (
subject:photo*
). The wildcard must go at the end of the search term. - Who can search what?
Administrators can search all the data in Zendesk Support. Agents can search the data that they've been granted access to. End-users can do full text searches of the knowledge base.
-
What languages are supported?
There is language-specific support for searching in the following languages:- English
- French
- German
- Japanese
- Portuguese
- Spanish
The support includes dictionary-based tokenization for Japanese, because words are not separated by spaces in that language. For the other languages, the language-specific support is primarily stemming, which allows different forms of the same word to match. In particular, the singular and plural forms of a word will generally match.
Search operators
You can use the following search operators to build your search statements.
Operator | Description |
---|---|
: | The colon indicates that the given field should equal the specified value.
status:open |
< | Less than.
status<closed |
> | Greater than.
priority>normal |
<= | Less than or equal to.
status<=pending |
>= | Greater than or equal to.
priority>=normal |
" " | Double quotes. In a simple keyword search, this is referred to as a phrase search and returns the exact words in the exact order.
"Please upgrade my account" Note: In the Japanese version of Support, this feature does not work as expected. A simple keyword search that includes double quotes returns results, but the results are not the exact words in the exact order.
In a search including data properties, use double quotes to perform an inclusive AND search, returning results that include all properties in the search. tags:"superman is_awesome" |
- | Minus sign. Excludes items containing a word (or property value) from the search results. For example, the following statement searches for any tickets with the status 'pending', but excludes any tickets containing the tag 'invoice' from the search results:
status:pending -tags:invoice |
* | The wildcard operator is useful when you want to search various forms of a word. For example, searching for photo* returns results that would include photography, photographer, photograph and any other words that began with 'photo'.
However, because of the performance issues involved with doing wildcard searches, unqualified wildcard searches are not currently supported. In other words, you need to use a property keyword to make your search specific to the data you're trying to locate.
subject:photo* |
Ticket property keywords
You can search on the following ticket properties.
For more information about ticket search, see Searching tickets.
Keyword | Description |
---|---|
Ticket ID | There isn't a property keyword for the ticket ID. Instead, you simply search for the ticket by its ID number in the following format:
233 |
created |
The date, or date and time, the ticket was created. Enter date in yyy-mm-dd format.
created:2011-05-01 Search within a date or time range. Enter times using ISO 8601 syntax. For example, to search for a ticket created between 10:30 a.m. and 12 p.m. (UTC) on August 1, 2014: created>2014-08-01T10:30:00Z created<2014-08-01T12:00:00Z For more information on using date and time in your search, see Searching by date and time. |
updated |
The date of the most recent ticket update.
updated>2011-05-15 For more information on using date and time in your search, see Searching by date and time. |
solved |
The date the ticket was set to solved.
solved<2011-06-01 For more information on using date and time in your search, see Searching by date and time. |
due_date |
The due date of tickets.
due_date:2011-06-01 For more information on using date and time in your search, see Searching by date and time. |
assignee |
The assigned agent or other entity. You can specify "none", "me", user name (full name or partial), email address, user ID, or phone number.
assignee:"Susan Warren" |
submitter |
The ticket submitter. This may be different than the requester if the ticket was submitted by an agent on behalf of the requester. You can specify "none", "me", user name (full name or partial), email address, user ID, or phone number. See Searching ticket user roles.
submitter:me |
requester |
The ticket requester. You can specify "none", "me", user name (full name or partial), email address, user ID, or phone number.
requester:amy@mondocam.com |
subject |
The text in the ticket's subject.
subject:"upgrade account" |
description |
The text in the ticket's description and comments.
description:defective |
status |
Possible values: new, open, pending, hold, solved, closed.
status<closed |
ticket_type |
Possible values: question, incident, problem, task.
ticket_type:problem |
priority |
Possible values: low, normal, high, urgent.
priority>low |
group |
Specify the name or ID of a group. Returns tickets assigned to agents who are members of the group. Examples:
group:"Level 2" group:20663166 |
organization |
Specify the name or ID of an organization. Returns tickets by requesters who are members of the organization. Examples:
organization:customers organization:22989442 You can also specify "none" to return tickets by requesters who are not members of any organization. organization:none |
tags |
Specify tags that have been added to the ticket or "none."
tags:premium To find tickets that include either of two tags, use: tags:important tags:urgent To find tickets that include both tags: tags:"important urgent" |
via |
The ticket's source, which can be any of the following:
via:phone |
commenter |
People who have added comments to tickets. You can specify "none", "me", user name (full name or partial), email address, user ID, or phone number.
commenter:"Mike" |
cc |
People who have been CC'd on tickets. You can specify "none", "me", user name (full name or partial), email address, user ID, or phone number.
cc:amanda@mondocam.com |
fieldvalue |
Search for a specific value in custom ticket fields by using the fieldvalue keyword. For example:
fieldvalue:12345 This returns all the tickets that have a custom field with the value "12345."
For drop-down custom fields, search for tags associated with the field value you want to find. |
brand |
Search for a specific Brand on a ticket. A Brand with two or more words requires quotation marks, while a one word brand can be searched as is. For example:
brand:Nordstrom Or
brand: "Banana Republic" |
has_attachment |
Search for all tickets with or without attachments using true or false .
To search for tickets with attachments:
To search for all tickets without attachments:
|
form |
Search for all tickets created with a particular ticket form.
If the name of the ticket form includes multiple words, use quotation marks. For example:
If the name of the ticket form is a single word, you don't have to use the quotation marks. For example:
|
recipient |
Search for all tickets created with a particular recipient.
This only works for Zendesk support addresses (the ultimate destination) of emails forwarded from external addresses.
|
User property keywords
Here's the list of user properties that can be searched.
For more information about searching users, see Searching for users, groups, and organizations.
Keyword | Description |
---|---|
name |
The user's partial or full name.
name:"alex anderson" |
role |
The user's designated role.
role:admin |
email |
Specify the user's email address, or specify none to search for users without an email address.
email:alex@mondocam.com email:"none" Tip: Wildcards do not work for email address searches. For example, the following search returns no results:
email:dwight* |
group |
The user's group name. This only applies to admin and agent users.
group:"Level 2" |
organization |
Specify the user's organization name or ID, or specify none to search for users without an organization. If the user belongs to more than one organization, searching on any of those organizations will return their profile.
organization:mondocam |
created |
The date the user was added to your Zendesk.
created<2011-05-01 For more information on using date and time in your search, see Searching by date and time. |
notes |
All text in the notes field in the user's profile.
notes:"manager" |
details |
All text in the details field in the user's profile.
details:"madison, wi" |
external_id |
Specify the user's external ID, if used, or specifynone to search for users without an external ID.
external_id:0098884412 |
phone |
Specify the user's phone number, or specify none to search for users without a phone number.
phone:555-111-2222 |
tags |
Specify tags on the user's profile, or specify none to search for users without tags.
tags:premium tags:wholesaleFor more information about tagging users and organizations, see Adding tags to users and organizations. |
customfield |
Custom user fields.
plan_type:platinumFor more information, see Searching custom user and organization fields. |
is_verified |
Search for users with or without verified email using true or false .
To search for users with a verified email address: is_verified:true To search for users without a verified email address: is_verified:false |
suspended |
Search for users that are and aren't suspended using true or false .
To search for suspended users: is_suspended:true To search for users that aren't suspended: is_suspended:false For more information, see Searching custom user and organization fields. |
Search for users based on a WhatsApp phone number.
For more information see Searching for tickets by WhatsApp number. |
Organization property keywords
Here's the list of organization properties that can be searched. For more information, see Searching for users, groups, and organizations.
Keyword | Description |
---|---|
name |
The organization's partial or full name.
name:mondocam |
created |
The date the organization was added.
created<2011-05-01 For more information on using date and time in your search, see Searching by date and time. |
notes |
All text in the notes field in the user's profile.
notes:EMEA |
details |
All text in the details field in the organization's profile.
details:london |
tags |
Specify tags that have been added to the organization, or specify none to search for organizations without tags.
tags:premium For more information about tagging users and organizations, see Adding tags to users and organizations. |
customfield |
Custom organization fields.
plan_type:platinumFor more information, see Searching custom user and organization fields. |
external_id |
The external ID of the organization or specify none to search for users without an external ID.
external_id:00112345 |
Group property keywords
Here's the list of group properties that can be searched. For more information, see Searching for users, groups, and organizations.
Keyword | Description |
---|---|
name |
The group's name.
name:"level 2" |
created |
The date the group was added.
created<2011-05-01 For more information on using date and time in your search, see Searching by date and time. |
Satisfaction rating searchable values
You can use the satisfaction
keyword with rating values to search your customer satisfaction ratings. For more information on customer satisfaction, see Using customer satisfaction rating.
Value | Description |
---|---|
bad |
Tickets that have been rated 'bad'.
|
badwithcomment |
Tickets that have been rated 'bad' that also include a comment from the ticket requester.
|
good |
Tickets that have been rated 'good'.
|
goodwithcomment |
Tickets that have been rated 'good' that also include a comment from the ticket requester.
|
offered |
When you request a customer satisfaction rating, the ticket satisfaction rating status is set to 'offered'. The following notification is added to the ticket: Customer satisfaction feedback was offered. This means that you've asked for but not yet received a response to the rating request.
|
237 Comments
Hi Joseph,
Thanks for the reply. I have been trying to use the following query in my curl command to get the list of open tickets, but it does not seem to work. This replies with a huge number of tickets which have the status as open, closed, solved, pending etc.
/api/v2/search.json?query=status:open
I do not want to make use of a view. Can you please help me in knowing where I am going wrong?
@Kirthi, can you post your entire curl command?
You might also consider trying out Postman (https://www.getpostman.com/) for testing out queries. It's a really fantastic GUI that makes it a lot easier to explore REST APIs.
Hi Jessie,
"ticket_sharing" is not listed as an option for "via" in this document. In addition, the string "ticket_sharing" doesn't occur on this page at all. Well, it does now, in this comment ;)
Thanks!
@Charles I would definitely prefer using postman. I am using my Zendesk API token to make calls. Can you please give me a sample of the URI along with the query and headers which needs to be passed for getting all the open tickets as a response?
Hi,
I just want to point out the example for the created search should say -8:00 for standard pacific time
From the article:
"The first example above searches for anything created after September 1, 2015 at 12:00 p.m. (Pacific Standard Time)."
It should be:
Thanks for the heads-up, Derek! I'll pass this along to our Documentation team. :)
Hello, can I search by custom_role ?
@Vladyslav The "role" keyword will accept the custom role name as a search value. If the role name has spaces in it, you'll need to wrap it in double quotes. For example, this would find all agents with a Team Leader role:
Thank you.
Hi,
is there a way to filter on tickets that only have over 2 comments?
Cheers,
Zoe
Hi Zoe,
Thanks for writing! Unfortunately, that searching or filtering functionality is not supported yet for now.
Please let us know for additional questions or concerns.
Thanks!
Hiya Zendesk,
Is there a way to use "OR" logic in these queries? If I wanted to search, for example, for all tickets that had a certain string in the ticket's "description" OR in the ticket's "fieldvalue"?
EDIT: probably just searching for such a string using double quotes "like so" would be simpler solution? Still curious about the above question, though.
Are attachments searchable in the help center?
HI Leigh,
Unfortunately not. There is, however, an existing conversation on this in the Product Feedback topic. You're welcome to add your voice and use-case to that thread; this is one of the data points that Product Managers use to prioritize their projects. There's also a workaround mentioned by one user within the thread.
Hi Brian,
The OR operator will work if you run one search with two different values for the same field, e.g.:
description:"pink elephant" description:"red otter"
Otherwise, as you already mentioned, there is an implicit OR in a single search string, as it searches across all field types.
This article is missing the useful `requester_updated` keyword
EDIT: AFAICT the keyword works (just tried it on a hunch, because after all it *is* available as a view column), but is not documented.
Is it possible to change the default sort behavior so it always sorts by last update upon searching?
This has already been flagged by a couple of other people over the last year (here and here), but the searching by combined date and time section is either incorrect, or doesn't work as I'd expect.
From the article:
The first example above searches for anything created after September 1, 2015 at 12:00 p.m. (Pacific Standard Time).
I would expect PST to be -08:00, not +08:00. Can you confirm whether this is an error in the article, or if it's just searching doesn't work as I'm assuming it should?
@Alex M
It's a typo in the documentation. It works as you would expect it to.
After '+add contact' a Twitter handle for a user, is there a way to search for that Twitter handle using the Search?
How do I perform a query on users and sort them by name?
When I search users the resulting order isn't stable. Each time I do the query the order changes. I'd like a stable order.
@Eric:
Unfortunately, it currently is not possible to search for users based on their Twitter or Facebook handles. I'd recommend sharing your feedback in our Product Feedback forum to bring more visibility to this request. You can, however, search for tickets created via those channels by searching for via:twitter or via:facebook, which may help make those users easier to find.
@Dominic:
While it is not possible to search for users and sort them by name or email, you can narrow down your query using the "created" or updated" parameters (e.g. "created>yyyy-mm-dd"). I would also recommend creating a post in our Product Feedback forum to share your suggestion.
Hi All,
I have recently started developing and using apps in Zendesk
So in my app i'm trying to get the require info using rest API SEARCH and when I log the data that I retrieve i'm seeing nothing in the console log o/p. could you please help on this ? refer below for screenshot
On the left you can see the app that I coded from the dev docs given and on the right you see the log o/p which is empty
Also below is the JS I'm using
var conf = {
url: '/api/v2/search.json?query=type%3Aticket+status%3Aopen'+'.json',
type:'GET',
datatype: 'json'
};
client.request(conf).then(
function(data) {
console.log(data);
//dataDisplay(data);
},
function(err) {
console.error(err);
//errorDisplay(err);
});
Hi @Madhav. You're close. It's the +'json' that's causing issues here. It's unnecessary and is in fact becoming part of your search string, which is causing no tickets to be returned.
Here's a simplified code snippet that should work better (you also don't need to worry about encoding the search string if calling the API this way):
var conf = {
url: '/api/v2/search.json?query=type:ticket status:open',
type: 'GET',
dataType: 'json'
};
client.request(conf).then(
function(data) {
console.log(data);
//dataDisplay(data);
},
function(err) {
console.error(err);
//errorDisplay(err);
});
Hope this gets you going!
Can we filter by new sharing_agreement_ids field?
Hi Xiaolei,
Unfortunately, there is not a native way to search for sharing agreement IDs. However, there are a few methods by which you can determine these tickets:
1. Create a View that filters by ticket sharing agreement: there are two conditions in particular for this. One is Ticket Sharing: Sent to and the other is Ticket Sharing: Received from. You can then choose which agreement you want filtered into the View
2. Use Triggers to tag these tickets as they arrive: you can utilize those same conditions to add tags to these tickets as they arrive, then use those tags in your search field
3. Utilize the API to list ticket sharing agreements: this will list all sharing agreements, but not their associated tickets, and you cannot filter by any criteria other than the sharing agreement ID itself
I hope this gets you in the right direction!
Hi... is there is a way to sort the tickets by the subject ?
Hi Wisam!
You can sort by subject in a View, but not in search results. Is there something in particular you need to do that for?
Hello Jessie
Yes, It is for searching for the unsolved duplicates tickets for the solved tickets under the same order number.
Hi Wisam!
I think the best way to do this would be to create a View that filters for these tickets, rather than doing a search. Then you can sort by subject and merge or whatever other process you have in place.
Please sign in to leave a comment.