Expert Insights: SLA Reporting in Workfront with Madalyn Destafney

Welcome to another installment of Expert Insights!  I’m Cynthia Boon, your “On-Demand” Workfront CSM and am excited to share that we have the one and only, Madalyn Destafney, sharing some of her extensive experience to help customers implement and measure Service Level Agreements (SLAs) using Workfront.

Transcript

Well hello everybody! Welcome back to the latest Expert Insights. This time we have Workfront Royalty, Madeline DeStefany. If you have ever been in the community, you have seen Madeline. She was 2023 Community Advisor of the Year. She has shared her knowledge at many events, including the Workfront Skill Exchange. So we were very lucky to have her join the December Workfront Collective. And she shared her tips and her code and her examples of reporting for measuring service level agreements. And the thing is, service level agreements are challenging to implement, but they’re even more challenging to measure. And Madeline absolutely cracks the code on how to use Workfront to track the performance of your service level agreement. So without further ado, let’s just jump right into the session and check out Madeline’s presentation. Madeline is here. I mean, she answers all the questions out on Workfront Community. She’s been at Skill Exchange, 2023 Community Advisor of the Year, so many other things. She’s just ran a marathon this weekend, seriously, like amazing person. But she’s going to talk to us about this cool thing that she totally built and figured out in terms of SLAs. So if you don’t know what an SLA is, it’s a service level agreement. I know a lot of us struggle to actually implement service level agreements because people don’t want to be held to any sort of boundaries or guidelines. But what she’s about to show you, like all of us, is a great way to start, even if you can’t necessarily get by. Madeline, I’m going to stop sharing and I’m going to let you introduce yourself as well. But let me do this real fast. Stop sharing here. Stop sharing here. And there. The floor is yours. Thank you. Thanks for the kind words. And thanks for saying that I ran a marathon this weekend because I I am struggling still. So bear with me, everyone. I’m tired and I’m sorry. OK, it’s fair. But yeah. So like Cynthia said, SLAs, like maybe it’s something that your org doesn’t even have. That’s fine. Maybe this can get some thoughts in motion. But if you do have SLAs, maybe there’s something that they kind of theoretically live somewhere and they’re posted somewhere, but they’re not really. Tied to your work front projects in any way. So. I’m recently with Adobe actually, actually on an internal team contracting, and they did have an ask of how can we how can we really better tie our SLAs just for this specific team with work front. So that got me thinking. And I am going to share what I’ve come up with. And there will be a deck afterwards where I kind of, you know, I copy and paste the calculated field. I’m going to show you. So don’t worry about some calculated fields that you’re about to see. But this is just my idea. So I’m sure you can maybe think of other ideas, too. There’s not going to be just one way to do this. But wanted to share what I’ve done. Because that’s what we do here at the community we share. So let me share my screen. OK, so I’m going to be sharing a few things and they all tie together, right? So can we see these? OK. This is a screenshot from their site, just like an internal site where they did have published SLAs, right? And I would say before you even explore going to have audit those first. So, you know, I’m fairly new to this team. I don’t know the last time they looked at these. And I did also notice that a lot of the ways like some of the ways they were listing some of these request types didn’t really even match what we’re calling our request types in their in their request form. So I would spend some time first to just make sure are these the SLAs we want to move forward with? When was the last time that we even kind of assessed these? Maybe some things have changed. Maybe we don’t even have some of these types anymore or offer these types. Maybe we need to add some types. So I think it’s a good opportunity to take a look at this first. And when we did, we did make some changes and I did change the names to make sure they match the request type names. We want to make it really clear. So after making some tweaks to this. It was, I really tied these to our work front projects. And this is. I’ll let you know that our our request form did have these types. So that’s pretty common, right? If you have a request form, you’re usually categorizing your request somehow. If you don’t have your types listed in a request form, then pretty probably pretty easy to implement. So I was like, OK, we have these types, we have these numbers. So what I first did was I just wanted to publish these somewhere. So I’m in their request custom form in just this admin section. And what you can do, this particular field is used in a couple of other places that I’ll show you. But essentially, I’m just publishing these types. So I’m just saying if certain things happen, there’s that it’s not like I have some some things that they go together equal a certain type. But see these little red numbers everywhere. These are the same numbers in those request types. Right. So, for example, if. Now, let me do something straightforward. If. If the request type is this. Or even if the request type is this, they have a couple of types that are both two days. Right. So you’re just saying this type equals this many days. I’m not doing anything else with this field, but it just captures what is the type and what is the number. So that’s one piece of this. I’m going to show you a few pieces, like I said. You can do things now with that field, so we’ll get back to that. But I just want to tell you, like, where where this is formulating.

