[Event Follow-Up] 10 Text Mode Tips in Adobe Workfront | Community
Skip to main content
NicholeVargas
Adobe Employee
Adobe Employee
April 18, 2024

[Event Follow-Up] 10 Text Mode Tips in Adobe Workfront

  • April 18, 2024
  • 10 replies
  • 9629 views

[This discussion has been updated with the March 2025 assets - slide deck and recording]. 

Thank you to everyone who joined, asked questions, and shared additional pointers in today's workshop, 10 Text Mode Tips in Adobe Workfront with the Customer Success team! Text mode raises a lot of questions, so I'm glad we were finally able to deliver a session on this most-requested topic. 

If you missed the session, no worries - here is a link to the recording and a copy of the slide deck with ready-to-use, copy/paste text mode is attached. Examples shared during the workshop include:

  • Changing ID to name
  • Filtering for objects in a pending approval status
  • Comparing fields in a filter
  • Removing hyperlinks
  • Merging columns
  • and more! 

If you are just getting started with text mode, I'd recommend bookmarking and familiarizing yourself with the API Explorer (this will be your single source of truth for text mode) and reviewing customer submitted examples in the Reporting Cookbook. In addition, the Customer Support team can help with your text mode questions, but be sure to come prepared with your report already built - give it your best effort! 

If you have additional text mode tips to share, please reply to this post and we can use this discussion as a living text mode tip library for everyone to access! 

10 replies

NicholeVargas
Adobe Employee
Adobe Employee
April 18, 2024

This was shared from @karlton_harrison in regards to adding an icon to hover over and see the full message (update): 

 

RandyRoberts
Community Advisor
Community Advisor
April 24, 2024

That code doesn't work as captured as there are some lines missing and anything greater than the max doesn't show an icon. I fixed it for ya.

 

displayname=Latest Note image.case.0.comparison.icon=true image.case.0.comparison.leftmethod=lastNote:entryDate image.case.0.comparison.lefttext=lastNote:entryDate image.case.0.comparison.operator=gte image.case.0.comparison.operatortype=date image.case.0.comparison.righttext=$$TODAY-5d image.case.0.comparison.truetext=/static/img/r15/icons/casebuilder/light_green.gif image.case.1.comparison.icon=true image.case.1.comparison.leftmethod=lastNote:entryDate image.case.1.comparison.lefttext=lastNote:entryDate image.case.1.comparison.operator=gte image.case.1.comparison.operatortype=date image.case.1.comparison.righttext=$$TODAY-10d image.case.1.comparison.truetext=/static/img/r15/icons/casebuilder/light_orange.gif image.case.2.comparison.icon=true image.case.2.comparison.leftmethod=lastNote:entryDate image.case.2.comparison.lefttext=lastNote:entryDate image.case.2.comparison.operator=lte image.case.2.comparison.operatortype=date image.case.2.comparison.righttext=$$TODAY-10d image.case.2.comparison.truetext=/static/img/r15/icons/casebuilder/light_red.gif image.namevalue=lastNote:noteText textmode=true valueformat=html description=All notes within past 5 days are green, between 5 and 10 days orange, older than 10 days red

 

 

 

Level 2
April 21, 2025

Strage question here, I recently saw a text mode example for adding Log Time to a task report.  I thought it was from this meeting - but don't see if here. Do you happen to have this text mode example?

 

 

NicholeVargas
Adobe Employee
Adobe Employee
April 18, 2024

This was shared by @marktevans in the chat around a shared column that he uses on his User Admin View that contains A LOT of info in a single column

Note: It has been formatted for his organizations colors and default font type/face.

 

 

