This is a guest blog by Kevin Burke, a former student intern at Atlassian. Kevin is currently a student at Claremont McKenna College.

Virgil – Redirecting your users to relevant resources

by Kevin Burke

Atlassian offers “legendary customer service” including our 24/5 support. While we pride ourselves on our levels of service, we want to provide better ways for customers to get the answers they need quickly. Ultimately, the better path to providing great customer support isn’t through hiring more Support staff, but rather, providing an easy way for customers to help themselves by getting them to the resources they need. One way to guide customers to the right resources is by displaying relevant resources as they are creating support tickets in

The problem

There are two basic difficulties with guiding people to the resource they want. First, our resources are in several different places; we have the Forums (, product documentation (multiple spaces on, and bugs and feature requests ( Second, we can analyze Google analytics to try to determine how people are combing our websites, but it’s hard to tell what people are trying to find until they actually tell us, in the Support ticket description. If you attack the problem on one of the subdomains, you are missing the people that go to the other subdomains for help.
Then I heard about Suggestimate, the Jira plugin that looks up other issues as you type. As soon as I saw it I knew I wanted to build something similar for – a script that would search our resources in real time and display relevant results. We decided to name this script Virgil.

How Virgil works

After the user enters in the issue summary, the user’s input is run through several regular expression tests. Many users ask questions about licensing or purchasing Jira and Confluence, but these questions should really go to our Customer Service team. Rather than having to wait for Support to redirect to Customer Service, if the user enters a reference to “license” or “quote,” in their summary, Virgil instantly displays a link to our Customer Service team. Virgil’s set up so users can easily add in more custom pattern matches and responses.
If the user input is not blank, and doesn’t match any of the regular expressions, we run a Google Custom Search. I used the Google AJAX Custom Search API, and Atlassian’s own Custom Search Engine license (note: you will need to purchase this from Google, see For more information and API examples see here:

We set up three custom searches, one for each of our main products, so if a user is asking a question in the Jira Support project, we restrict the custom search to the Jira documentation, the Jira forum and the Jira project on Virgil determines which product the user’s asking a question about by getting some basic information from the page with jQuery.

Once we have the search results from Google, we apply some basic formatting to the results using jQuery. We also parse the search result’s URL and display information about the domain next to the result in gray. Once we’ve formatted the results, we use the jQuery slideDown effect to display them on the page.


Tracking Effectiveness

We also wanted to be able to track the tool’s effectiveness; were users actually clicking on the links? So every URL has a key/value pair appended to the end, so we can check the results in our analytics program.

The program consists of a Javascript script, some CSS formatting for the search results and some HTML that is initially hidden. To put it in your own instance, grab the code from here. Then go to Administration -> Field Configurations -> Summary -> Edit, and paste in the code exactly as-is. This will place the code in the page directly below the issue summary input bar.

How Virgil could be useful for you

Virgil presents a win-win situation: users find answers more quickly and the team working on Jira can spend more time working on other problems. You can use it to redirect the user to a better resource quickly, like we do with users asking about licenses, or you can use it to reduce unnecessary delay for users who are looking for answers that already exist in another location. We hope you find it to be a useful add-in for Jira.

Virgil – Guiding your users to relevant reso...