Your first thought could be. Well, Madeline, this could be easy. Why don’t you just take the project durations of your projects and, you know, have your different types? You have your projects grouped by type. You can see the duration, see if they’re better meeting the SLA or not. You could do that. And I had thought about it that I thought about that at first, but I don’t really like that. And I’ll tell you why. If you take the whole project, maybe there are some tasks in your projects that don’t really belong under the SLA time frame. So just for example, this is one of their templates and they don’t really count pre tasks up here or this optimization afterwards. Like. I’m sure you guys have similar things. You may have some pre and post executional tasks in your projects that you don’t really want to count towards the SLA time frame. So you don’t want to do the entire project duration. So then what I thought is, all right, let’s add a parent task. To just the tasks that you do want to count. And this is something easy because it’s applicable to all of your templates. Right. So I added this SLA starts kind of grandparent task, if you will. I say, do not delete this, because if I went to go use this template and I didn’t know better, I’d probably delete this because I’m like, I don’t need this parent and then this other parent. So it’s here for a reason. Don’t delete it. So this allows you in any template to say, OK, this chunk of tasks, this is what I want to count towards my SLA. And in that, I have a task custom form that is kind of similar to what I just showed you about just the general like published SLA is. And I’m going to go into this task custom form right now. But I have a few things on this task custom from I have the days from start to complete. Just easy for me. When did this whole section start? So there are a couple of things that trigger trigger an actual start from its first child task to when did it complete? When did this whole section of tasks complete? I’m using this somewhere else. I’ll show you. But I have the SLA here. This is a separate type of SLA long story. So in your task custom form. This is that task custom form right here. So this is a similar functionality where I’m having all of those same this type is this this type is this. But what you could do is add a bit in front and a bit in the back. Right. So I want to say if the difference between when this whole section of tasks started and when it was complete, if that if the if those that number of days is greater than all of these like types and days, then it did not meet the SLA. Otherwise it met. Right. So it’s like it looks scary, but it’s not. It’s just we have a lot of request types. You’re just simply subtracting base or you’re saying, did this this number of days exceed these number of SLA days? And if it if it did exceed that, then obviously we did not meet the SLA. Right. But then you add your false statement at the end, which is means we did mean it. Right. So this allows you to really having this on your templates allows you to really isolate. I just want to count this set of tasks. And because it’s built at the parent or at the template level to you, don’t have to remember to add it every project, every project that you use. Obviously, it’s going to it’s going to start. This did take some. Reminding to people of the people that is using this, that this is using actual start. Right. So in a in a project, that means that this first trial task, I’m just in one template, but they have many templates. But it means this first trial task, they’re either going to have to change the status or change the percent complete to actually trigger like an actual start. Some people get some people don’t remember what actually triggers the actual start. So like hitting work on it, for example, it doesn’t actually trigger actual start unless your start unless you change the work on it, but to start, which is a different setting. But anyway, this team that is used to doing that. So I just want to call that out. If you maybe have a team that is not used to changing that first task in progress or like signifying actual start, you could use planned start. If you think, OK, they are they’re setting their dates, at least go by a planned start date. You could do that, too, instead of actual start. So if I’m going am I going too fast? OK, so we have we we went through a process of just simply adding this task on all of our various templates. So it’s very flexible. You can put whatever tasks you want under here. Right. And every every one of these tasks has this task custom form on it. So this lets me.

Instead of wading through project reports of like how many days did it take from actual start to end, and you can you can cross cross reference it with your your project types or your request types, like nobody has time for that. I wanted something that was just going to be able to say, did it me? Did it not me? So with these fields, you could do like. And this is new, like I said, we don’t have like a ton of data, but. I want to know by region. Did we meet it by region? Did we meet or not meet or by quarter? Did we meet or not meet right? Even by request type, did we meet or not meet? So we only have one not meet or did not meet so far. But I can like click into this and. This was also in that task custom form. I just want it to tell me off the bat how many days did it take from start to complete? That was four days. But I know that. I don’t know why this isn’t populating, but I know this certain request type is it shouldn’t take four days. That’s why it says it did not meet. Just to add a little data. This is like kind of long story. I was trying to make some somewhat it’s not fake data, but it’s not the truth, the true field. But I was just trying to show when this grows and grows, you can really quickly see where are we having problems? Maybe is there a certain request type that we’re just like really not doing well and maybe. That that would prompt some discussion. Maybe our SLA like isn’t long enough. Maybe it’s not that we’re not hitting the mark. Maybe we need to reassess and add a couple of days. Or is it a team, a certain team that is specifically always I don’t know, causing a bottleneck. But there’s a lot of things that you can do from this, even from here. I have things by team type and team so we can see, OK, the events team.

