Elsewhere > Unfuddle User Feedback
Posted 2009-06-02 on viget.com
Recently, we wanted a better system for managing feedback from SpeakerRate users. While we do receive some general site suggestions, most of the feedback we get involves discrete corrections to data (a speaker who has been entered into the system twice, for example). We started to create a simple admin interface for managing these requests, when we realized that the ticket tracking system we use internally, Unfuddle, already has all the features we need.
Fortunately, Unfuddle has a full-featured
API, so programmatically creating tickets
is simply a matter of adding
HTTParty
to our Feedback
model:
class Feedback < ActiveRecord::Base
include HTTParty
base_uri "viget.unfuddle.com/projects/#{UNFUDDLE[:project]}"
validates_presence_of :description
after_create :post_to_unfuddle,
:if => proc { Rails.env == "production" }
def post_to_unfuddle
self.class.post(
"/tickets.xml",
:basic_auth => UNFUDDLE[:auth],
:query => { :ticket => ticket }
)
end
private
def ticket
returning(Hash.new) do |ticket|
ticket[:summary] = topic
ticket[:description] = "#{name} (#{email}) - #{created_at}:\n\n#{description}"
ticket[:milestone_id] = UNFUDDLE[:milestone]
ticket[:priority] = 3
end
end
end
We store our Unfuddle configuration in config/initializers/unfuddle.rb
:
UNFUDDLE = {
:project => 12345,
:milestone => 12345, # the 'feedback' milestone
:auth => {
:username => "username",
:password => "password"
}
}
Put your user feedback into Unfuddle, and you get all of its features: email notification, bulk ticket updates, commenting, file attachments, etc. This technique isn’t meant to replace customer-service oriented software like Get Satisfaction (we’re using both on SpeakerRate), and if you’re not already using a ticketing system to manage your project, this is probably overkill; something like Lighthouse or GitHub Issues would better suit your needs, and both have APIs if you want to set up a similar system. But for us here at Viget, who manage all aspects of our projects through a ticketing system, seeing actionable user feedback in the same place as the rest of our tasks has been extremely convenient.