Insights tag reporting: Reporting on tickets with one or more tags

Return to top
Have more questions? Submit a request


  • Amy Dee
    Zendesk team member

    Hi Taline! There are a couple issues with your approach. First, your first metric has this format - SELECT IFNULL((Tag Metric), 1). It should be a 0 at the end, not a 1. Otherwise, tickets with and without the tag will behave exactly the same way, which prevents it from filtering anything.

    Second, "ticket tag isn't" filters do not work in this context. That's because one ticket may have any number of tags at the same time, and all tickets have at least one tag record that isn't the tag you're looking for.

    Since you want to see tickets that have all three of the desired tags and not the undesired tag, you'll need to create four filtering metrics - SELECT IFNULL((SELECT # Tickets WHERE Ticket Tagtag_a),0). Then, you'll need to use numeric range filters to find tickets where the first three metrics are equal to 1 and the fourth metric is equal to 0.

    The Ticket Tag IN (listoftags) construction uses "ANY" logic. That means it only works if you want tickets with at least one of the listed tags or none of the listed tags. If you want all of the listed tags, you need to filter separately.

    I hope this helps! Happy reporting!

  • Taline Moroyan

    Hi Amy, 

    Thank you so much for following up on my comment! I have a few questions since not the best in writing such queries. 

    You mentioned that I would have to list out each tag for the custom metric. Would that then mean the query should look something like this? Tag_d being the undesired tag.

    SELECT IFNULL((SELECT # Tickets WHERE Ticket Tag = tag_a), 0) AND ((SELECT # Tickets WHERE Ticket Tag = tag_b),0) AND ((SELECT # Tickets WHERE Ticket Tag = tag_c),0) AND ((SELECT # Tickets WHERE Ticket Tag = tag_d),1)

    Also, the numeric range would be ... 

    Ticket ID  where Custom Metric Name is less than 1

  • Amy Dee
    Zendesk team member

    Hi Taline! These all need to be separate metrics - 

    • SELECT IFNULL((SELECT # Tickets WHERE Ticket Tagtag_a),0)
    • SELECT IFNULL((SELECT # Tickets WHERE Ticket Tagtag_b),0)
    • SELECT IFNULL((SELECT # Tickets WHERE Ticket Tagtag_c),0)
    • SELECT IFNULL((SELECT # Tickets WHERE Ticket Tagtag_d),0)

    Each tag needs to be assessed separately, due to the way the data model is set up. Once you have all four metrics, you could combine them in a new metric:

    • SELECT IFNULL(( SELECT # Tickets WHERE (SELECT Tag A Metric BY Ticket Id) = 1 AND (SELECT Tag B Metric BY Ticket Id) = 1 AND (SELECT Tag C Metric BY Ticket Id) = 1 AND (SELECT Tag D Metric BY Ticket Id) = 0 ), 0)

    This finds tickets that ARE counted in the A, B, and C metrics, but NOT in the D metric. That means it only includes tickets with tags A, B, and C and not tag D. 

    From there you can put a numeric range on your report to find tickets where the combined metric is equal to 1.

    I hope this helps! Happy reporting!

  • Taline Moroyan

    Hi Amy!

    Thank you again for the insights here! I tried as suggested and it worked! Thank you so much!




  • Allen Montenegro

    How do we get access to this page as Professional users?

  • Nicole Saunders
    Zendesk Community Team

    Hi Allen -

    I see that this is your first post. Welcome to the Zendesk Community!

    As far as your question goes, you should have access to perform all of the actions described in the article above the same as Enterprise users would. I'm not sure what page you're referring to though - could you clarify what you're looking for?


    I haven't read through this entire thread as it is very complicated and not clear that I can accomplish what I want.  Over time, I have tagged tickets with the product name, section of the product where the problem exists, OS that the product is running on, type of problem, etc.

    What I would like to do is to generate periodic reports that show, similar to ticket total graphs over the last 30 to 90 days,

    "How many new tickets came in per day that were tagged "Windows" "installer" ?"

    "How many new tickets came in per day that were tagged "Portal" "connections" ?"

    etc. etc.

    Not only "how many" but "what are they?" including the list of tags so I could see what other tags I had added and refine the results.

    That's really my main focus at this point because I am the only support person actively engaging with end users, we don't currently use any kind of reporting that shows how effective the agents are or how long they take to resolve issues etc. etc.

    I need to provide feedback to the engineering team that "the last release you put out caused an uptick in support because you broke something", etc.

    Is this type of reporting possible?

    Even if I get a table and have to export it to a spreadsheet to make a graph, it is OK.


  • Violeta Micu
    Community Moderator


    Hmm interesting. Please let me see if i understand what you would like to achieve by asking you few questions:
    1. Do you want to build this in Explore or Insights?
    2. Do you have only tags or there are some custom fields build linked to the tags
    3. As an example let’s say you have 3 tickets A, B, C created in the last 20 days that have a common tag called “ windows” . Si you want to have a report that will say you have 3 tickets with tag windows in the last 30 days and those rickets have also these tags: z,y,q?

    If yes, the first part you definetly can achieve. The second one i would like to understand it better so i can suggest something. If i understand it correctly the first idea of a table report just to help you export the data will be:
    - create a metric for tickets with tag windows
    - filter the ticket created date
    - add attributes as rows: ticket id, tags, ticket created date
    Then you can export and play with the data.
    I can also show you a picture in explore of how to achieve this if you need. But first let me know if i understood correctly your need☺️.


    Hi Violeta,

    Thanks for your response.

    1. explore/insights?  I don't care as I don't really use either one at the moment.  The only thing I report out to the team that comes directly from Zendesk is the total ticket volume per day graph.  So the ability to filter the data that goes into that graph (new/solved) would be great.  That way, the team could get an idea of how many tickets I have the answers for vs. those where I don't know the answer.

    2. I only use tags at the moment.  I do not use any custom fields.

    3. Yes, that sounds useful.  Just a way to refine results by adding more tag criteria.


  • Violeta Micu
    Community Moderator


    I am happy that it looks like something that we can try on your way to get the data.

    So here you have a screen shot with Explore:

    Dataset: Tickets

    Metric: D_count of Tickets that include "closed_by_merge". In your case "windows"

    IF ([Ticket status - Unsorted] = "Solved" OR [Ticket status - Unsorted] = "Closed")


    (INCLUDES ([Ticket tags], ARRAY("closed_by_merge")))
    [Ticket ID]

    Attribute: Ticket Tags, Ticket ID

    Filters: Ticket Created - Date

    Result manipulation: Metric filter - 1


    You will notice that each of your tickets contain the tag from the metric + rest of tags from each ticket. If you want more tags in your metric you can include them using "INCLUDES_ANY".

    Does this help you :) ?


    For the time being, this was so complicated that I just did what I needed to do manually.  Thanks for the tips though, I will review later when I have more time.

  • Andy Cassiers

    I'm trying to show NULL values as zero for reporting so I can report there are 0 tickets logged for a severity 1 issue.
    IsNull does not exist in explore as far as I can find, nor is there an alternative that I know of.

    How can I show this info?
    Right now I have 4 priorities: Low, Normal, High, Urgent, and i'm trying to report on number of tickets. This would generate a table with 

                           #Low            #Normal            #High             #Urgent
    Customer           20                  4                     1                       0

    but if there are no tickets logged with a count(tickets)/customername, it doesn't show that column.

  • Graeme Carmichael
    Community Moderator


    If you create a custom metric for each priority, you should be able to resolve that:

    For example:

    ...Then use this metric with a D_COUNT aggregate.


Please sign in to leave a comment.

Powered by Zendesk