o bug #1508708 by andrewfn: sort per configured secondary sort order.
[project/support.git] / INSTALL.txt
1 Overview
2 --------
3 The Support module allows you to manage Tickets in any number of queues,
4 referred to by the module as "Clients".  Each Support Client gets a logically
5 distinct ticket queue, and a ticket can only be assigned to a single Client at
6 a time. Drupal users must be granted access to Clients to see tickets in a
7 given Client queue, and can either be granted limited access to only see the
8 tickets they created themselves or are explicitly assigned to them, or complete
9 access to see all tickets assigned to the Client.
10
11 Tickets can only be assigned to up to one Drupal User at a time.  Tickets always
12 have a Priority (low, normal, high, critical) and a State (new, active, pending,
13 closed).
14
15 Support Clients can be optionally integrated with email allowing tickets to be
16 created and updated by email. Notificiation emails can be generated by the
17 support module when tickets are created or updated.  A Drupal User must be
18 subscribed to a ticket to receive email notifications. There is no limit to the
19 number of Users that can subscribe to an individual ticket. Inidividual Clients
20 can be configured to auto-subscribe specific Drupal Users to new tickets.
21
22 In Drupal terms, a Ticket is a Content Type, so Tickets are Drupal Nodes. Ticket
23 Updates are Drupal Comments.
24
25 You must create at least one Client to use the Support module. There is no
26 inherent maximum limit to the number of clients you can create. Read on for
27 step by step directions to get started with the Support module.
28
29
30
31 Installation
32 ------------
33
34 1) Enable the module.
35
36 2) Edit 'Administer >> Content management >> Content types >> Support ticket'
37  a) Set the desired Submission form settings (such as Title field label, Body
38     field label, Minimum number of words, etc)
39  b) Set the desired Workflow settings
40  c) Set the desired Comment settings (recommended):
41     - make comments read/write
42     - make default display mode 'flat list - expanded'
43     - make default display order 'Date - oldest first'
44     - increase default comments per page
45     - do not display comment controls
46     - disable the comment subject field
47     - display comment submission form below post or comments
48
49 3) Go to "Administer >> Support >> Clients >> Add client" and create one or
50    more Support clients.
51
52    If you only want to track tickets online, and send out notifications as
53    tickets are created and updated, simply define the 'Client name' and 'Path'.
54    If you want the ability to create and update tickets via email, you will
55    need to open the 'Inbound email integration' section, check 'Integrate
56    email', and fill out the rest of the information in that section.  If
57    integrating inbound email, you will need to create an email account for
58    each client -- support will use this account to send and receive email.
59    More information can be found in MAIL.txt.
60
61 4) If creating multiple Support clients, go to "Administer >> User management
62    >> Roles" and create one role for each Support client.  (This is an optional
63    step and is only required if you want to prevent one client from viewing and
64    updating the tickets of another client.  If you are using this ticketing
65    system internally, this may not be important to you.)
66
67 5) Go to "Administer >> User management >> Permissions" and assign the desired
68    permissions.  A user will need at least one "access CLIENT tickets"
69    permission and "create tickets" permission to be able to create tickets.
70    Users can only create and update tickets for clients they can access.
71
72    Users with "can suppress notification" permissions have the option to
73    manually disable a notification email from being sent out.  An email will
74    still get sent to admins telling them that an update has been made but not
75    showing the contents of the update.  This feature allows passwords and other
76    sensitive information to be added to tickets without being sent out as a
77    plain text email.
78
79    Users with "can assign tickets to self" permissions are able to assign a
80    ticket to themselves, or to assign the ticket to nobody.
81
82    Users with "can assign tickets to any user" permissions are able to assign
83    a ticket to themselves or to another user.  Only users with permission to 
84    view a given ticket can be assigned to it.
85
86    Users with "can subscribe other users to notifications" permissions are able
87    to subscribe other users to email notifications when a ticket is updated.
88    Users without this permission can only subscribe themselves.  Only users
89    with permission to view a given ticket can be subscribed to notifications
90    for it.
91
92    Users with "download mail via support/fetch" permissions can access the path
93    "support/fetch" which will cause the Support module to download all client
94    email.  Mail is also fetched when Drupal's cron is run, but this allows mail
95    to be checked at a different frequency than cron is run, if desired.  If you
96    are using Support's mail integration features and you are running Drupal's
97    cron, you do not ever need to access support/fetch.
98
99    Users with "view other users tickets" permissions can view all tickets for
100    any client that they have "access CLIENT NAME tickets" permissions.  Users
101    that do not have this permission can only view tickets that they themselves
102    have created. Users with "administer support", "edit any ticket" and/or
103    "delete any ticket" permissions can always "view other users tickets" whether
104    or not they are explicitly granted this permission.
105
106    Users with "edit multiple tickets" permissions will be able to add updates
107    and change the state and priority of multiple tickets from the client
108    overview pages.
109
110    When creating and modifying tickets, users with "can select client"
111    permissions can assign the ticket to any client that they have permission
112    to access tickets for.
113
114    When creating and modifying tickets, users with "can select priority"
115    permissions can set the priority of the ticket.
116
117    When creating and modifying tickets, users with "can select state" 
118    permissions can set the state that the ticket is currently in, based on
119    the workflow defined in the support_states database table.  By default, this
120    means that new tickets must be in the 'new' state, and only upon updating a
121    ticket can the user set the state to 'active', 'pending', or 'closed'.
122
123    Users with "can administer state" permissions can change the state of any
124    ticket from any state to any other state, ignoring the workflow defined in
125    the support_states database table.
126
127    Users with "move ticket" permissions and permission to edit a ticket see a
128    new "Support ticket" fieldset with a "Move ticket" field allowing them to
129    specify a parent node id which will cause the ticket and any updates to be
130    moved and become updates on the specified node id.  Note that this only
131    allows for moving an entire ticket and all its updates, not specific updates.
132
133    Users with "administer support" permissions can access and update all
134    clients and client tickets, and automatically have all support permissions
135    available to them.
136
137    NOTE: If you have integrated email for any of your clients and you wish to
138    save email attachments then the user running Drupal's cron (usually the
139    anonymous user) must have "upload files" permissions.  You can set this on a
140    per-content-type basis using the Upload Permissions Per Content Type module:
141    http://drupal.org/project/upload_perm_per_type
142
143 --------
144 Optional
145 --------
146
147 Comment Upload:
148 ---------------
149 If you would like to be able to attach files to support ticket updates, you
150 can install the comment_upload module:
151   http://drupal.org/project/comment_upload
152 Once the module is enabled, visit "Administer >> User management >> Permissions"
153 and grant "upload files to commnts" and "view files uploaded to comments" to all
154 roles that should be allowed to attach files to support tickets.  Finally, visit
155 "Administer >> Content management >> Content types" and click "Support ticket".
156 In the "Comment settings" section enable "Attachments on comments".
157
158 NOTE: If you have integrated email for any of your clients and you wish to save
159 email attachments then the user running Drupal's cron (usually the anonymous
160 user) must have "upload files to comments" permissions.  You can set this on a
161 per-content-type basis using the Upload Permissions Per Content Type module:
162 http://drupal.org/project/upload_perm_per_type
163
164 Support Charts:
165 ---------------
166 If you would like to generate charts from ticket statistics, you must first
167 install the Google Charts API module:
168   http://drupal.org/project/chart
169
170 Support Timer:
171 --------------
172 If you would like to enhance the support ticket system to also be a time tracker
173 you can install the support_timer module:
174   http://drupal.org/project/support_timer
175 (This project seeks one or more co-maintainers.)
176
177 Support Nag:
178 ------------
179 If you would like the support ticket system to remind users about open tickets,
180 and to automatically update the status of old tickets, you can install the
181 support_nag module:
182   http://drupal.org/project/support_nag
183 (This project seeks one or more co-maintainers.)
184
185 Support SMS:
186 ------------
187 If you would like to schedule SMS notifications to be sent for tickets, you can
188 install the support_sms module:
189   http://drupal.org/project/support_sms
190 (This project seeks one or more co-maintainers.)