Creating a Self Service Tool to Improve Customer Experience

Rahul Saxena
Feb 18 · 6 min read

Customer experience remains one of the most potent key differentiators for an organization in any industry. Customer care teams are an integral part of any organization because they are the first point of contact for the customers, helping to address issues related to services/product.

When a customer contacts customer service team to report an issue, they try to resolve the issue with the available resources. At times customer care teams don’t have the required information readily available to them to troubleshoot an issue. The information can be something like analyzing a logs file or gathering specific data points from database, etc. In order to get this information, customer care teams log an internal ticket with the Site Reliability Engineering (SRE) team. SRE teams review the ticket and take their own time to share the requested information. Customer care teams then diagnose the issue based on the all the information they were provided and accordingly provide the resolution to the customer.

Although a customer’s issue was addressed, the entire process from the issue being reported to a solution being found took significant time. The customer experience’s would have been much better had the required information been made available to resolve the issue.

The power of a self-service tool

Since managing production servers is a job with a lot of responsibility and involves security constraints, not everyone can have access; there needs to be a designated team to manage this environment. So, how can we find a solution to improve customer experience by making this information available on a click of a button? This is where power of a self-service tool comes into picture.

I am part of one of the Site Reliability Engineering (SRE) teams at Adobe. We analyzed all these issues and, based on the patterns discovered, we came up with an idea to create a self-service tool — this would automate all those tasks that an SRE team performs when it comes to sharing information with a customer care team. The tool not only improves the customer experience but will also equip customer care teams to resolve customers issue without having any dependency on other internal teams.

The technology used in developing a self-service tool

We used following technologies to create this self-service tool:

1: Django, a Python-based free and open source web framework

2: Rundeck, an open source software to automate regular tasks

3: Python, for writing scripts executed via Rundeck

4: MySQL database

5: Java Script, for front end

6: Vault, to store DB user account password for authentication

Developing our self-service tool

We created python scripts for various tasks that a customer care team would need to perform when troubleshooting an issue. We also set up a Rundeck server and created jobs for each task to be performed. All the Python scripts were plugged in with the respective Rundeck jobs, with required permissions. On top of Rundeck, we created a GUI using Django web framework and made it accessible to customer care team.

Development work flow

Using this tool, a customer care team member logs in to the GUI using a domain user account. After successful authentication, the user will see list of all the available jobs to perform various tasks. These jobs are pulled from Rundeck using an API and displayed on the UI. Depending on the task, the user will select the respective job, input the required details, and start the job. The request will go to the Rundeck server and it will execute Python script plugged with the job to perform the requested task. The result will be displayed on the UI after the completion of the job.

A case study for our self-service customer care tool

We are the SRE team in Adobe and responsible for managing one of the products named Adobe Connect. Our customers use this product to create meetings, recordings, and upload content in the form of PPT/PPTX/PDF, etc. on their respective accounts. This data is very important for every customer. If the data gets accidentally deleted from an account, it can badly impact the customer. In these cases, customers contact the customer service team to request data recovery. Data recovery is a multistep process and is time consuming. We created automation around it and made data recovery available on a click of a button.

We created a job on Web UI for the content recovery process. The customer care team needs to login to Web UI via LDAP authenticated user. This job requires some inputs pertaining to the account in question, and once the information is all filled in, the customer care team simply clicks a button to start the recovery process. Behind the scenes, the job goes to the Rundeck server and associated Python scripts get executed. The script performs various steps:

a) It retrieves information about the deleted content by querying multiple DB tables.

b) It stores that information in a temp table.

c) Based on information fetched from DB, the script searches for the deleted data on backup and restores it on NAS (Network Attached Storage).

d) After restoring the data, the script updates DB for content to show on the UI.

e) Once the recovery process is complete, a success message is displayed in the output.

The web login UI:

The name and description of the job that needs to be executed:

Input fields needed for the job to run:

The benefits of this self-service tool

This self-service tool has a lot of benefits for the support team:

a) The 24-hour availability of the tool helps teams resolve customer issues any time, without having any dependency on others.

b) It reduces the number of support tickets for the SRE team. By providing information in a self-service portal that allows support teams to identify and resolve customer’s issue themselves, we take a load off our technical support team who would have to log, route, solve, and follow-up on a ticket. This saves SRE teams’ time and speeds up ticket resolution time for the end customer by decreasing the backlog of tickets and shortening the queue.

c) It improves customer experience with faster resolution to the problem.

Armed with a greater understanding of the benefits of the self-service tool, it is easy to see why offering a solution like this for your customers makes sense. Not only do self-service tools allow you to provide better customer service, but teams can also do so at a reduced time and cost. Setting up a self-service tool conscientiously by properly customizing and implementing all its features can help elevate an organization’s reputation and brand and make their service teams’ lives a whole lot easier.

The way forward

Next step in this journey will be to work towards making this tool available publicly so that customers don’t even have to call support to report issues. Customers can themselves use the tool to solve their most common issues. Based on the feedback from the customers we can add more functionalities to the tool to make sure everyone is a happy camper.

Rahul Saxena

Written by

Site Reliability Engineer @ Adobe

Adobe Tech Blog

News, updates, and thoughts related to Adobe, developers, and technology.

More From Medium

More from Adobe Tech Blog

More from Adobe Tech Blog

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade