Saturday, September 15, 2007

Custom Help Desk Workflow in Sharepoint 2007

Several years ago, a developer at the company I work at wrote our Intranet. It's ASP based, and over the years the developer's been asked to add/modify/update various features on the site. One of the features he had implemented was a custom Help Desk System. In a general sense, its workflow is as follows:


  • Only specific users of the Intranet can submit Help Desk tickets
  • Help Desk ticket details are required
  • Help Desk tickets are assigned by the requestor to a 'group'
  • The Help Desk ticket groups contain individuals who receive the ticket - example, rather than request a particular person receive the ticket, the members of the requested group can own and close the ticket.
  • Help Desk Tickets are automatically owned by group members, members do NOT have to accept ownership.
  • Help Desk Tickets can be transferred from the owner to other individuals, regardless of the ticket group
  • Emails are sent to members of the group upon ticket submission.

There are a few other features of the current Help Desk ticket system, but for the most part those are the key features that we have been working with.

About 9 months ago, we migrated to a SharePoint 2007 Intranet. OK, I shouldn't say 'migrated', we've been using it, but we've been using our legacy ASP based Intranet as well to make use of necessary systems... such as the Help Desk system described above. We now have an end of life timeline on our legacy system, so we are pursuing options to migrate all systems. One option that I am particulary pleased with is the Sharepoint 2007 Helpdesk Application Template - download here.

Application templates are cool, they are customized lists, announcements, views, and libraries, all with enabled workflows. This means that trying to use a customized Sharepoint site to meet my requirements listed above would be difficult. However, with the Help Desk Application Template, we're in business!

So, how do we make use of the application template? For starters, you need Microsoft SharePoint Designer 2007. SD will let you modify existing templates and workflows.

Installing the Help Desk Application Template
On your SharePoint server, download the template from the link above, and extract the files to a local directory. If you haven't installed any application templates on your server yet, you must download and install the Core Templates first! A link to the Core Templates can be found at the site linked to above. As a local administrator, open up a new command line window, navigate to the stsadm.exe directory, and follow the instructions found in the link above.

Creating your new Help Desk Site
After installing the Help Desk template (and perhaps the Core templates as well), go into SharePoint, navigate to your appropriate site where you want to create your Help Desk site, and then click "Site Actions -> Create -> Sites and Workspaces", then create a new site, but select the Help Desk template.

Customizing your new Help Desk Site
To make the template fit into our existing workflow (given the requirements stated at the top of this blog post), I had to create an option for the new ticket request to allow someone to select a group. Sounds simple enough, right? Well, first we add our column, as a new help desk ticket is nothing more than a list item. Well, I need the group to also be a required field on the new ticket request. Finally, based on the group selected, we need to assign the ticket.

  1. Adding our "Group":
    On your help desk site, go to Site Actions -> Site Settings -> Site libraries and lists. Then, select "Customize Service Requests". Underneath the existing columns, click "Create Column", name your column "Service Group", make the column a "Choice" column, require the column have information, and add each "group type" for your choices. For example, "SharePoint issue" and "Website Down".
  2. Making our group available on support tickets:
    Adding a column to your list doesn't magically add the field to new requests. So, now we open up SharePoint Designer, and follow the instructions found here. This article shows you how to create a new web form, bring in your service requests fields.. which now include your "Service Group" field.. associate the SharePoint Master Page, and associate this new web form as your page that will be used when a new request is created.
  3. Assigning tickets based on groups:
    SharePoint has built in workflow capability, unfortunately it's difficult to manipulate using SharePoint. Fortunately, SharePoint Designer has a GREAT tool to help you unlock workflow. So, open SharePoint Designer and navigate to your helpdesk site. Next, select File -> New -> Workflow. Associate the workflow with your Service Requests List, and select the option to initiate the workflow based on a new item.

    The next screen brings you to an "If/Then" wizard. It's simple, "If" a condition is met, "Then" run a series of events. So, its pretty simple. If a group is selected, assign the ticket item to an individual.

    So, from the "Conditions" button, choose "Compate Service Requests field". Then, select the appropriate options so it states If Service Group equals . Next, for actions, choose "Send Email" to send an email to a particular individual stating that a call ticket has been entered. Then, select Actions again, and choose the "Set Field in Current Item". This option will let us specifically alter fields on the submitted service request, such as "Assigned To", so we can assign a ticket based on the Service Group".

    So, after selecting "Set Field in Current Item", set the field to "Assigned To" and then assign your individual to receive the item.

When you're done, repeat the "If/Then" logic for each group you have.

I apologize there aren't an screen shots, but I was in a bit of a rush to get this blog post live. I just wanted to get something out here on the Internet as I had to stumble through the steps above to get my Call Ticket system working.

I hope this blog post helps, below are a list of some helpful links that can guide you as you manipulate the Application Templates:

Labels:

1 Comments:

At 7:01 AM , Blogger Tammy said...

Thanks for your post on this, it helped me a lot. One question though - when you create a workflow to send an email upon the entry of a new special request, is there a way to send the link of the new request in the email as well? Or at least send the title and description fields?

Thanks,
Tammy

 

Post a Comment

<< Home