column.4.displayname=User Information column.4.sharecol=true column.4.textmode=true column.4.value=<font color=B2BA1D face=Agenda><b>Title:&nbsp</b></font> column.4.valueformat=HTML column.4.width=400 column.5.displayname= column.5.linkedname=direct column.5.namekey=title column.5.querysort=title column.5.sharecol=true column.5.textmode=true column.5.valuefield=title column.5.valueformat=HTML column.6.sharecol=true column.6.textmode=true column.6.value=<br><font color=B2BA1D face=Agenda><b>Manager:&nbsp</b></font> column.6.valueformat=HTML column.7.displayname=Manager column.7.linkedname=manager column.7.namekey=view.relatedcolumn column.7.namekeyargkey.0=manager column.7.namekeyargkey.1=name column.7.querysort=manager:name column.7.sharecol=true column.7.textmode=true column.7.valuefield=manager:name column.7.valueformat=HTML column.8.sharecol=true column.8.textmode=true column.8.value=<br><font color=B2BA1D face=Agenda><b>Primary Job Role:&nbsp</b></font> column.8.valueformat=HTML column.9.displayname= column.9.namekey=view.relatedcolumn column.9.namekeyargkey.0=role column.9.namekeyargkey.1=name column.9.querysort=role:name column.9.sharecol=true column.9.textmode=true column.9.valuefield=role:name column.9.valueformat=HTML column.10.sharecol=true column.10.textmode=true column.10.value=<hr><font color=b2ba1d face=Agenda><b>Access Level:&nbsp</b></font> column.10.valueformat=HTML column.11.displayname= column.11.namekey=view.relatedcolumn column.11.namekeyargkey.0=accessLevel column.11.namekeyargkey.1=name column.11.querysort=accessLevel:name column.11.sharecol=true column.11.textmode=true column.11.tile.name=component.accesslevellistview column.11.valuefield=accessLevel:name column.11.valueformat=HTML column.12.sharecol=true column.12.textmode=true column.12.value=<br><font color=b2ba1d face=Agenda><b>Home Group:&nbsp</b></font> column.12.valueformat=HTML column.13.displayname=Home Group column.13.linkedname=homeGroupID column.13.namekey=view.relatedcolumn column.13.namekeyargkey.0=homeGroup column.13.namekeyargkey.1=name column.13.querysort=homeGroup:name column.13.sharecol=true column.13.textmode=true column.13.valuefield=homeGroup:name column.13.valueformat=HTML column.14.sharecol=true column.14.textmode=true column.14.value=<br><font color=b2ba1d face=Agenda><b>Home Team:&nbsp</b></font> column.14.valueformat=HTML column.15.displayname= column.15.linkedname=homeTeam column.15.namekey=view.relatedcolumn column.15.namekeyargkey.0=homeTeam column.15.namekeyargkey.1=name column.15.querysort=homeTeam:name column.15.textmode=true column.15.valuefield=homeTeam:name column.15.valueformat=HTML

 

 

MoniqueEvans
Community Advisor
Community Advisor
April 23, 2024

Tip for anyone copying this code: This will need to be inserted in the 5th column from the left, or you will need to edit the column.#. code to reflect where you want it located.

 

For me, it's always easier to add four columns of whatever and then a fifth column with the copied text and then save the report. Once you do that, go back into edit mode and create the view as you see fit, dragging this text mode column to its new place. Workfront will automatically update the column numbering to reflect this.

April 18, 2024

Thank you for this webinar, it was incredibly helpful. For tip #8 (Limit Character Count on Updates in a View), how should the code be modified for custom fields? I've only been able to get it to work on native fields.

NicholeVargas
Adobe Employee
Adobe Employee
April 19, 2024

@davidwa7 To reference a custom field in a valueexpression, you will add DE: to the front of the field name. For example, if your custom field is labeled Number of Assets, in the valueexpression, the field would look like this {DE:Number of Assets}. Remember that all fields in a valueexpression must have the curly braces { } and fields are separated by a period. 

RandyRoberts
Community Advisor
Community Advisor
April 24, 2024

DE: stands for "Data Extension" btw, because by adding a custom field you are "extending the data" attributes of the object.

KristenS_WF
Level 6
April 19, 2024

I can't seem to get the merge column text mode to work in a Baseline report (showing all the baselines for a single project).  I tried combining the baseline planned start date, planned completion date, duration, and actual duration into a single column, but the resulting report doesn't merge the columns (and when I go back into edit mode, the text mode additions I made/saved are suddenly gone).

I tried again using just a Project report and had no trouble merging columns.  I thought perhaps my original Baseline report was somehow corrupted, so I created a new one from scratch--when I attempt to merge columns, I run into the same problems as before.

Is this a bug, or is there some sort of restriction with merging columns in a Baseline report?

KristenS_WF
Level 6
April 19, 2024

A little more context... the problem I'm seeing appears to specifically involve merging Duration and Actual Duration columns.  I just tried merging Duration and Actual Duration columns in a project report, and I have the same issue.

NicholeVargas
Adobe Employee
Adobe Employee
April 19, 2024

@kristens_wf I imagine it has to do with the field types for Duration and Actual Duration. While these are built-in or native fields in Workfront, they are simply summary fields vs static values, which is also why you can't group a report by either of them - the value can change based on the tasks/project timeline. I would submit a case into Customer Support to confirm, but my gut tells me this is intended behavior so you'd have to leave those columns as separate ones in your report. 

esalraz
Level 2
April 25, 2024

Hello

 

Thank you for this webinar it was very informative.

 

