Expand my Community achievements bar.

Don’t miss the Workfront AMA: System Smarts & Strategic Starts! Ask your questions about keeping Workfront running smoothly, planning enhancements, reporting, or adoption, and get practical insights from Adobe experts.

šŸŽ¬ [VIDEO] October 2025 - [Workfront] Expert Insights - Text Mode with Katherine Lanning

Avatar

Employee

Welcome to the latest Expert Insights!  I’m Cynthia Boon, your ā€œOn-Demandā€ Workfront CSM and for this episode we have Workfront Text Mode Jedi, Katherine Lanning @KatherineLa, Workfront Solutions Engineer from IQVIA!  During this episode, Katherine shares her story, her passion for all things Text Mode Reporting, and demos how she built her ā€œSanity Managementā€ Dashboard! 

Check out the video here! 

Screenshot 2025-10-01 at 5.05.01 PM.png

Text Mode can be challenging, but the rewards are amazing.  Just remember Katherine’s advice! 

  • ā€œIf you can see it, you can change it.ā€ 
    • Flip into text mode on standard reports to see how columns are built. 
  • Learn by tinkering. 
    • Add fields, switch to text mode, and experiment to understand what drives the data. 
  • Use plain language. 
    • Title columns as questions or clear statements so non-admins can interpret them easily. 
  • Add descriptions. 
    • Customize hover text in text mode to explain data and guide users. 
  • Make visuals accessible. 
    • Don’t rely only on colors (e.g., red/green) — use distinct icons or labels. 
  • Leverage the community. 
    • Rely on Experience League, cookbooks, API Explorer, and peers — don’t reinvent the wheel. 
  • Persist, but take breaks. 
    • If stuck, close the laptop, take a walk, and return with fresh eyes. 

Looking for additional resources? We’ve got them! 

Looking for the copy and past text-mode that Katherine demo’d during her interview?  Check out the comments added to the Experience League Community post below! 

Katherine Lanning.jpg

Katherine is the Workfront Solutions Engineer and Fusion developer for IQVIA Digital. When asked what she does for a living, she responds ā€˜I’m someone’ – as in ā€˜Someone really should be able to figure out a better way to do that.’ Her background spans corporate finance, IT, and systems administration in industries adult beverages, marketing and advertising and even private security.  

She lives in southwestern Ohio with her accidental husband, their dog ā€˜Bettis’, two motorcycles and enough hobbies for three people. Ideal weekends include blacksmithing conferences, exploring Arashiyama, quality time with the Xbox or baking new cheesecake recipes. 

