{"id":15648,"date":"2022-03-15T12:30:00","date_gmt":"2022-03-15T19:30:00","guid":{"rendered":"https:\/\/devwww.3cloudsolutions.com\/post\/call-center-solutions-agent-status-timelines-3\/"},"modified":"2024-01-15T14:56:08","modified_gmt":"2024-01-15T22:56:08","slug":"call-center-solutions-agent-status-timelines","status":"publish","type":"post","link":"https:\/\/3cloudsolutions.com\/resources\/call-center-solutions-agent-status-timelines\/","title":{"rendered":"Call Center Solutions: Agent Status Timelines"},"content":{"rendered":"<p><span data-contrast=\"auto\"><a href=\"https:\/\/3cloudsolutions.com\/resources\/the-power-of-call-center-modernization\/\">Call Center data<\/a> is some of the most interesting, exciting, and difficult to visualize. We recently wanted to visualize call center agents\u2019 statuses on a <a href=\"https:\/\/powerbi.microsoft.com\/en-us\/blog\/visual-awesomeness-unlocked-gantt-chart\/\" target=\"_blank\" rel=\"noopener\">Gantt chart in Power BI<\/a> so their managers could see the days and statuses side-by-side, rather than date-sequentially. This turned out to be stickier than anticipated! When internet searches failed us, my colleague came up with the perfect solution, and we wanted to share this for the next person in our shoes. All it takes is two lines of M code in Power Query!<\/span><span data-ccp-props=\"{\">\u00a0<\/span><\/p>\n<p><span data-ccp-props=\"{\"><!--more--><\/span><span data-contrast=\"auto\"><img decoding=\"async\" style=\"width: 1000px;\" src=\"https:\/\/3cloudsolutions.com\/wp-content\/uploads\/2022\/10\/iStock-1346929932.jpg\" alt=\"iStock-1346929932\" width=\"1000\" \/><br \/>\n<\/span><\/p>\n<h2><span style=\"color: #007cba;\">About Gantt Charts<br \/>\n<\/span><\/h2>\n<p><span data-contrast=\"auto\">Gantt charts in Power BI are designed to show events over time, with both date and time on the x-axis and tasks or categories on the y-axis. Our challenge? We needed an x-axis based on time, with date as just another category on the y-axis. <\/span><span data-ccp-props=\"{\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">But after trying every (Microsoft Certified) Gantt visual and timeline visual available in AppSource, we learned all options required datetime and either would not accept or visualize a time only x-axis. Unfortunately, using the actual datetime only visualized the statuses sequentially, which complicated the comparison of values between days.\u00a0<\/span><span data-ccp-props=\"{\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">After a subsequent, fruitless search for alternative solutions in forums and blog posts across the web, we asked our colleagues for help. The proposed solution was both simple and obvious in retrospect; ensure the date is always the same, and do not display it.<\/span><span data-ccp-props=\"{\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">What does this look like when it\u2019s working? We used <span lang=\"EN-US\" data-contrast=\"auto\">Craydec Timelines<\/span> from AppSource for our visual.<\/span><span data-ccp-props=\"{\"><br \/>\n<\/span><\/p>\n<h2><img decoding=\"async\" style=\"width: 1000px;\" src=\"https:\/\/3cloudsolutions.com\/wp-content\/uploads\/2022\/12\/Status-Blog-Image-1-1.png\" alt=\"Status Blog Image 1\" width=\"1000\" \/><\/h2>\n<p><span data-contrast=\"auto\">In this view, we can compare the agents side by side for the same day. We can also compare their statuses in each queue in which they can participate, chat or phones, to see if the statuses align or if someone forgot to change a status.<\/span><\/p>\n<p><img decoding=\"async\" style=\"width: 1000px;\" src=\"https:\/\/3cloudsolutions.com\/wp-content\/uploads\/2022\/12\/Status-Blog-Image-8-1.png\" alt=\"Status Blog Image 8\" width=\"1000\" \/><span data-contrast=\"auto\">In this view, we are looking at a single agent for the week (or month, or longer) to see trends. While the color legend isn\u2019t the most helpful due to the many status options available, <a href=\"https:\/\/docs.microsoft.com\/en-us\/power-bi\/create-reports\/desktop-custom-tooltips\" target=\"_blank\" rel=\"noopener\">tooltips<\/a> can help us quickly identify what we are looking at.<\/span><span data-ccp-props=\"{\">\u00a0<\/span><\/p>\n<p><img decoding=\"async\" style=\"width: 614px;\" src=\"https:\/\/3cloudsolutions.com\/wp-content\/uploads\/2022\/12\/Status-Blog-Image-9-1.png\" alt=\"Status Blog Image 9\" width=\"614\" \/><\/p>\n<h2><span style=\"color: #007cba;\">So, how did we do it?\u00a0<\/span><\/h2>\n<p><span data-contrast=\"auto\">Our data has a status, start date and time, end date and time, and a duration in minutes. Per data modeling best practice, we had already <a href=\"\/blog\/how-to-improve-power-bi-performance-part-three\" rel=\"noopener\">split the date and time into separate columns.<\/a><\/span><span data-contrast=\"auto\"> This is what our data looked like:<\/span><span data-ccp-props=\"{\">\u00a0<\/span><\/p>\n<p><span data-ccp-props=\"{\"><img decoding=\"async\" style=\"width: 1000px;\" src=\"https:\/\/3cloudsolutions.com\/wp-content\/uploads\/2022\/12\/Status-Blog-Image-4-1.png\" alt=\"Status Blog Image 4\" width=\"1000\" \/><\/span><\/p>\n<p><span data-contrast=\"auto\"><br \/>\nThe trick our colleague proposed was to add a start time and end time column with a static date (1\/1\/1900) and dynamic time. This would not introduce the cardinality of a true datetime column to the model, since the date would not change, and it could be used in the Gantt charts or timeline visuals as-is. Here are screenshots of the columns we added, with code to follow.<\/span><span data-ccp-props=\"{\">\u00a0<\/span><\/p>\n<p><img decoding=\"async\" style=\"width: 900px;\" src=\"https:\/\/3cloudsolutions.com\/wp-content\/uploads\/2022\/12\/Status-Blog-Image-5-1.png\" alt=\"Status Blog Image 5\" width=\"900\" \/><\/p>\n<p><img decoding=\"async\" style=\"width: 900px;\" src=\"https:\/\/3cloudsolutions.com\/wp-content\/uploads\/2022\/12\/Status-Blog-Image-6-1.png\" alt=\"Status Blog Image 6\" width=\"900\" \/><\/p>\n<p style=\"font-size: 14px;\"><i><span data-contrast=\"auto\">Tip: We originally just tried DateTime.From, but were getting back 1899 dates which did not display on the visual.<\/span><\/i><\/p>\n<p>&nbsp;<\/p>\n<p><span data-ccp-props=\"{\"><img decoding=\"async\" style=\"width: 1000px;\" src=\"https:\/\/3cloudsolutions.com\/wp-content\/uploads\/2022\/12\/Status-Blog-Image-7-1.png\" alt=\"Status Blog Image 7\" width=\"1000\" \/><\/span><\/p>\n<p><span data-contrast=\"auto\"><br \/>\nEnsure you have Start Time and End Time columns without dates, and Start Date and End Date columns without times. Then you can enter the following M Code in the expression editor bar or Advanced Editor dialog box.<\/span><span data-ccp-props=\"{\">\u00a0<\/span><\/p>\n<p><strong><span data-contrast=\"auto\">Table.AddColumn(#\u201dPrior Step Name\u201d, \u201cStart Time for Gantt\u201d, each Date.AddDays(DateTime.From([Start Time]),2), type datetime)<\/span><\/strong><span data-ccp-props=\"{\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Repeat with the End Time.<\/span><span data-ccp-props=\"{\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">With these two columns, we could display the agent statuses exactly as desired!<\/span><span data-ccp-props=\"{\">\u00a0<\/span><\/p>\n<p><span data-contrast=\"auto\">Here is how we set up the view with Craydec Timelines:<\/span><span data-ccp-props=\"{\">\u00a0<\/span><\/p>\n<p style=\"vertical-align: bottom;\"><span style=\"color: black;\"><img decoding=\"async\" style=\"width: 185px;\" src=\"https:\/\/3cloudsolutions.com\/wp-content\/uploads\/2022\/12\/Status-Blog-Image-2-1.png\" alt=\"Status Blog Image 2\" width=\"185\" \/><\/span><\/p>\n<p><span data-contrast=\"auto\"><br \/>\nThen, we verified we did not add any extra cardinality to the model.<\/span><span data-ccp-props=\"{\">\u00a0<\/span><\/p>\n<p><img decoding=\"async\" style=\"width: 750px;\" src=\"https:\/\/3cloudsolutions.com\/wp-content\/uploads\/2022\/12\/Status-Blog-Image-10-1.png\" alt=\"Status Blog Image 10\" width=\"750\" \/><\/p>\n<p><span data-contrast=\"auto\"><br \/>\nOnce we had everything set up on the visual, we did need one line of DAX to create a sort field concatenation of the date, agent, and queue \u2013 this may not be necessary for your situation or chosen visual, but it was the final piece of our work.<\/span><span data-ccp-props=\"{\">\u00a0<\/span><\/p>\n<p><img decoding=\"async\" style=\"width: 957px;\" src=\"https:\/\/3cloudsolutions.com\/wp-content\/uploads\/2022\/12\/Status-Blog-Image-3-1.png\" alt=\"Status Blog Image 3\" width=\"957\" \/><\/p>\n<p><img decoding=\"async\" style=\"width: 1000px;\" src=\"https:\/\/3cloudsolutions.com\/wp-content\/uploads\/2022\/12\/Status-Blog-Image-11-1.png\" alt=\"Status Blog Image 11\" width=\"1000\" \/><\/p>\n<p><span data-contrast=\"auto\">With that, the call center managers can explore statuses by day or day of the week, by queue, or by agent, to ensure statuses are being logged correctly, or to simply dive deeper into the day-to-day tasks taking up time in the call center. This is part of a much larger solution we delivered for our client to bring insight to call center agent activities and trends.<\/span><\/p>\n<h2><span style=\"color: #007cba;\">Conclusion<\/span><\/h2>\n<p><span data-contrast=\"auto\">Please reach out to us today to find out more about how 3Cloud&#8217;s talented team can help you bring clarity and efficiency to your call center or other business endeavors today!<\/span><span data-ccp-props=\"{\">\u00a0<\/span><\/p>\n<p>Please visit our website to learn more, or <a href=\"\/get-started\/\" target=\"_blank\" rel=\"noopener\">contact us<\/a> directly to see how we can help you explore your about modern data analytics options and accelerate your business value.<\/p>\n<h2><span style=\"color: #007cba;\">About the Authors<\/span><\/h2>\n<p><span data-contrast=\"auto\"><span style=\"font-weight: bold;\"><img decoding=\"async\" style=\"width: 200px; float: left; margin: 36px 20px 20px 0px;\" src=\"https:\/\/3cloudsolutions.com\/wp-content\/uploads\/2022\/10\/SabrinaJordan_circle.png\" alt=\"SabrinaJordan_circle\" width=\"200\" \/>Sabrina Jordan<\/span><br \/>\nSabrina is a Solution Consultant who spent nearly a decade working with data in specialty insurance. She has been designated as an Associate in Insurance Data Analytics through The Institutes Risk &amp; Insurance Knowledge Group. She is passionate about stunning, efficient visualizations and focuses on transforming reporting by delivery of insights that organizations can take action on. She has experience with SQL, SSRS &amp; Report Builder, ETL development, Power BI, and Python. She has a B.A. from Kalamazoo College, focusing on East Asia and International Business and Economics. <a href=\"https:\/\/www.linkedin.com\/in\/sabrinamjordan\/\" target=\"_blank\" rel=\"noopener\">Check her out on LinkedIn<\/a>!<br \/>\n<\/span><\/p>\n<p><span data-contrast=\"auto\"><span style=\"font-weight: bold;\"><img decoding=\"async\" style=\"width: 200px; float: left; margin: 25px 20px 15px 0px;\" src=\"https:\/\/3cloudsolutions.com\/wp-content\/uploads\/2022\/10\/KateBlaylock_circle.png\" alt=\"KateBlaylock_circle\" width=\"200\" \/>Kate Blaylock<\/span><br \/>\nKate is a Senior Consultant. Her experience includes designing, developing, and delivering collaborative end-to-end projects with particular emphasis on optimal data solutions, focused business intelligence deliverables, and interactive data visualizations. Kate specializes in solutions that empower leadership to leverage data as they guide companies, direct divisions, and manage departments. Kate enjoys working with many industries, including construction, real estate, hospitality, tourism, and retail. <a href=\"https:\/\/www.linkedin.com\/in\/kateblaylock\/\" target=\"_blank\" rel=\"noopener\">Check her out on LinkedIn<\/a>!<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>We recently worked to visualize call center agents\u2019 statuses on a Gantt chart in Power BI for a client, but this turned out to be trickier than anticipated! When internet searches failed us, my colleague came up with the perfect solution, and all it takes is two lines of M code in Power Query!\u00a0<\/p>\n","protected":false},"author":21,"featured_media":12264,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"content-type":"","footnotes":""},"categories":[394,260],"tags":[303,305],"class_list":["post-15648","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-business-intelligence","category-data-ai","tag-modern-analytics","tag-modern-bi","topics-blog"],"acf":[],"_links":{"self":[{"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/posts\/15648","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/comments?post=15648"}],"version-history":[{"count":0,"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/posts\/15648\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/media\/12264"}],"wp:attachment":[{"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/media?parent=15648"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/categories?post=15648"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/3cloudsolutions.com\/wp-json\/wp\/v2\/tags?post=15648"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}