zendesk_api 0.1.11 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (153) hide show
  1. data/.gitignore +3 -0
  2. data/.travis.yml +1 -3
  3. data/Gemfile +24 -0
  4. data/Gemfile.lock +75 -10
  5. data/Procfile +1 -0
  6. data/Rakefile +10 -3
  7. data/Readme.md +65 -0
  8. data/bin/zendesk +26 -0
  9. data/config.ru +6 -0
  10. data/config/mongoid.yml +81 -0
  11. data/lib/zendesk_api/actions.rb +2 -2
  12. data/lib/zendesk_api/collection.rb +15 -4
  13. data/lib/zendesk_api/console/base.rb +12 -0
  14. data/lib/zendesk_api/console/console.rb +144 -0
  15. data/lib/zendesk_api/console/extensions.rb +183 -0
  16. data/lib/zendesk_api/console/options.rb +41 -0
  17. data/lib/zendesk_api/resource.rb +12 -1
  18. data/lib/zendesk_api/resources.rb +28 -8
  19. data/lib/zendesk_api/server/base.rb +119 -0
  20. data/lib/zendesk_api/server/docs/account_settings.md +145 -0
  21. data/lib/zendesk_api/server/docs/activity_stream.md +121 -0
  22. data/lib/zendesk_api/server/docs/attachments.md +73 -0
  23. data/lib/zendesk_api/server/docs/autocomplete.md +29 -0
  24. data/lib/zendesk_api/server/docs/categories.md +193 -0
  25. data/lib/zendesk_api/server/docs/custom_roles.md +88 -0
  26. data/lib/zendesk_api/server/docs/forum_subscriptions.md +139 -0
  27. data/lib/zendesk_api/server/docs/forums.md +229 -0
  28. data/lib/zendesk_api/server/docs/group_memberships.md +229 -0
  29. data/lib/zendesk_api/server/docs/groups.md +212 -0
  30. data/lib/zendesk_api/server/docs/introduction.md +159 -0
  31. data/lib/zendesk_api/server/docs/job_statuses.md +86 -0
  32. data/lib/zendesk_api/server/docs/locales.md +124 -0
  33. data/lib/zendesk_api/server/docs/macros.md +287 -0
  34. data/lib/zendesk_api/server/docs/organizations.md +253 -0
  35. data/lib/zendesk_api/server/docs/problems.md +117 -0
  36. data/lib/zendesk_api/server/docs/requests.md +256 -0
  37. data/lib/zendesk_api/server/docs/satisfaction_ratings.md +136 -0
  38. data/lib/zendesk_api/server/docs/search.md +106 -0
  39. data/lib/zendesk_api/server/docs/sharing_agreements.md +57 -0
  40. data/lib/zendesk_api/server/docs/side_loading.md +125 -0
  41. data/lib/zendesk_api/server/docs/suspended_tickets.md +182 -0
  42. data/lib/zendesk_api/server/docs/tags.md +36 -0
  43. data/lib/zendesk_api/server/docs/ticket_audits.md +657 -0
  44. data/lib/zendesk_api/server/docs/ticket_export.md +121 -0
  45. data/lib/zendesk_api/server/docs/ticket_fields.md +277 -0
  46. data/lib/zendesk_api/server/docs/ticket_import.md +65 -0
  47. data/lib/zendesk_api/server/docs/ticket_metrics.md +125 -0
  48. data/lib/zendesk_api/server/docs/tickets.md +622 -0
  49. data/lib/zendesk_api/server/docs/topic_comments.md +221 -0
  50. data/lib/zendesk_api/server/docs/topic_subscriptions.md +140 -0
  51. data/lib/zendesk_api/server/docs/topic_votes.md +154 -0
  52. data/lib/zendesk_api/server/docs/topics.md +335 -0
  53. data/lib/zendesk_api/server/docs/triggers.md +199 -0
  54. data/lib/zendesk_api/server/docs/user_identities.md +279 -0
  55. data/lib/zendesk_api/server/docs/users.md +400 -0
  56. data/lib/zendesk_api/server/docs/views.md +505 -0
  57. data/lib/zendesk_api/server/helper.rb +104 -0
  58. data/lib/zendesk_api/server/html_renderer.rb +98 -0
  59. data/lib/zendesk_api/server/models/user_request.rb +16 -0
  60. data/lib/zendesk_api/server/models/zlib_json.rb +13 -0
  61. data/lib/zendesk_api/server/public/config.rb +26 -0
  62. data/lib/zendesk_api/server/public/favicon.ico +0 -0
  63. data/lib/zendesk_api/server/public/images/glyphicons-halflings-white.png +0 -0
  64. data/lib/zendesk_api/server/public/images/glyphicons-halflings.png +0 -0
  65. data/lib/zendesk_api/server/public/images/spinner.gif +0 -0
  66. data/lib/zendesk_api/server/public/images/zendesk_developers_bg.png +0 -0
  67. data/lib/zendesk_api/server/public/images/zendesk_developers_header.png +0 -0
  68. data/lib/zendesk_api/server/public/javascripts/application.js +186 -0
  69. data/lib/zendesk_api/server/public/javascripts/bootstrap-alert.js +90 -0
  70. data/lib/zendesk_api/server/public/javascripts/bootstrap-button.js +96 -0
  71. data/lib/zendesk_api/server/public/javascripts/bootstrap-carousel.js +169 -0
  72. data/lib/zendesk_api/server/public/javascripts/bootstrap-collapse.js +157 -0
  73. data/lib/zendesk_api/server/public/javascripts/bootstrap-dropdown.js +100 -0
  74. data/lib/zendesk_api/server/public/javascripts/bootstrap-modal.js +218 -0
  75. data/lib/zendesk_api/server/public/javascripts/bootstrap-popover.js +98 -0
  76. data/lib/zendesk_api/server/public/javascripts/bootstrap-scrollspy.js +151 -0
  77. data/lib/zendesk_api/server/public/javascripts/bootstrap-tab.js +135 -0
  78. data/lib/zendesk_api/server/public/javascripts/bootstrap-tooltip.js +275 -0
  79. data/lib/zendesk_api/server/public/javascripts/bootstrap-transition.js +61 -0
  80. data/lib/zendesk_api/server/public/javascripts/bootstrap-typeahead.js +285 -0
  81. data/lib/zendesk_api/server/public/sass/screen.scss +102 -0
  82. data/lib/zendesk_api/server/public/sass/styles.scss +5 -0
  83. data/lib/zendesk_api/server/public/stylesheets/developer.screen.css +836 -0
  84. data/lib/zendesk_api/server/public/stylesheets/screen.css +129 -0
  85. data/lib/zendesk_api/server/public/stylesheets/styles.css +6208 -0
  86. data/lib/zendesk_api/server/templates/footer.haml +13 -0
  87. data/lib/zendesk_api/server/templates/header.haml +20 -0
  88. data/lib/zendesk_api/server/templates/index.haml +68 -0
  89. data/lib/zendesk_api/server/templates/layout.haml +44 -0
  90. data/lib/zendesk_api/server/templates/param.haml +4 -0
  91. data/lib/zendesk_api/server/templates/search.haml +23 -0
  92. data/lib/zendesk_api/server/templates/sidebar.haml +7 -0
  93. data/lib/zendesk_api/version.rb +1 -1
  94. data/spec/{association_spec.rb → core/association_spec.rb} +1 -1
  95. data/spec/{client_spec.rb → core/client_spec.rb} +1 -1
  96. data/spec/{collection_spec.rb → core/collection_spec.rb} +1 -1
  97. data/spec/{configuration_spec.rb → core/configuration_spec.rb} +1 -1
  98. data/spec/{create_resource_spec.rb → core/create_resource_spec.rb} +1 -1
  99. data/spec/{data_resource_spec.rb → core/data_resource_spec.rb} +1 -1
  100. data/spec/{inflection_spec.rb → core/inflection_spec.rb} +1 -1
  101. data/spec/{lru_cache_spec.rb → core/lru_cache_spec.rb} +1 -1
  102. data/spec/{middleware → core/middleware}/request/etag_cache_spec.rb +1 -1
  103. data/spec/{middleware → core/middleware}/request/retry_spec.rb +1 -1
  104. data/spec/{middleware → core/middleware}/request/test.jpg +0 -0
  105. data/spec/{middleware → core/middleware}/request/upload_spec.rb +1 -1
  106. data/spec/{middleware → core/middleware}/response/callback_spec.rb +1 -1
  107. data/spec/{middleware → core/middleware}/response/deflate_spec.rb +1 -1
  108. data/spec/{middleware → core/middleware}/response/gzip_spec.rb +1 -1
  109. data/spec/{middleware → core/middleware}/response/parse_iso_dates_spec.rb +1 -1
  110. data/spec/{read_resource_spec.rb → core/read_resource_spec.rb} +1 -1
  111. data/spec/{rescue_spec.rb → core/rescue_spec.rb} +1 -1
  112. data/spec/{resource_spec.rb → core/resource_spec.rb} +1 -1
  113. data/spec/{search_spec.rb → core/search_spec.rb} +1 -1
  114. data/spec/{spec_helper.rb → core/spec_helper.rb} +5 -5
  115. data/spec/{trackie_spec.rb → core/trackie_spec.rb} +1 -1
  116. data/{live → spec/live}/Readme.md +0 -0
  117. data/{live → spec/live}/activity_spec.rb +1 -1
  118. data/{live → spec/live}/audit_spec.rb +1 -1
  119. data/{live → spec/live}/bookmark_spec.rb +1 -1
  120. data/{live → spec/live}/category_spec.rb +1 -1
  121. data/{live → spec/live}/collection_spec.rb +1 -1
  122. data/{live → spec/live}/crm_spec.rb +1 -1
  123. data/{live → spec/live}/custom_role_spec.rb +1 -1
  124. data/{live → spec/live}/forum_spec.rb +1 -1
  125. data/{live → spec/live}/forum_subscription_spec.rb +1 -1
  126. data/{live → spec/live}/group_membership_spec.rb +1 -1
  127. data/{live → spec/live}/group_spec.rb +1 -1
  128. data/{live → spec/live}/identity_spec.rb +1 -1
  129. data/{live → spec/live}/locale_spec.rb +1 -1
  130. data/{live → spec/live}/macro_spec.rb +1 -1
  131. data/{live → spec/live}/mobile_device_spec.rb +1 -1
  132. data/{live → spec/live}/organization_spec.rb +1 -1
  133. data/{live → spec/live}/request_spec.rb +1 -1
  134. data/{live → spec/live}/satisfaction_rating_spec.rb +1 -1
  135. data/{live → spec/live}/setting_spec.rb +1 -1
  136. data/{live → spec/live}/suspended_ticket_spec.rb +1 -1
  137. data/{live → spec/live}/ticket_field_spec.rb +1 -1
  138. data/{live → spec/live}/ticket_metrics_spec.rb +1 -1
  139. data/{live → spec/live}/ticket_spec.rb +1 -1
  140. data/spec/live/topic_comment_spec.rb +24 -0
  141. data/{live → spec/live}/topic_spec.rb +1 -1
  142. data/{live → spec/live}/topic_subscription_spec.rb +1 -1
  143. data/{live → spec/live}/topic_vote_spec.rb +1 -1
  144. data/{live → spec/live}/upload_spec.rb +1 -1
  145. data/{live → spec/live}/user_spec.rb +1 -1
  146. data/{live → spec/live}/view_spec.rb +1 -1
  147. data/spec/macros/resource_macros.rb +1 -1
  148. data/spec/server/app_spec.rb +140 -0
  149. data/spec/server/helper_spec.rb +97 -0
  150. data/spec/server/html_renderer_spec.rb +130 -0
  151. data/spec/server/spec_helper.rb +43 -0
  152. metadata +198 -77
  153. data/live/topic_comment_spec.rb +0 -13
@@ -0,0 +1,36 @@
1
+ ## Tags
2
+
3
+ ### List Tags
4
+ `GET /api/v2/tags.json`
5
+
6
+ Lists the most popular recent tags in decreasing popularity
7
+
8
+ #### Allowed For:
9
+
10
+ * Admins
11
+
12
+ #### Using curl
13
+
14
+ ```bash
15
+ curl https://{subdomain}.zendesk.com/api/v2/tags.json \
16
+ -v -u {email_address}:{password}
17
+ ```
18
+
19
+ #### Example Response
20
+
21
+ ```http
22
+ Status: 200 OK
23
+
24
+ {
25
+ "tags": [
26
+ {
27
+ "name": "important",
28
+ "count": 47
29
+ },
30
+ {
31
+ "name": "customer",
32
+ "count": 11
33
+ }
34
+ ]
35
+ }
36
+ ```
@@ -0,0 +1,657 @@
1
+ ## Ticket Audits
2
+
3
+ Audits are a **read-only** history of all updates to a ticket and the events that occur as a result of these updates. When a Ticket is updated in Zendesk, we store an Audit. Each Audit represents a single update to the Ticket, and each Audit includes a list of changes, such as:
4
+
5
+ * Changes to ticket fields
6
+ * Addition of a new comment
7
+ * Addition or removal of tags
8
+ * Notifications sent to Groups, Assignees, Requesters and CCs
9
+
10
+ To learn more about adding new comments to tickets, [see our Ticket documentation](tickets.html#updating-tickets).
11
+
12
+ ### JSON Format
13
+ Audits are represented as JSON objects which have the following keys:
14
+
15
+ | Name | Type | Read-only | Comment
16
+ | ---------- | ---------------------- | --------- | -------
17
+ | id | integer | yes | Automatically assigned when creating audits
18
+ | ticket_id | integer | yes | The ID of the associated ticket
19
+ | metadata | hash | yes | Metadata for the audit, custom and system data
20
+ | Via | [Via](#the-via-object) | yes | This object explains how this audit was created
21
+ | created_at | date | yes | The time the audit was created
22
+ | author_id | integer | yes | The user who created the audit
23
+ | events | array | yes | An array of the events that happened in this audit. See [Audit Events](#audit-events)
24
+
25
+ #### Example
26
+ ```js
27
+ {
28
+ "id": 35436,
29
+ "ticket_id": 47,
30
+ "created_at": "2009-07-20T22:55:29Z",
31
+ "author_id": 35436,
32
+ "metadata": { "custom": { "time_spent": "3m22s" }, "system": { "ip_address": "184.106.40.75" }}
33
+ "via": {
34
+ "channel": "web"
35
+ },
36
+ "events": [
37
+ {
38
+ "id": 1564245,
39
+ "type": "Comment"
40
+ "body": "Thanks for your help!",
41
+ "public": true,
42
+ "attachments": []
43
+ },
44
+ {
45
+ "id": 1564246,
46
+ "type": "Notification"
47
+ "subject": "Your ticket has been updated"
48
+ "body": "Ticket #47 has been updated"
49
+ }
50
+ ]
51
+ }
52
+ ```
53
+
54
+ ### Listing Audits
55
+ `GET /api/v2/tickets/{ticket_id}/audits.json`
56
+
57
+ #### Allowed For
58
+
59
+ * Agents
60
+
61
+ #### Using curl
62
+
63
+ ```bash
64
+ curl https://{subdomain}.zendesk.com/api/v2/tickets/{ticket_id}/audits.json \
65
+ -v -u {email_address}:{password}
66
+ ```
67
+
68
+ #### Example Response
69
+ ```http
70
+ Status: 200 OK
71
+
72
+ {
73
+ "previous_page": null,
74
+ "next_page": null,
75
+ "count": 5,
76
+ "audits": [
77
+ {
78
+ "created_at": "2011/09/25 22:35:44 -0700",
79
+ "via": {
80
+ "channel": "web"
81
+ },
82
+ "metadata": {
83
+ "system": {
84
+ "location": "San Francisco, CA, United States",
85
+ "client": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.186 Safari/535.1",
86
+ "ip_address": "76.218.201.212"
87
+ },
88
+ "custom": {
89
+ }
90
+ },
91
+ "id": 2127301143,
92
+ "ticket_id": 666,
93
+ "events": [
94
+ {
95
+ "html_body": "<p>This is a new private comment</p>",
96
+ "public": false,
97
+ "body": "This is a new private comment",
98
+ "id": 2127301148,
99
+ "type": "Comment",
100
+ "attachments": [
101
+ ]
102
+ },
103
+ {
104
+ "via": {
105
+ "channel": "rule",
106
+ "source": {
107
+ "title": "Assign to first responder",
108
+ "rel": "trigger",
109
+ "id": 22472716,
110
+ "type": "rule"
111
+ }
112
+ },
113
+ "id": 2127301163,
114
+ "value": "open",
115
+ "type": "Change",
116
+ "previous_value": "new",
117
+ "field_name": "status"
118
+ }
119
+ ],
120
+ "author_id": 5246746
121
+ },
122
+ ...
123
+ {
124
+ ...
125
+ "events": [
126
+ ...
127
+ ],
128
+ }
129
+ ]
130
+ }
131
+ ```
132
+
133
+ ### Show Audit
134
+ `GET /api/v2/tickets/{ticket_id}/audits/{id}.json`
135
+
136
+ #### Allowed For
137
+
138
+ * Agents
139
+
140
+ #### Using curl
141
+
142
+ ```bash
143
+ curl https://{subdomain}.zendesk.com/api/v2/tickets/{ticket_id}/audits/{id}.json \
144
+ -v -u {email_address}:{password}
145
+ ```
146
+
147
+ #### Example Response
148
+ ```http
149
+ Status: 200 OK
150
+
151
+ {
152
+ "audit": {
153
+ "created_at": "2011/09/25 22:35:44 -0700",
154
+ "via": {
155
+ "channel": "web"
156
+ },
157
+ "metadata": {
158
+ "system": {
159
+ "location": "San Francisco, CA, United States",
160
+ "client": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.186 Safari/535.1",
161
+ "ip_address": "76.218.201.212"
162
+ },
163
+ "custom": {
164
+ }
165
+ },
166
+ "id": 2127301143,
167
+ "ticket_id": 666,
168
+ "events": [
169
+ {
170
+ "html_body": "<p>This is a new private comment</p>",
171
+ "public": false,
172
+ "body": "This is a new private comment",
173
+ "id": 2127301148,
174
+ "type": "Comment",
175
+ "attachments": []
176
+ },
177
+ {
178
+ "via": {
179
+ "channel": "rule",
180
+ "source": {
181
+ "title": "Assign to first responder",
182
+ "rel": "trigger",
183
+ "id": 22472716,
184
+ "type": "rule"
185
+ }
186
+ },
187
+ "id": 2127301163,
188
+ "value": "open",
189
+ "type": "Change",
190
+ "previous_value": "new",
191
+ "field_name": "status"
192
+ }
193
+ ],
194
+ "author_id": 5246746
195
+ }
196
+ }
197
+ ```
198
+
199
+ ### Marking an Audit as trusted
200
+ `PUT /api/v2/tickets/{ticket_id}/audits/{id}/trust.json`
201
+
202
+ #### Allowed For
203
+
204
+ * Agents
205
+
206
+ #### Using curl
207
+
208
+ ```bash
209
+ curl https://{subdomain}.zendesk.com/api/v2/tickets/{ticket_id}/audits/{id}/trust.json \
210
+ -v -u {email_address}:{password} -X PUT
211
+ ```
212
+
213
+ #### Example Response
214
+ ```http
215
+ Status: 200 OK
216
+ ```
217
+
218
+ ### Change a comment from public to private
219
+ `PUT /api/v2/tickets/{ticket_id}/audits/{id}/make_private.json`
220
+
221
+ #### Allowed For
222
+
223
+ * Agents
224
+
225
+ #### Using curl
226
+
227
+ ```bash
228
+ curl https://{subdomain}.zendesk.com/api/v2/tickets/{ticket_id}/audits/{id}/make_private.json \
229
+ -v -u {email_address}:{password} -X PUT
230
+ ```
231
+
232
+ #### Example Response
233
+ ```http
234
+ Status: 200 OK
235
+ ```
236
+
237
+ ### The Via Object
238
+
239
+ The via object of a ticket audit or audit event tells you how or why the audit or event was created.
240
+ Via Objects can have the following keys:
241
+
242
+ | Name | Type | Comment
243
+ | ---------- | ------- | -------
244
+ | channel | string | This tells you how the ticket or event was created
245
+ | source | object | For some channels a source object gives more information about how or why the ticket or event was created
246
+
247
+ All via objects have a channel, but not all have a source. These are the different possible values for the channel and source values:
248
+
249
+ | channel | source | Description
250
+ | ------------ | ------ | -----------
251
+ | web | none, feedback_tab or batch | The ticket, audit, or event was created via the web interface
252
+ | email | none | The ticket, audit, or event was created via email
253
+ | api | none, ticket_sharing or import | The ticket, audit, or event was created via the API
254
+ | rule | none | The ticket, audit, or event was created via a trigger or automation
255
+ | forum | none | The ticket, audit, or event was created via the forums
256
+ | twitter | favorite, mention or direct_message | The ticket, audit, or event was created via Twitter
257
+ | chat | none | The ticket, audit, or event was created via chat
258
+ | voice | voicemail, inbound or outbound | The ticket, audit, or event was created via a phone call
259
+ | sms | none | The ticket, audit, or event was created via a text message
260
+ | facebook | post or message | The ticket, audit, or event was created via Facebook
261
+ | system | linked_problem, merge, follow_up | The ticket, audit, or event was created by the system
262
+
263
+ ### Audit Events
264
+
265
+ An Audit contains many Events. These Events represent all activity which occurs on a Ticket, including public and private Comments, field changes, notifications send by business rule execution, and events which send notification to external services via our Targets framework.
266
+
267
+ If an Event has a different Via than its Audit, it will have its own Via object.
268
+
269
+ #### Ticket Comments
270
+ Comments represent the conversation between Requesters, Collaborators and Agents on a ticket. Comments can be public or private.
271
+
272
+ Ticket comments have the following keys:
273
+
274
+ | Name | Type | Read-only | Comment
275
+ | --------------- | ------- | --------- | -------
276
+ | id | integer | yes | Automatically assigned when creating events
277
+ | type | string | yes | Has the value `Comment`
278
+ | body | string | yes | The actual comment made by the author
279
+ | html_body | string | yes | The actual comment made by the author formatted to HTML
280
+ | public | boolean | yes | If this is a public comment or an internal agents only note
281
+ | trusted | boolean | yes | If this comment is trusted or marked as being potentially fraudulent
282
+ | author_id | integer | yes | The id of the author of this comment
283
+ | attachments | array | yes | The attachments on this comment as [Attachment](attachments.md) objects
284
+
285
+ #### Example
286
+ ```js
287
+ {
288
+ "id": 1274,
289
+ "type": "Comment"
290
+ "body": "Thanks for your help!",
291
+ "public": true,
292
+ "author_id": 1,
293
+ "attachments": [
294
+ {
295
+ "id": 498483,
296
+ "name": "crash.log",
297
+ "content_url": "https://company.zendesk.com/attachments/crash.log",
298
+ "content_type": "text/plain",
299
+ "size": 2532,
300
+ "thumbnails": []
301
+ }
302
+ ]
303
+ }
304
+ ```
305
+
306
+ #### Ticket Voice Comments
307
+ Voice Comments are added to a ticket via our integrated Zendesk Voice feature.
308
+
309
+ Voice Comments have the following keys:
310
+
311
+ | Name | Type | Read-only | Comment
312
+ | --------------- | ------- | --------- | -------
313
+ | id | integer | yes | Automatically assigned when creating events
314
+ | type | string | yes | Has the value `VoiceComment`
315
+ | data | string | yes | A hash of properties about the call
316
+ | public | boolean | yes | If true, the ticket requester can see this comment
317
+
318
+ #### Example
319
+ ```js
320
+ {
321
+ "id": 1274,
322
+ "type": "VoiceComment"
323
+ "body": "Thanks for your help!",
324
+ "data": TODO
325
+ "formatted_from": TODO
326
+ "transcription_visible": TODO
327
+ "public": true,
328
+ "attachments": []
329
+ }
330
+ ```
331
+
332
+ #### Ticket Comment Privacy Change
333
+ If an Agent erroneously makes a public comment on a Ticket when they intended for it to be private, they can mark the comment as private. This event tracks the fact that this occurred.
334
+
335
+ Ticket comment privacy change events have the following keys:
336
+
337
+ | Name | Type | Read-only | Comment
338
+ | --------------- | ------- | --------- | -------
339
+ | id | integer | yes | Automatically assigned when creating events
340
+ | type | string | yes | Has the value `CommentPrivacyChange`
341
+ | comment_id | integer | yes | The id if the comment that changed privacy
342
+ | public | boolean | yes | Tells if the comment was made public or private
343
+
344
+ #### Example
345
+ ```js
346
+ {
347
+ "id": 1274,
348
+ "type": "CommentPrivacyChange",
349
+ "comment_id": 453,
350
+ "public": false
351
+ }
352
+ ```
353
+
354
+ #### Ticket Create Events
355
+ Each property that is set on a newly created Ticket is tracked with a Create event.
356
+
357
+ Create events have the following keys:
358
+
359
+ | Name | Type | Read-only | Comment
360
+ | ---------- | ------- | --------- | -------
361
+ | id | integer | yes | Automatically assigned when creating events
362
+ | type | string | yes | Has the value `Create`
363
+ | field_name | string | yes | The name of the field that was set
364
+ | value | string | yes | The value of the field that was set
365
+
366
+ #### Example
367
+ ```js
368
+ {
369
+ "id": 1274,
370
+ "type": "Create"
371
+ "field_name": "status",
372
+ "value": "new"
373
+ }
374
+ ```
375
+
376
+ #### Ticket Change Events
377
+ When a ticket is updated, Change events track the previous and newly updated value of each ticket property.
378
+
379
+ Change events have the following keys:
380
+
381
+ | Name | Type | Read-only | Comment
382
+ | -------------- | ------- | --------- | -------
383
+ | id | integer | yes | Automatically assigned when creating events
384
+ | type | string | yes | Has the value `Change`
385
+ | field_name | string | yes | The name of the field that was changed
386
+ | value | string | yes | The value of the field that was changed
387
+ | previous_value | string | yes | The previous value of the field that was changed
388
+
389
+ #### Example
390
+ ```js
391
+ {
392
+ "id": 1274,
393
+ "type": "Change"
394
+ "field_name": "subject",
395
+ "value": "My printer is on fire!",
396
+ "previous_value": "I need help!"
397
+ }
398
+ ```
399
+
400
+ #### Notifications
401
+ When a Ticket is created or updated, business rules are evaluated against the Ticket. These business rules can be configured to send various notifications.
402
+
403
+ Notifications have the following keys:
404
+
405
+ | Name | Type | Read-only | Comment
406
+ | --------------- | ---------------------- | --------- | -------
407
+ | id | integer | yes | Automatically assigned when creating events
408
+ | type | string | yes | Has the value `Notification`
409
+ | subject | string | yes | The subject of the message sent to the recipients
410
+ | body | string | yes | The message sent to the recipients
411
+ | recipients | array | yes | A array of simple object holding the ids and names of the recipients of this notification
412
+ | via | [Via](#the-via-object) | yes | A reference to the trigger that created this notification
413
+
414
+ #### Example
415
+ ```js
416
+ {
417
+ "id": 1275,
418
+ "type": "Notification"
419
+ "subject": "Your ticket has been updated"
420
+ "body": "Ticket #235 has been updated"
421
+ "recipients": [847390, 93905],
422
+ "via": {
423
+ "channel": "system",
424
+ "source": {
425
+ "type": "rule",
426
+ "id": 61,
427
+ "title": "Notify assignee of comment update"
428
+ }
429
+ }
430
+ }
431
+ ```
432
+
433
+ #### Ticket CC Events
434
+ When a CC (also known as a Collaborator) is notified of a Ticket update, a CC event is added.
435
+
436
+ Ticket CC Events have the following keys:
437
+
438
+ | Name | Type | Read-only | Comment
439
+ | --------------- | ---------------------- | --------- | -------
440
+ | id | integer | yes | Automatically assigned when creating events
441
+ | type | string | yes | Has the value `Cc`
442
+ | recipients | array | yes | A array of simple object holding the ids and names of the recipients of this notification
443
+ | via | [Via](#the-via-object) | yes | A reference to the trigger that created this notification
444
+
445
+ #### Example
446
+ ```js
447
+ {
448
+ "id": 1275,
449
+ "type": "Cc"
450
+ "recipients": [847390, 93905],
451
+ "via": {
452
+ "channel": "system",
453
+ "source": {
454
+ "type": "rule",
455
+ "id": 61,
456
+ "title": "Notify assignee of comment update"
457
+ }
458
+ }
459
+ }
460
+ ```
461
+
462
+ #### Ticket Errors
463
+
464
+ Ticket Error events track any system errors that occur in the processing of a ticket.
465
+
466
+ Ticket errors have the following keys:
467
+
468
+ | Name | Type | Read-only | Comment
469
+ | --------------- | ------- | --------- | -------
470
+ | id | integer | yes | Automatically assigned when creating events
471
+ | type | string | yes | Has the value `Error`
472
+ | message | string | yes | The error message
473
+
474
+ #### Example
475
+ ```js
476
+ {
477
+ "id": 1274,
478
+ "type": "Error",
479
+ "message": 453
480
+ }
481
+ ```
482
+
483
+ #### External Ticket Events
484
+
485
+ External ticket events have the following keys:
486
+
487
+ | Name | Type | Read-only | Comment
488
+ | --------------- | ------- | --------- | -------
489
+ | id | integer | yes | Automatically assigned when creating events
490
+ | type | string | yes | Has the value `External`
491
+ | resource | string | yes | TODO
492
+ | body | string | yes | TODO
493
+ | success | string | yes | TODO
494
+
495
+ #### Example
496
+ ```js
497
+ {
498
+ "id": 1274,
499
+ "type": "External",
500
+ "resource": "WE NEED A GOOD EXAMPLE", //TODO
501
+ "body": "WE NEED A GOOD EXAMPLE", //TODO
502
+ "success": "WE NEED A GOOD EXAMPLE" //TODO
503
+ }
504
+ ```
505
+
506
+ #### Facebook Events
507
+ Facebook Events track when a Facebook comment was posted back to a Facebook Wall post or Facebook Page private message.
508
+
509
+ Facebook Events have the following keys:
510
+
511
+ | Name | Type | Read-only | Comment
512
+ | --------------- | ------- | --------- | -------
513
+ | id | integer | yes | Automatically assigned when creating events
514
+ | type | string | yes | Has the value `FacebookEvent`
515
+ | page | hash | yes | The name and graph id of the Facebook Page associated with the event
516
+ | communication | integer | yes | The Zendesk id of the associated communication (wall post or message)
517
+ | ticket_via | string | yes | "post" or "message" depending on association with a Wall Post or a Private Message
518
+ | body | string | yes | The value of the message posted to Facebook
519
+
520
+ #### Example
521
+ ```js
522
+ {
523
+ "id": 1274,
524
+ "type": "FacebookEvent",
525
+ "page": {
526
+ "name" => "Zendesk",
527
+ "graph_id" => "61675732935"
528
+ },
529
+ "communication" => 5,
530
+ "ticket_via" => "post"
531
+ "body" => "Thanks!"
532
+ }
533
+ ```
534
+
535
+ #### Log Me In Transcript Events
536
+ Log Me In Transcript events have the following keys:
537
+
538
+ | Name | Type | Read-only | Comment
539
+ | --------------- | ------- | --------- | -------
540
+ | id | integer | yes | Automatically assigned when creating events
541
+ | type | string | yes | Has the value `LogMeInTranscript`
542
+ | body | string | yes | TODO
543
+
544
+ #### Example
545
+ ```js
546
+ {
547
+ "id": 1274,
548
+ "type": "LogMeInTranscript",
549
+ "body": "WE NEED A GOOD EXAMPLE" //TODO
550
+ }
551
+ ```
552
+
553
+ #### Push Events
554
+ Push events have the following keys:
555
+
556
+ | Name | Type | Read-only | Comment
557
+ | --------------- | ------- | --------- | -------
558
+ | id | integer | yes | Automatically assigned when creating events
559
+ | type | string | yes | Has the value `Push`
560
+ | value | string | yes | TODO
561
+ | value_reference | string | yes | TODO
562
+
563
+ #### Example
564
+ ```js
565
+ {
566
+ "id": 1274,
567
+ "type": "Push",
568
+ "value": "WE NEED A GOOD EXAMPLE", //TODO
569
+ "value_reference": "WE NEED A GOOD EXAMPLE" //TODO
570
+ }
571
+ ```
572
+
573
+ #### Satisfaction Rating Events
574
+ Satisfaction rating events have the following keys:
575
+
576
+ | Name | Type | Read-only | Comment
577
+ | --------------- | ------- | --------- | -------
578
+ | id | integer | yes | Automatically assigned when creating events
579
+ | type | string | yes | Has the value `SatisfactionRating`
580
+ | score | string | yes | The rating state "offered", "unoffered", "good", "bad"
581
+ | assignee_id | integer | yes | Who the ticket was assigned to upon rating time
582
+ | body | string | yes | The users comment posted during rating
583
+
584
+ #### Example
585
+ ```js
586
+ {
587
+ "id": 1274,
588
+ "type": "SatisfactionRating",
589
+ "score": "good",
590
+ "assignee_id": 87374,
591
+ "body": "Thanks, you guys are great!"
592
+ }
593
+ ```
594
+
595
+ #### Tweet Events
596
+ Tweet events have the following keys:
597
+
598
+ | Name | Type | Read-only | Comment
599
+ | --------------- | ------- | --------- | -------
600
+ | id | integer | yes | Automatically assigned when creating events
601
+ | type | string | yes | Has the value `Tweet`
602
+ | direct_message | boolean | yes | Whether this tweet was a direct message
603
+ | body | string | yes | The body of the tweet
604
+ | recipients | array | yes | The recipients of this tweet
605
+
606
+ #### Example
607
+ ```js
608
+ {
609
+ "id": 1274,
610
+ "type": "Tweet",
611
+ "direct_message": false,
612
+ "body": "Hi there",
613
+ "recipients": [847390, 93905]
614
+ }
615
+ ```
616
+
617
+ #### SMS Events
618
+ SMS events have the following keys:
619
+
620
+ | Name | Type | Read-only | Comment
621
+ | --------------- | ------- | --------- | -------
622
+ | id | integer | yes | Automatically assigned when creating events
623
+ | type | string | yes | Has the value `SMS`
624
+ | body | string | yes | TODO
625
+ | phone_number | string | yes | TODO
626
+ | recipient_id | string | yes | TODO
627
+
628
+ #### Example
629
+ ```js
630
+ {
631
+ "id": 1274,
632
+ "type": "SMS",
633
+ "body": "There is an update on Zendesk Ticket #5656",
634
+ "phone_number": "555 123 4567",
635
+ "recipient_id": 9873938
636
+ }
637
+ ```
638
+
639
+ #### Ticket Sharing Events
640
+ Ticket sharing events have the following keys:
641
+
642
+ | Name | Type | Read-only | Comment
643
+ | --------------- | ------- | --------- | -------
644
+ | id | integer | yes | Automatically assigned when creating events
645
+ | type | string | yes | Has the value `TicketSharingEvent`
646
+ | agreement_id | integer | yes | TODO
647
+ | action | string | yes | either `shared` or `unshared` TODO
648
+
649
+ #### Example
650
+ ```js
651
+ {
652
+ "id": 1274,
653
+ "type": "TicketSharingEvent",
654
+ "agreement_id": 3454,
655
+ "action": "shared"
656
+ }
657
+ ```