zendesk_api 0.1.11 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +3 -0
- data/.travis.yml +1 -3
- data/Gemfile +24 -0
- data/Gemfile.lock +75 -10
- data/Procfile +1 -0
- data/Rakefile +10 -3
- data/Readme.md +65 -0
- data/bin/zendesk +26 -0
- data/config.ru +6 -0
- data/config/mongoid.yml +81 -0
- data/lib/zendesk_api/actions.rb +2 -2
- data/lib/zendesk_api/collection.rb +15 -4
- data/lib/zendesk_api/console/base.rb +12 -0
- data/lib/zendesk_api/console/console.rb +144 -0
- data/lib/zendesk_api/console/extensions.rb +183 -0
- data/lib/zendesk_api/console/options.rb +41 -0
- data/lib/zendesk_api/resource.rb +12 -1
- data/lib/zendesk_api/resources.rb +28 -8
- data/lib/zendesk_api/server/base.rb +119 -0
- data/lib/zendesk_api/server/docs/account_settings.md +145 -0
- data/lib/zendesk_api/server/docs/activity_stream.md +121 -0
- data/lib/zendesk_api/server/docs/attachments.md +73 -0
- data/lib/zendesk_api/server/docs/autocomplete.md +29 -0
- data/lib/zendesk_api/server/docs/categories.md +193 -0
- data/lib/zendesk_api/server/docs/custom_roles.md +88 -0
- data/lib/zendesk_api/server/docs/forum_subscriptions.md +139 -0
- data/lib/zendesk_api/server/docs/forums.md +229 -0
- data/lib/zendesk_api/server/docs/group_memberships.md +229 -0
- data/lib/zendesk_api/server/docs/groups.md +212 -0
- data/lib/zendesk_api/server/docs/introduction.md +159 -0
- data/lib/zendesk_api/server/docs/job_statuses.md +86 -0
- data/lib/zendesk_api/server/docs/locales.md +124 -0
- data/lib/zendesk_api/server/docs/macros.md +287 -0
- data/lib/zendesk_api/server/docs/organizations.md +253 -0
- data/lib/zendesk_api/server/docs/problems.md +117 -0
- data/lib/zendesk_api/server/docs/requests.md +256 -0
- data/lib/zendesk_api/server/docs/satisfaction_ratings.md +136 -0
- data/lib/zendesk_api/server/docs/search.md +106 -0
- data/lib/zendesk_api/server/docs/sharing_agreements.md +57 -0
- data/lib/zendesk_api/server/docs/side_loading.md +125 -0
- data/lib/zendesk_api/server/docs/suspended_tickets.md +182 -0
- data/lib/zendesk_api/server/docs/tags.md +36 -0
- data/lib/zendesk_api/server/docs/ticket_audits.md +657 -0
- data/lib/zendesk_api/server/docs/ticket_export.md +121 -0
- data/lib/zendesk_api/server/docs/ticket_fields.md +277 -0
- data/lib/zendesk_api/server/docs/ticket_import.md +65 -0
- data/lib/zendesk_api/server/docs/ticket_metrics.md +125 -0
- data/lib/zendesk_api/server/docs/tickets.md +622 -0
- data/lib/zendesk_api/server/docs/topic_comments.md +221 -0
- data/lib/zendesk_api/server/docs/topic_subscriptions.md +140 -0
- data/lib/zendesk_api/server/docs/topic_votes.md +154 -0
- data/lib/zendesk_api/server/docs/topics.md +335 -0
- data/lib/zendesk_api/server/docs/triggers.md +199 -0
- data/lib/zendesk_api/server/docs/user_identities.md +279 -0
- data/lib/zendesk_api/server/docs/users.md +400 -0
- data/lib/zendesk_api/server/docs/views.md +505 -0
- data/lib/zendesk_api/server/helper.rb +104 -0
- data/lib/zendesk_api/server/html_renderer.rb +98 -0
- data/lib/zendesk_api/server/models/user_request.rb +16 -0
- data/lib/zendesk_api/server/models/zlib_json.rb +13 -0
- data/lib/zendesk_api/server/public/config.rb +26 -0
- data/lib/zendesk_api/server/public/favicon.ico +0 -0
- data/lib/zendesk_api/server/public/images/glyphicons-halflings-white.png +0 -0
- data/lib/zendesk_api/server/public/images/glyphicons-halflings.png +0 -0
- data/lib/zendesk_api/server/public/images/spinner.gif +0 -0
- data/lib/zendesk_api/server/public/images/zendesk_developers_bg.png +0 -0
- data/lib/zendesk_api/server/public/images/zendesk_developers_header.png +0 -0
- data/lib/zendesk_api/server/public/javascripts/application.js +186 -0
- data/lib/zendesk_api/server/public/javascripts/bootstrap-alert.js +90 -0
- data/lib/zendesk_api/server/public/javascripts/bootstrap-button.js +96 -0
- data/lib/zendesk_api/server/public/javascripts/bootstrap-carousel.js +169 -0
- data/lib/zendesk_api/server/public/javascripts/bootstrap-collapse.js +157 -0
- data/lib/zendesk_api/server/public/javascripts/bootstrap-dropdown.js +100 -0
- data/lib/zendesk_api/server/public/javascripts/bootstrap-modal.js +218 -0
- data/lib/zendesk_api/server/public/javascripts/bootstrap-popover.js +98 -0
- data/lib/zendesk_api/server/public/javascripts/bootstrap-scrollspy.js +151 -0
- data/lib/zendesk_api/server/public/javascripts/bootstrap-tab.js +135 -0
- data/lib/zendesk_api/server/public/javascripts/bootstrap-tooltip.js +275 -0
- data/lib/zendesk_api/server/public/javascripts/bootstrap-transition.js +61 -0
- data/lib/zendesk_api/server/public/javascripts/bootstrap-typeahead.js +285 -0
- data/lib/zendesk_api/server/public/sass/screen.scss +102 -0
- data/lib/zendesk_api/server/public/sass/styles.scss +5 -0
- data/lib/zendesk_api/server/public/stylesheets/developer.screen.css +836 -0
- data/lib/zendesk_api/server/public/stylesheets/screen.css +129 -0
- data/lib/zendesk_api/server/public/stylesheets/styles.css +6208 -0
- data/lib/zendesk_api/server/templates/footer.haml +13 -0
- data/lib/zendesk_api/server/templates/header.haml +20 -0
- data/lib/zendesk_api/server/templates/index.haml +68 -0
- data/lib/zendesk_api/server/templates/layout.haml +44 -0
- data/lib/zendesk_api/server/templates/param.haml +4 -0
- data/lib/zendesk_api/server/templates/search.haml +23 -0
- data/lib/zendesk_api/server/templates/sidebar.haml +7 -0
- data/lib/zendesk_api/version.rb +1 -1
- data/spec/{association_spec.rb → core/association_spec.rb} +1 -1
- data/spec/{client_spec.rb → core/client_spec.rb} +1 -1
- data/spec/{collection_spec.rb → core/collection_spec.rb} +1 -1
- data/spec/{configuration_spec.rb → core/configuration_spec.rb} +1 -1
- data/spec/{create_resource_spec.rb → core/create_resource_spec.rb} +1 -1
- data/spec/{data_resource_spec.rb → core/data_resource_spec.rb} +1 -1
- data/spec/{inflection_spec.rb → core/inflection_spec.rb} +1 -1
- data/spec/{lru_cache_spec.rb → core/lru_cache_spec.rb} +1 -1
- data/spec/{middleware → core/middleware}/request/etag_cache_spec.rb +1 -1
- data/spec/{middleware → core/middleware}/request/retry_spec.rb +1 -1
- data/spec/{middleware → core/middleware}/request/test.jpg +0 -0
- data/spec/{middleware → core/middleware}/request/upload_spec.rb +1 -1
- data/spec/{middleware → core/middleware}/response/callback_spec.rb +1 -1
- data/spec/{middleware → core/middleware}/response/deflate_spec.rb +1 -1
- data/spec/{middleware → core/middleware}/response/gzip_spec.rb +1 -1
- data/spec/{middleware → core/middleware}/response/parse_iso_dates_spec.rb +1 -1
- data/spec/{read_resource_spec.rb → core/read_resource_spec.rb} +1 -1
- data/spec/{rescue_spec.rb → core/rescue_spec.rb} +1 -1
- data/spec/{resource_spec.rb → core/resource_spec.rb} +1 -1
- data/spec/{search_spec.rb → core/search_spec.rb} +1 -1
- data/spec/{spec_helper.rb → core/spec_helper.rb} +5 -5
- data/spec/{trackie_spec.rb → core/trackie_spec.rb} +1 -1
- data/{live → spec/live}/Readme.md +0 -0
- data/{live → spec/live}/activity_spec.rb +1 -1
- data/{live → spec/live}/audit_spec.rb +1 -1
- data/{live → spec/live}/bookmark_spec.rb +1 -1
- data/{live → spec/live}/category_spec.rb +1 -1
- data/{live → spec/live}/collection_spec.rb +1 -1
- data/{live → spec/live}/crm_spec.rb +1 -1
- data/{live → spec/live}/custom_role_spec.rb +1 -1
- data/{live → spec/live}/forum_spec.rb +1 -1
- data/{live → spec/live}/forum_subscription_spec.rb +1 -1
- data/{live → spec/live}/group_membership_spec.rb +1 -1
- data/{live → spec/live}/group_spec.rb +1 -1
- data/{live → spec/live}/identity_spec.rb +1 -1
- data/{live → spec/live}/locale_spec.rb +1 -1
- data/{live → spec/live}/macro_spec.rb +1 -1
- data/{live → spec/live}/mobile_device_spec.rb +1 -1
- data/{live → spec/live}/organization_spec.rb +1 -1
- data/{live → spec/live}/request_spec.rb +1 -1
- data/{live → spec/live}/satisfaction_rating_spec.rb +1 -1
- data/{live → spec/live}/setting_spec.rb +1 -1
- data/{live → spec/live}/suspended_ticket_spec.rb +1 -1
- data/{live → spec/live}/ticket_field_spec.rb +1 -1
- data/{live → spec/live}/ticket_metrics_spec.rb +1 -1
- data/{live → spec/live}/ticket_spec.rb +1 -1
- data/spec/live/topic_comment_spec.rb +24 -0
- data/{live → spec/live}/topic_spec.rb +1 -1
- data/{live → spec/live}/topic_subscription_spec.rb +1 -1
- data/{live → spec/live}/topic_vote_spec.rb +1 -1
- data/{live → spec/live}/upload_spec.rb +1 -1
- data/{live → spec/live}/user_spec.rb +1 -1
- data/{live → spec/live}/view_spec.rb +1 -1
- data/spec/macros/resource_macros.rb +1 -1
- data/spec/server/app_spec.rb +140 -0
- data/spec/server/helper_spec.rb +97 -0
- data/spec/server/html_renderer_spec.rb +130 -0
- data/spec/server/spec_helper.rb +43 -0
- metadata +198 -77
- data/live/topic_comment_spec.rb +0 -13
|
@@ -0,0 +1,505 @@
|
|
|
1
|
+
## Views
|
|
2
|
+
|
|
3
|
+
### JSON Format
|
|
4
|
+
Views are read-only and represented as simple flat JSON objects which have the following keys.
|
|
5
|
+
|
|
6
|
+
| Name | Type | Comment
|
|
7
|
+
| --------------- | ---------------------------| -------------------
|
|
8
|
+
| id | integer | Automatically assigned when created
|
|
9
|
+
| title | string | The title of the view
|
|
10
|
+
| active | boolean | Useful for determining if the view should be displayed
|
|
11
|
+
| restriction | object | Who may access this account. Will be null when everyone in the account can access it.
|
|
12
|
+
| execution | [Execute](#execution) | An object describing how the view should be executed
|
|
13
|
+
| conditions | [Conditions](#conditions) | An object describing how the view is constructed
|
|
14
|
+
| created_at | date | The time the view was created
|
|
15
|
+
| updated_at | date | The time of the last update of the view
|
|
16
|
+
|
|
17
|
+
#### Example
|
|
18
|
+
```js
|
|
19
|
+
{
|
|
20
|
+
"view": {
|
|
21
|
+
"id": 25,
|
|
22
|
+
"title": "Tickets updated <12 Hours",
|
|
23
|
+
"active": true,
|
|
24
|
+
"execution": { ... },
|
|
25
|
+
"conditions": [ ... ],
|
|
26
|
+
"restriction": {
|
|
27
|
+
"type": "User",
|
|
28
|
+
"id": 4
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
### Execution
|
|
35
|
+
View Execution is a read-only object that describes how to display a collection of tickets in a View.
|
|
36
|
+
|
|
37
|
+
| Name | Type | Comment
|
|
38
|
+
| --------------- | ------- | -------
|
|
39
|
+
| fields | Array | The ticket fields to display. System fields have a string id.
|
|
40
|
+
| custom_fields | Array | The custom ticket fields to display. Custom fields have an id and url referencing the [Ticket Field](ticket_fields.md)
|
|
41
|
+
| group_by | String | When present, the field by which the tickets are grouped
|
|
42
|
+
| group_order | String | The direction the tickets are grouped. May be one of 'asc' or 'desc'
|
|
43
|
+
| sort_order | String | The direction the tickets are sorted. May be one of 'asc' or 'desc'
|
|
44
|
+
| sort_by | String | The ticket field used for sorting. This will either be a title or a custom field id.
|
|
45
|
+
|
|
46
|
+
#### Example
|
|
47
|
+
```js
|
|
48
|
+
{
|
|
49
|
+
"execution":{
|
|
50
|
+
"fields": [
|
|
51
|
+
{ "id": "status", "title": "Status" },
|
|
52
|
+
{ "id": "updated", "title": "Updated" }
|
|
53
|
+
],
|
|
54
|
+
"custom_fields": [
|
|
55
|
+
{
|
|
56
|
+
"id": 5, "title": "Account",
|
|
57
|
+
"url": "https://example.zendesk.com/api/v2/ticket_fields/5.json"
|
|
58
|
+
},
|
|
59
|
+
...
|
|
60
|
+
]
|
|
61
|
+
"group_by":null,
|
|
62
|
+
"sort_order":"desc",
|
|
63
|
+
"sort_by":"updated"
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
### Conditions
|
|
69
|
+
The conditions under which a ticket is selected.
|
|
70
|
+
|
|
71
|
+
| Name | Type | Comment
|
|
72
|
+
| ------------ | ------- | -------
|
|
73
|
+
| all | array | Tickets must fulfill *all* of these conditions to be considered matching
|
|
74
|
+
| any | array | Tickets may satisfy *any* of these conditions to be considered matching
|
|
75
|
+
|
|
76
|
+
#### Example
|
|
77
|
+
```js
|
|
78
|
+
{
|
|
79
|
+
"conditions": {
|
|
80
|
+
"all": [
|
|
81
|
+
{ "field": "status", "operator": "less_than", "value": "solved" },
|
|
82
|
+
{ "field": "assignee", "operator": "is", "value": "me" },
|
|
83
|
+
],
|
|
84
|
+
"any": [
|
|
85
|
+
]
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
<!---
|
|
91
|
+
|
|
92
|
+
### View Rows
|
|
93
|
+
|
|
94
|
+
View Rows are read-only and represented as simple flat JSON objects which have the following keys.
|
|
95
|
+
|
|
96
|
+
| Name | Type | Comment
|
|
97
|
+
| --------------- | --------------------------- | -------------------
|
|
98
|
+
| view | Array | View that was executed. Consists of id and url.
|
|
99
|
+
| rows | Array | Array of tickets contained in the view, described by the fields.
|
|
100
|
+
| columns | Array | Array of [Fields](#execution) and [Custom Fields](#execution) representing the columns in each row.
|
|
101
|
+
|
|
102
|
+
A row contains the data indicated by the idenitifiers in the columns array.
|
|
103
|
+
|
|
104
|
+
| Name | Type | Optional | Comment
|
|
105
|
+
| ---------------------- | ---------------------------- | --------- | ----------------
|
|
106
|
+
| ticket | Object | no | Ticket id, url, subject, description, status, type, priority and comment this row is a subset of.
|
|
107
|
+
| custom_fields | Array | no | Custom fields values.
|
|
108
|
+
| group | Integer | yes | Id of this ticket's group.
|
|
109
|
+
| organization | Integer | yes | Id of this ticket's organization.
|
|
110
|
+
| requester | Integer | yes | Id of this ticket's requester.
|
|
111
|
+
| assignee | Integer | yes | Id of this ticket's assignee.
|
|
112
|
+
| submitter | Integer | yes | Id of this ticket's submitter.
|
|
113
|
+
| locale | String | yes | Locale of the requester.
|
|
114
|
+
| type | String | yes | See [Ticket](tickets.md#json-format)
|
|
115
|
+
| priority | String | yes | See [Ticket](tickets.md#json-format)
|
|
116
|
+
| status | String | yes | See [Ticket](tickets.md#json-format)
|
|
117
|
+
| updated_by_type | String | yes | Last updated by 'agent' or 'end user'
|
|
118
|
+
| subject | DateTime | yes | Ticket subject.
|
|
119
|
+
| requester_updated_at | DateTime | yes | When the requester last updated the ticket.
|
|
120
|
+
| assignee_updated_at | DateTime | yes | When the assignee last updated the ticket.
|
|
121
|
+
| assigned | DateTime | yes | When the ticket was assigned last.
|
|
122
|
+
| due_date | DateTime | yes | When the ticket is due.
|
|
123
|
+
| solved | DateTime | yes | When the ticket was solved.
|
|
124
|
+
| created | DateTime | yes | When the ticket was created.
|
|
125
|
+
| updated | DateTime | yes | When the ticket was updated.
|
|
126
|
+
|
|
127
|
+
#### Example
|
|
128
|
+
```js
|
|
129
|
+
{
|
|
130
|
+
"view": {
|
|
131
|
+
"id": 5,
|
|
132
|
+
"url": "https://example.zendesk.com/api/v2/views/5.json"
|
|
133
|
+
},
|
|
134
|
+
"rows": [
|
|
135
|
+
{
|
|
136
|
+
"ticket": { ... },
|
|
137
|
+
"locale": "en-US",
|
|
138
|
+
"group": { ... },
|
|
139
|
+
...
|
|
140
|
+
},
|
|
141
|
+
...
|
|
142
|
+
],
|
|
143
|
+
"columns": [
|
|
144
|
+
{
|
|
145
|
+
"id": "locale",
|
|
146
|
+
"title": "Locale"
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"id": 5,
|
|
150
|
+
"title": "Account",
|
|
151
|
+
"url": ...
|
|
152
|
+
},
|
|
153
|
+
...
|
|
154
|
+
]
|
|
155
|
+
}
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
-->
|
|
159
|
+
|
|
160
|
+
### List Views
|
|
161
|
+
`GET /api/v2/views.json`
|
|
162
|
+
|
|
163
|
+
Lists shared and personal Views available to the current user
|
|
164
|
+
|
|
165
|
+
#### Allowed For:
|
|
166
|
+
|
|
167
|
+
* Agents
|
|
168
|
+
|
|
169
|
+
#### Using curl
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
curl https://{subdomain}.zendesk.com/api/v2/views.json \
|
|
173
|
+
-v -u {email_address}:{password}
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
#### Example Response
|
|
177
|
+
|
|
178
|
+
```http
|
|
179
|
+
Status: 200 OK
|
|
180
|
+
|
|
181
|
+
{
|
|
182
|
+
"views": [
|
|
183
|
+
{
|
|
184
|
+
"id":25,
|
|
185
|
+
"title":"Tickets updated <12 Hours",
|
|
186
|
+
"active":true,
|
|
187
|
+
"execution":{ ... },
|
|
188
|
+
"conditions": { ... },
|
|
189
|
+
"restriction":{ ... }
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
"id":23,
|
|
193
|
+
"title":"Unassigned tickets",
|
|
194
|
+
"active":false,
|
|
195
|
+
"execution":{ ... },
|
|
196
|
+
"conditions": { ... },
|
|
197
|
+
"restriction":{ ... }
|
|
198
|
+
},
|
|
199
|
+
...
|
|
200
|
+
],
|
|
201
|
+
"count": 7,
|
|
202
|
+
"next_page": null,
|
|
203
|
+
"previous_page": null
|
|
204
|
+
}
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
### List Active Views
|
|
208
|
+
`GET /api/v2/views/active.json`
|
|
209
|
+
|
|
210
|
+
Lists active shared and personal Views available to the current user
|
|
211
|
+
|
|
212
|
+
#### Allowed For:
|
|
213
|
+
|
|
214
|
+
* Agents
|
|
215
|
+
|
|
216
|
+
#### Using curl
|
|
217
|
+
|
|
218
|
+
```bash
|
|
219
|
+
curl https://{subdomain}.zendesk.com/api/v2/views/active.json \
|
|
220
|
+
-v -u {email_address}:{password}
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
#### Example Response
|
|
224
|
+
|
|
225
|
+
```http
|
|
226
|
+
Status: 200 OK
|
|
227
|
+
|
|
228
|
+
{
|
|
229
|
+
"views": [
|
|
230
|
+
{
|
|
231
|
+
"id": 25,
|
|
232
|
+
"title": "Tickets updated <12 Hours",
|
|
233
|
+
"active": true
|
|
234
|
+
"execution": { ... },
|
|
235
|
+
"conditions": { ... },
|
|
236
|
+
"restriction": { ... }
|
|
237
|
+
},
|
|
238
|
+
...
|
|
239
|
+
],
|
|
240
|
+
"count": 7,
|
|
241
|
+
"next_page": null,
|
|
242
|
+
"previous_page": null
|
|
243
|
+
}
|
|
244
|
+
```
|
|
245
|
+
|
|
246
|
+
### List Views - Compact
|
|
247
|
+
`GET /api/v2/views/compact.json`
|
|
248
|
+
|
|
249
|
+
A compacted shared and personal Views available to the current user
|
|
250
|
+
|
|
251
|
+
#### Allowed For:
|
|
252
|
+
|
|
253
|
+
* Agents
|
|
254
|
+
|
|
255
|
+
#### Using curl
|
|
256
|
+
|
|
257
|
+
```bash
|
|
258
|
+
curl https://{subdomain}.zendesk.com/api/v2/views/compact.json \
|
|
259
|
+
-v -u {email_address}:{password}
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
#### Example Response
|
|
263
|
+
|
|
264
|
+
```http
|
|
265
|
+
Status: 200 OK
|
|
266
|
+
|
|
267
|
+
{
|
|
268
|
+
"views": [
|
|
269
|
+
{
|
|
270
|
+
"id": 25,
|
|
271
|
+
"title": "Tickets updated <12 Hours",
|
|
272
|
+
"active": true
|
|
273
|
+
"execution": { ... },
|
|
274
|
+
"conditions": { ... },
|
|
275
|
+
"restriction": { ... }
|
|
276
|
+
},
|
|
277
|
+
...
|
|
278
|
+
],
|
|
279
|
+
"count": 7,
|
|
280
|
+
"next_page": null,
|
|
281
|
+
"previous_page": null
|
|
282
|
+
}
|
|
283
|
+
```
|
|
284
|
+
|
|
285
|
+
### Getting Views
|
|
286
|
+
`GET /api/v2/views/{id}.json`
|
|
287
|
+
|
|
288
|
+
#### Allowed For:
|
|
289
|
+
|
|
290
|
+
* Agents
|
|
291
|
+
|
|
292
|
+
#### Using curl
|
|
293
|
+
|
|
294
|
+
```bash
|
|
295
|
+
curl https://{subdomain}.zendesk.com/api/v2/views/{id}.json \
|
|
296
|
+
-v -u {email_address}:{password}
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
#### Example Response
|
|
300
|
+
|
|
301
|
+
```http
|
|
302
|
+
Status: 200 OK
|
|
303
|
+
|
|
304
|
+
{
|
|
305
|
+
"view": {
|
|
306
|
+
"id": 25,
|
|
307
|
+
"title": "Tickets updated <12 Hours",
|
|
308
|
+
"active": true
|
|
309
|
+
"execution": { ... },
|
|
310
|
+
"conditions": { ... },
|
|
311
|
+
"restriction": { ... }
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
### Executing Views
|
|
317
|
+
`GET /api/v2/views/{id}/execute.json`
|
|
318
|
+
|
|
319
|
+
View output sorting can be controlled by passing the sort_by and sort_order parameters in the
|
|
320
|
+
format described in the table under [view previewing](#previewing-views).
|
|
321
|
+
|
|
322
|
+
#### Allowed For:
|
|
323
|
+
|
|
324
|
+
* Agents
|
|
325
|
+
|
|
326
|
+
#### Using curl
|
|
327
|
+
|
|
328
|
+
```bash
|
|
329
|
+
curl https://{subdomain}.zendesk.com/api/v2/views/{id}/execute.json \
|
|
330
|
+
-v -u {email_address}:{password}
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
With sort options:
|
|
334
|
+
|
|
335
|
+
```bash
|
|
336
|
+
curl https://{subdomain}.zendesk.com/api/v2/views/{id}/execute.json?sort_by=id&sort_order=desc \
|
|
337
|
+
-v -u {email_address}:{password}
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
#### Example Response
|
|
341
|
+
|
|
342
|
+
```http
|
|
343
|
+
Status: 200 OK
|
|
344
|
+
|
|
345
|
+
{
|
|
346
|
+
"view": {
|
|
347
|
+
"id": 25,
|
|
348
|
+
"url": ...
|
|
349
|
+
},
|
|
350
|
+
"rows": [
|
|
351
|
+
{
|
|
352
|
+
"ticket": { ... },
|
|
353
|
+
"locale": "en-US",
|
|
354
|
+
"group": 1,
|
|
355
|
+
...
|
|
356
|
+
},
|
|
357
|
+
...
|
|
358
|
+
],
|
|
359
|
+
"columns": [
|
|
360
|
+
{
|
|
361
|
+
"id": "locale",
|
|
362
|
+
"title": "Locale"
|
|
363
|
+
},
|
|
364
|
+
{
|
|
365
|
+
"id": 5,
|
|
366
|
+
"title": "Account",
|
|
367
|
+
"url": ...
|
|
368
|
+
},
|
|
369
|
+
...
|
|
370
|
+
],
|
|
371
|
+
"groups": [ ... ]
|
|
372
|
+
}
|
|
373
|
+
```
|
|
374
|
+
|
|
375
|
+
### Previewing Views
|
|
376
|
+
`POST /api/v2/views/preview.json`
|
|
377
|
+
|
|
378
|
+
Views can be previewed by constructing the conditions in the [proper format](#conditions) and nesting them under the 'view' key.
|
|
379
|
+
The output can also be controlled by passing in any of the following parameters and nesting them under the 'view' key.
|
|
380
|
+
|
|
381
|
+
| Name | Type | Comment
|
|
382
|
+
| --------------- | ------- | -------
|
|
383
|
+
| columns | Array | The ticket fields to display. System fields are looked up by name, custom fields by title or id.
|
|
384
|
+
| group_by | String | When present, the field by which the tickets are grouped
|
|
385
|
+
| group_order | String | The direction the tickets are grouped. May be one of 'asc' or 'desc'
|
|
386
|
+
| sort_order | String | The direction the tickets are sorted. May be one of 'asc' or 'desc'
|
|
387
|
+
| sort_by | String | The ticket field used for sorting. This will either be a title or a custom field id.
|
|
388
|
+
|
|
389
|
+
#### Allowed For:
|
|
390
|
+
|
|
391
|
+
* Agents
|
|
392
|
+
|
|
393
|
+
#### Using curl
|
|
394
|
+
|
|
395
|
+
```bash
|
|
396
|
+
curl https://{subdomain}.zendesk.com/api/v2/views/preview.json \
|
|
397
|
+
-v -u {email_address}:{password} -X POST -H "Content-Type: application/json" \
|
|
398
|
+
-d '{"view": {"all": [{"operator": "is", "value": "open", "field": "status"}], "output": {"columns": ["subject"]}}}'
|
|
399
|
+
```
|
|
400
|
+
|
|
401
|
+
#### Example Response
|
|
402
|
+
|
|
403
|
+
```http
|
|
404
|
+
Status: 200 OK
|
|
405
|
+
|
|
406
|
+
{
|
|
407
|
+
"rows": [
|
|
408
|
+
{
|
|
409
|
+
"ticket": { ... },
|
|
410
|
+
"subject": "en-US",
|
|
411
|
+
...
|
|
412
|
+
},
|
|
413
|
+
...
|
|
414
|
+
],
|
|
415
|
+
"columns": [
|
|
416
|
+
{
|
|
417
|
+
"id": "subject",
|
|
418
|
+
"title": "Subject"
|
|
419
|
+
},
|
|
420
|
+
...
|
|
421
|
+
]
|
|
422
|
+
}
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
### View Counts and Caching
|
|
426
|
+
|
|
427
|
+
The view count APIs allow an API consumer to estimate how many tickets remain in a View without having to retrieve the entire View.
|
|
428
|
+
These APIs are intended to help estimate View size; from a business perspective, accuracy becomes less relevant as your View size increases.
|
|
429
|
+
To ensure quality of service, these counts are cached more heavily as the number of tickets in a View grows. For a View with thousands of tickets,
|
|
430
|
+
you can expect its count to be cached for 60-90 minutes and may not reflect the actual number of tickets in your View.
|
|
431
|
+
|
|
432
|
+
### View Counts
|
|
433
|
+
`GET /api/v2/views/count_many.json?ids={view_id},{view_id}`
|
|
434
|
+
|
|
435
|
+
Calculates the size of the view in terms of number of tickets the view will return.
|
|
436
|
+
Only returns values for personal and shared views accessible to the user performing
|
|
437
|
+
the request.
|
|
438
|
+
|
|
439
|
+
#### Allowed For:
|
|
440
|
+
|
|
441
|
+
* Agents
|
|
442
|
+
|
|
443
|
+
#### Using curl
|
|
444
|
+
|
|
445
|
+
```bash
|
|
446
|
+
curl https://{subdomain}.zendesk.com/api/v2/views/count_many.json?ids={view_id} \
|
|
447
|
+
-v -u {email_address}:{password}
|
|
448
|
+
```
|
|
449
|
+
|
|
450
|
+
#### Example Response
|
|
451
|
+
|
|
452
|
+
When you retrieve view counts that are not "fresh", it's recommended to wait for a short
|
|
453
|
+
while an poll again for only the stale view counts.
|
|
454
|
+
|
|
455
|
+
```http
|
|
456
|
+
Status: 200 OK
|
|
457
|
+
|
|
458
|
+
{
|
|
459
|
+
"view_counts": [{
|
|
460
|
+
"view_id": 25,
|
|
461
|
+
"url": "https://company.zendesk.com/api/v2/rules/views/25/count.json",
|
|
462
|
+
"value": 719,
|
|
463
|
+
"pretty": "~700",
|
|
464
|
+
"fresh": true
|
|
465
|
+
},
|
|
466
|
+
{
|
|
467
|
+
"view_id": 78,
|
|
468
|
+
"url": "https://company.zendesk.com/api/v2/rules/views/78/count.json",
|
|
469
|
+
"value": null,
|
|
470
|
+
"pretty": "...",
|
|
471
|
+
"fresh": false
|
|
472
|
+
}
|
|
473
|
+
]}
|
|
474
|
+
```
|
|
475
|
+
|
|
476
|
+
### View Count
|
|
477
|
+
`GET /api/v2/views/{id}/count.json`
|
|
478
|
+
|
|
479
|
+
Returns the ticket count for a single view.
|
|
480
|
+
|
|
481
|
+
#### Allowed For:
|
|
482
|
+
|
|
483
|
+
* Agents
|
|
484
|
+
|
|
485
|
+
#### Using curl
|
|
486
|
+
|
|
487
|
+
```bash
|
|
488
|
+
curl https://{subdomain}.zendesk.com/api/v2/views/{id}/count.json \
|
|
489
|
+
-v -u {email_address}:{password}
|
|
490
|
+
```
|
|
491
|
+
|
|
492
|
+
#### Example Response
|
|
493
|
+
|
|
494
|
+
```http
|
|
495
|
+
Status: 200 OK
|
|
496
|
+
{
|
|
497
|
+
"view_count": {
|
|
498
|
+
"view_id": 25,
|
|
499
|
+
"url": "https://company.zendesk.com/api/v2/rules/views/25/count.json",
|
|
500
|
+
"value": 719,
|
|
501
|
+
"pretty": "~700",
|
|
502
|
+
"fresh": true
|
|
503
|
+
}
|
|
504
|
+
}
|
|
505
|
+
```
|