Reporting, Dashboards, and Analytics
Core concepts
Every report is built on a report type - the object you are reporting on (Project, Task, Issue, Hour, Assignment, and so on). Filters choose rows, views choose columns, groupings organize rows, and charts visualize a grouped report. Prompts let the viewer supply values at run time; wildcards like $$USER.ID and $$TODAY make reports personal and dynamic.
Dashboards collect multiple reports onto one page and can be shared with users, teams, groups, or everyone. Reports and dashboards follow Workfront sharing rules, so a report can run "as the viewer" and show each person their own data.
Text mode unlocks what the UI cannot: OR filters, complex calculated expressions, and conditional formatting.
Traps
- A report on custom form data still uses the object's report type; there is no generic "custom form" report.
- Matrix groupings, chart availability, and grouping limits are common scenario blockers.
- Sharing a dashboard does not automatically share each report on it.
- Filtering by a wildcard shows different results per viewer - questions often ask why two people see different rows.
- Calculated columns in a view are display values, not filterable fields in the UI.
Worked example
You need a dashboard where each project manager sees only their own projects. Build a Project report with the filter Project Owner ID equals $$USER.ID, place it on a dashboard shared with the group, and confirm the report runs with the viewer's access rights. Adding a prompt instead would force users to type their own name - the wildcard is the correct tool.