Nicereply Blog

Integrating Nicereply with Request Tracker

3 comments

Next up from our series of successful integrations of Nicereply is Request Tracker, a very popular support tool with over 10 years of history. We’re going to try and take a different, shorter approach with this tutorial, so here is how you get Nicereply working with Request Tracker in three simple steps.

Setting up Nicereply

First of all, you’ll need to set your Nicereply agents’ usernames to their RT usernames. Usernames in RT can be found under Configuration -> Users. That will give a list of
usernames, full names, and email addresses. The screenshot shows the screen after clicking on one of the users.


Next, we have to activate the Ticket Link feature (Settings -> Ticket link) to link every rating to a ticket at RT. We put the ticket URL into “Ticket system URL” field, in this case it’s http://rt.example.com/Ticket/Display.html?id=<TICKET_ID>. Make sure to change “rt.example.com” to the location of your RT installation.


Setting up Request Tracker

Navigate to Configuration -> Global -> Templates. Some of you may have customized your correspondence template for each queue, in which case you’d have to make the change to each queue-level template as well.

Insert the following to the correspondence template just above your signature. Important! – make sure to replace the “my-company” in the url to your company name in Nicereply.

{
   return '' unless $Transaction->CreatorObj->Privileged;
   my $id = $Ticket->Id;
   my $actor = $Transaction->CreatorObj->Name;
   RT::Interface::Web::EscapeURI(\$actor);
   "Please rate my reply: http://nicereply.com/my-company/$actor/$id";
}


If you want to track ratings for individual replies instead at the overall ticket level,
use this instead:

{
   return '' unless $Transaction->CreatorObj->Privileged;
   my $id = $Ticket->Id;
   my $trans = $Transaction->Id;
   my $actor = $Transaction->CreatorObj->Name;
   RT::Interface::Web::EscapeURI(\$actor);
   "Please rate my reply: http://nicereply.com/my-company/$actor/$id%23txn-$trans";
 }


That’s it!

We have now successfully connected Nicereply with Request Tracker. Your customers will now be able to rate your helpdesk emails and you’ll have the ability to easily evaluate performance of your helpdesk team AND see what ticket every rating relates to. Don’t forget to try out the integration thoroughly, and if there’s any problem, please let us know.

We’d like to thank Thomas Sibley and the whole team over at Best Practical for their wonderful help with this integration.

Share this:

3 Responses to “Integrating Nicereply with Request Tracker”

  1. A says:

    Would be nice if you could make it so that if the username portion of the rating link url is invalid (no such user setup in nicereply.com) that the rating could just continue based only on the company part of the rating url, or else a dummy “unknown staff user” holding tank to hold ratings for unknown staff until we can get an admin in here to set the staff people up properly and take those ratings out of the holding bucket and apply them to the correct staff user.

    Otherwise, if we have not setup every staff user inside Nicereply, then our customer who comes here to make a rating just gets an error page “Bad request” which makes us look dumb.

    Valid reasons why a staff may not have been setup in Nicereply as a user are that some staff so rarely answer a ticket we did not plan for them to have a user here, or because a staff person was just hired and we have not gotten around to setting them up here yet.

    Please put a little more effort to capturing the rating when a customer has bothered to click the rating link — even when we’ve failed to setup a user in advance. Send the Nicereply account owner an email letting us know we got a rating for an unknown staff, so we can capture the rating now and setup the user later.

  2. A says:

    Putting the code in the Global template will affect all queues. But only some of those queues might be for customers, so you want to only put the rating link on emails sent from those queues. And to avoid your customers reaching a “Bad Request” page at nicereply if you have not setup the RT user here in advance, force the user part of the rating link to be for a user that has already been setup here:

    {
    # offer rating link only when Staff replies
    return ” unless $Transaction->CreatorObj->Privileged;

    # offer rating link only when ticket is in queue for customers
    my %customerqueues = qw(General RMA Sales Support);
    return ” unless (exists $customerqueues{$Ticket->QueueObj->Name});

    my $id = $Ticket->Id;
    my $actor = $Transaction->CreatorObj->Name;

    # if RT user not setup at nicereply, force to one that is
    my %nicereplyusers = qw(nruser1 nruser2 nruser3 nrdummyuser);
    # the above is a list of usernames that are already setup at Nicereply
    $actor = ‘nrdummyuser’ unless (exists $nicereplyusers{$actor});
    # if the RT username was not in the predefined list, set actor to a valid nicereply user

    RT::Interface::Web::EscapeURI(\$actor);
    “Please rate: http://nicereply.com/crystalfontz/$actor/$id“;

    }

  3. ftacnik says:

    Hi A,
    thank you for your comments and interest on improving nicereply. We will certainly consider them and probably implement them into the system.

    If you would have any suggestions how to make nicereply better, please contact me at ftacnik@nicereply.com

Leave a Reply