(And yes, all of these things are completely true. She's not the one to play that icebreaker ā€˜Two truths and a lie’ game with. 😃) 

You never know what amazing ideas customers will share during events, so make sure you don’t miss out!  Register for our upcoming workshops our Experience League Events page.  

Do you have a great story to share, either during an event or in an Expert Insights video? Please reach out to our team at CSatScale@adobe.com. 

5 Replies

Avatar

Employee

As promised, here is Katherine's Team Overview text mode sample to start:

 

displayname=Active Members (Last Login Date) 

listdelimiter=<br> 

listmethod=nested(users).lists 

shortview=true 

type=iterate 

valueexpression=IF({isActive},IF(NUMBER(DATEDIFF({lastLoginDate},$$TODAY))>-180,CONCAT({name}," - ",{lastLoginDate}," - ",{accessLevel}.{name}),"")) 

valueformat=HTML 

  

  

displayname=Inactive Members (>180 days Login/Deactivated) 

listdelimiter=<br> 

listmethod=nested(users).lists 

shortview=true 

type=iterate 

valueexpression=IF({isActive}="false",CONCAT({name}),(IF(NUMBER(DATEDIFF({lastLoginDate},$$TODAY))<-180,CONCAT({name}," - ",{lastLoginDate}," - ",{accessLevel}.{name}),""))) 

valueformat=HTML 

  

displayname=New Acct - Never Logged In 

listdelimiter=<br> 

listmethod=nested(users).lists 

shortview=true 

type=iterate 

valueexpression=IF({isActive},IF({loginCount}=0,CONCAT({name}," - ",{accessLevel}.{name}),"")) 

valueformat=HTML 

Avatar

Employee

And here’s the Queue Mgmt report + Task text mode:

 

displayname=Request Routing Settings (if no Sub-Topics available)

linkedname=defaultRoute

valueexpression=concat("Team: ",{defaultRoute}.{defaultTeam}.{name},"\\u000A","Person: ",{defaultRoute}.{defaultAssignedTo}.{name})

valueformat=HTML

 

displayname=Sub-Topic Routing Settings

listdelimiter=<p>

listmethod=nested(queueTopics).lists

type=iterate

valueexpression=concat("Topic Name: ",{name},"\\u000a","Team: ",{defaultRoute}.{defaultTeam}.{name},"\\u000a","Person: ",{defaultRoute}.{defaultAssignedTo}.{name},"\\u000a","")

valueformat=HTML

 

displayname=What Custom Forms Are Attached? (Will not show forms if sub-topics are used)

linkedname=direct

namekey=category.name

tile.name=component.objectcategories

valuefield=customFormsNames

valueformat=HTML

viewalias=category.name

 

image.case.0.comparison.icon=true

image.case.0.comparison.isrowcase=false

image.case.0.comparison.leftmethod=canStart

image.case.0.comparison.lefttext=canStart

image.case.0.comparison.operator=eq

image.case.0.comparison.operatortype=boolean

image.case.0.comparison.righttext=true

image.case.0.comparison.truetext=https://experienceleague.adobe.com/icons/adobe-red-logo.svg

image.case.1.comparison.icon=true

image.case.1.comparison.isrowcase=false

image.case.1.comparison.leftmethod=canStart

image.case.1.comparison.lefttext=canStart

image.case.1.comparison.operator=eq

image.case.1.comparison.operatortype=boolean

image.case.1.comparison.righttext=false

image.case.1.comparison.truetext=https://pps.services.adobe.com/api/profile/image/default/bb99dbb8-eab4-438d-ab41-f2f9f1b8ead3/50

linkedname=direct

namekey=canStart

querysort=canStart

valuefield=canStart

valueformat=booleanMessage

Avatar

Employee

And here are the last notes that Katherine shared!

Two last pieces – this is the ridiculous ā€˜selectively link to 3 off-Workfront URLs with the company icons’ I mentioned.   The other small thing I forgot on the call is what to do if you’re playing in text-mode and wind up locking a screen. If you write something with an error in a report, it just means the report doesn’t run. But if you do that on one of the core screens (Portfolio, Program etc), then you can make it so the entire page just displays ā€˜Whoops!’.  I wrote this up awhile ago after I did it to myself, this is one of the ways it can be fixed. 

Admin Tip: Using the 'resetUser' Trick for Weird Browser Errors

 

column.0.displayname=External Systems
column.0.image.case.0.comparison.icon=true
column.0.image.case.0.comparison.leftmethod=DE:Dropbox
column.0.image.case.0.comparison.lefttext=DE:Dropbox
column.0.image.case.0.comparison.operator=notblank
column.0.image.case.0.comparison.operatortype=string
column.0.image.case.0.comparison.righttext=
column.0.image.case.0.comparison.truetext=Update this URL to reference a publicly available image

column.0.image.width=50
column.0.link.url=customDataLabelsAsString(Dropbox)
column.0.linkedname=direct
column.0.namekey=dropbox
column.0.querysort=DE:Dropbox
column.0.sharecol=true
column.0.textmode=true
column.0.valuefield=Dropbox
column.0.valueformat=HTML
column.1.displayname=
column.1.image.case.0.comparison.icon=true
column.1.image.case.0.comparison.leftmethod=DE:Confluence
column.1.image.case.0.comparison.lefttext=DE:Confluence
column.1.image.case.0.comparison.operator=notblank
column.1.image.case.0.comparison.operatortype=string
column.1.image.case.0.comparison.righttext=
column.1.image.case.0.comparison.truetext=Update this URL to reference a publicly available image
column.1.image.width=50
column.1.link.url=customDataLabelsAsString(Confluence)
column.1.linkedname=direct
column.1.namekey=Confluence
column.1.querysort=DE:Confluence
column.1.sharecol=true
column.1.textmode=true
column.1.valuefield=Confluence
column.1.valueformat=HTML
column.2.displayname=
column.2.image.case.0.comparison.icon=true
column.2.image.case.0.comparison.leftmethod=DE:Salesforce
column.2.image.case.0.comparison.lefttext=DE:Salesfoce
column.2.image.case.0.comparison.operator=notblank
column.2.image.case.0.comparison.operatortype=string
column.2.image.case.0.comparison.righttext=
column.2.image.case.0.comparison.truetext=Update this URL to reference a publicly available image
column.2.image.width=50
column.2.link.url=customDataLabelsAsString(Salesforce)
column.2.linkedname=direct
column.2.namekey=Salesforce
column.2.querysort=DE:Salesforce
column.2.textmode=true
column.2.valuefield=Salesforce
column.2.valueformat=HTML

 

Avatar

Community Advisor

Thanks Cynthia, this was a lot of fun! I keep thinking about things I wish I'd added or said now. There's so many ways that text-mode can really simplify the effort of keeping on top of an instance. 

Avatar

Employee

I'm glad you had fun!  (That was the primary objective. šŸ¤ ). I guess we need to do a sequel?  Or even a trilogy! šŸ¤“