Tags are words, or combinations of words, that you can use to add more context to tickets. You can assign tags to tickets, users, organizations, and chats. You create, assign, and manage tags in the Zendesk Support console.
Tags are stored differently than other Zendesk objects and might require more consideration when you use them to generate reports. For example, while a ticket can be in only one group or have only one status at a time, a tag can be added to multiple tickets and a single ticket can contain multiple tags.
In this article, you'll learn how you can use tags in your Explore reports and see some examples. You'll also find out what tag information is collected by Explore. For an in-depth look at tags, see About tags.
This article contains the following topics:
Examples for using tags in reports
These examples illustrate the basic operations you can perform with tags in your Explore reports. The Ticket tags attribute is used throughout, but you can apply the same principles to any other tag attribute.
If the tag you intend to use is automatically generated by a field (like drop-down lists, multi-select lists, and checkboxes) consider using the custom field attribute instead. Custom field values load faster and have easily identifiable values. For more details, see Reporting with custom fields.
This section contains the following examples:
Reporting on all ticket tags in use over the last 30 days
This is a simple report that shows all of the ticket tags you're using and the number of tickets that are associated with each tag for the last 30 days.
To show all ticket tags in use over the last 30 days
- Open a new report using the Support - Tickets dataset.
- In the Metrics panel of the report builder, add the metric COUNT(Tickets).
- In the Rows panel, add the attribute Ticket tags.
- In the Filters panel, add the attribute Ticket created - date.
- Click the Ticket created - date filter and configure the date range for the last 30 days.
Your chart will look similar to the following example. You can click the Tickets column heading to sort the list by ascending or descending number of tags.
Reporting on ticket tags using filters
In this example, you'll create a report that uses a filter to return only tickets that contain a specific tag (in this case, checked_by_manager).
Before diving into the example, there are a few important things to note:
- If you want to filter by multiple tags at the same time, use the formula in Finding tickets with multiple tags instead. Selecting multiple tags in the Filters panel multiplies the report's metric values by the number of matching tags. For more information on why this happens, see Why do my metric values increase when I filter my report by multiple tags?
- If you want to check which items don’t have one or more tags, use the formula in Finding tickets that don't have a tag instead. You can't use report filters to exclude tags.
To create the report
- Open a new report using the Support - Tickets dataset.
- In the Metrics panel of the report builder, add the metrics COUNT(Solved tickets) and COUNT(Unsolved tickets).
- In the Rows panel, add the attribute Ticket group.
- In the Filters panel, add the attribute Ticket tags. Then, click this attribute to open the filter menu.
- Select the tag you want to show in the report (in this case,
checked_by_manager).
You'll see a count of tickets that contain the tag you chose.
Reporting on ticket tags using standard calculated metrics and attributes
In this section, you'll learn how to use functions that give you much more power and flexibility when reporting on tags. The basic tag reporting operations are:
- INCLUDES_ANY: Returns tickets with at least one of the supplied tags.
- INCLUDES_ALL: Returns tickets that have all supplied tags.
- NOT INCLUDES_ANY: Returns tickets that don't include one of the supplied tags. If the ticket includes any of the supplied tags, it's excluded.
- NOT INCLUDES_ALL: Returns tickets that don't include all of the supplied tags. The ticket must contain all of the supplied tags to be excluded.
To use these examples, you'll need to be familiar with standard calculated metrics and attributes and understand how to write formulas. Additionally, you can use the wildcard (%) character before or after a tag to return matching results.
This section contains the following examples:
- Finding tickets containing a tag
- Finding tickets that have one of two tags
- Finding tickets with multiple tags
- Finding tickets that don't have a tag
- Finding tickets that have one tag, but don't have another tag
- Finding tickets that contain a specific string in one of their tags
- Finding tickets with no tags
- Returning specific values when a certain tag is present
- Filtering a specific tag from all metrics on a report
- Using INCLUDES in a standard calculated attribute with multiple conditions
- Using INCLUDES in a standard calculated metric
Finding tickets containing a tag
In this example, you want to find tickets that have the tag "united_states". Create a standard calculated attribute with the following formula and use it as a filter in your report.
IF (INCLUDES_ANY([Ticket tags], "united_states")) THEN True ELSE False ENDIF
Finding tickets that have one of two tags
In this example, you want to find tickets that contain one of the tags "australia" or "japan". Create a standard calculated attribute with the following formula and use it as a filter in your report.
IF (INCLUDES_ANY([Ticket tags], "australia", "japan")) THEN True ELSE False ENDIF
Finding tickets with multiple tags
In this example, you want to find only tickets that have both of the tags "united_states" and "italy". Create a standard calculated attribute with the following formula and use it as a filter in your report.
IF (INCLUDES_ALL([Ticket tags], "united_states","italy")) THEN True ELSE False ENDIF
Finding tickets that don't have a tag
In this example, you want to find only tickets that don't have the tag "germany". Create a standard calculated attribute with the following formula and use it as a filter in your report.
IF (NOT INCLUDES_ANY([Ticket tags], "germany")) THEN True ELSE False ENDIF
Finding tickets that have one tag, but don't have another tag
In this example, you want to find tickets that contain the tags "greece" and "india", but don't contain the tag "ireland". Create a standard calculated attribute with the following formula and use it as a filter in your report.
IF (INCLUDES_ALL([Ticket tags], "greece","india")) AND NOT INCLUDES_ALL([Ticket tags], "ireland") THEN True ELSE False ENDIF
Finding tickets that contain a specific string in one of their tags
In this example, you'll use the wildcard character % to find tickets for which the requester tags contains the string "king". Create a standard calculated attribute with the following formula and use it as a filter in your report.
IF (INCLUDES_ALL([Requester tags], "%king%")) THEN True ELSE False ENDIF
Finding tickets with no tags
In this example, you'll create a standard calculated attribute and use it as a filter. This attribute returns the string "No tags" for all tickets that don't have any tags and "Has tags" for tickets that do have tags.
Use the following formula in a standard calculated attribute:
IF (INCLUDES_ANY([Ticket tags], "%")) THEN "Has tags" ELSE "Does not have tags" ENDIF
Returning specific values when a certain tag is present
In this example, you'll see how you can create a standard calculated attribute that tests for the presence of the tag "hawaii" and returns the text "Aloha!" when it is found. If it's not found, the formula returns "Hello". You can then use this in a filter, or add it as an attribute to the Rows or Columns panels in the report builder.
Use the following formula in a standard calculated attribute:
IF (INCLUDES_ANY([Ticket tags], "hawaii")) THEN "Aloha!" ELSE "Hello" ENDIF
Filtering a specific tag from all metrics on a report
In this example, you've created a report that contains several metrics. You want to exclude all tickets that contain the tag Alaska from your results.
Use the following formula in a standard calculated attribute:
IF (NOT INCLUDES_ANY([Ticket tags], "Alaska")) THEN "true" ELSE "false" ENDIF
Now, add this attribute to the Filters panel of your report. Click the attribute you just added and configure the filter to only show True values.
Using INCLUDES in a standard calculated attribute with multiple conditions
- If the ticket contains either of the tags "united_states" or "canada", the attribute returns North America.
- If the ticket contains any of the tags "germany", "france", or "uk", the attribute returns Europe.
- If the ticket contains either of the tags "china" or "japan", the attribute returns Asia.
- If none of the tags are found, the attribute returns Other.
Use the following formula in a standard calculated attribute:
IF (INCLUDES_ANY([Ticket tags], "united_states", "canada")) THEN "North America"
ELIF (INCLUDES_ANY([Ticket tags], "germany", "france", "uk")) THEN "Europe"
ELIF (INCLUDES_ANY([Ticket tags], "china", "japan")) THEN "Asia"
ELSE "Other"
ENDIF
Using INCLUDES in a standard calculated metric
IF (INCLUDES_ANY([Ticket tags], "united_states")) THEN [Ticket ID] ENDIF
Reporting on macros using tags
For an example of how you can report on macro usage by using tags, see Explore recipe: Reporting on macros using tags.
Tag information collected by Explore
The tag information collected by Explore varies depending on the dataset you choose, but includes one or more of the following attributes:
Attribute name | Description | Datasets available in |
---|---|---|
Ticket tags | Returns the tags associated with a ticket. |
|
Assignee tags | Returns the tags associated with an assignee. |
|
Requester tags | Returns the tags associated with the user who requested the ticket. |
|
Submitter tags | Returns the tags associated with the submitter of the ticket. |
|
Ticket organization tags | Returns the tags of the organization associated with the ticket. |
|
Requester organization tags | Returns the tags associated with the organization of the ticket requester. |
|
Updater tags | Returns the tags of the user who updated the ticket. |
|
Updater organization tags | Returns the organization tags of the person who made the ticket update. |
|
Agent tags | The tags associated with the agent for the Knowledge or Knowledge Capture event. |
|
Call agent tags | The tags associated with the agent for a Talk call. |
|
Leg agent tags | Returns the Talk call leg agent's user profile tags. Each person that engages in a call has their own interactions with the system and are considered a different leg by the system. |
|
Organization tags | Returns the organization tags of the call end-user. |
|
Chat tags | Returns the tags applied to a particular Chat session. |
|
78 comments
Natalia Torres
Hi everyone,
I would like to count the number of tickets solved or closed that do not contain the tags "system_email" Or "system_emaill". Can you help me with the syntax please as it seems not be working like that :
IF (([Ticket status - Unsorted] = "Solved" OR [Ticket status - Unsorted] = "Closed")
AND (NOT INCLUDES_ANY([Ticket tags], "system_email,"system_emaill"))
THEN [Ticket ID]
ENDIF
Thank you very much for your help.
Elsa
0
Kent, Anna
We would like to hide certain tags in report visualizations ( but not exclude the tickets that contain those tags). Our tickets often contain multiple tags, and we want to display ticket counts for certain tags, but not remove tickets that don't have those tags, so the "exclude" concept doesn't apply here.
Is there a setting in the visualizations that will allow us to do this?
1
Gab Guinto
It looks like you're missing a quotation mark and a closing parenthesis.
You can try this:
1
Gab Guinto
You can use the native Ticket tags attribute as filter, then under Selected, click Select all.
Make sure to go through all pages –
– and tick the box for Select all on each page.
When you see that all tags have been selected, you can then manually search for tags that you need to hide and untick them. This way, those tags will be not be displayed in the report; tickets that have the ticked/selected tags will still be included in the report even if they contain the tags that you intend to hide. Note that whenever a new tag is created, you need to revisit this filter to select the newly created tags.
Hope this helps.
1
Edward Drack
Does anyone have any recommendation (recipe to share) about how to retrieve specific reports based on tags? Would be highly appreciated.
TIA
0
Saxon Clay
Edward Drack
Can you elaborate on what exactly you're trying to accomplish?
0
Edward Drack
Ansolutely, Saxon Clay.
We have several tags that, by automatizations are linked to several macros, which are added when the tickets are answered. These tags are linked to statuses, bugs, and main words of inquiries, that we want to control on a daily, weekly, and monthly basis, and see where we need to spend more time on teaching and feeding the Help Center of our company, so our clients can rely on that information and not asking over and over questions that can be answered just reading a good article. Hope this makes more sense
0
Saxon Clay
Edward Drack
If each of the macros have their own tags associated to them then I'd approach it like so:
Create an Attribute Set (Calculations > Set under Attributes) that includes only the tags you're interested in. This is easier to manage than using the general Tags attribute and trying to filter down each one.
Past that, use Solved Tickets as your Metric, Ticket Solved - (Date/Week of Year/Month) as your Column attribute, and the custom tags attribute set as the Row attribute. I'd use a line graph, and multi-select all of the tags you want to review to see the trending over time rate of solved tickets having each of those tags on them.
I hope this helps get you in the right direction!
0
Mitchell Lewsey
I have a setup where tags will be added and removed multiple times on the same ticket, and I want to report on the total number of times these tags have been applied to a ticket. As they can be added multiple times to a ticket, I can't simply say tickets where tag = xxx. Any tips?
0
Alex Zheng
Unfortunately tag updates are not stored in Explore so it is not possible at the moment to do this. The ticket tag attribute will only grab the current state of the ticket. Here is a feedback post I would recommend upvoting and adding your thoughts to so hopefully our product team will see this and take it into consideration.
Best regards,
0
Elisabetta Carli
I am trying to report on Reopened Ticket Rate (%) excluding all tickets that have a "thank you" tag. I tried to use a filter to exclude the tag in question, but, as already discussed in multiple threads over the past 3 years, this solution does not work. I tried to use a calculated metric as suggested.
How do I integrate the following % Reopened Ticket calculated metric with the one suggested to exclude tickets with a specific tag?
(IF (NOT INCLUDES_ANY([Ticket tags], "thank_you")) THEN [Ticket ID] ENDIF
0
Saxon Clay
Elisabetta Carli
You can do this with three Metrics and the Result Metric Calculation function. ie
D_/COUNT(Tickets)
D_/COUNT(Reopened Tickets)
D_/COUNT(Excluded Tickets)
Where "Excluded Tickets" is the custom metric using your:
(IF (NOT INCLUDES_ANY([Ticket tags], "thank_you")) THEN [Ticket ID] ENDIF
Once you have those three you can use Result Metric Calculation to perform arithmetic in the report like (Reopened Tickets - Excluded Tickets)/Total Tickets
Hope this helps.
0
Tony Jansson
Hi community!
I have crated my first report that search for tags,
I have 2 things i wonder of:
1) Those tags are connected to "categories" within our support team. Lets say "tag_ice" is for "Ice Cream".
Is it possible that the report can show "Ice Cream = X" instead of tag_ice = X?
2) I have added a Time Filter for the report, as i want to check how many unresolved tickets there on different time periods.
I have used the same Time filter in the Support default dash board, but i only get results when i choose "all history". When choosing "yesterday, past week, this week" etc, there are no results. Someone that can push me in the correct direction here? :)
Thanks in advance!
/ Tony
0
Brandon (729)
Hi Tony Jansson -
For #1, you could just filter on the field itself instead of the tags associated with that field.
For #2, if you're doing this in a dashboard, you'll want to verify that you're staying within the same dataset or 'sharing' the filter across the datasets. More info here.
0
Tony Jansson
Thanks for helping out Brandon (729)☺️
1) Are you talking about custom fields in that sense? Not all tags have a custom field, but i might have misunderstood you as well.
2) I first created a report, then a dashboard and added that report. Added a time filter on it. That report is only added to that dashboard, but i will read more into the link you gave me.
0
Brandon (729)
Hey Tony,
For #1, I'm suggesting you can filter on the fields themselves vs the tags. If you're looking to just reformat the tags themselves in the report - something like this could be helpful to you.
For #2, this definitely sounds like a filter parameters issue. Make sure you're only selecting the associated metric for which you are dating (ie ticket created).
Hope this helps!
Brandon
0
Kevin Lewis
How can I apply a tag exclusion filter to an entire report/dashboard I already have created?
0
CJ Johnson
Kevin Lewis You will need to write a custom formula for an attribute that does this (which is unsupported by Zendesk but there's a guide here), then add that attribute as a filter to the dashboard, and set to exclude.
0
Kevin Lewis
Thanks, CJ Johnson. It looks like I need to create a standard calculated attribute to filter out any tickets with the "Junk" tag. I found the article on standard calculated attributes, but I am not seeing clear instructions on the how/where to create this. Any help would be appreciated.
Use the following formula in a standard calculated attribute:
0
Jay Gianan
Hi,
I'm trying to do a formula to have count Autoclosed tickets that are non NRN tickets. Here's the Calculated Metric I created:
IF (INCLUDES_ANY([Ticket tags],"autoclosed_nrntickets_systemautomation","autoclosed_nrntickets_systemtrigger","autotagged_mistaggedtickets_socialmedia","autotagged_mistaggedtickets_accounthealth","autotagged_mistaggedtickets_notifications"))
AND NOT INCLUDES_ANY([Ticket tags],"nrn")
THEN [Ticket ID]
ENDIF
For some reason when doing a count on the above calculated metric, it still includes tickets that are neither have NRN or Autoclosed ticket tag. Any fix you can suggest?
0
Gab Guinto
I noticed that that the tickets in your screenshot have zero values under the metric column. This means that the metric is actually working as intended – it shows that those tickets do not meed the conditions in your metric formula. When you slice the data by Ticket ID, then it's expected to see tickets in the table with zero results. You just need to apply a metric filter to remove the zero values. You can check out this brief article: How do I exclude zero values from my Explore report?.
-1
CJ Johnson
Can you clarify if Updater Tags are locked to the tags that the agent had *at the time of the comment* or are they like regular tags, in that the system only knows what the current state of the tags are, and has no historical understanding of when they changed?
Edit: Confirmed it was "no historical understanding"! 👍
1
Martin Cook
Hi Folks,
I am sure that this is really simple but I cannot see what is not working!
I have tickets with Ticket tags and I want to be able to have a Custom Attribute that I can use then in another formula to be able to set the value of another Custom Attribute - which is then used in a report.
I have run a report and can confirm that one of the tags in the tickets I am interested in is emea_wd_starter. I have then cut and pasted from the article above the structure for the attribute:
...and it does not return True against any ticket, when if I filter a report I can see that there are 2 of them - however everything is False - even the 2 tickets that have this exact ticket tag amongst others. The only think I can think of is that it doesnt "like" having lots of other Tags - but that would be rather peculiar, and not what the Knowledge article suggests.
I would be so grateful if I could be helped out my misery! Thanks
0
Saxon Clay
Hey Martin Cook, if you remove the parenthesis around the INCLUDES_ANY function does it start working? IE
0
Dave Symonds
Hi.
Trying to figure out how we can report on the dates that tags were set - for example we set a 2day reminder tag - how do we identify the day the tag was set?
Cheers Dave
0
CJ Johnson
Dave Symonds You can't, but you can upvote the suggestion for this to be added here: https://support.zendesk.com/hc/en-us/community/posts/4409217050266-Ability-to-Report-on-Tag-changes-in-the-Support-Ticket-Updates-data-set-
(I desperately want this feature as well!)
0
Dave Symonds
Thanks CJ - yea I kind of guessed but was desperately hoping....Will probably use some form of custom fields and write our own app to handle it (follow ups). The reporting functionality soooo limited.
0
Ewa Kondratowicz
Hi,
Is there a way of including Out Of Office tags (on an agent level) in the solved tickets (productivity) raports? Or did anyone figure out how to include info on how many days agents were in (working) in the solved tickets reports?
I would really like for the Agent efficiency/productivity reports to show not only how many tickets they solved, but also how many days they've been at work. So basically - not to show Holidays/sick leaves etc and not to compare number of solved cases between agents who were in and the ones who were off half of the month. We're using Out Of Office app, which adds tags on the Agent level when they are OOO.
Thanks for any suggestions!
0
Saxon Clay
Ewa Kondratowicz - I've been working with a custom metric I created a while ago that calculates in a range how many days an agent sent any ticket replies, it's as close of an approximation of days worked as I've been able to find:
You need to have an Assignee Name attribute or something similar to break the metric down to report individual agents, but it's worked well enough for the last year or so.
1
Tejas
Ewa Kondratowicz
To track agents activity we use time tracking app, from that app we get the actual case handling time of the agent. This can also be used to show absence if no activity is captured for a given day.
I hope this helps.
0