Overview
Reporting on ticket tags in Insights when taking one of the following actions:
- Excluding one or more tag(s) from a report
- Filtering reports by tags
Conditions
Zendesk Professional or Enterprise account with access to Insights
Procedure
Reporting on tags is tricky in Insights. There can be any number of tags on a ticket at the same time, and you may need to report on any one of them.
To make this possible, tag data is stored in its own dataset. While this gives you the ability to report on individual tags, regardless of how many tags are on each ticket, it does mean you need to take some extra steps.
This article just covers the basic recipe. For more information about how tag reporting works, including the logic behind this recipe and some specific examples, check out this article: Reporting on tickets with one or more tags.
Create a custom metric for each tag
Since tickets can have multiple tags at the same time, almost every ticket will have at least one tag record that is not the one you're filtering for. This means any filter using Ticket Tag ISN'T, Ticket Tag <>, or Ticket Tag NOT IN will just return all tickets. You must create the metric described below and use a numeric range filter to include (=1) or exclude (=0) tickets with certain tags.
You need to create separate metrics for each tag you want to include in reports. The metrics should all follow this template:
- SELECT IFNULL((SELECT # Tickets WHERE Ticket Tag = your_tag),0)
- Replace your_tag with the tag you want to use in the report.
This metric will return a 1 for tickets that do have the tag and a 0 for tickets that don't have the tag. That means you can use it to include or exclude tickets based on their tags.
There are two main ways to do this:
1. Add a numeric range filter to the report
- For the attribute, select Ticket Id.
- For the metric, select your custom tag filtering metric.
- For the range, there are two options:
- Select "is equal to 1" for tickets that do have the tag.
- Select "is equal to 0" for tickets that do not have the tag
This will filter the whole report based on the tag in your metric. This is useful if you want to compare several different metrics with the same tag restrictions.
2. Nest the tag filter in a custom metric
This will vary a bit, based on the metric. However, the tag filtering portion should follow this template:
- Tag is present: SELECT metric WHERE (SELECT # Tickets with your_tag BY Ticket Id)=1
- Tag is not present: SELECT metric WHERE (SELECT # Tickets with your_tag BY Ticket Id)=0
This allows you to compare different tag filters within the same report.
81 Comments
Should the tag field be in orange? When I add the tag it remains black. Should it be selected from one of the elements?
Elements:
Facts
Metrics
Attributes
Attribute Values
Attribute Labels
Variables
Hi Megan! Yes, the tag will be orange in the metric editor.
To find your tag, go to Attribute Values > Ticket Tag. That should bring you to a list of all available tags. Select the one you want and add it like any other element.
Happy reporting!
Hi Amy, first of all, thanks for helping me in the past with my questions. I am curious why the new metric i created which fetches tickets with tags does not show up as under metric when i tried to generate a report? It is as if the new metrics created needs time to be synced or uploaded into a database before i could use it.
I noticed the same delay when i modify my ticket fields, specifically the ticket type which i have custom types setup, that the newly added/modified value does not show up as an option until the next day. Is this something today with the syncing? Is there a way to see or get live data whenever viewing Insight?
Hi Andy,
Based on what you've indicated in your first paragraph, it sounds like you might have made the metric report-specific. If you create a metric within a report, it has to be saved globally in order to be found in other reports. You can edit the created metric within your report, though, and save it globally:
As far as your question in the second paragraph-- if your account is on Plus or Professional, your project is only syncing once per day; hourly on Enterprise. If you make new ticket fields/adjustments to existing fields, they will need to be used in a ticket and then that ticket needs to sync to your project before you can find that information.
Hopefully this helps clear things up, but please let me know if you have any other questions or concerns!
@William Macken
Thank you for your input, it does make sense and i was able to fix the ones related to global metric. The syncing once per day is not as convenient and i didn't expect that to be an Enterprise feature but it is what it is, I will just live with it. :) Cheers.
Tried to build out a metric around tags as follows and got this error. For Zendesk being built on being beautifully simple, reporting on tags is a nightmarishly difficult.
Hi Antonio! Your metric is really close. You just need to make two changes:
1 - Add a "SELECT" before # Tickets. It should be inside the parentheses: SELECT IFNULL((SELECT # Tickets...
2 - You need to select the tag from the Elements list on the right:
I realize this is a lot of extra steps, and it's not very intuitive. Ticket tags are uniquely difficult for reporting. A ticket can have any number of tags at the same time, and you may need to report on any one of them. That leads to more complicated relationships in the data model, which need more complicated reports.
Fortunately, you're almost there. Once you make these two changes, your report should start working.
Happy reporting!
Amy,
Thanks for helping me clarify. As the reporting wizard, wonder if you can help me accomplish what I'm after.
I have a report headline built to show me how many tickets were created in the week previous, excluding tickets generated via api. The reason we have tickets excluded via API is because we have our Delighted NPS survey responses come in, however, I want my team to handle the priority tickets (tickets created by customers) first.
The problem comes into play now that we utilize a CTI integration (TalkDesk) for our telephony system which is also generated via API (once the call completes, a Zendesk ticket automatically creates).
After looking at our Contact Per Order rate for the past few weeks (total number of contacts divided by total number of orders), it's so low that I'm convinced our phone contacts are being contacted, and I suspect that's because I disallow API's to be counted in the ticket count headline report.
My question to you: what's a way to allow our TalkDesk phone generated tickets to be counted in our reporting without including the remainder of the API generated tickets (two other sources of API generated tickets: Delighted and another source)?
As I type this out, I'm thinking filtering via tag would be the best bet, but since there's no default option to do that in the filters provided, I'm not sure how to do it manually.
If it helps, tickets that are generated via API/Delighted and API/TalkDesk are tagged appropriately.
Thanks for your guidance,
Antonio
Hi Antonio!
Zendesk records a couple pieces of information about how each ticket is created. In the Zendesk interface, those pieces are combined into a single, descriptive "channel." In Insights, they're separate attributes (Ticket Via and Ticket Update Via). It's still possible to get the same distinctions, but it takes extra steps.
If you're already tagging these tickets based on their Zendesk channel, those tags will be the best option by far. Zendesk business rules are much easier to manage, and they can get into more detail than a typical Insights metric.
In your case, I recommend creating a metric for the Delighted NPS tag, then use it in a Numeric Range Filter to exclude NPS tickets from your headline report.
Hope this helps! Happy reporting!
Amy
Hmm, is it possible to set up a ticket to discuss this further? I think I have an understanding of what you're referencing, but I'm not sure I follow the "how-to" portion since this is unfamiliar territory.
Hi Antonio! Sure! At this point, it would probably help to look at actual tickets and reports. I'll set up a support ticket and email you shortly.
SELECT metric WHERE(SELECT #Ticket with your_tag BY Ticket Id)= 1
what is "#Ticket with your_tag"?
where can I get it ?
Hi Linda! That is the metric at the start of this recipe:
(Replace your_tag with the tag you want to use in your report. It will be listed under Attribute Values > Ticket Tag.)
You must create a metric like this for each tag you want to include in filters. Once you create a tag-filtering metric like this one, you should be able to add it to numeric range filters and other metrics.
I hope this helps! Happy reporting!
But I want to use "ticket tag" , how to do?
Hi Linda! Tags are not like other attributes. For other attributes, tickets can only have one value at a time. It's easy to see whether a ticket is in, say, Pending status -- the ticket only has one status, and it either is or isn't "Pending."
Tags are different. Tickets can have any number of tags at the same time. That makes things quite a bit more complicated. A ticket may have one of the tags from your filter, but not another. There are lot of ways to handle those situations, and Insights doesn't know which one you need.
Because of all this, ticket tags do not consistently work in a dashboard filter like the one in your screenshot. Every single report would need to have metrics that accurately connect to tag data, and even then, there would be a lot of exceptions.
We do not recommend putting a tag filter on a dashboard. If you want to use tags, you must use custom tag filtering metrics within your reports. Please follow the recipe above to filter your reports.
I hope this helps! Happy reporting!
Is there a way to eliminate duplicate tags, when the tags are not exactly identical? See my image. We inadvertently have used a similar tag for a single issue (one in a macro, one in a trigger). How do I eliminate the duplicates in this scenario to give me a proper count (besides fixing the process which is broken).
Hi Gabriel! Insights can only show you what it receives from your Zendesk account. Insights can't change or delete your historical data. I strongly recommend cleaning up tag usage in your workflow going forward.
In this case, if these tags are interchangeable, you could make a filtering metric to find tickets with at least one of the two tags. It would look like this:
That should keep your overall ticket counts accurate, and most reports will function normally. You'll only notice a problem when you display the tags, as you have in your screenshot. There's not much you can do at that point, since both tags do exist on those tickets.
I hope this helps! Happy reporting!
When I try the example and has selected my tag via Attribute ValuesAttribute Values (it's orange) I still gets this error:
SELECT IFNULL((SELECT # Tickets WHERE Ticket Tag = kundeservice_efterlysning),0)
Hi Michael! I don't see any obvious issues in the metric here. As long as # Tickets, Ticket Tag, and kundeservice_efterlysning are all correctly connected, the metric should work.
There may be something odd happening in this case. I'm going to create a ticket so we can investigate in more detail.
Watch for my email, and happy reporting!
Is it possible to write a metric around two tags? Specifically to display only the number of tickets where BOTH tags are present, and exclude instances where only one is present?
Hi Xander! That is certainly possible! In this case, you would need to make separate filtering metrics for each tag, then include both filtering metrics on your report.
If you want your whole report to require both tags, then you could use two numeric range filters. If you just want to filter one metric, you could create a metric like this:
The reporting on tickets with one or more tags article goes into a lot more detail on the theory behind this recipe. It also includes a detailed example for finding tickets that DO have one tag, but do NOT have a different tag.
I hope this helps! Happy reporting!
Hi Amy,
I'm getting a similar error code to Michael's. Can you please take a look?
Hey Carla -
Welcome to the Zendesk community! Amy is out on vacation today, so hang tight. I'll see if I can find someone else who can take a look, and if not she's likely to jump back in later this week.
Hi Carla/Michael,
This has probably been asked already, but I'll ask again.
Looking at Carla's screenshot, you can see that her tag "1gm" is correctly showing in ORANGE.
But I do not see that # Tickets is in GREEN
and Ticket Tag is in PURPLE!
Make sure that you have pulled them correctly and NOT manually entered them.
For # Tickets (GREEN):
1) Click "Metrics" under Elements
2) Enter # Tickets in the search field
3) Highlight/select # Tickets
4) Click Add Selected
For Ticket Tag (PURPLE):
1) Select Attributes
2) Enter Ticket Tag in search field
3) Select Ticket Tag
4) Select "Add selected"
It looks like you already have the "your tag" pulled correctly (orange) so skip that workflow.
I hope this helps!
Juan
Hello, Carla,
Juan did an amazing job explaining how you need to build your metric. Thanks a lot for that, Juan.
If you've never built a custom metric before, you might want to read How to Create a Custom Metric . During metric creation, you'll be selecting elements available to you from within your Insights project. For a list of the default facts and attributes please see our objects reference guide .
Hope this helps!
Ricardo, Juan,
Thank you both so very much! This was more than extremely helpful and worked like a charm. I'll be sure to brush up on the custom metrics!
Carla
Glad you got it working, Carla!
Hi Amy,
How would you structure a metric that should exclude a number of tags?
I have a bunch of ticket tags that I want to exclude from reports on first reply time and also tickets created.
This is what I have tried and failed:
SELECT # Tickets created Where (SELETmy_tag_metric) BY Ticket ID)=0 AND(Select my_other_tag BY Ticket ID)=0
Any thoughts?
Hi Tom! It looks like there are a couple typos in the first nested metric: (SELETmy_tag_metric) by Ticket ID). You're missing a C in "SELECT," and there shouldn't be a parenthesis after "my_tag_metric." It should look like this: (SELECT my_tag_metric BY Ticket Id).
You're also using the # Tickets Created metric here. That metric is based on ticket updates, and it does not connect to tag data. It's designed to let you report on ticket creations and solves in the same chart.
If you're not combining different metrics like that, I recommend using # Tickets instead. That does connect to tag data, so it should be more consistent with your filters. You can still see when tickets were created by using Date (Ticket Created).
What you're doing here should work. You can list each tag separately in its own metric. This is helpful if you only have a few tags, and you need to report on them individually as well.
If you have a lot of tags that you want to exclude, there is another option. You could combine them in the filtering metric like this:
If this metric counts a ticket, it means the ticket has at least one of the listed tags. If this metric does not count a ticket, it means the ticket doesn't have any of the tags. That means you could filter for this metric to equal 0, and you'd exclude all those tags at the same time.
I hope this helps! Happy reporting!
Thanks a lot for this Amy.
I think I will use this one:
I need a report of tickets created (monthly breakdown) that ignores a bunch of tags.
I hope this will do the trick.
Thanks again,
Tom
Please sign in to leave a comment.