Bit of this year and last... We have a 3rd-party COTS Helpdesk system with a woeful desktop interface and a naive [and that's being charitable] email ingest mechanism. All the data's stored in a SQL Server and is fairly clearly two different apps bolted together...
A few years ago I knocked up a simple cherrypy web interface for it, mostly to avoid my having to use the egregious supplied UI. Then about 18 months ago I got so annoyed at the email ingest that I ran up an alternative as a proof of concept. At the same time I added an email alerting mechanism which sends out lightly-formatted emails on call updates. Now, several editions (and additions) later, the email ingest and alert mechanisms are easily the most used way to communicate with the IT Helpdesk. We encourage users to "communicate through the call" since it leaves the conversation trail visible to anyone who needs to look; it handles attachments such as screenshots of corrupts docs and is very easy to use. At the same time, the users see the assignments and Support activity so there's much greater transparency than before. A number of the ideas are certainly inspired by the concepts in Roundup (and possibly in other issue trackers) although I've never looked at the code there, and the concepts are similar, not identical. Key features: * Email ingest adequately determines the correct "conversation" to link to, handles embedded or linked attachments, and does a fairly good job of stripping out "noise". * Some actions can be handled entirely by email such as reassignment, status change, etc. although this isn't widely used. * Email alerting notifies on call creation, closure, update and a few specific status changes; includes attachment links and does some header munging so the originator appears to be the updater but the reply goes to the Helpdesk. * "Nosy" list concept akin to Roundup's where several people will receive call updates (even a distribution list...) * Master / child call -- this is quite recent and we're still playing with it, but basically a tree of calls can be closed together and the upper ones show the lower updates. The key requirement here is a split-assignment, such as when a new Blackberry is requested and the ordering is handled through the Facilities team while IT do the commissioning. Key tools / libraries: * Web interface: cherrypy, hand-crafted SQL, messy string-based HTML with %-formatting. [Not proud of this part; it's in real need of refactoring] * Email ingest: Exchange emapi, regular expressions for stripping out noise * Email alerts: smtplib, AD, jinja2 for formatted emails, regexes again for message manipulation Future ideas: * Alarms: eg allowing a call to "sleep" for an agreed period, to be picked up later; notifying when SLA milestones are passed etc. TJG _______________________________________________ python-uk mailing list python-uk@python.org http://mail.python.org/mailman/listinfo/python-uk