10 Text Mode Tips in Adobe Workfront
Explore ten essential text mode tips that enhance your reporting capabilities in Adobe Workfront. Learn how to manipulate views, filters, and groupings to extend your reporting beyond standard builder limitations. This workshop provides practical demonstrations and real-world examples, helping you to apply text mode effectively in your projects and tasks. Gain insights on using text mode for cost calculations, task management, and more, ensuring you align with your corporate governance policies and improve your workflow efficiency. The video below offers a comprehensive guide on these tips.
And so if this is your very first customer success workshop, welcome. Today we’re going to be focusing on 10 text mode tips in Adobe Workfront. So I will not only kind of share with you what that looks like from a sort of presentation standpoint, but we will also be demoing them, each of the examples, in a test drive. So like I said, we do have a lot to cover, but feel free to pause at any point, raise your hand, come off view. Everyone has the option to turn their camera on, turn their microphone on. So if you’re like, hey, can you wait for a second, I have a question, by all means, absolutely do that.
Cynthia is in the chat. So if you do have a question, we’ll try and get to it there as well.
But otherwise, for some housekeeping, I am going to record today’s session. If you guys are familiar or came to last year’s session, so our recordings only last about one year, so I wanted to make sure that I redid this. So I will update the experience link post that is already existing for the 10 text mode tips with this new link so that everyone can access this for the next year. And I will also send a follow-up email this afternoon with a copy of the slide deck and any resources that you guys may or may not need throughout the session that you asked for in the chat. So I think that’s all I have for housekeeping. From an agenda standpoint, I will do just some quick introductions and then share a little bit about the background behind text mode, what is it, what’s the difference between fields, references, and collections, talk a little bit about the API Explorer. And then we’re going to spend most of our time today really focusing on the 10 text mode tips. So it’s going to go really basic to a little bit more advanced. I’ve done two text mode sessions in the past. This is the more introductory session. And so if you’re super new to reporting and text mode, this will be a great opportunity for you to just learn the basics of text mode. As much as I have an open Q&A at the end, I don’t know that we’ll ever get to that, like I said, because text mode is such a popular topic. And so feel free to just raise your hand, come off mute, post your question in the chat, and we’ll let this be an interactive session where I’m not just speaking at you guys for the next 57 minutes. So if you haven’t met me before, I am Nicole Vargas. I’m a Senior Customer Success Manager here at Adobe Workfront. I joined Workfront about a little over seven, almost seven and a half years ago now. I actually came in through customer support where I worked in troubleshooting reports and custom forums. And so I sort of learned text mode a little bit backwards. But it really does come with a lot of time and practice. If you’re a little bit nervous or hesitant, just know this comes from seven years of practice. So it does take a lot of time and effort. But I promise, once you get the hang of it, you’ll be on your way. So I am joined by Cynthia. She’s in the chat. I will not ask her to come off mute or come on camera.
Leslie just got back from leave. And so I don’t even know that Leslie is in the chat. But if she is, she’ll absolutely be helping out. If not, you’ll see Leslie at some sessions, likely in April. But if you guys do have questions after the session, you’re always more than welcome to email us. We put our email address in there, which is just csatscaleatadobe.com. We do a handful of events on the community. So you can find us through the events page. Or if you want to connect with us on LinkedIn, we’re happy to chat in any method that works best for you. And so with that, I am just going to jump right into text mode but does anyone have any questions before we get started? All right. So when I talk about what is text mode, so I really just like to sort of kick off every session with a really basic introduction in that text mode is used to sort of manipulate views, filters, and groupings that you create through the standard builder, just to give you sort of an extension of reporting capabilities within Workfront. And so oftentimes people use text mode to, one, go past the standard builder field limit. So for example, if you are on a task report and want to report on like portfolio information, that’s pretty limited. Calculations, if you are looking for, I want to get any sort of like date diff calculations, or I want to combine fields together or add text. How you can use text mode expressions. An additional display format. So sometimes if you want it to show as a different format, typically everything shows, we all know our value format is an HTML. There are different options within there. There’s like a current, so you get decimal. And so you can change that through text mode and then really going above and beyond your grouping limit. So typically there’s only, I believe, a three groupings allowed through the standard builder. You can go beyond that, add four or five, 10, however many you want using text mode. But really the most important thing about text mode is that it’s written in what we call camel case. And so if you look here on the screen, you can see that all of the words are combined. So there’s no spaces between any of the words. And the very first word has all lowercase letters. The second word has the very first letter capitalized. And then any sequential words, it’s always that very first letter of the word being capitalized. And so that’s how you kind of can write text mode statements. And like I said, it’s gonna come with time and practice. And I’ll share a little bit about the API Explorer just so that you understand how I got this information. And so the API Explorer, you can access through experience. Like it’s really gonna be your critical reference source in learning how to write text mode statements. And so it’s gonna give you the proper camel case name for fields in the database. It shows you what fields can be found on an object. When I’m talking about objects, I’m referring to like projects, tasks, issues. And then it also lists what fields you can reference on other objects. And so I’ll walk you guys through this really quickly, but ultimately the tables in the API Explorer are gonna give you that comprehensive list of fields for each object and the relationship between objects that can be used when writing text mode. And so I will just show you what this looks like from how to navigate there and then we’ll walk through the different tabs. And I’m really gonna focus on fields, references, collections for the next like three or four minutes, because those are the ones that you’re gonna use when you’re writing text mode. And so if I were to go to experience league, and I’m just going to search here, API Explorer, this is how you can access the API Explorer. And so like I said, I’m gonna talk a little bit about fields, references and collections, but ultimately when you get here, if you’re like, okay, now what do I even do? This is where it is sort of your starting point for your text mode and to understand what fields you can, what fields are available and how to navigate to different fields. So for example, if you wanted to run a task report and you were like, okay, what are the different fields available? This is kind of the breakdown of fields, references, collections. And so fields refers to the columns basically available that each object can access through the standard database. And so if you were to run a task report, these are all of the fields that you would see in your standard report field list. Your references are going to be the tables that your object is directly related to in your one-to-one relationship. So for example, like a task, if we look at, I’m gonna look here, say project, these are sort of your one-to-one relationships. So these are the things that you can reference in your standard field builder. But if you need to go beyond that, you can still reference these using semicolons or periods, depending on what type of expression you’re using. And then your collections is gonna be your one to one of many relationships. So for example, a task can have many documents, a task can have several task assignments. And so this is how you can pull your collection data. And then if you look all the way on the right-hand side of the page, this is what the CAML case looks like for each field. And so that’s a really quick rundown. I’m gonna just quickly go through, like I said, the fields and references, just so that you guys have an understanding and then we’ll jump right into these tips. And so, like I said, your fields are gonna be the columns or fields available to you for your specified object. They’re available in the standard report builder. So really your fields table is not going to be required for text mode. It’s really if you’re building out longer expressions and need to understand sort of what’s my end point.
And then, like I said, the CAML case is written on the right-hand side so that you can understand how to write it. And then your references are the things that you can sort of jump tables. So if you wanna jump from tasks to projects, you can do it here. You can see an example, a value field, you would separate it by a semicolon, where if you’re writing a value expression, it’s separated in between curly braces and a period. And then your collections are, again, those one-to-many relationships. And so this example here on the right sort of gives you that framework of what a text mode collection column would look like. Those things in red are the things that you would have to update. And then if you look at the project report, you can see, okay, this is actually how I’d fill it in. So your display name is always gonna be the name of your column, no matter what. Your list method, when it talks about the object, so if you’re saying, okay, what’s the collection object that I want to reference? And so, for example, if you’re on a project report and wanna pull in task information, you would put tasks. And then your value field is going to be that you wanna pull in. If you wanna change that to be a value expression, where you’re saying like, oh, I actually only wanna see tasks that have zero actual hours, you can absolutely pull that in. And so, again, super quick rundown. These are just the text mode components that are required. When you’re writing text mode columns, you need to have your display name, your value format, which typically is HTML, and then your value field or value expression, not both, just one. One is sort of that static field. If you’re just pulling in a field or a reference, your value expression is if you’re using anything like a concat or a date diff or a ceiling, things like that.
So, oh, my apologies. Okay, okay, come here. So we’ll just go count down top 10, starting at the basics here.
Apologies for that. So let’s start off with changing ID to name. This is your very basic fundamental of text mode. And so if, for example, if you are running a maybe a task report and you wanna add a column that shows the portfolio name, when you go to click add column, and then you search in your field library, the only thing you might see is portfolio ID, which is gonna give you that alphanumeric ID, which is not super intuitive for someone or helpful when you’re running a report. You really just wanna see the actual name of the object. And so what you do is you would just add anything that says portfolio. If you add portfolio ID to your column and then go into text mode and replace the word ID with the semicolon and name, then you’ll be able to actually see the name of the object. And so, like I said, I’m gonna walk through each of these examples super fast in a test drive, but also know that you guys are gonna get a copy of this slide deck with all the step-by-step instructions, which is why I go pretty fast. So let me just show you here. Okay, so for example, if I were to go to the reports area and for example, create a task report, I’m just gonna keep this really straightforward so that you guys can kind of get the gist. For this example, I’m just gonna say portfolio ID is not blank so that I’m not pulling in thousands of tasks here. But ultimately when you go to the hit add column and type in portfolio, and if you were to hit portfolio name to actually get the name of the portfolio, you’re not going to see that as an option. And so we’re gonna choose portfolio ID and we’re gonna associate that. Okay, so project portfolio ID. I am gonna go into switch to text mode. And like I said, when you see, everywhere you see ID, replace it with colon name.
And then you also have the option of adding display name equals, which is gonna be the name of your column. So I’m gonna go ahead and hit done. And then I’m just gonna go ahead and add that column back just that you guys can see the difference.
All right, so you can see here. So this second, from the right column, that’s where we changed the ID, that alphanumeric ID to the actual name of the object. And then if we were to keep the column that was available in the standard report builder, that project portfolio ID, that’s the only piece of information we would get. So that’s just your very basic text mode tip. It’s probably the most used and most common. And so if you take anything away from today’s session, I hope it’s that you know how to now change ID to name in any of your views.
Any questions? And for the person on how we can make sure all of the items in the view are hyperlinks, it really just depends. Some objects are not going to be hyperlinked based on just the type of report that you’re building. I will show you an example of how to actually add or remove a hyperlink from a report in case you want it, like for example, we’re going to look at like an issue report or we’re going to, the issues that have been converted to projects.
And then we want to remove the original issue name. And so that is one example.
Any other questions? I think there’s so many that are coming so fast. I know, it’s like rapid fire. It is unlikely like Monique and Lindsay and David and everybody like people are answering. So hopefully we’ll just keep going. And then we may have to answer your question in the followup, but okay. Yeah, like I said, there’s a whole lot to cover and I’ll do my very best, but at least just showing you guys examples. And then if you had to have followup questions, we can always try and address those after the fact, or you can always send us an email. So second example here, this one is, and if you guys were around prior to like the new interface changing a little bit, you probably noticed that sometimes when you switch back from text mode to standard mode, things get lost. And so I had to update this slide, for example. So if you are using approval processes on your objects, for example, like if you have a project that says, okay, when it actually hits complete, it triggers an approval process for say the project owner to go ahead and approve or reject. There is not a way in the standard report builder to actually filter for objects that are pending approval. And so you could do that through text mode by adding in your, basically choose the status that typically has the approval associated with, and then switch to text mode and add colon A, and that’s an uppercase A to your text mode expression. And so I see a question here between a value field and a value expression. I will get to that in just a second, but let me just walk through this example here on how to filter for work pending approval. Okay, apologies that I’m jumping back and forth, but I also built out a bunch of these so that I didn’t have to rebuild everything.
Okay, so you can see here in this far right column, we can see status complete pending approval. And so if you want to do that, what you do is, I’m just going to choose the status that it’s typically associated with. So like I said, if you’re using what a status goes to complete pending approval, you would add in complete as sort of your placeholder and then switch to text mode. And then this is where you would add in that colon uppercase A. When you hit done, previously you used to be able to hit switch to standard mode and you would see complete pending approval. That does not work anymore. It’s on my list of things to check to see if they’re going to fix it, but that’s how you can filter for complete pending approval. And you can do that for any status. So if you have it based on projects that go from current to dead, or maybe you have your own customer status key in there that triggers an approval, you just need to add the colon A to your filter. And then this is how you can easily find those in your reports.
All right, let me answer the one question between the difference between a value field and a value expression before we just get going, just to help clarify things. So value fields are used when you are simply referencing fields. So if you want to go, like if you’re on a task report and you’re like, I want to pull in the project owner name, because those are all fields within the database, within the API Explorer, and you’re not using any sort of mathematical expression, you can keep the value field. So that’s just simply referencing only fields, native or custom, in the API Explorer or in the backend. Your value expressions, value expressions are when you start using things like the concat, here’s all of the different expressions you can use. So for example, add days, add years, date diff, max, min, second, so once you start saying like, oh, I actually want to do a date diff calculation, or I want to get an average, or I want to concatenate two fields and add the word hours next to them, that’s when you use value expression. So your value field, only fields, native or custom, your value expression is when you start using, like I said, these mathematical expressions, text calculated custom fields, that’s the difference between using one or the other in your view.
Okay.
This is another one of these examples that kind of, the experience has slightly changed, although it still does work, it just maybe requires a little bit more effort. And so if you want to be able to compare two fields in a filter, you can absolutely do it through text mode. You used to be able to sort of add a placeholder field picker and then go back, and then you would see the dropdown list. So this is not available right now, but you can still do it in text mode. You just kind of have to know which fields you want to pull into your comparison. And so, for example, if we want to say, show me projects where the actual completion date is say greater than the plan completion date, what you do is you ask a placeholder date value. So you would just still use that same expression, actual completion date, greater than insert a date. And then when you go into text mode, you’re going to see this date value following an equal sign. You’re just going to go ahead and delete that. And then you’re going to replace it with the word field in all capital letters, and then a colon, and then the actual name of the field. And that’s where the API Explorer will come in handy to understand, okay, what does this field, what does the camel case look like? Or sometimes the words are not the exact name as the field name. For example, like actual hours is like actual work required in the API Explorer.
And so my only recommendation is if you are using a comparison in your text mode filter, do this very last. Because then if you are like, oh, I actually need to add three more and statements into my filter, you’re going to have to write it all through text mode. So build everything out first. And then when you’re like, okay, now I’m finally ready to add my comparison, then go into text mode and swap it out. And so, like I said, I’m going to run through these quick, and then I will do my best to answer every question around that has been posted in the chat here. And so I am on a, let’s see here, I’m just going to delete this so that you guys, we can walk through this together.
Okay, so I am on a project report here, and you can tell because this is the very first object in my field list. And so if we want to look at projects where the actual completion date was greater than the plan completion date, we’re going to add project actual completion date greater than, and then we’re just going to add, like I said, that placeholder value.
Switch to text mode.
And then this is that placeholder value that we just inserted. So we’re going to add the word field colon, just that the system knows we’re comparing it to another field in Workfront. And this is where we would add our second value. And if you ever get stuck, you can always go back to the API Explorer and say, okay, what are all of the fields that I could potentially pull from? This is where you would go. You would choose the object of the report that you’re running, and then when you go into your fields, this is where you would scroll down. You would say, okay, what does project plan completion date look like? I’m not sure how to write that. You would just kind of find it here and then scroll all the way to the right. And that’s how you can actually pull it in. You would just rewrite that into your text mode expression.
So I’m going to hit save and close.
And now you can see here, okay, so this start on, okay, actual completion date and then due on, which is actually our plan completion date. So you can see, okay, this one happened after the fact, everything here happened after the fact.
And that’s just one way, rather than using, some people use conditional formatting. If you want to highlight things, if you actually want to just filter a report specifically for this type of information, you can absolutely do that. And so any questions over the first three, because it’s already been 25 minutes and I still have seven more to go.
All right.
Apologies for jumping back and forth here. Okay, so removing hyperlink, is the comparison date filter down to the minute? And I believe the answer is yes on that. You can, if you are running into issues where you are seeing dates that look identical, you can change your value format to like a long at date so that you can understand, okay, this one was scheduled to complete at 9 a.m., but it actually completed at 12 p.m. That way you can actually get that visual in your report.
But yes, okay, you can also do different calculations to say, okay, just remove and only look at the date versus the time. So removing hyperlink in a view. And I think this one is probably very specific to this example here, because I feel like this is one of those that a lot of people run into where you have issues, people are submitting issues or requests through request queue. Those are then getting converted into a project. And what’s happening sometimes is that users are going back to the issue that they submitted and posting comments, making changes, whatever that might be. What you can do is you can just create a report that removes the link to the original issue and only has a link to the converted project. And then you can use that, say, as like added to a dashboard and have it just set up as like a my request dashboard so that you don’t have to worry about people going back to issues or removing any sort of permissions so that people cannot make changes after the fact. And so for this one, what you do is if you run a report and you add the column that you want to remove the hyperlink from, what you would do is you would switch it from a value field to a value expression. And so value expressions are always going to have those curly braces around the field. And because we’re sort of looking at it as a calculation, it’s going to just remove the hyperlink rather than saying reference this specific field. Now it’s saying like, okay, take into consideration and even though we’re not calculating anything, it’s still going to assume that there’s something in there. And so it’ll just remove the hyperlink. And so I will walk through this example here.
So I am on an issue report. I just created a really generic issue report. And what I did is I just chose the issue filter for a resolve project ID is not blank so that I’m specifically filtering for issues that have been converted.
And so for this one, like I said, if you want to remove the hyperlink associated with the issue name so that people are sort of forced to go to the converted project, I will just add the column for name.
You can see here, I have both of these. So I have name and then name no link. So I’ll just delete these so that we can walk through them together.
So here is the name field. And then we’re going to add that same field, but then we’re going to just remove the hyperlink. So I’m just going to show you guys how to do that. So like I said, switch to your text mode. And like I said, this is your value field. So this is again, where we’re pulling in the field value. If you were to change that to a value expression and then put in Curly Brace’s name, which is just basically, we’re just rewriting our value field as a value expression. I’m just going to also add a display name, which is going to, that way I can just rename my column.
Now, when I run this report, you can see here, this was the name column that, you know, it came with the standard builder, and then the name no link is the one that we manipulated through text mode.
All right. Next example here.
Merging data for multiple columns into a view. I think this, when I asked people, when you guys registered, like what’s, you know, a common text mode use case that you’re using, or if you have an example to share, I would say almost everyone shared changing ID to name or merging columns or sharing columns. And so you can do this with 10 columns. You can do this with one or two columns. And so it really just depends on what, if you have, you know, rather than sort of scrolling left, right in your whole report, you’re like, okay, let me consolidate all of these seven columns into a single column to make it just easier to read.
There’s a great way to do that through text mode. And so what you do is if you have, I’m going to use a user report for an example. If you have a user report and you’re like, okay, I want to pull the user’s name and say job role, okay, for this one email into a single column, what you do is you add, you put those two columns in your view, and then you add a third column, right? And you kind of drag it and put it right in the middle of those two. And then you’re going to copy and paste this text mode, which is value equals br, which is a line break. And then your value format equals HTML width equals one and chair call equals true. So you take that and you paste that into sort of that middle blank column.
And then what it’s going to do, it’s going to merge the middle column with the right-hand column. And that’s going to say, okay, now we just put a line break and merge these two. Now we need to actually share the very first column with that sort of secondary column. And that’s where you’re going to go ahead into your first column and add chair call equals true. And so I tried to put, like I said, instructions here, but I will just show you how to do this so that you have a video example. And I know Cynthia also has a really great video that she did out on the community forum.
That is a great refresher as well. And so, like I said, for this one, we did name and email. So I’m on a user report and I will just redo this so that you guys can see how it’s done. So we’re going to add the user’s name and I’ll put that over here. And then I think we, oops.
And then I want to say I did email address and we’re going to merge these together. So we’re going to put them side by side and then you add a third blank column right in the middle.
And this is where you guys can just copy paste right from the deck. So switch to text mode.
You can just delete what’s there and then hit done. Oh, let me just delete that.
And you can see now that we went from name, blank column, email address to name, blank column. And what it did was it just merged those two columns together using a line break. Then what you do is you go to the very first column that you want to merge it with and hit switch to text mode.
And this is where you add share call equals true. Like I said, I’m a break proponent of always using display name to name my columns and what I want them to be. So I would recommend also, and I can maybe edit the deck too. And I’m going to say name and email just so that I have the exact idea of what I want. And then when I hit done, now you can see we merged that sort of left-hand column with our blank secondary column. And now when I save and close my report, oh goodness.
Maybe I’ll redo this. This is what happens when you live demo text mode.
Let’s try this again. But it should look like a name and an email address on two different lines because we’re adding a line break.
And if this doesn’t work, then I will go back to the drawing board and make sure that I update our deck with exactly what we need here. All right, let’s try this again.
Go to the text mode.
I’m going to choose share call equals true.
Typically what you see in your view is what you should see in your report. Like I said, okay, amazing.
Now we’re on two different lines. So I don’t know what I did the first time, but that’s how you can do it. And if you wanted to combine say all five of these into a single column, you can absolutely do that. You’re just going to follow that same process. So add a blank between the two, merge sort of the blank one and the right one, and then merge the left one with your now shared column. And so it does take a little bit of time, but in the long run, if you have reports that are kind of you’re scrolling left to right, because you have a lot of information, this is a great way to sort of consolidate to get everything in on a single screen. So let me go back here.
Okay, this is how to reference project information in the proof report, approval report. And the reason I include this is it kind of just walks you through how to get from one example in the API or one field or table to another. And I think this is just one of those examples that if you are using the proof functionality, there isn’t a way natively to pull in project information to your view. And so I think this is just, even though it’s not necessarily, I mean, I guess it technically is text mode, but it really just walks you through, like I said, a live example of how to navigate the API Explorer. And so let me go to my example here.
Okay, so this right-hand column is the project name. And so if you were to go to report actions, edit, and add a column and type in project, nothing even comes up. So this is why I kind of include this in the text mode deck. And the reason I do it is to kind of also walk you through, like I said, an example in the API Explorer. So for example, I will just show you guys how you can use the API Explorer to kind of go from one table to another. So like I said, start off with the report that you are currently on or you have currently built. And so for example, I built a proof approval report. So you would start there. And now this is where your references kind of comes into play. If you’re like, okay, how do I get to pull in project information? Like I said, this fields is going to be what’s natively available in your standard builder. If you want to sort of try and figure out how to jump tables or jump objects, this is where you do so. So when you choose references, this is what says, okay, how do I get now from approve approval to a different object? And so in my mind, again, it’s a little bit of trial and error. And like I said, this all comes with a learning curve. But if you were to say, okay, I need to get to a project from approve approval report, which of these fields would help me get there maybe one step closer? Most likely a document version because documents are also on a project, whereas approver kind of leans me in the direction of users. And so this is where you would choose document version. And then this, if you click on this URL, this now takes you to the document table. If we look in here, I don’t see anything for project.
So what you have to do is go back to your references and say, okay, now which of these tables would get me closest to a project? In the odds of customer or entered by, again, those are probably linking me back to a user table where a document would take me most likely closest to a project. And so now when we get to the document table, if we kind of scroll down, we see project ID. Great, that’s exactly what we want in our report. And so now this is where you sort of can learn how to jump tables. And so if I were to look at this text mode here, we started off, so our value field, like I said, value field is just referencing fields, jumping from table to table without using any sort of calculated expressions. So when we, because we’re on approve approval report, the very first table that we jumped to via our references was the document version.
And because we still needed to get to project from there, then we jumped to the document table. And everything’s going to be separated here by this semicolon because we’re jumping from one table to another table to another table. And then because the only thing that we talked about in changing ID to name is that you add colon name. And what that refers to is that you’re just moving from one table to another. And so you can jump as many levels as you would like using text mode. Sometimes you might have to use an exist statement, which is a little bit beyond my pay grade that usually comes with professional services because they can pull information that I’m not just an expert in. But you can see here, we kind of jumped four tables.
So that’s how, even though, like I said, this is sort of a text mode workshop, this one kind of just walks you through how to take advantage of the API to actually get from one object to another using the references table. So I’m just going to hit done. And then your groupings, I put an example in here is that if you actually want to organize the results in your proof approval report by the name of the project, you’re going to simply, oh, let me edit this because that’s what it needs to look like. So you can see here, we sort of translated our value field into a value expression in the grouping and in doing so, we put the fields in curly braces. And then instead of separating the fields by colons, we separated them by periods. So that was kind of a long example, but a good one. And I have 20 minutes to walk through four more examples. So I’m going to go quick here.
All right. This is another one of those quick wins in that you can actually rename your report groupings. And so for example, if you want to, let’s see, rename report groupings. So example, you want to rename plan completion date to due date. Maybe that’s what you guys call certain fields in your instance. And so what you can do is actually just rename what it looks like, or you can actually just remove the field altogether and actually just say, okay, show me the actual date. So there’s sort of two options here. One, like I said, remove or rename the field. Option two is sort of remove the field altogether. And so for this one, I am just going to share with you guys what I did here.
Oops.
So you can see here that I grouped, I think this is a task report, I’ll just double check, but we just changed the grouping here. So if I go to the groupings tab, you can see again, if we follow option one, where we want to change it to change it from plan completion date to due date, what you do is you remove all of the lines that have the word name in them. And then you’re going to add one that says group.zero.name. And then that’s where you actually change your, of your field. So I’m just going to walk through that example, and we’ll just go to the groupings tab. So if I have add grouping and we want to say group by plan completion date, but actually want this to say, due date instead of plan completion date, again, switch to text mode. Everywhere it says name, which is this name key and link name. Those are our two lines that have name in them. And then we’re going to add group.zero.name. This is where you can rename your, your grouping to a different, you know, field label. If you want to remove the word due date altogether, and you simply just want to show the value, you go into edit text mode, and I will just see here, you’re going to say remove all the lines that have the word name in them. And we’re going to just do group.zero.name equals, which technically we can just delete this.
And then if I hit done, now you can actually just see the value associated with the grouping and you don’t actually have to see the value or the field name.
All right.
Three more. Limit character count. This one is one that came from the customer comms cookbook, or actually, no, it was a reporting cookbook. And I think it’s just helpful for everyone to be aware that this is possible. And so for this one, there is a little bit more extensive text mode in the cookbook that kind of brings in the person’s name, the day they entered it. This one, for example, I just have it pretty straightforward just so that you guys can get a sense of what you can do with text mode and different expressions. And that, for example, if you have people who are posting updates on objects and they’re very, very long and you’re pulling those updates into a report, oftentimes those columns either are going to get super stretched or they’re going to take up most of your page. And so what you can say is limit the number of characters in this column to say, for this example, we did 140. And if it’s more than that, just add the words open for more so that people know, okay, there’s more to this, but I’m only showing the very beginning of this update in my report. And so I’m going to just walk you through and I’ll share with you guys a little bit about this expression here on how I built it.
Here we go. I was just saying, hopefully I have an example. So you can see here, this note is fairly lengthy, not super long, but we consolidated it to say, okay, only show me the first 140 characters. And so if I’m on a, let’s see here, I want a task report.
So if I were to go to this last note, sure. And this is the one that I’d simply just copy and paste it right from here. What this is saying, and I’ll just blow this up so that you guys can see it.
This display name, like I said, is always going to be the name of your column. So you can pick and choose if you want this to say something different, you can edit this text. Your value format, I typically always keep mine in HTML. There are different value formats, but if you’re very beginning and new to text mode, absolutely use HTML. This value expression is the one that I want to talk you guys through. And like I said, for the person who asked around the difference between value field and value expression, because now we’re starting to say, if something is true, add a true statement, if false, this is where your value expression comes into play, because now we’re looking at mathematical text expressions. And so for this one, what we’re saying is in this very first part right here, if the length of our last note, note text, so last note, note text pulls in the most recent update on the object. So if you’re not familiar with that, if you ever run like a task report, an issue report, a project report, that’s how you can absolutely do it. So we’re saying if the length of the last note is greater than 140 characters, this is our if statement. Anything following the comma is our true statement.
And then you have the option to add a false statement. So we’re saying if this is true, concat means kind of concatenate words together or fields together. So we’re saying concatenate the last note, note text. So concatenate the first zero to 139 characters with this text here, open for more. That’s what our concat statement is doing. And we did not put a false expression in here because it’s not needed. We can, we just simply want it to show blank. But this is how you can use text mode to sort of customize what you want specifically in your view, in your report. And so, like I said, this is a pretty basic example. If you would like a more extensive example that came from the reporting cookbook, I’m pretty sure the person who wrote that had it concatenate like the name of the person who posted the update, the date in which the update was posted and the actual update itself. And so you can concatenate combined multiple fields in your view using that concat expression. And so I linked the customer reporting cookbook here so that you guys have access to that. And then this is another one that I think is something really popular if you guys are using predecessors in your project timelines. Oftentimes people are like, I want to run a project report, but I want to see task information because I want it to be a little bit more simplified and streamlined. So for this one, like I said, if you are using predecessors, you can say, okay, in a project report, actually I want to see the next task in line, which is which task is ready to be worked on.
Or, I’m trying to think of what we have the word here. Can start, that’s what it is. Can start is your predecessor relationship. So for this example, I’m going to say on a project report, show me which tasks are basically next in line, ready to be worked on based on that predecessor relationship. And I just want to call out, there’s can start and there’s ready. And I think that oftentimes these get confused. Can start refers to your predecessor relationship, ready refers to agile functionality. And so just be mindful if you’re like, oh, I put task is ready and it’s not filtering or pulling in exactly what I’m looking for. That’s again, agile functionality. So if you’re not using that, use can start equals true. And oftentimes you probably only want to see child tasks, not necessarily parent tasks.
So we can absolutely filter those out here using a value expression.
So let me walk through this.
So like I said, project report.
And we want to say, okay, what are the tasks that basically are ready? Again, you can concatenate this with like who the task is assigned to, what the task plan start date is. I’m keeping it pretty simple here, but what we’re saying is, okay, here’s the project, here is the owner, here’s some status information, here’s the next task that we’re basically waiting to be worked on. And so when I go into report actions and edit, this right here is a text mode collection. And if I were to go back all the way to our collection column here, where did I put this? This is your framework for writing collections. This is the example that I shared. So this is the, if you’re like, okay, I don’t even know how to start off writing collections. Basically you can just copy and paste this into your report and then manipulate it based on the values that you need. So you’re always going to change your display name to be the name of your column because we’re on a project report and we want to pull in a collection of tasks. This is where we’re going to pull that in. And again, going back to our API Explorer, if, whoa, if we start off with a project, this is where you can actually, when you choose collections, you’re one to many tasks, a project has many tasks. You would scroll down and say, okay, tasks, okay, this is the value, this is the field that I would then put into my text mode collection column. And then you have the option of choosing a value field or a value expression. For this one, I chose a value expression because I’m saying if the number of children is zero, so I want to see only child tasks, the status is not equal to complete. And you can see here by putting an exclamation point before an equal sign, that means not equal to. This is your status key, which is found in your setup area. So you can change that. And we want to say, and can start equals true. If this is our big ol’ if statement, if all of these things are true, then show me the task name. And then if it’s a false, just leave it blank. I don’t need to see anything in that column. And so that’s how you can write text mode collection columns. And so if I were to say, if I were to open up this report here, you can see here create layout is sort of the next task in line. If I were to scroll down here and find it, goodness.
I bet this one has an approval process on it, which is why it’s showing as 100%, but not, see, here we go, complete pending approval. So because it’s not technically in a completed status, that’s why it’s showing up. And so, like I said, this is just the starting point of your collection journey with Workfront, but it’s a really good example, especially if you’re using predecessors. The last thing I have for you guys is text mode calculations.
And these are just really common basic examples that you can use from a mathematical expression or an Excel formula expression is, okay, what are some calculations that you might need to understand how things are progressing in your Workfront instance? And so I have four different calculations that I’m going to show you in the next few reports. The very first one is plan versus actual cost. And so if you have costs associated with your instance, you can add a column to your report to say, okay, did this go over budget or under budget? And by how much? It’s going to give you that numerical value. And you can see here that value format is a currency string currency rounded. I chose that so that it shows up as a dollar amount versus if I just chose HTML, it’s just going to show up as standard numbers.
Plan versus actual hours. Like I said, if you’re using planned and active, if people are logging time, you can say, okay, well, let’s look at the difference in hours. Did you do this require more or less time? And by how much? And so I have an example here of, okay, here’s your project report, for example, apologies that these are all negative. I don’t think I had any data that was positive here, but this is where you can see, okay, here is some of the information that I can readily see without having to export and create expressions in Excel.
The other two is around timeliness. So oftentimes if you have maybe requests that are being converted to projects, maybe you want to say, okay, what was the difference between the actual entry date of an object or even the entry date of a project and the actual start date? Like, are we turning these around really quick? And then your turnaround time is, okay, how many days did it take between the actual start date and the actual completion date? I know there’s obviously duration fields and actual duration that you can look at, but if you wanting to pull that in and use it from a reporting standpoint, you can even create calculated custom fields using some of these expressions. And so, like I said, this one shows an example, and I will just show you guys real live what that looks like in your work for an instance, momentarily.
So for example, I created a project report, and you can see here, this plan cost and actual cost, these are going to be your native fields within the library. Your difference in costs are going to be, okay, like I said, this is going to be that value expression of, okay, subtract our plan cost from our actual cost or actual cost from our plan cost and show it as a dollar amount. And so these are just four different, I have the difference in cost, difference in hours, and I have timeliness and turnaround time. So these four examples, like I said, are all in your slide deck. You can absolutely copy and paste these, put them right into your work for an instance, because they are pretty straightforward. So you shouldn’t need to customize them, but that is all I have for you from a tip standpoint. I just have like two quick updates for you, and then I will leave you guys with five minutes to try and answer as many questions as I can. The user group program is back. If you guys are unfamiliar, this is just a peer-led, work front customer-led learning and networking opportunity. So you have the option to join a local chapter. There’s a handful of chapters already live, and I know more are coming. If you’re interested in becoming a user group leader, Julie Wilson recommends she leads the program. And if you fill out that form, she’ll kind of walk you through expectations, level of effort. You don’t need to be an experienced expert admin here. If you’re like, hey, I’m just super interested in getting together local work front admins in my area, she’ll absolutely chat with you more on that.
Second quarter release is happening, April 10th. Cynthia, Leslie, and I are gonna be co-hosting a release webinar with the product team, which will actually also have the roadmap. We’re hoping to get Richard to join us for the roadmap on April 3rd. So just know that that’s coming.
And then last but not least, a handful more events are happening in April, and even one more in March. So if you guys haven’t checked out the events page, everything should be there for you guys to register. And I imagine an announcement center message, if it hasn’t already gone out, will go out today so that you guys have the direct links for everything. So I know that was a whole lot. I’m hopeful, I see a link to a survey in here, and I apologize that there’s a lot to cover, and I probably didn’t get as much time for questions as I would have liked, but I’m happy to stay on as long as you guys need. So please be sure to just share your feedback. It’s anonymous before you go. Otherwise, I am open to take some questions for the next little bit.
Nicole, our community answered so many questions too in the chat. So thank you all. That’s amazing. Thank you all. I know text mode is a hard, it’s a hard conversation, especially, like I could probably do a text mode session every week, and I would still get questions for an hour afterwards. And so I appreciate everyone who took the time to answer your peers’ question in the chat, because that’s, I will do my best to take everything that was unanswered and address that in the follow-up email. But if there’s anything pressing I don’t know if there was any themes that I missed. There is a question around the number of jumps you can make. Yeah.
I want to say it’s, and I feel like I haven’t tested this in a while, and this goes back seven years of me thinking, I want to say it’s three or four.
I’m thinking four because I’ve already gone four tables. When you start getting really, lengthy in the number of tables that you’re jumping, from a filter standpoint, you can only, you can pull in collections, but from a filter standpoint, I want to say it’s two or three. And I will get some confirmation on that. I’ll put that in the follow-up email, but the longer you need to go from jumping tables, that’s when you start getting into your exists. So I would say, if you’re thinking like, oh, I need to jump five, six tables, I don’t believe you can get that far.
I did try to capture everything that wasn’t answered, FYI, everybody. Thank you. I’ll be spending my afternoon answering all of these. Can we do a session on exists statements? I cannot do a session on exists text mode statements. I can absolutely reach out to some folks in the professional services org.
We kind of have this fine line between, because they’re available, what they’re able, like how much time they’re able to take away from their billable hours. But it’s for sure something that I can ask. I know that there’s been some text mode exists statements in the past at summit. And so if I can maybe repurpose some of that, and I know a few folks in our professional services are no longer with us, but I will absolutely ask. It’s worth the conversation.
Is it possible to quickly touch on how to add expressions while doing grouping? So expressions in a grouping is very similar to expressions in a column. And so I will just open up a report.
And just, the difference when you’re adding groupings, text mode groupings, value expressions, or even value fields, is that when you are writing text mode groupings, it always has to start with group.zero, which is your very first grouping. So if you want to add, say, three groupings, you would have sort of three blocks. You would have your, and I’ll just kind of put these in as blank for a second so that you guys understand group.zero.valueformat, group.zero. this would be a display name.
If you wanted to add sort of a secondary grouping, this is where you would choose group.one.value field. So that’s how you would do multiple groupings. If you were to do a value expression in your groupings, you can do it the same way you would write an expression for a column. So you can concatenate the name of your project, say with, I’m gonna say like owner or something, just to, I think that should work.
Okay, that did not work.
I was hoping that would.
But you can use value expressions in your grouping. I’ll have to go up with an example and put it in the followup for that whoever just asked around that. But yes, it is possible.
I would just need to think of a real live example that people would use a value expression for grouping for.
Merging columns can work with custom fields. Absolutely.
All right, I am three minutes over. Oh, I spelled, oh, thank you for saying I spelled concat wrong.
I was like, oh, interesting.
Okay, there you go. Thank you again.
So yes, value expressions in your groupings. It’s been a long hour guys, is possible.
Anything else that did not get addressed, I will do my very best to answer everything in your followup email.
This might take me a little bit longer than expected. So if you see a followup email come in like three or four hours, know that I’ve been actively working on it for as long as I can. So thank you guys so much, especially everyone for helping out managing the chat and answering each other’s questions. I really, really appreciate it. I will try and do some more text mode sessions or pull in some folks that have a little bit more expertise than I have, but otherwise, thank you guys. We’ll be in touch. Hopefully we’ll see you in April and reach out via email, reply to the email if you have any followup questions. So have a great rest of your week guys, and I’ll see you soon.