In SharePoint, out-of-the-box Issue Tracking lists can be set up to send alerts to users when ownership is assigned for a request. However some clients want highly customized Helpdesk lists, and also want to send emails when requests have been completed.
In this scenario, Helpdesk requests can be created by any staff member online, or by the Helpdesk administrator logging telephonic requests. The administrators have an Alert on the list for new items, so that they can review and assign ownership.
In the browser:
Create a Custom SharePoint list "Helpdesk" with the following fields:
- Title - [Title field]; single line of text - this can be renamed "Issue" or similar - Required
- Description - Multiple lines of text - Required
- Submitted by (caller name for items created by an administrator logging telephone calls) - People or Group (People only) - Required
- Reference Number - Calculated field (note, this can not be the Item ID, as this is only generated after the request is submitted; I use a date and time combination)
- Status - Choice field: Active / Pending / Resolved - Required, Default: Active (field is updated by "Assigned to" until Resolved)
- Assigned to - People or Group (People only, from the Helpdesk Admin Group)
- Resolution Notes - Multiple lines of text (updated by "Assigned to" until resolved; if you want to Append Changes, you need to enable versioning on the list).
For permissions, all users are able to create requests (custom permission level), but only the Helpdesk Group is able to edit them (Contribute).
In SharePoint Designer:
Open the site and select File > New > SharePoint Content and select "Workflow" and "Blank Workflow".
- Give your workflow a name, eg, Helpdesk Requests
- Select list to attach to workflow: Choose "Helpdesk" from the dropdown list.
- Initiation: Select "When new item is created" and "Allow workflow to be started manually from an item"
Step 1: Rename to: Helpdesk Request Assigned
- [Leave 'Conditions' section blank]
- Action1: Wait for Field Change in Current Item
Select "Assigned To" for Field, and "to be not empty" for value - Action 2: Send Email
Fields:
To: Select [Current item] and Field: [Submitted by]
Cc: Select [Current item] and Field: [Assigned to]
Subject: "Your Helpdesk Request has been received"
Body: (use "Add Lookup to Body" to retrieve list information)
Dear [Current Item: Submitted by]*
The following helpdesk request has been received:
Title: [Current Item: Title]
Reference Number: [Current Item: Reference Number]
Your request has been assigned to [Assigned to].
To view the request, click here: http://[sitename]/Lists/[listname]/DispForm.aspx?ID=[Current Item: ID]
Please quote the above reference number with any queries.
Regards,
Your Support Team
This completes Step One.
Step 2: Rename to: Request Completed
- Action 1: Wait for Field to equal ...
Select "Status" for Field and equals "Resolved" for value - Action 2: Send Email
Fields:
To: Select [Current item] and Field: [Submitted by]
Cc: Select [Current item] and Field: [Assigned to]
Subject: "Your Helpdesk Request is Complete"
Body:
Dear [Current Item: Submitted by]*
The following helpdesk request is now complete:
Title: [Current Item: Title]
Reference Number: [Current Item: Reference Number]
Notes: [Current Item: Resolution Notes]
Please contact us if you have any further queries,
Regards,
Your Support Team
This completes the workflow. Click on "Validate workflow" and "Finish".
Create a test item with your name in the Submitted By and/or Assigned To fields.
* The [Submitted By] field picks up the domain username, ie. DOMAIN\loginname - it's a little impersonal, but I haven't found a way for it to pick up the actual user name, and using this does let the recipient know that the email is directed at them.
A better solution would be welcome :)