Hello Guys!

I making a new website that needs a cms. I 've chosen drupal for it, basically because normally - with other cms - I've spent to much time hacking custom functionality.

I didn't find any 5.0 version of the helpdesk module, in fact I don't even know if it meets my requirements because I didn't read the feature list. I don't like to see what I COULD have...

First I try to describe the HelpDesk aims and functionality I need for the website as briefly as possible. These are my basic HelpDesk requirements:

- a user (members and anonymous) can request contact with the site team without just writing a simple e-mail or using a contact form that sends an e-mail. ==> create ticket instead (node!)

- users can create ticktes on different topics (vocabulary terms) depending on their role e.g. anonymous users can ask only general/login/username/password questions, and members can ask account specific and more precise site related questions.

- anonymous users and members a are only able to view their own tickets

- special role users (admin, moderator) should be able to access certain tickets, depending on the permissions, access should be manageable by role and category!

- by default no one (except administrators) should be able to edit tickets and only users who own a ticket or with permission to answer a ticket can comment on it. That makes the ticket also some kind of support conversation log, basically designed for a mod/admin to read a ticket already processed or in another status and be able to understand what's going on. To avoid situations like: "Aha, so that is the answer. Now, what was the question?"

Ok, I am now comming to the part, how I accomplish this task or at least I hope that what I have done already meets my requiremets which I solve with some very simple content structure.
Again, I won't use the helpdesk module and I don't want to hack drupal's php code myself.

Addtional modules needed I needed are (hope I don't miss one), all version 5:
- CCK
- Taxonomy Access Control

1. Create a new Content Type "ticket" (ckk_ticket) with
default options: published, (sticky)
default comment settings: read/write
set access control: "create cck_ticket content" for all roles enabled, edit/edit own is NOT ENABLED! The moderator does not have any administration access, at least not administrating nodes.

2. Creating the Taxonomy: Vocabulary "Help Topic", terms: "general", "registration", "login", ...
It is important to assign the content type "ticket" to this vocabulary.

3. Adjusting Taxonomy Access Control fo "Help Topic":
- anonymous: deny all, create only allowed topics
http://www.berlinerstrassen.com/!files/drupal/taxaccess_anon.gif

- members: deny all, create only allowed topics
http://www.berlinerstrassen.com/!files/drupal/taxaccess_member.gif

- moderator: view allow all, update deny all, delete deny all, create allow all, list allow all
http://www.berlinerstrassen.com/!files/drupal/taxaccess_moderator.gif

We are ready now, if I didn't forget a step we are now able to test the tickets. To do this we create a ticket with an anonymous, a member and a moderator account. Then we try to access all the three nodes: logged out and logged in as the member who posted the ticket, as another member and as a moderator. The access privileges should be as required. For anonymous users we should have an email address field in the ticket form to answer anonymous tickets, because anon users can only create tickets, they can't see them.

We have also a cool feature now. If an admin or some supermod with node administration access permission unpublishes a ticket, it will be only visible to the owner and admin. This could be used to close tickets.

We can build several views now, at least two: one allowing simple member to view own(=all) tickets and a another view for moderators. When we use the sticky option as the default for ticket nodes, we have another feature. Tickets first come in sticky. Now making a view showing published tickets with oldest date first and with the stickies on top, makes it possible to build something like a FirstInFirstOut Queue. If we always unsticky a ticket on our first reply (comment) and unpublish it when it is resolved, we will be able to have an organized workflow to see unanswered tickets on top, unresolved tickets just below the stickies and resolved ones not visible in this view.

Here we have also a major drawback:
If we need mods who can unsticky/unpublish tickets , we violate my requirement, that only admins are able to change/edit tickets.
I would like to have both. Maybe this can be solved by introducing a second taxonomy for the status: active / closed / resolved and this taxonomy only visible to moderators by tax access control. In that case we need to enable the content type "ticket" for this taxonomy and make the View for moderators dependant on this taxonomy too.

I am interested in your feedback or was I boring you?

schnizZzla
----------
listen mp3 on my old old php nuke site:
http://www.berlinerstrassen.com/modules.php?name=Audio&l_op=MostPopular&...

Comments

Anonymous’s picture

Is there any way you can construct this and put it up on a demo site?

schnizZzla’s picture

i wanna do some testing today, I will make a demo site and post later here

schnizZzla’s picture

You all are invited to test the ticket system, here it is:

HelpDesk Demo Page

At the moment, ther is only the very basic functionality.

illepic’s picture

Highly interested in this, would love to see this in action but unfortunately the demo site is down :(