We learn how to change the color of specific field values or highlight cells/rows based on certain criteria you select but I want to change the headers color only in the columns using the text mode. Is it possible to do? 

NicholeVargas
Adobe Employee
Adobe Employee
April 25, 2024

@esalraz Unfortunately, text formatting only applies to data within the columns and cannot be applied to column headers. If you want to submit that as an Idea, I'd be happy to surface it to the Product team for additional consideration! 

Level 4
April 25, 2024

Hi! Has anyone been able to figure out a way to pull all updates on objects (Task, Issue, Project) into a report, including system activity? Our company would like to be able to export all project details as part of our regular closeout activities. See full post here:

 

https://experienceleaguecommunities.adobe.com/t5/workfront-questions/project-closure-report-s/m-p/667762#M60467

 

TIA!

MoniqueEvans
Community Advisor
Community Advisor
April 26, 2024

If you want task details to show on a project report, you'll need to utilize collections. One thing to note is that collections will appear out of order so you won't be able to organize the information within the project report.

Would creating two reports be feasible in your use case? One of all notes and a second with task details. I'm not sure how you plan to use this information but sometimes it's easier to digest when parsed.

Level 4
May 6, 2024

Hi @moniqueevans, thanks for your response! I'm not familiar with Collections so will need to do some reading up.

 

Creating two separate reports may just be the simplest way to handle what we need, and honestly I hadn't even thought about doing that yet because I have been focused on creating a comprehensive report.


Thanks for the ideas!

MoniqueEvans
Community Advisor
Community Advisor
April 26, 2024

One of my leaders asked if we could group by a calculated column I had created for her and I almost said no, until I remembered that almost any calculated column can become a calculated custom field. After a little elbow grease and trial and error I created a new field called "Completion Status" which compares the planned completion date with the actual completion date and gives one of three choices (On Schedule, Ahead of Schedule, Behind Schedule) depending on the variance. I plan to talk to other leaders to see if there should be a little buffer of a day or two before we want to deem something is behind schedule but for now here's the code:

IF(WEEKDAYDIFF({plannedCompletionDate},{actualCompletionDate})<0,"Ahead of Schedule",(IF(WEEKDAYDIFF({plannedCompletionDate},{actualCompletionDate})=0,"On Schedule",(IF(WEEKDAYDIFF({plannedCompletionDate},{actualCompletionDate})>0,"Behind Schedule","")))))

 

 

And for anyone wondering how to do this as a column in a report here's that code as well

displayname=Overall Project Completion Status linkedname=direct namekey=actualCompletionDate querysort=actualCompletionDate textmode=true valuefield=actualCompletionDate valueformat=atDate case.0.comparison.icon=false case.0.comparison.leftmethod=actualCompletionDate case.0.comparison.lefttext=actualCompletionDate case.0.comparison.operator=lt case.0.comparison.operatortype=date case.0.comparison.rightmethod=plannedCompletionDate case.0.comparison.righttext=plannedCompletionDate case.0.comparison.truetext=Ahead of Schedule case.1.comparison.icon=false case.1.comparison.leftmethod=actualCompletionDate case.1.comparison.lefttext=actualCompletionDate case.1.comparison.operator=eq case.1.comparison.operatortype=date case.1.comparison.rightmethod=plannedCompletionDate case.1.comparison.righttext=plannedCompletionDate case.1.comparison.truetext=On Schedule case.2.comparison.icon=false case.2.comparison.leftmethod=actualCompletionDate case.2.comparison.lefttext=actualCompletionDate case.2.comparison.operator=gt case.2.comparison.operatortype=date case.2.comparison.rightmethod=plannedCompletionDate case.2.comparison.righttext=plannedCompletionDate case.2.comparison.truetext=Behind Schedule styledef.case.0.comparison.icon=false styledef.case.0.comparison.leftmethod=actualCompletionDate styledef.case.0.comparison.lefttext=actualCompletionDate styledef.case.0.comparison.operator=lt styledef.case.0.comparison.operatortype=date styledef.case.0.comparison.rightmethod=plannedCompletionDate styledef.case.0.comparison.righttext=plannedCompletionDate styledef.case.0.comparison.trueproperty.0.name=bgcolor styledef.case.0.comparison.trueproperty.0.value=def6e2 styledef.case.0.comparison.truetext=Ahead of Schedule styledef.case.1.comparison.icon=false styledef.case.1.comparison.leftmethod=actualCompletionDate styledef.case.1.comparison.lefttext=actualCompletionDate styledef.case.1.comparison.operator=eq styledef.case.1.comparison.operatortype=date styledef.case.1.comparison.rightmethod=plannedCompletionDate styledef.case.1.comparison.righttext=plannedCompletionDate styledef.case.1.comparison.trueproperty.0.name=bgcolor styledef.case.1.comparison.trueproperty.0.value=ffffff styledef.case.1.comparison.truetext=On Schedule styledef.case.2.comparison.icon=false styledef.case.2.comparison.leftmethod=actualCompletionDate styledef.case.2.comparison.lefttext=actualCompletionDate styledef.case.2.comparison.operator=gt styledef.case.2.comparison.operatortype=date styledef.case.2.comparison.rightmethod=plannedCompletionDate styledef.case.2.comparison.righttext=plannedCompletionDate styledef.case.2.comparison.trueproperty.0.name=bgcolor styledef.case.2.comparison.trueproperty.0.value=eac6c9 styledef.case.2.comparison.truetext=Behind Schedule

 

