Creating Reports in TeamDynamix (ITS)

Building Custom Reports in TeamDynamix

A step-by-step guide for the ITS Ticketing application, NCCU ITS/PMO

Overview

This guide walks through building a custom report against the ITS Ticketing application in TDNext: choosing columns, adding custom attributes, applying single and multiple filters (including AND/OR logic), and getting the output to display the way you expect. It also calls out the custom-attribute quirks that most commonly trip people up, since our ITS Ticketing app makes heavy use of custom attributes across many ticket types and forms.

This guide is written for the Ticketing report source specifically, but the same report builder and logic apply to Assets/CIs, Projects/Workspaces, Time and Expense, and the Analysis application. Only the available columns differ.

Key Reference

Item Value
Application ITS Ticketing
TDX App ID 312
Where reports live TDNext > ITS Ticketing > Reports
Report source Ticket Report (also: Ticket Task, Survey Response)
Default row limit 500 (max 50,000)
Report builder Help "Help" button in the report builder toolbar, lists every column/filter available for this exact report source

Part 1: Create the Report

Step 1: Start a New Report

  1. In TDNext, open the applications menu and select ITS Ticketing.
  2. Click Reports in the left navigation, then click the + New link and select Report.
  3. On the "What type of report would you like to create?" screen, select Ticket Report (or Ticket Task Report / Survey Response Report if that's what you need).
  4. Enter a clear, specific Name and an optional Description. Name reports so a future admin can tell what they do without opening them, for example "General Support: Open Tickets by Group" rather than "Report 3."

Step 2: Choose Columns

Scroll to Select the columns you would like to see. The Field dropdown includes three kinds of values:

  • Standard TDX fields: Status, Priority, Acct/Dept, Responsible Group, Created Date, etc.
  • Custom attributes for your organization, listed by their Header Text (the label an admin set in TDAdmin > Attributes), not necessarily the internal attribute name.
  • KPI calculations, available only within Ticket reports (e.g., time-to-first-response, time-to-resolution style metrics).

Remove any default columns you don't need, then use the drag handle (hamburger icon) on the left of each row to reorder columns. This sets the left-to-right column order in the finished report.

For any column you want summarized instead of listed row-by-row, use the aggregate option at the bottom of that column's settings: Average, Minimum, Maximum, or Sum. Not every column type supports every aggregate. If an aggregate doesn't populate, it's usually the data type of that column, not a bug.

Note: A custom attribute only has data, and only reliably appears populated, on tickets whose Type/Form actually includes that attribute. If you add a custom attribute column that lives on one form to a report that also pulls in tickets using a different form, every row from that other form will show blank in that column. That's expected, not broken. If you need one clean report across ticket types, either filter Type down to the forms that share the attribute, or accept the blanks and filter them out explicitly (see Part 2).

Part 2: Add and Combine Filters

Step 1: Add a Single Filter

Scroll to Add filtering to your report. A new report starts with five blank filter rows; each row is one condition.

  1. Click the Column dropdown and pick the field to filter on. This works for standard fields, custom attributes, and KPIs, and you can filter on a value even if you didn't add it as a column.
  2. Pick an Operator. The list changes based on the column's data type: text fields get contains/equals-style operators; choice fields (including most custom attributes) get is one of / is not one of; dates get before/after/relative-date operators.
  3. Pick the Value(s) to filter against.
  4. Check Prompt if you want that filter to be editable at the top of the report each time it's run, without editing the saved report. Check Prompt, Required to force a value before the report can run.

If you fill in more than one filter row and leave the advanced filter blank, TDX combines every row with AND. A ticket must match all of them to appear in the results.

Step 2: Use the Advanced Filter for AND / OR Logic

To mix AND and OR, or to make any row optional instead of required, use the Advanced Filter:

  1. Set up all the conditions you need in the filter rows. Each row is auto-numbered in the left-most "#" column. Note those numbers.
  2. Click Show Advanced.
  3. Type a Boolean expression using the row numbers, e.g. 1 OR 2 OR 3, or (1 OR 2) AND 3.
  4. Every filter row you built must be referenced somewhere in the advanced expression. Any row number left out of the expression is silently ignored when the report runs. It will not filter anything, and there's no warning.
  5. Click Save and Run to confirm the results look right before sharing or scheduling the report.

Example: a report of tickets that are Priority = High OR Priority = Urgent, but only within a specific group, uses three filter rows (Priority=High, Priority=Urgent, Responsible Group=X) with the advanced expression (1 OR 2) AND 3.

Step 3: Get "is not" Filters to Display Properly

Exclusionary filters (is not one of, is not a member of) behave differently depending on whether you're using the advanced filter, and this is the single most common cause of a filter that "works" but returns the wrong rows:

  • Without an advanced filter expression: is not one of automatically includes blanks. The filter behaves as [Column] has no value OR [Column] is not one of ([values]).
  • With an advanced filter expression active: that automatic blank-inclusion goes away. is not one of becomes strictly [Column] is not one of ([values]), so tickets where the field is blank are excluded from the results.

If you need blanks included and you're already using an advanced expression for other logic, add a separate filter row for [Column] has no value, then add it to your expression with OR. For example, if row 4 is "Priority has no value" and row 3 is "Priority is not one of (High)," your expression becomes (3 OR 4) AND ...

Step 4: Filtering on Dates Relative to "Today"

Date filters compare against the run date: the day/time the report is actually executed, not the day it was built.

  • Last 7 days: Created ≥ the run date minus 7 days.
  • Due in the next 7 days: two rows, Due ≥ the run date, AND Due ≤ the run date plus 7 days.

Use the plus/minus control next to the date value to add or subtract a time increment from the run date rather than typing a fixed calendar date. That's what makes the filter stay accurate every time the report runs on a schedule.

Part 3: Sorting, Limits, and Delivery

Step 1: Set the Default Sort

  1. Scroll to Order your report.
  2. Choose a column to sort by (only columns you added above are available) and Ascending or Descending.
  3. Click Add to layer a second sort, for example sort by Status first, then by Created Date within each status.

Step 2: Row Limit, Folder, Visibility

  • Set the maximum number of rows to retrieve if you want fewer than the 500-row default (max 50,000).
  • If a report needs to return counts over 500 rows, drop any column that's unique per ticket (Ticket ID, Description, Created timestamp) and add the Ticket Count column instead. TDX won't return more than 500 distinct rows, but Ticket Count summed by your grouping columns isn't capped the same way.
  • Choose a report Folder, or create one with the + icon, so it lands somewhere findable instead of the default Tickets Reports folder.
  • Set Owner if the report should belong to a group rather than an individual, useful for anything a committee will keep using after a handoff.
  • Set visibility to control who can see the report; anyone you share it with still needs their own access to the ITS Ticketing application to add it to their desktop.

Step 3: Chart and Email Delivery (Optional)

  • Add a Chart if you want a visual instead of, or in addition to, the grid. Under Desktop delivery, choosing Chart replaces the grid view entirely. It's one or the other, not both, in a single report.
  • Under Email Delivery, click Add to schedule recurring delivery to a user or group. Delivery runs on a 15-minute server job, so expect up to a 15 to 30 minute lag around the scheduled time.

Part 4: Custom Attribute Gotchas

These are the issues most likely to show up given how extensively our ITS Ticketing app uses custom attributes across forms:

1. A custom attribute column is blank for most rows

Almost always means the ticket's Type/Form doesn't include that attribute. Add a Type filter to scope the report to the forms that actually carry it, or treat blanks as "not applicable" rather than a data problem.

2. Multi-select / checklist custom attributes

When a custom attribute allows multiple selections, TDX returns every selected value concatenated into a single cell (comma-separated) rather than one value per row. That's fine for display, but you generally cannot filter cleanly for "exactly this one value" when other values are also selected. is one of will match any ticket where that value is among the selections, not only where it's the sole selection. If you need a true one-value-per-row breakdown (e.g., a pie chart of selections), that isn't natively supported by the standard report grid and typically requires a workaround outside the report builder.

3. Two attributes with the same display name

Header Text is what shows in the column and filter pickers, not the internal attribute name. If two attributes across different forms share a Header Text (e.g., two different forms both expose a field called "Department"), they'll look identical in the dropdown. Check TDAdmin > Attributes for the parent form/section before assuming you've picked the right one, especially when building a report that spans multiple ticket types.

4. "General Support" and other catch-all types

Tickets logged under a generic type with little or no subcategorization won't carry the custom attributes tied to more specific forms. A report meant to show "attribute X across all tickets" will systematically undercount if a meaningful share of tickets are logged as General Support instead of a more specific type. Worth keeping in mind when a report result looks lower than expected: it may be a service catalog/categorization gap rather than a report or filter problem.

5. Report shows the right data but the wrong grouping

Custom attributes and KPIs are report-source-specific. If a report is built against Ticket Task instead of Ticket, ticket-level custom attributes won't be available at all. Double-check the report source on the initial creation screen if an attribute you expect to see is simply missing from the Field dropdown.

6. Not sure what the attribute is called or which form it lives on

Custom attributes can be named differently than you'd expect, and the same data point sometimes exists on more than one form under different Header Text. If you're not sure an attribute exists, what it's called, or which report source it belongs to, don't guess. Reach out to the ITS PMO or the TDX System Administrator for assistance before building the report. They can confirm the exact attribute name, the forms it's attached to, and whether it's set up to be filterable and reportable at all.

Quick Reference: Operators by Field Type

Field Type Typical Operators Available
Choice / dropdown / custom attribute (single-select) is one of, is not one of, has a value, is blank
Choice / custom attribute (multi-select) is one of (matches if any selection matches), is not one of
Text equals, contains, is blank, has a value
Number / duration equals, not equal to, greater than, less than, greater than or equal to, less than or equal to
Date equals, before/after (greater than / less than), relative to run date (+/− increment)
Person / group membership is a member of, is not a member of

Part 5: Running, Editing, and Deleting a Report

  1. Run: open the report from the left navigation and click Run Report.
  2. Edit: open the report, click Actions > Edit, make changes, then Save or Save and Run.
  3. Delete: open the report, click Actions > Delete, and confirm.

Troubleshooting

  • Report returns zero results: remove filter rows one at a time, starting with the most complex, until results reappear, then rebuild from there.
  • Report returns way more (or fewer) rows than expected: check the advanced filter expression first. A row left out of the expression is ignored entirely, and a missing "has no value" row on an "is not one of" filter is the most common silent-exclusion cause.
  • Aggregate (sum/average/etc.) not showing: usually a data-type mismatch on that column rather than a broken aggregate feature.
  • Can't find a report: reports live under the folder named for their report source (e.g., Tickets Reports) unless you assigned a custom folder when saving.