Access Keys:
Skip to content (Access Key - 0)
Home (Access Key - 1)
All spaces... (Access Key - 3)
Log in (Access Key - 5)
Sign up (Access Key - 6)
Toggle Sidebar

A little JIRA hack


A growing nightmare here at Adaptavist comes in the form of support tickets not being handed to the customer or support team at the right time. This is down to the UI in JIRA making it less than obvious how to hand a ticket over - so Dan Hardiker decided to start hacking with jQuery... (NB: 2MB video file in this post)

There are two times when a ticket needs to be handed over...

  1. When a customer posts a comment that needs our attention, the ticket should be handed to Adaptavist
  2. When we post a comment for the customers' attention, it should be handed to Customer

The problem is that we can't just automate this - there will be many times when we post comments but aren't yet ready to hand back to the customer and vice versa. That would cause even worse problems (we know, we tried).

This might sound like no big deal, but it's getting to the point where we've got one member of staff spending hours each day handing tickets back and fourth so that the support team can get on with, erm... supporting! If we grow our customer base by another 100% this year, we're going to need to take on full time staff just to hand tickets over. Not good.

What we really needed was some way to prompt the user when the add a comment, asking them whether the ticket needs handing over. This reminds the user and also puts them in control. And more importantly, it saves us several hours a day to get on with more productive tasks.

We used jQuery and it's Impromptu plugin (we might switch over to the Facebox plugin for the final version) and dumped the magic in to a custom field as this was a quick hack.

We work out if the logged in user is from Adaptavist or one of our customers (using JIRA API via a velocity template) and then work out if they need to be prompted to hand the ticket over.

We use jQuery to bind an onclick event handler to the "Add" button - when it's clicked, the prompt is shown if applicable and depending on what choice the user makes we fire their comment to the relevant back-end script.

Our hack is still in the early stages, but already working like a charm. It's only active on one specific issue in our support system, that you can't access, so for now you'll have to make do with this video:

P.S. Famke Janssen is officially at the top of my "Future Wives Wishlist", especially if she's dressed as Jean Grey from X-Men. Mmmm, tasty goodness.

P.P.S. This should really have gone in Dan's blog as he did the hack, but he's still not got round to setting it up. Grr!

Toggle Sidebar
Added by Guy Fraser on Jan 16, 2008 02:11, last edited by Guy Fraser on Jan 16, 2008 02:51

It should be noted that we are using the JIRA Toolkit's "Velocity Processed Message Field" for this – we didn't write a single line of Java code and, more importantly, nor did we need to redeploy or restart JIRA at any point during the development. Everything was done in a reasonably simple and readable velocity template.

The logic also only shows the dialog box when you are likely to have forgotten to change the status. In other words, if it is already With Adaptavist and you are the customer adding a comment, you are not likely to be wanting to take the issue back to With Customer - instead you are more likely to just be adding extra contextual information.

On the other hand, if it's With Customer then there is a 60% chance (at least by our stats) that you would want to hand it over to us but have forgotten.

Finally, this reduces the email notifications by one – instead of getting a comment and then a workflow update email, we now just get the one update with a comment in.

P.S. This will eventually make it into blog form, however I'm currently enjoying developing, rather than bragging about developing – I know, odd!

Anonymous

Could you share the velocity template?

It needs a fair bit of debugging (e.g. it causes mayhem with Safari atm) but once it's nailed I'll be releasing it through a blog post somewhere.

I'll update here with a link once it's out.

Anonymous

On https://support.atlassian.com we have an AutoTransitionListener (from the JIRA Toolkit) configured to automatically run a workflow transition ("Bounce to Atlassian") when a customer comments or updates. It's good because that also handles the case when customers respond by email.

We looked at that plugin but decided not to use it. With the exception of change notifications, we've given up on email. It's just way too unreliable.

We've found that since rolling this little enhancement out on our tracker.adaptavist.com site, our support responsiveness has drastically improved and our costs of managing tickets has significantly diminished. Also, the number of email notifications coming out of JIRA has reduced significantly because people aren't posting comments then thinking "Argh, I meant to transition as well, hand to whoever"

The key thing here is that in well over 90% of cases, transitions only happen when they are supposed to happen. We're not having tickets transitioning when they aren't supposed to and at the same time we are getting them transitioned when they need to. It's been an absolute dream.

I would really love to implement this! Any idea when we may see a "howto" on making this work? Or maybe its already posted somewhere?

I can't speak for https://support.atlassian.com/, but we get a large amount of users who add "ok, I'll look into that" or "leave it with me" messages – where an automatic transition just isn't appropriate, in fact as we don't allow users to "take back" the workflow (only we can Hand to Customer) it ends up leaving the issue in the incorrect state.

Likewise, we have found that a user might ask 4 or 5 related questions in an issue. We could answer 3 and need to look up the other 2, and we wouldn't want it automatically handed back to the customer until all the questions are answered (the rule of thumb is, if there is anything for us to do - even if there is something for the client to do - then it stays marked as With Adaptavist until we can progress it no further).

On the flipside, not doing it automatically means you have to manually take the extra step – as well as remembering to do it.

Making a manual choice (with a dialogue rather than through an easily missed/forgotten checkbox or multiple add comment buttons) is the only way to be sure that the state is right.


Adaptavist Theme Builder Powered by Atlassian Confluence