These are the different kinds of requests that came from the events team. But down here, how many of those requests were not did not meet SLA? So you can see, you know, or like this team, they had a lot of different types, but 100 percent of the requests didn’t meet in SLA. So there’s another point I wanted to make. Oh, so I I want to have this in the template to. Because and not not have any custom field related to like the template itself. I kept wanting to tie it to the request type because some people may use a template for another project type that maybe it’s not intended for. I mean, we all we’ve seen that too, like, oh, well, OK, this is the this is the project template for a certain type. But I like to use this template instead. And this this accounts for that. It doesn’t matter because you’re just using the same custom form field that’s tied to your request form fields. It’s not tied to the template in any way, which I which I want and I like. OK, I also want to show for anybody, maybe not, you know. Let’s go back here. If you’re like, well, how are you taking these fields in the into the report? Exactly. I know we have a lot of levels of work front experience on the line. So I just want to show you what how you can bring these fields into the report. And our instance is slow, so forgive. It’s not awake. This is the only time I’ll have to go into a report that I think so. Let’s hold on. We have do we have like hot questions right now? Oh, wait here. Let me do this first. Then we’ll go to questions. But I’m really in these reports just searching for the purpose and the presence of that task custom form calculation and in my certain types, because you may have a lot of request types and not all of them necessarily are tied to an SLA. Right. We same here. We have some request types that have nothing to do with an SLA and they never will. So you want to keep that in mind. So I’m basically saying I’m going to task I’m in a task report right now. I want to find any custom form. Of this, I’m looking for any task that has this custom form on it, categories as custom form, obviously not so obvious, but I don’t want to count any of these types. So these are our request types that they really shouldn’t be tied to an SLA. So I don’t want to count them. And then, you know, so and then I only want to pull completed projects as well. So I don’t I’m not looking at anything in motion, just kind of in progress or anything that’s that’s done. I have a couple other filters that are appropriate for this, but that’s how you can bring that into here. Let me pause real quick and make sure if I’m making sense or not to people. Yeah, you’re making sense to me. I feel like I’m not. Yeah, no, you are. You’re making sense. And so, I mean, there’s just like more questions about in terms of like, like, you know, Denise just asked one about, you know, are you accounting for any approval loop? And then Doug was asking basically, like, are you are you comparing against baselines or baselines come into this at all? Or is it just a separate situation? I would say if you if I mean, if you haven’t had any kind of SLA framework at all, whether it’s in workfront or not, maybe have have your first go round as an opportunity to build your baselines. Like if you don’t have anything, you don’t have any benchmarks. Right. So you’re taking educated guesses. So I know a couple of types. There are a couple of request types that were introduced very recently for this team. So it was getting some educated guesses from people who actually work and execute this type. So, you know, you guys, you shouldn’t be doing this in a vacuum. Assess with the people who actually are in there executing. And how many days would you say and have that as a starting point? And then, you know, these are these are modifiable. So if you change if you want to down the road, if you’re like never hitting an SLA, like I said earlier, if there’s a certain type you’re just never getting, maybe either there’s a problem in the process that should be made more efficient, or maybe that’s just not a realistic SLA that you’ve given it. Maybe you need to increase.

