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 based on the option's field value. If you're using nested drop-down fields, search using the option's tag. For details, see Organizing drop-down list options. |
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 |
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.
|
235 Comments
Hi Chris Drumgoole
Would be a multi-step query:
I'd guess, API only.
HTH
P.
Hi Peter Hochstrasser,
Thanks for the reply. I was afraid of that! ;-)
Chris
Is It possible to search search on a field when it is not null/empty? You reference that you can search on "none", but I need "not none".
Thanks,
Tyler
Hi Tyler,
It is possible to do a custom search for "Fieldvalue:" and then a specific value. However there isn't a way, across all field types, to search for tickets that have a value.
If you are on the Professional plan for Zendesk Explore you are able to build queries that show tickets with a certain field populated however: https://support.zendesk.com/hc/en-us/articles/360022182014-Reporting-with-custom-fields
If that doesn't work for you, could you share a bit more about your use case? In other words, what kinds of fields are you looking to search for in this context? I'd be glad to look into any and all options for you.
Thanks!
Hi Ben,
So we have flows that sync users between Zendesk and NetSuite and if I wanted to mass export user data from Zendesk to NetSuite, then I would just have to pull all users. However, not all Zendesk users will have a NetSuite Internal ID on their record so they would be pointless to export in an update only flow. It would save on resources to find only Zendesk users that have a NetSuite Internal ID. Hence the need for a not empty filter option.
Thanks,
Tyler
Hi,
Is there a way to search Organization that do not have external_id. For instance, we should find organizations available for binding with the external system.
I suppose the search request should be like this:
type:organization external_id:none
But according to organization property keyword, there is not 'external_id' keyword in the list https://support.zendesk.com/hc/en-us/articles/203663226#topic_gok_ffv_uc
Could you please give me a piece of advice or some solution on how to make it?
Hi there!
I'm trying to find all tickets which have a given ticket customfield filled with a value, i.e. where this field is not empty.
Any way to do that with a search?
From the syntax given in the article, it seems that only user and organization customfields can be searched by name which seems to be confirmed by what I get when trying to use the ticket customfield name.
Hey there Peter Hochstrasser. Custom ticket fields have just the 'fieldvalue' keyword for searches (mentioned about mid-article above). This searches across all custom fields, however, and can't be targeted to just one field. The feature request to have more specific custom ticket field searches has come up a number of times and is known to the product team. No announcement on any changes though.
In the meantime, Ben's post from above mentions using Explore as a possible workaround for more targeted custom field reporting.
Another possible workaround (admittedly not always feasible depending on solution) is to use a custom drop-down field type, which applies a tag to the ticket. A tag, even when added via a custom ticket field, is still a regular tag, which can be specifically searched on.
Hope this at least sets current expectations and provides some possible workarounds.
I have a support role which would very much be made easier if I could search many case ID's at the same time. How do I do that? For example, I have a dev ticket that says I can now respond to cases numbers 6236, 6319, 6348, 6370, 6416, 6472, 6702, 6487, 6978, and 6685 which all have complained about the same bug which is now solved.
Any way to do this?
can any body send full api how to search particular tags
ex: tag="vip"
Hey vamsi
You should be able to do the following:
https://your-zendesk-subdomain.zendesk.com/api/v2/search.json?query=tags:vip
Is this what you're looking for?
Note that you're receiving the data in JSON format.
You can use the chrome extension "JSON Formatter" to beautify it a bit if you're visiting the URL in your browser
#helpsome regards,
Simon Blouner
Zendesk Consultant @ helphouse.io
It is possible to use the solved with greater than and less than operators? If I use this:
solved>=2020-07-12 solved<=2020-07-18
I get an InvalidEndpoint error message.
Hi Cesar Perez
First, I suppose you want to AND these conditions; the way you write it above, you OR them:
(solved>=2020-06-01 AND solved<=2020-06-30)
The InvalidEndPoint might be because you had (almost) all of your tickets selected with the ORed formula, but maybe someone from the inside knows more.
Thanks, Peter Hochstrasser! Really appreciate the quick follow up, and indeed that now shows the expected list.
Hi everyone,
I want to know if an identity is already in use by any and-user, i searched a bit and didn't found how to do that...
Is that possible?
Hi Jocelyn Arzur
What exactly is your starting point here?
Where do you want to check that?
and why do you want to know that?
hi Peter Hochstrasser, thanks for the quick answer !
I want to make the job when receiving a new ticket from mail.
This email is coming from a website who transfer many mails, but they don't precise the client email in the header, just in the body.
I parse the mail with regex so i can read the informations to make a user who represent the actual client (not the website).
I did it, but if the user already exists, i just create another one with the same informations and the tickets are not related correctly, so i want to search if the identity (phone number or email) already exists to link the ticket to the good user.
I'm sorry if it is not clear, i'm french :)
Thanks for reading
Hi Jocelyn
Alors, si tu cherche avec une regex, je crois que tu emplois un API pour sa.
Avec l' API, tu peux aller chercher les utilisateurs connus, même s'ils ne sont pas encore confirmés.
La procedure normale en Zendesk est q'on utilise les triggers pour processer les tickets. Tu peux utiliser l'activité "Notify Target" dans un trigger pour brancher à un serveur qui offre un API REST, et tu peux y passer la ID du ticket.
Donne- moi une mise-a-jour comme tu a implementé ta routine s'il te plaît...
Salutations de la Suisse
Peter
Encore merci pour la réponse rapide (et en français en plus !)
Alors j'utilise déjà une API en effet.
Explication du contexte :
Nous sommes un constructeur de maisons individuelles, nous avons donc différents sites diffusant nos annonces. Ces sites nous envoient un mail à chaque demande de devis/contact d'un client.
Zendesk étant bien fait, lorsque le mail du client originel est dans le header du mail, il le repère tout seul et le met en identité du client créé, cependant un de nos annonceur ne suit pas cette ligne et nous envoie uniquement sa propre adresse, tous les tickets sont donc stockés sous son identité...
Pour corriger ce problème, pour le moment, à la réception du ticket, un déclencheur envoie la totalité des infos du ticket à l'API, qui parse le mail (en regex) et en extrait nom, prenom, mail, telephone etc...
A partir de ces informations je crée un nouveau client, j'essaie de lui entrer les identités récupérées du mail parsé, si je rencontre une erreur de duplication et que l'id du client possédant l'identité existe, je supprime mon nouveau client, met a jour l'existant en lui fournissant le ticket en plus.
Le problème est que Zendesk ne renvoie pas systématiquement l'id de l'utilisateur possédant déja l'identité, dans ce cas je suis bloqué.
La manière optimale aurai été de faire une recherche avec le query comme suit :
'api/v2/search.json?query=type:identity value="john@doe.fr"
et a partir de là, récupérer le client, cependant, le type identity n'existe pas...
Je ne vois donc pas comment savoir, si l'identité est utilisée par un client, quel client est-ce?
Encore merci Peter Hochstrasser
Hi Jocelyn Arzur
I switch back to english for the rest of the watchers here.
So, your actual problem is to find a user given his e-mail, if I understand you correctly.
That you should be able to do by API using the user search endpoint:
https://developer.zendesk.com/rest_api/docs/support/users#search-users
I think that your query is exceedingly expensive. I tried the following:
email:"john@doe.fr"
which reported just the user who had this e-mail address assigned - even for myself, being the admin since 4 years. Be aware, however, that even if you get a result, you might need to compare the e-mail address you searched to the one of the user returned - I found cases where the part after the @ has not been equal, but firstname.lastname have been a perfect match.
Correction: The individual in question had a secondary e-Mail address assigned; that is the one I searched for. So, we can say, if a user is returned, it has this email address assigned, though not necessarily as his primary e-mail address.
hi Peter Hochstrasser,
I agree with you, and already tried the query emai:john@doe.fr, the problem is that if john doe has many email adresses (john@doe.fr and doe@john.fr for exemple), only one of those is stored in the client fields, the other is stored as identity, and the query does not march... I think.
I will work on that lead, thank you very mutch.
Ah Jocelyn Arzur
I just added a paragraph above: If a user is returned, he has the e-mail address you searched for assigned, as one of the addresses, not necessarily the primary one, though.
Yours truly
Peter
hi guys is it possible get top 5 organization open tickets
from a single api call .
count should be desending order
ex:
x:50
y:44
z:43
xy:20
xyz:10
Hi all
Is it just me, or are others also alienated by the missing possibility to search for custom fields?
Yes, sure, there is "field_value", but let's be honest, if you have more than one custom field, that just doesn't cut it.
My case:
My custom fields:
Their values are versions of our applications in which we either have found or fixed problems. As you might guess, their contents can be very similar, and it is really necessary to search not only by field value, but by field name and field value.
I might get by if the search for, say
organization:"customer" field_value:"version"
would actually return all "customer" tickets that have either of the above custom fields set to "version" or version.
However, it seems to be quite unsuccessful in finding the 7 tickets that would fit the bill, but lists another one where I'm hard pressed to find "version" or version. And these ticket fields have not been changed today, so the index should be up to date.
Are you experiencing similar quirks?
Hey Mike,
You should be able to use the following:
type:user mydomain.com
Does that not return the results you're looking for?
Please sign in to leave a comment.