I'm not using it, but someone should benefit from it!

FrankatMSC
Level 4
May 8, 2024

Been a few weeks since the webinar and i'm still playing around with all this great text mode code.    Just figured out you can get a column to sum that doesn't offer it by default by adding the aggregator lines.  Very cool stuff.

aggregator.displayformat=val
aggregator.function=SUM
aggregator.namekey=estimate
aggregator.valuefield=estimate
aggregator.valueformat=val
displayname=
linkedname=direct
namekey=estimate
textmode=true
valuefield=estimate
valueformat=doubleAsDouble

Thanks again for a great webinar!!

 

 

MoniqueEvans
Community Advisor
Community Advisor
May 13, 2024

I take absolutely no credit for this but had to share in a more public place. I was wandering Community hoping to find a way to easily export a complicated view I created for a report so that I could add it to the Layout Template list of views and let people use it with other lists. That's when I stumbled upon the genius that is @william-- and a recommendation to a similar idea post.

 

In a simple two-column Report Report you can get direct links to the FVG (Filter, View, or Grouping) editor for that report's element and then "save as new" allowing you to use, share, and apply wherever you wish! Click the link above for full details.

Column 1: Report Name; Column 2: is this magic...

 

displayname=FVG Links textmode=true valueexpression=CONCAT(IF(ISBLANK({viewID}),"",CONCAT("https://",{customer}.{domain},".my.workfront.com/lists/views/",IF(CONTAINS("ASSGN",{uiObjCode}),"assignment",IF(CONTAINS("BILL",{uiObjCode}),"billingrecord",IF(CONTAINS("BSTSK",{uiObjCode}),"baselinetask",IF(CONTAINS("CMPY",{uiObjCode}),"company",IF(CONTAINS("DOCAPL",{uiObjCode}),"documentapproval",IF(CONTAINS("DOCU",{uiObjCode}),"Document",IF(CONTAINS("DOCV",{uiObjCode}),"documentversion",IF(CONTAINS("EXPNS",{uiObjCode}),"expense",IF(CONTAINS("FINDAT",{uiObjCode}),"financialdata",IF(CONTAINS("FVRITE",{uiObjCode}),"favorite",IF(CONTAINS("JRNLE",{uiObjCode}),"journalentry",IF(CONTAINS("MILE",{uiObjCode}),"milestone",IF(CONTAINS("MPATH",{uiObjCode}),"milestonepath",IF(CONTAINS("OPTASK",{uiObjCode}),"issue",IF(CONTAINS("PARAM",{uiObjCode}),"parameter",IF(CONTAINS("PORT",{uiObjCode}),"portfolio",IF(CONTAINS("PRFAPL",{uiObjCode}),"proofapproval",IF(CONTAINS("PRGM",{uiObjCode}),"program",IF(CONTAINS("PROJ",{uiObjCode}),"project",IF(CONTAINS("PTLSEC",{uiObjCode}),"report",IF(CONTAINS("QUED",{uiObjCode}),"queue",IF(CONTAINS("QUET",{uiObjCode}),"queuetopic",IF(CONTAINS("RESVT",{uiObjCode}),"timeoff",IF(CONTAINS("ROLE",{uiObjCode}),"jobrole",LOWER({uiObjCode}))))))))))))))))))))))))),"/",{viewID})),"\\u000A",IF(ISBLANK({filterID}),"",CONCAT("https://",{customer}.{domain},".my.workfront.com/lists/filters/",IF(CONTAINS("ASSGN",{uiObjCode}),"assignment",IF(CONTAINS("BILL",{uiObjCode}),"billingrecord",IF(CONTAINS("BSTSK",{uiObjCode}),"baselinetask",IF(CONTAINS("CMPY",{uiObjCode}),"company",IF(CONTAINS("DOCAPL",{uiObjCode}),"documentapproval",IF(CONTAINS("DOCU",{uiObjCode}),"Document",IF(CONTAINS("DOCV",{uiObjCode}),"documentversion",IF(CONTAINS("EXPNS",{uiObjCode}),"expense",IF(CONTAINS("FINDAT",{uiObjCode}),"financialdata",IF(CONTAINS("FVRITE",{uiObjCode}),"favorite",IF(CONTAINS("JRNLE",{uiObjCode}),"journalentry",IF(CONTAINS("MILE",{uiObjCode}),"milestone",IF(CONTAINS("MPATH",{uiObjCode}),"milestonepath",IF(CONTAINS("OPTASK",{uiObjCode}),"issue",IF(CONTAINS("PARAM",{uiObjCode}),"parameter",IF(CONTAINS("PORT",{uiObjCode}),"portfolio",IF(CONTAINS("PRFAPL",{uiObjCode}),"proofapproval",IF(CONTAINS("PRGM",{uiObjCode}),"program",IF(CONTAINS("PROJ",{uiObjCode}),"project",IF(CONTAINS("PTLSEC",{uiObjCode}),"report",IF(CONTAINS("QUED",{uiObjCode}),"queue",IF(CONTAINS("QUET",{uiObjCode}),"queuetopic",IF(CONTAINS("RESVT",{uiObjCode}),"timeoff",IF(CONTAINS("ROLE",{uiObjCode}),"jobrole",LOWER({uiObjCode}))))))))))))))))))))))))),"/",{filterID})),"\\u000A",IF(ISBLANK({groupByID}),"",CONCAT("https://",{customer}.{domain},".my.workfront.com/lists/groupings/",IF(CONTAINS("ASSGN",{uiObjCode}),"assignment",IF(CONTAINS("BILL",{uiObjCode}),"billingrecord",IF(CONTAINS("BSTSK",{uiObjCode}),"baselinetask",IF(CONTAINS("CMPY",{uiObjCode}),"company",IF(CONTAINS("DOCAPL",{uiObjCode}),"documentapproval",IF(CONTAINS("DOCU",{uiObjCode}),"Document",IF(CONTAINS("DOCV",{uiObjCode}),"documentversion",IF(CONTAINS("EXPNS",{uiObjCode}),"expense",IF(CONTAINS("FINDAT",{uiObjCode}),"financialdata",IF(CONTAINS("FVRITE",{uiObjCode}),"favorite",IF(CONTAINS("JRNLE",{uiObjCode}),"journalentry",IF(CONTAINS("MILE",{uiObjCode}),"milestone",IF(CONTAINS("MPATH",{uiObjCode}),"milestonepath",IF(CONTAINS("OPTASK",{uiObjCode}),"issue",IF(CONTAINS("PARAM",{uiObjCode}),"parameter",IF(CONTAINS("PORT",{uiObjCode}),"portfolio",IF(CONTAINS("PRFAPL",{uiObjCode}),"proofapproval",IF(CONTAINS("PRGM",{uiObjCode}),"program",IF(CONTAINS("PROJ",{uiObjCode}),"project",IF(CONTAINS("PTLSEC",{uiObjCode}),"report",IF(CONTAINS("QUED",{uiObjCode}),"queue",IF(CONTAINS("QUET",{uiObjCode}),"queuetopic",IF(CONTAINS("RESVT",{uiObjCode}),"timeoff",IF(CONTAINS("ROLE",{uiObjCode}),"jobrole",LOWER({uiObjCode}))))))))))))))))))))))))),"/",{groupByID}))) valueformat=HTML

 

Thank you for saving me an hour (if not more)!!

esalraz
Level 2
May 28, 2024

Hello @nicholevargas ,

 

Instead of a user report I have used TIP #5 (Merge data from multiple columns in a View) in a view in the project section and I was wondering if you have a bonus tip to me 🙂 

 

I used shared column function to merge information from two columns into one in a custom view in the project section, but I am only able to edit the information of the first one and I would like also to edit the information of the second one. Is that possible adding a command line to do it or something?

 

I attached my text mode command lines and my columns screenshot. Thank you in advance

NicholeVargas
Adobe Employee
Adobe Employee
May 28, 2024

@esalraz That is one of the limitations of merging columns in a view - only the first (left) column would be in-line editable, if applicable. So if you are wanting to in-line edit both of the fields in your report or view, I would recommend separate columns. 

This would be a great suggestion for the Ideas space and something I can bring up to the Reporting Product Manager to see if it is something that could be added to the roadmap. 

esalraz
Level 2
May 29, 2024

Thanks Nichole! I will share it in the ideas space.