But if you. You know, right now, so our new types, like they will become a baseline because we don’t have one. And then we can modify as we go. And the nice thing, too, is that because it’s just one field, this is another reason why I didn’t want to do it like per template in any way. It’s just that one field. So if we if we decide to increase. One type a day, then you just go into that field and you’re changing that calculated formula to add that. Yeah. It’s always going to be updated everywhere. So I wanted one one sort of one source of truth. Obviously, you’d have to update anywhere else. The SLAs are published maybe outside of work. Right. I do. I do love that. That was one of the questions, too, in terms of having different templates. Lisa was asking if you could repeat like you said something about people using different templates. And I think what you were trying to say is like. We set up project templates and we want people to use them and they go, but I don’t like that one. I have this other one that I really like and I’m not going to use the official request type template. You don’t have to worry about that because you’ve added it as the field. Yeah. Or even not even if they’re not doing it knowingly, you know, maybe it’s like, oh, by mistake, I used the. I used the email template instead of the some it may not even be intentional, but you want to account for human error or we have you may be an org where you have one template that works for multiple request types. Well, how are you going to handle that same thing? You have that task custom form that accounts for all of your types. So it really doesn’t it shouldn’t matter what template you’re putting it on, as long as you are mindful of what tasks you’re counting toward it. So they have a pretty consistent regardless of the request type, like they have a pretty consistent idea of what tasks should be part of it. So somebody asked, you said about approval, right? You do stakeholder approval towards that. And that’s something that’s also why I like to have a report even by meeting or not meeting the SLA by by requesting team. We have requesting team as another field, because then you could even see, OK, well, like 90 percent of our did not meet comes from this specific team. Maybe we need to work better with that team. Like what’s the bottleneck here? So and actually this speaks to something that I forgot to point out. Maybe they’re not entering the requests in time. So I have this other field, right? Well, I have these three at the bottom. This one I already told you. This is just literally listing our SLAs and the types equal this many days. I also have this more simple one. It’s just looking at. When was the what is the difference between when we received the request? To we have a couple of date driven fields, like when is the launch date? Right. So between those, you can do something like this that says, well, if the time between when we got the request to their desired launch date. If that’s less than the SLAs field where I’m just listing out all of our SLAs, well, we didn’t then then we didn’t even get this request in time for us to achieve the SLA. Right. So you can do a report like this. Sorry. Because that’s good to know. I mean, that’s kind of ammo for your own team of, you know, hey, we’re not getting these even in time to like it’s not even setting us up in time for our own SLAs. Hold on. I lost my spot. Hmm. So I have this report down here. Of yeah, the request entry versus the desired launch date. Did we get this in time? These are these are enough. And again, this is pretty new, so I don’t have a ton of data to show, but these were not even these were not in time to achieve the SLA in these work. And of course, some some of these it’s not it’s not that they are. I’m not having flexibility to maybe change the date. You know, I know there is conversation once the request comes in. There there’s usually some conversation on, you know, how can we achieve this and maybe we need to rearrange this date a little bit, but it’s good to know, like what team what teams are they coming from that it’s not even time for the SLA. So it’s like this concept of these SLA related form fields. You can do many different variations of these and reports. What else do we have in the chat? And before I want to kind of piggyback on what you just said in terms of like, like kind of identifying, you know, the I mean, you had to say it like the usual suspects of like people that enter things incorrectly or whatever, like the reason that Madeline and I were talking about like doing this and she literally just like hit me up last week. I’m like, well, this seems like perfect timing, not after you ran a marathon, but like to have this conversation because it is December and I know Lindsay you’re noodling on like you’re just like, hey, this is this might be a good one for you. Like we’re as you’re coming into that first part of the year, this is either a really great conversation to have of okay, like do we at least want to track how long it’s taking us to do it? And even I think Denise had asked a question about approvals. That was always, it wasn’t the actual work that tripped us up. It was the approvals either getting stuck and so having this reporting even just one of them to say, did we even get this in time to do the work? Like we did the work. This doesn’t stop the teams from accepting the work, doing the work, whatever, but what it can do is give you like the data to have the conversation. And so it just felt like a good time to have this.

Wow, Madeline, thank you for always continuing to inspire us. For those of you that are worried that she did not share the details of her calculated expressions, guess what? We have a document on this post. She shared her steps to implement, the calculated expressions, her report examples, and all of the good stuff so that you can get inspired to start implementing and hopefully measuring SLAs in your organization. Now I wrote down this quote because we should all be like Madeline. She said, I wanted to share because that’s what we do here in the community. We share. And if anything, some of the Madeline up, it’s that quote. And we’re just so grateful that you are willing to share with us in the community. So thank you again. And thank everyone that watched this video. Thank you for your time today on Expert Insights and we’ll see you next time. Bye everybody.

As promised in the video, we have Madalyn’s presentation linked with her steps, calculated expressions, and report examples.

Resources

During the presentation, Madalyn shared her custom forms and calculated fields, so if you’re just getting started with those features, here are some links to point you in the right direction.

Interested in more tips from Madalyn? Check out her series of tips and tricks in the Workfront Community!

About the speaker

Madalyn has been an avid Workfront user for over a decade and holds multiple certifications. She has helped publicly-traded and Fortune 500 companies realize the full potential of Workfront and evangelizes Workfront anywhere she can. But life’s not all about work—Madalyn is a lifelong runner who loves to travel, eat great food, and enjoy the beach almost year-round in sunny FL.

Have something to share?

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.

recommendation-more-help
6edade56-d2ab-4a9c-aa51-c4621d6137a0