workfront admin Tag

The “My Tasks Due This Week Report” will impress all of your work license users now that you’ve leveraged advanced Views and Groupings. The benefits of adding advanced Groupings to reports and object lists are:

  • An Admin can group data in ways that aren’t native in the standard user interface
    • Our grouping uses an advanced valueexpression to categorize each task rather than leveraging a task field
  • An Admin can control how the grouping displays to your users
    • Our grouping categorizes each task as either LATE, ON TIME, UPCOMING depending on the day of the week and the task’s planned completion date
  • An Admin can enhance the user experience by creating dynamic advanced groupings
    • Our advanced grouping updates day by day and recategorizes each task using an advanced calculation


Before I share the Task and Assignment text mode code, it is important to note that you cannot create a chart using advanced Groupings or Views. Charts must use either native object fields or custom fields.

The text mode code for both Task and Assignment reports is found below:

Task Report Advanced Grouping Text Mode:




Assignment Report Advanced Grouping Text Mode:



I forgot to explain in the “Create Reports Like a Pro! Advanced Views Part III” blog the differences between the Task and Assignment report syntax. If you review the Task object within the API Explorer, you’ll notice that an Assignment is both a referenced and collected object to the Task object. If you create an Assignment report and you need to reference the task object in your text mode, you need to first specify the task object and then the field. For example, in the code above, when I reference the plannedCompletionDate, I preface the field with {task}. This tells Workfront that I am calling the Task object’s planned completion date value. Therefore, whenever you create an object report that references a connecting object, add the object enclosed by curly brackets first, followed by a period, and then the referenced object’s field enclosed by curly brackets.

Next up, you will learn how to build advanced Filters to help find the exact information you are looking for.

Now it’s time to create our Task report. When creating a new report, it is always best practice to create a name and write a description for the report. The name should be descriptive enough to alert the user what the report is and the description should explain what the report shows.

Report Name: My Tasks Due this Week

Report Description: The My Tasks Due this Week report displays tasks that I am assigned to and have a planned completion date in the current week.



  1. Navigate to the Reporting area, select “New Report”, and choose the Task report.
  2. Navigate to the “Report Settings” dropdown and add the Report Title and Description. Select Done, when complete.
  3. Add the following columns: Project Name, Task Name, Status, Assignments, Planned Start Date, Planned Completion Date, Planned Hours, Actual Hours.
  4. Select “Add Column” and drag the new column between Planned Completion Date and Planned Hours,
  5. Confirm the new Column is highlighted blue then select Switch to Text Mode (upper right corner).
  6. Set the displayname to “Days Remaining”.
  7. Create a new line and type: textmode=true
    • This action alerts Workfront that we are using custom text mode rather than using standard fields.
  8. Create a new line for the valueexpression, which will leverage three functions: ROUND, DATEDIFF, and DATE
    • Remember to reference the API Explorer for the camel case values for object fields.
    • Set the valueexpression to: valueexpression=ROUND(DATEDIFF({plannedCompletionDate},DATE($$TODAY)),2)
    • DATE($$TODAY): calculates the date within the parenthesis and we used the $$TODAY wildcard to calculate today’s date.
    • DATEDIFF: calculates the number of days between two dates and we used the Planned Completion Date (camel case form) and DATE($$TODAY) dates.
    • IMPORTANT: Don’t forget to enclose your Workfront field between curly brackets: {plannedCompletionDate}
    • ROUND: rounds the value to the number of decimal places identified, which is 2 in our example.
  9. Create a new line for the valueformat.
    • Set the valueformat to: valueformat=doubleAsDouble
    • The valueformat formats the value of the valueexpression in the report when displayed.
  10. Select “Save”.
  11. Select “Add Column” and confirm that the column displays after the Actual Hours column.
  12. Confirm the new Column is highlighted blue then select Switch to Text Mode (upper right corner).
  13. Set the displayname to “Hours Remaining”.
  14. Create a new line and type: textmode=true
  15. Create a new line for the valueexpression, which will leverage three functions: ROUND, DIV, and SUB.
    • Set the valueexpression to: valueexpression= valueexpression=ROUND(DIV(SUB({workRequired},{actualWorkRequired}),60))
    • SUB({workRequired},{actualWorkRequired): calculates the difference between two fields and we used workRequired (planned hours) and actualWorkRequired (actual hours).
    • DIV: divides two numbers and we used SUB({workRequired},{actualWorkRequired}) and 60; We need to divide by 60 because Workfront uses seconds rather than minutes within the SUB function.
    • ROUND: rounds the value to the number of decimal places identified, which is 2 in our example.
  16. Create a new line for the valueformat.
    • Set the valueformat to: valueformat=doubleAsDouble
  17. Select “Save”.


After you have added both custom columns, select “Save + Close”. The report should look similar to the following:


In Part III, I will share the text mode code for a Task report and an Assignment report and introduce the series of blogs in the Create Reports Like a Pro series.


You are officially on your way to becoming a great Workfront Administrator! You know how to troubleshoot, create a feedback queue, and you have just learned how to read and use Workfront’s API Explorer. Now, let us focus on creating reports and dashboards that are effective and prompt our users to take action.

Every report shares four common areas: Views (Columns), Groupings, Filters, and Charts. We will cover Groupings, Filters, and Charts in later blogs but for now, we are going to focus on creating Advanced Views within a report.

A View on a report displays native and custom data for a given object (the object of a report). Let’s recall the lessons learned from the API Explorer blog. For a given object, you can leverage standard and custom object data, referenced object data, and object collections. Now, let’s create a report to help workers view key performance indicators for tasks they are assigned to.



Our work license users want to see how many days are left until the task is late and they want to see how many hours they have left on their tasks.



Your initial reaction may be to create a Task report. A Task report will work if your organization assigns a single user to a Task. If your organization assigns multiple users to a Task, you will want to create an Assignment report. Don’t worry, the text mode code will be available for both Task and Assignment reports in Part III.

In our example, we will create a Task report with two custom text-mode columns. Days Remaining, and Hours Remaining. Both custom text mode fields are not available through the standard interface.

To create both columns, you need to know the different components of the text mode code we will develop. We will leverage the following functions:

  • displayname
  • valueexpression
  • valueformat
  • textmode


The displayname function will display the label name for the column. The valueexpression function enables users to develop formulas for advanced calculations to display data otherwise not available in the standard user interface. The valueformat function allows users to display the data in a variety of formats on a report. Lastly, the textmode function is used to identify the column as custom rather standard.


In Part II, we will create the custom text mode code to create both columns: Days Remaining, and Hours Remaining.