44 |
45 |
46 |
47 |
133 |
134 |
135 |
--------------------------------------------------------------------------------
/v2/sunshine/notely_timeline_app/images/screenshot.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/demo_apps/6161eaf4fb1f183c123aaa4bd94ac682196be0ea/v2/sunshine/notely_timeline_app/images/screenshot.png
--------------------------------------------------------------------------------
/v2/sunshine/notely_timeline_app/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Notely Timeline",
3 | "author": {
4 | "name": "octillery",
5 | "email": "jalviso@zendesk.com",
6 | "url": "https://www.zendesk.com"
7 | },
8 | "defaultLocale": "en",
9 | "private": false,
10 | "location": {
11 | "support": {
12 | "ticket_sidebar": "assets/ticket_sidebar.html",
13 | "user_sidebar": "assets/user_sidebar.html"
14 | }
15 | },
16 | "version": "1.0",
17 | "frameworkVersion": "2.0"
18 | }
19 |
--------------------------------------------------------------------------------
/v2/sunshine/notely_timeline_app/translations/en.json:
--------------------------------------------------------------------------------
1 | {
2 | "app": {
3 | "name": "Notely Timeline",
4 | "short_description": "App to view all recorded Notely notes about a user.",
5 | "long_description": "App to view all recorded Notely notes \n about a user in a single location with \n the ability to sort by note type.",
6 | "installation_instructions": "Simply click install."
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/v2/sunshine/user_profiles_app/README.md:
--------------------------------------------------------------------------------
1 | # User Profiles
2 |
3 | Zendesk Support sidebar app. Displays all of the profiles for a given user from the Sunshine profiles service.
4 |
5 | ### The following information is displayed:
6 |
7 | * User's name and avatar
8 | * User profiles grouped by source and type
9 | * Attributes for each profile
10 | * Supports nested objects and arrays of primitive types
11 |
12 | Please submit bug reports to [the ICARUS JIRA board](https://zendesk.atlassian.net/jira/software/projects/ICARUS/boards/1415). Pull requests are welcome.
13 |
14 | ### Screenshot(s):
15 | 
16 |
--------------------------------------------------------------------------------
/v2/sunshine/user_profiles_app/assets/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
19 |
20 |
172 |
173 |
174 |
--------------------------------------------------------------------------------
/v2/sunshine/user_profiles_app/assets/logo-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/demo_apps/6161eaf4fb1f183c123aaa4bd94ac682196be0ea/v2/sunshine/user_profiles_app/assets/logo-small.png
--------------------------------------------------------------------------------
/v2/sunshine/user_profiles_app/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/demo_apps/6161eaf4fb1f183c123aaa4bd94ac682196be0ea/v2/sunshine/user_profiles_app/assets/logo.png
--------------------------------------------------------------------------------
/v2/sunshine/user_profiles_app/assets/logo.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/v2/sunshine/user_profiles_app/assets/styles.css:
--------------------------------------------------------------------------------
1 | .avatar-img {
2 | width: 60px;
3 | height: 60px;
4 | border-radius: 50%;
5 | background-repeat: no-repeat;
6 | background-position: center;
7 | background-size: cover;
8 | margin: 16px auto 0 auto;
9 | }
10 |
11 | .requester-name {
12 | margin: 8px 0;
13 | }
14 |
15 | .vertical-line {
16 | width: 50%;
17 | height: 16px;
18 | border-right: 1px solid #D8DCDE;
19 | }
20 |
21 | .profile {
22 | padding: 8px 12px;
23 | border: 1px solid #D8DCDE;
24 | border-radius: 4px;
25 | }
26 |
27 | .profile:last-of-type {
28 | margin-bottom: 16px;
29 | }
30 |
31 |
32 | .profile-header {
33 | }
34 |
35 | .profile-attribute {
36 | display: flex;
37 | flex-wrap: wrap;
38 | }
39 |
40 | .profile-key {
41 | flex: 1;
42 | word-wrap: break-word;
43 | color: #87929D;
44 | }
45 |
46 | .profile-value {
47 | flex: 1;
48 | word-wrap: break-word;
49 | }
50 |
51 | .list-item {
52 | margin-right: 4px;
53 | margin-bottom: 2px;
54 | }
55 |
56 | .no-data {
57 | color: #87929D;
58 | font-style: italic;
59 | }
60 |
61 | .bottom-blur {
62 | position: fixed;
63 | bottom: 0;
64 | left: 0;
65 | width: 100%;
66 | height: 20px;
67 | box-shadow: inset 0px -16px 10px -10px rgba(255,255,255,1);
68 | }
69 |
--------------------------------------------------------------------------------
/v2/sunshine/user_profiles_app/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "User Profiles",
3 | "author": {
4 | "name": "Jeff",
5 | "email": "jklein@zendesk.com",
6 | "url": ""
7 | },
8 | "defaultLocale": "en",
9 | "private": true,
10 | "location": {
11 | "support": {
12 | "ticket_sidebar": "assets/index.html"
13 | }
14 | },
15 | "version": "1.0",
16 | "frameworkVersion": "2.0"
17 | }
18 |
--------------------------------------------------------------------------------
/v2/sunshine/user_profiles_app/node_modules/.yarn-integrity:
--------------------------------------------------------------------------------
1 | {
2 | "systemParams": "darwin-x64-67",
3 | "modulesFolders": [],
4 | "flags": [],
5 | "linkedModules": [],
6 | "topLevelPatterns": [],
7 | "lockfileEntries": {},
8 | "files": [],
9 | "artifacts": {}
10 | }
--------------------------------------------------------------------------------
/v2/sunshine/user_profiles_app/translations/en.json:
--------------------------------------------------------------------------------
1 | {
2 | "app": {
3 | "name": "Zen Tunes",
4 | "short_description": "Play the famous zen tunes in your help desk.",
5 | "long_description": "Play the famous zen tunes in your help desk and \n listen to the beats it has to offer.",
6 | "installation_instructions": "Simply click install."
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/v2/sunshine/user_profiles_app/yarn.lock:
--------------------------------------------------------------------------------
1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
2 | # yarn lockfile v1
3 |
4 |
5 |
--------------------------------------------------------------------------------
/v2/support/README.md:
--------------------------------------------------------------------------------
1 | :warning: *Use of this software is subject to important terms and conditions as set forth in the License file* :warning:
2 |
3 | ## Zendesk Support Sample Apps
4 |
5 | This repository provides you with sample Apps to help learn how to use the Zendesk Apps framework v2 and Zendesk Support APIs.
6 |
--------------------------------------------------------------------------------
/v2/support/basic_ticket_sample_app/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright 2016 Zendesk
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software
10 | distributed under the License is distributed on an "AS IS" BASIS,
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | See the License for the specific language governing permissions and
13 | limitations under the License.
14 |
15 | ADDITIONAL TERMS AND CONDITIONS
16 |
17 | Capitalized terms used herein have the meaning set forth in the
18 | Zendesk, Inc. (“Zendesk”) Terms of Service (available at www.zendesk.com/company/terms)
19 | (the “Terms”). The software made available herein constitutes the source code for a
20 | Zendesk Application (“Application Software”) which may be implemented to
21 | enable features or functionality to be utilized in connection with a subscription
22 | to the Service. Notwithstanding anything to the contrary set forth in the Terms
23 | or any other agreement by and between you and Zendesk, Application Software is
24 | provided “AS IS” and on an “AS AVAILABLE” basis, and that Zendesk makes no warranty
25 | as to the Application Software. ZENDESK DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED,
26 | INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY,
27 | FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT AND THOSE ARISING FROM A COURSE
28 | OF DEALING OR USAGE OF TRADE RELATED TO THE APPLICATION SOFTWARE, ITS USE OR ANY INABILITY
29 | TO USE IT OR THE RESULTS OF ITS USE.
30 |
31 | Zendesk makes Zendesk Applications available for use through the user interface of
32 | the Service in the manner described (for each Zendesk Application) at www.zendesk.com/apps
33 | (“Service Implementation”). Use of Application Software, other than in connection with a
34 | Service Implementation is subject to the following risks and conditions: (i) the Application
35 | Software may contain errors, design flaws or other problems; and (ii) use of the Application
36 | Software may result in unexpected results, loss of data, project delays or other unpredictable
37 | damage or loss. Zendesk only supports the Application Software currently available and installed
38 | through the Service Implementation. By utilizing Application Software other than in connection
39 | with the Service Implementation, you are agreeing that Zendesk shall have no obligation to
40 | correct any bugs, defects or errors in the Application Software you have utilized or
41 | otherwise to support or maintain the Application Software you have utilized.
42 |
43 | If you elect to utilize any Application Software other than through a Service Implementation,
44 | you are agreeing to release Zendesk from any claim with regard to the Application Software,
45 | its operation, availability or its failure to operate or be available.
46 | Without limiting the generality of the foregoing, You acknowledge and agree that neither the use,
47 | availability nor operation of any Application Software shall be subject to any service level
48 | commitment applicable to the Service.
49 |
--------------------------------------------------------------------------------
/v2/support/basic_ticket_sample_app/README.md:
--------------------------------------------------------------------------------
1 | :warning: *Use of this software is subject to important terms and conditions as set forth in the License file* :warning:
2 |
3 | ## Basic Ticket Sample App
4 |
5 | This sample app displays a message noting changes made by the current user.
6 |
7 | ### Screenshot(s):
8 | 
9 |
--------------------------------------------------------------------------------
/v2/support/basic_ticket_sample_app/assets/iframe.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Loading...
7 |
8 |
9 |
43 |
44 |
45 |
--------------------------------------------------------------------------------
/v2/support/basic_ticket_sample_app/assets/logo-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/demo_apps/6161eaf4fb1f183c123aaa4bd94ac682196be0ea/v2/support/basic_ticket_sample_app/assets/logo-small.png
--------------------------------------------------------------------------------
/v2/support/basic_ticket_sample_app/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/demo_apps/6161eaf4fb1f183c123aaa4bd94ac682196be0ea/v2/support/basic_ticket_sample_app/assets/logo.png
--------------------------------------------------------------------------------
/v2/support/basic_ticket_sample_app/assets/logo.svg:
--------------------------------------------------------------------------------
1 |
2 |
11 |
--------------------------------------------------------------------------------
/v2/support/basic_ticket_sample_app/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Basic Ticket Sample App",
3 | "author": {
4 | "name": "Zendesk",
5 | "email": "support@zendesk.com",
6 | "url": "https://help.zendesk.com"
7 | },
8 | "defaultLocale": "en",
9 | "private": true,
10 | "location": {
11 | "support": {
12 | "ticket_sidebar": {
13 | "url": "assets/iframe.html",
14 | "flexible": true
15 | }
16 | }
17 | },
18 | "version": "1.0",
19 | "frameworkVersion": "2.0"
20 | }
21 |
--------------------------------------------------------------------------------
/v2/support/basic_ticket_sample_app/translations/en.json:
--------------------------------------------------------------------------------
1 | {
2 | "app": {
3 | "short_description": "Demo Ticket Sidebar app.",
4 | "long_description": "Demo Ticket Sidebar app.",
5 | "installation_instructions": "Find the Demo Ticket Sidebar app in the Zendesk marketplace.",
6 | "name": "Basic Ticket Sample App"
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/v2/support/garden_sample_app/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright 2016 Zendesk
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software
10 | distributed under the License is distributed on an "AS IS" BASIS,
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | See the License for the specific language governing permissions and
13 | limitations under the License.
14 |
15 | ADDITIONAL TERMS AND CONDITIONS
16 |
17 | Capitalized terms used herein have the meaning set forth in the
18 | Zendesk, Inc. (“Zendesk”) Terms of Service (available at www.zendesk.com/company/terms)
19 | (the “Terms”). The software made available herein constitutes the source code for a
20 | Zendesk Application (“Application Software”) which may be implemented to
21 | enable features or functionality to be utilized in connection with a subscription
22 | to the Service. Notwithstanding anything to the contrary set forth in the Terms
23 | or any other agreement by and between you and Zendesk, Application Software is
24 | provided “AS IS” and on an “AS AVAILABLE” basis, and that Zendesk makes no warranty
25 | as to the Application Software. ZENDESK DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED,
26 | INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY,
27 | FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT AND THOSE ARISING FROM A COURSE
28 | OF DEALING OR USAGE OF TRADE RELATED TO THE APPLICATION SOFTWARE, ITS USE OR ANY INABILITY
29 | TO USE IT OR THE RESULTS OF ITS USE.
30 |
31 | Zendesk makes Zendesk Applications available for use through the user interface of
32 | the Service in the manner described (for each Zendesk Application) at www.zendesk.com/apps
33 | (“Service Implementation”). Use of Application Software, other than in connection with a
34 | Service Implementation is subject to the following risks and conditions: (i) the Application
35 | Software may contain errors, design flaws or other problems; and (ii) use of the Application
36 | Software may result in unexpected results, loss of data, project delays or other unpredictable
37 | damage or loss. Zendesk only supports the Application Software currently available and installed
38 | through the Service Implementation. By utilizing Application Software other than in connection
39 | with the Service Implementation, you are agreeing that Zendesk shall have no obligation to
40 | correct any bugs, defects or errors in the Application Software you have utilized or
41 | otherwise to support or maintain the Application Software you have utilized.
42 |
43 | If you elect to utilize any Application Software other than through a Service Implementation,
44 | you are agreeing to release Zendesk from any claim with regard to the Application Software,
45 | its operation, availability or its failure to operate or be available.
46 | Without limiting the generality of the foregoing, You acknowledge and agree that neither the use,
47 | availability nor operation of any Application Software shall be subject to any service level
48 | commitment applicable to the Service.
49 |
--------------------------------------------------------------------------------
/v2/support/garden_sample_app/README.md:
--------------------------------------------------------------------------------
1 | :warning: *Use of this software is subject to important terms and conditions as set forth in the License file* :warning:
2 |
3 | ## Zendesk Garden Sample App
4 |
5 | This sample app demonstrates a selection of styles possible using Zendesk Garden bootstrap styles.
6 |
7 | ### Screenshot:
8 | 
9 |
--------------------------------------------------------------------------------
/v2/support/garden_sample_app/assets/icon_nav_bar.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/v2/support/garden_sample_app/assets/logo-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/demo_apps/6161eaf4fb1f183c123aaa4bd94ac682196be0ea/v2/support/garden_sample_app/assets/logo-small.png
--------------------------------------------------------------------------------
/v2/support/garden_sample_app/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/demo_apps/6161eaf4fb1f183c123aaa4bd94ac682196be0ea/v2/support/garden_sample_app/assets/logo.png
--------------------------------------------------------------------------------
/v2/support/garden_sample_app/assets/logo.svg:
--------------------------------------------------------------------------------
1 |
4 |
--------------------------------------------------------------------------------
/v2/support/garden_sample_app/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Garden Sample App",
3 | "author": {
4 | "name": "Zendesk",
5 | "email": "support@zendesk.com",
6 | "url": "https://help.zendesk.com"
7 | },
8 | "defaultLocale": "en",
9 | "private": true,
10 | "location": {
11 | "support": {
12 | "nav_bar": "assets/iframe.html"
13 | }
14 | },
15 | "version": "1.0",
16 | "frameworkVersion": "2.0"
17 | }
18 |
--------------------------------------------------------------------------------
/v2/support/garden_sample_app/translations/en.json:
--------------------------------------------------------------------------------
1 | {
2 | "app": {
3 | "long_description": "Demo app showing Zendesk Garden styles",
4 | "installation_instructions": "Find the app in the Zendesk marketplace.",
5 | "short_description": "Demo app showing Zendesk Garden styles",
6 | "name": "Garden Sample App"
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/v2/support/instances_sample_app/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright 2016 Zendesk
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software
10 | distributed under the License is distributed on an "AS IS" BASIS,
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | See the License for the specific language governing permissions and
13 | limitations under the License.
14 |
15 | ADDITIONAL TERMS AND CONDITIONS
16 |
17 | Capitalized terms used herein have the meaning set forth in the
18 | Zendesk, Inc. (“Zendesk”) Terms of Service (available at www.zendesk.com/company/terms)
19 | (the “Terms”). The software made available herein constitutes the source code for a
20 | Zendesk Application (“Application Software”) which may be implemented to
21 | enable features or functionality to be utilized in connection with a subscription
22 | to the Service. Notwithstanding anything to the contrary set forth in the Terms
23 | or any other agreement by and between you and Zendesk, Application Software is
24 | provided “AS IS” and on an “AS AVAILABLE” basis, and that Zendesk makes no warranty
25 | as to the Application Software. ZENDESK DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED,
26 | INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY,
27 | FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT AND THOSE ARISING FROM A COURSE
28 | OF DEALING OR USAGE OF TRADE RELATED TO THE APPLICATION SOFTWARE, ITS USE OR ANY INABILITY
29 | TO USE IT OR THE RESULTS OF ITS USE.
30 |
31 | Zendesk makes Zendesk Applications available for use through the user interface of
32 | the Service in the manner described (for each Zendesk Application) at www.zendesk.com/apps
33 | (“Service Implementation”). Use of Application Software, other than in connection with a
34 | Service Implementation is subject to the following risks and conditions: (i) the Application
35 | Software may contain errors, design flaws or other problems; and (ii) use of the Application
36 | Software may result in unexpected results, loss of data, project delays or other unpredictable
37 | damage or loss. Zendesk only supports the Application Software currently available and installed
38 | through the Service Implementation. By utilizing Application Software other than in connection
39 | with the Service Implementation, you are agreeing that Zendesk shall have no obligation to
40 | correct any bugs, defects or errors in the Application Software you have utilized or
41 | otherwise to support or maintain the Application Software you have utilized.
42 |
43 | If you elect to utilize any Application Software other than through a Service Implementation,
44 | you are agreeing to release Zendesk from any claim with regard to the Application Software,
45 | its operation, availability or its failure to operate or be available.
46 | Without limiting the generality of the foregoing, You acknowledge and agree that neither the use,
47 | availability nor operation of any Application Software shall be subject to any service level
48 | commitment applicable to the Service.
49 |
--------------------------------------------------------------------------------
/v2/support/instances_sample_app/README.md:
--------------------------------------------------------------------------------
1 | :warning: *Use of this software is subject to important terms and conditions as set forth in the License file* :warning:
2 |
3 | # Instances API Sample App
4 |
5 | This sample app uses the [Instances API](https://developer.zendesk.com/apps/docs/apps-v2/api_reference#client.instanceguid) to add a template comment from the background location when the comment box is empty. It also uses the `{ autoLoad: false }` location option to avoid rendering the iframe in the ticket_sidebar location.
6 |
7 | ### Screenshot(s):
8 | 
9 |
--------------------------------------------------------------------------------
/v2/support/instances_sample_app/assets/iframe.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
52 |
53 |
54 |
--------------------------------------------------------------------------------
/v2/support/instances_sample_app/assets/logo-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/demo_apps/6161eaf4fb1f183c123aaa4bd94ac682196be0ea/v2/support/instances_sample_app/assets/logo-small.png
--------------------------------------------------------------------------------
/v2/support/instances_sample_app/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/demo_apps/6161eaf4fb1f183c123aaa4bd94ac682196be0ea/v2/support/instances_sample_app/assets/logo.png
--------------------------------------------------------------------------------
/v2/support/instances_sample_app/assets/logo.svg:
--------------------------------------------------------------------------------
1 |
2 |
11 |
--------------------------------------------------------------------------------
/v2/support/instances_sample_app/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Instances API Sample App",
3 | "author": {
4 | "name": "Zendesk",
5 | "email": "support@zendesk.com",
6 | "url": "https://help.zendesk.com"
7 | },
8 | "defaultLocale": "en",
9 | "private": true,
10 | "location": {
11 | "support": {
12 | "background": "assets/iframe.html",
13 | "ticket_sidebar": {
14 | "autoLoad": false,
15 | "flexible": true
16 | }
17 | }
18 | },
19 | "version": "1.0",
20 | "frameworkVersion": "2.0"
21 | }
22 |
--------------------------------------------------------------------------------
/v2/support/instances_sample_app/translations/en.json:
--------------------------------------------------------------------------------
1 | {
2 | "app": {
3 | "long_description": "Demo Instances API app.",
4 | "installation_instructions": "Find the app in the Zendesk marketplace.",
5 | "short_description": "Demo Instances API app.",
6 | "name": "Instances API Sample App"
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/v2/support/modal_sample_app/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright 2016 Zendesk
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software
10 | distributed under the License is distributed on an "AS IS" BASIS,
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | See the License for the specific language governing permissions and
13 | limitations under the License.
14 |
15 | ADDITIONAL TERMS AND CONDITIONS
16 |
17 | Capitalized terms used herein have the meaning set forth in the
18 | Zendesk, Inc. (“Zendesk”) Terms of Service (available at www.zendesk.com/company/terms)
19 | (the “Terms”). The software made available herein constitutes the source code for a
20 | Zendesk Application (“Application Software”) which may be implemented to
21 | enable features or functionality to be utilized in connection with a subscription
22 | to the Service. Notwithstanding anything to the contrary set forth in the Terms
23 | or any other agreement by and between you and Zendesk, Application Software is
24 | provided “AS IS” and on an “AS AVAILABLE” basis, and that Zendesk makes no warranty
25 | as to the Application Software. ZENDESK DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED,
26 | INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY,
27 | FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT AND THOSE ARISING FROM A COURSE
28 | OF DEALING OR USAGE OF TRADE RELATED TO THE APPLICATION SOFTWARE, ITS USE OR ANY INABILITY
29 | TO USE IT OR THE RESULTS OF ITS USE.
30 |
31 | Zendesk makes Zendesk Applications available for use through the user interface of
32 | the Service in the manner described (for each Zendesk Application) at www.zendesk.com/apps
33 | (“Service Implementation”). Use of Application Software, other than in connection with a
34 | Service Implementation is subject to the following risks and conditions: (i) the Application
35 | Software may contain errors, design flaws or other problems; and (ii) use of the Application
36 | Software may result in unexpected results, loss of data, project delays or other unpredictable
37 | damage or loss. Zendesk only supports the Application Software currently available and installed
38 | through the Service Implementation. By utilizing Application Software other than in connection
39 | with the Service Implementation, you are agreeing that Zendesk shall have no obligation to
40 | correct any bugs, defects or errors in the Application Software you have utilized or
41 | otherwise to support or maintain the Application Software you have utilized.
42 |
43 | If you elect to utilize any Application Software other than through a Service Implementation,
44 | you are agreeing to release Zendesk from any claim with regard to the Application Software,
45 | its operation, availability or its failure to operate or be available.
46 | Without limiting the generality of the foregoing, You acknowledge and agree that neither the use,
47 | availability nor operation of any Application Software shall be subject to any service level
48 | commitment applicable to the Service.
49 |
--------------------------------------------------------------------------------
/v2/support/modal_sample_app/README.md:
--------------------------------------------------------------------------------
1 | :warning: *Use of this software is subject to important terms and conditions as set forth in the License file* :warning:
2 |
3 | # Modal Sample App
4 |
5 | This sample app displays text on the ticket sidebar with an edit button. The edit button opens a modal where you can edit the text displayed. The text is saved on local storage.
6 |
7 | ### Screenshot(s):
8 | 
9 |
--------------------------------------------------------------------------------
/v2/support/modal_sample_app/assets/iframe.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 | Loading...
8 |
9 |
10 |
88 |
89 |
90 |
--------------------------------------------------------------------------------
/v2/support/modal_sample_app/assets/logo-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/demo_apps/6161eaf4fb1f183c123aaa4bd94ac682196be0ea/v2/support/modal_sample_app/assets/logo-small.png
--------------------------------------------------------------------------------
/v2/support/modal_sample_app/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/demo_apps/6161eaf4fb1f183c123aaa4bd94ac682196be0ea/v2/support/modal_sample_app/assets/logo.png
--------------------------------------------------------------------------------
/v2/support/modal_sample_app/assets/logo.svg:
--------------------------------------------------------------------------------
1 |
2 |
11 |
--------------------------------------------------------------------------------
/v2/support/modal_sample_app/assets/styles.css:
--------------------------------------------------------------------------------
1 | #modal textarea {
2 | width: 100%;
3 | height: 100px;
4 | }
5 |
--------------------------------------------------------------------------------
/v2/support/modal_sample_app/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Modal Sample App",
3 | "author": {
4 | "name": "Zendesk",
5 | "email": "support@zendesk.com",
6 | "url": "https://help.zendesk.com"
7 | },
8 | "defaultLocale": "en",
9 | "private": true,
10 | "location": {
11 | "support": {
12 | "ticket_sidebar": {
13 | "url": "assets/iframe.html",
14 | "flexible": true
15 | }
16 | }
17 | },
18 | "version": "1.0",
19 | "frameworkVersion": "2.0"
20 | }
21 |
--------------------------------------------------------------------------------
/v2/support/modal_sample_app/translations/en.json:
--------------------------------------------------------------------------------
1 | {
2 | "app": {
3 | "installation_instructions": "Find the app in the Zendesk marketplace.",
4 | "long_description": "Demo Modal app.",
5 | "short_description": "Demo Modal app.",
6 | "name": "Basic Modal Sample App"
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/v2/support/my_cat_sample_app/README.md:
--------------------------------------------------------------------------------
1 | # My Cat App
2 |
3 | A Zendesk app for cat lovers that allows you to share humorous pictures of cats with your favourite customers.
4 |
5 | Similar to the [Secure Settings Example App](https://github.com/zendesk/demo_apps/tree/master/v2/support/secure_settings_sample_app), this app leverages the secure settings functionality of Zendesk's App Framework to store an API token which is required for making requests to [The Cat API](https://thecatapi.com/). You can sign up for a for a free token [here](https://thecatapi.com/signup).
6 |
7 | Upon installation, the account admin will need to enter this key in the api_token parameter.
--------------------------------------------------------------------------------
/v2/support/my_cat_sample_app/assets/iframe.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
18 |
19 |
20 |
21 |
22 |
--------------------------------------------------------------------------------
/v2/support/my_cat_sample_app/assets/logo-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/demo_apps/6161eaf4fb1f183c123aaa4bd94ac682196be0ea/v2/support/my_cat_sample_app/assets/logo-small.png
--------------------------------------------------------------------------------
/v2/support/my_cat_sample_app/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/demo_apps/6161eaf4fb1f183c123aaa4bd94ac682196be0ea/v2/support/my_cat_sample_app/assets/logo.png
--------------------------------------------------------------------------------
/v2/support/my_cat_sample_app/assets/logo.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/v2/support/my_cat_sample_app/assets/main.js:
--------------------------------------------------------------------------------
1 | const client = ZAFClient.init();
2 |
3 | const settings = {
4 | url: 'https://api.thecatapi.com/v1/images/search?format=json',
5 | headers: {"x-api-key": "{{setting.api_token}}"},
6 | secure: true,
7 | type: 'GET',
8 | contentType: 'application/json'
9 | };
10 |
11 | const newCatButton = document.getElementById('new-cat-button')
12 |
13 | const sendCatButton = document.getElementById('send-cat-button')
14 |
15 | const renderImage = (catPictureLink) => {
16 | const catPictureElement = document.querySelector("img[id='cat-picture']");
17 | catPictureElement.src = catPictureLink;
18 | }
19 |
20 | const fetchNewCat = () => {
21 | client.request(settings).then(function (data) {
22 | const catImageLink = data['0']['url'];
23 | renderImage(catImageLink);
24 | });
25 | }
26 |
27 | const attachCatToTicketComment = () => {
28 | const catImageSource = document.querySelector("img[id='cat-picture']").src;
29 | client.invoke('comment.appendHtml', ``)
30 | }
31 |
32 | client.on('app.registered', function () {
33 | fetchNewCat();
34 | });
35 |
36 | newCatButton.addEventListener('click', fetchNewCat);
37 |
38 | sendCatButton.addEventListener('click', attachCatToTicketComment);
39 |
--------------------------------------------------------------------------------
/v2/support/my_cat_sample_app/assets/styles.css:
--------------------------------------------------------------------------------
1 | main {
2 | align-items: center;
3 | justify-content: center;
4 | display: flex;
5 | flex-direction: column;
6 | }
7 |
8 | #cat-picture {
9 | margin: 2em 0em 2em 0em;
10 | }
11 |
12 | .c-btn {
13 | margin: 0.5em;
14 | }
15 |
--------------------------------------------------------------------------------
/v2/support/my_cat_sample_app/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "My Cat App",
3 | "author": {
4 | "name": "Zendesk",
5 | "email": "support@zendesk.com",
6 | "url": "https://support.zendesk.com"
7 | },
8 | "defaultLocale": "en",
9 | "private": true,
10 | "location": {
11 | "support": {
12 | "ticket_sidebar": {
13 | "url": "assets/iframe.html",
14 | "flexible": true,
15 | "size": {
16 | "height": "375px"
17 | }
18 | }
19 | }
20 | },
21 | "domainWhitelist": ["thecatapi.com", "api.thecatapi.com"],
22 | "parameters": [
23 | {
24 | "name": "api_token",
25 | "type": "text",
26 | "secure": true
27 | }
28 | ],
29 | "version": "1.0",
30 | "frameworkVersion": "2.0"
31 | }
32 |
--------------------------------------------------------------------------------
/v2/support/my_cat_sample_app/translations/en.json:
--------------------------------------------------------------------------------
1 | {
2 | "app": {
3 | "name": "My Cat App",
4 | "short_description": "An app for cat lovers",
5 | "long_description": "An app to share humorous pictures of cats with your favourite customers",
6 | "installation_instructions": "You'll just need to add an API token for The Cat API which you can get for free from [here](https://thecatapi.com/signup)"
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/v2/support/requirements_only_sample_app/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright 2012 Zendesk
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software
10 | distributed under the License is distributed on an "AS IS" BASIS,
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | See the License for the specific language governing permissions and
13 | limitations under the License.
14 |
15 | ADDITIONAL TERMS AND CONDITIONS
16 |
17 | Capitalized terms used herein have the meaning set forth in the
18 | Zendesk, Inc. (“Zendesk”) Terms of Service (available at www.zendesk.com/company/terms)
19 | (the “Terms”). The software made available herein constitutes the source code for a
20 | Zendesk Application (“Application Software”) which may be implemented to
21 | enable features or functionality to be utilized in connection with a subscription
22 | to the Service. Notwithstanding anything to the contrary set forth in the Terms
23 | or any other agreement by and between you and Zendesk, Application Software is
24 | provided “AS IS” and on an “AS AVAILABLE” basis, and that Zendesk makes no warranty
25 | as to the Application Software. ZENDESK DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED,
26 | INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY,
27 | FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT AND THOSE ARISING FROM A COURSE
28 | OF DEALING OR USAGE OF TRADE RELATED TO THE APPLICATION SOFTWARE, ITS USE OR ANY INABILITY
29 | TO USE IT OR THE RESULTS OF ITS USE.
30 |
31 | Zendesk makes Zendesk Applications available for use through the user interface of
32 | the Service in the manner described (for each Zendesk Application) at www.zendesk.com/apps
33 | (“Service Implementation”). Use of Application Software, other than in connection with a
34 | Service Implementation is subject to the following risks and conditions: (i) the Application
35 | Software may contain errors, design flaws or other problems; and (ii) use of the Application
36 | Software may result in unexpected results, loss of data, project delays or other unpredictable
37 | damage or loss. Zendesk only supports the Application Software currently available and installed
38 | through the Service Implementation. By utilizing Application Software other than in connection
39 | with the Service Implementation, you are agreeing that Zendesk shall have no obligation to
40 | correct any bugs, defects or errors in the Application Software you have utilized or
41 | otherwise to support or maintain the Application Software you have utilized.
42 |
43 | If you elect to utilize any Application Software other than through a Service Implementation,
44 | you are agreeing to release Zendesk from any claim with regard to the Application Software,
45 | its operation, availability or its failure to operate or be available.
46 | Without limiting the generality of the foregoing, You acknowledge and agree that neither the use,
47 | availability nor operation of any Application Software shall be subject to any service level
48 | commitment applicable to the Service.
49 |
--------------------------------------------------------------------------------
/v2/support/requirements_only_sample_app/README.md:
--------------------------------------------------------------------------------
1 | :warning: *Use of this software is subject to important terms and conditions as set forth in the License file* :warning:
2 |
3 | # Requirements Only Sample App
4 |
5 | This sample app shows to the developers how to add Apps requirements to their Apps. "Apps Requirements" are a neat feature that allows your App to install business rules, ticket fields, and all other resources that it might need to function properly.
6 |
7 | This App will only add requirements. It has no other logic or features.
8 |
9 | For an App that contains both please see [Requirements Sample App](./../requirements_sample_app)
10 |
11 | **Note:** Requirements aren't installed when running the app locally on the ZAT server. However, for testing purposes, you can install the app as a private app and then use the zat update command to make updates to the installed app. See [Updating an installed app](https://developer.zendesk.com/apps/docs/apps-v2/using_sdk#updating-an-installed-app).
12 |
13 | ### The following information is displayed:
14 |
15 | * Create Apps requirements
16 |
17 | Please submit bug reports to [Zendesk Support](https://support.zendesk.com/hc). Pull requests are welcome.
18 |
19 | ### Screenshot(s):
20 |
21 | N/A
22 |
--------------------------------------------------------------------------------
/v2/support/requirements_only_sample_app/assets/logo-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/demo_apps/6161eaf4fb1f183c123aaa4bd94ac682196be0ea/v2/support/requirements_only_sample_app/assets/logo-small.png
--------------------------------------------------------------------------------
/v2/support/requirements_only_sample_app/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/demo_apps/6161eaf4fb1f183c123aaa4bd94ac682196be0ea/v2/support/requirements_only_sample_app/assets/logo.png
--------------------------------------------------------------------------------
/v2/support/requirements_only_sample_app/assets/logo.svg:
--------------------------------------------------------------------------------
1 |
2 |
11 |
--------------------------------------------------------------------------------
/v2/support/requirements_only_sample_app/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Requirements Only Sample App",
3 | "author": {
4 | "name": "Zendesk",
5 | "email": "support@zendesk.com"
6 | },
7 | "defaultLocale": "en",
8 | "private": true,
9 | "version": "1.0",
10 | "requirementsOnly": true
11 | }
12 |
--------------------------------------------------------------------------------
/v2/support/requirements_only_sample_app/requirements.json:
--------------------------------------------------------------------------------
1 | {
2 | "targets": {
3 | "a_basecamp_target": {
4 | "title": "A sample Target",
5 | "type": "basecamp_target",
6 | "target_url": "http://mytarget.com",
7 | "token": "123456",
8 | "project_id": "99999",
9 | "resource": "todo"
10 | },
11 | "an_email_target": {
12 | "title": "A sample email Target",
13 | "type": "email_target",
14 | "email": "foo@bar.com",
15 | "subject": "Hello, from this target!"
16 | },
17 | "url_target_v2":{
18 | "type": "url_target",
19 | "title": "Test JSON to requestbin",
20 | "method": "post",
21 | "content_type": "application/json",
22 | "target_url": "http://requestb.in/13ualp61",
23 | "attribute": "message_value"
24 | }
25 | },
26 |
27 | "ticket_fields": {
28 | "support_description": {
29 | "type": "text",
30 | "title": "Support description"
31 | },
32 |
33 | "number_of_issues": {
34 | "type": "integer",
35 | "title": "Number of issues"
36 | }
37 | }
38 | }
39 |
--------------------------------------------------------------------------------
/v2/support/requirements_only_sample_app/translations/en.json:
--------------------------------------------------------------------------------
1 | {
2 | "app": {
3 | "installation_instructions": "Find the app in the Zendesk marketplace.",
4 | "long_description": "Requirements only app.",
5 | "short_description": "Requirements only app.",
6 | "name": "Requirements Only App"
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/v2/support/requirements_sample_app/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright 2012 Zendesk
2 |
3 | Licensed under the Apache License, Version 2.0 (the "License");
4 | you may not use this file except in compliance with the License.
5 | You may obtain a copy of the License at
6 |
7 | http://www.apache.org/licenses/LICENSE-2.0
8 |
9 | Unless required by applicable law or agreed to in writing, software
10 | distributed under the License is distributed on an "AS IS" BASIS,
11 | WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 | See the License for the specific language governing permissions and
13 | limitations under the License.
14 |
15 | ADDITIONAL TERMS AND CONDITIONS
16 |
17 | Capitalized terms used herein have the meaning set forth in the
18 | Zendesk, Inc. (“Zendesk”) Terms of Service (available at www.zendesk.com/company/terms)
19 | (the “Terms”). The software made available herein constitutes the source code for a
20 | Zendesk Application (“Application Software”) which may be implemented to
21 | enable features or functionality to be utilized in connection with a subscription
22 | to the Service. Notwithstanding anything to the contrary set forth in the Terms
23 | or any other agreement by and between you and Zendesk, Application Software is
24 | provided “AS IS” and on an “AS AVAILABLE” basis, and that Zendesk makes no warranty
25 | as to the Application Software. ZENDESK DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED,
26 | INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF MERCHANTABILITY,
27 | FITNESS FOR A PARTICULAR PURPOSE, NONINFRINGEMENT AND THOSE ARISING FROM A COURSE
28 | OF DEALING OR USAGE OF TRADE RELATED TO THE APPLICATION SOFTWARE, ITS USE OR ANY INABILITY
29 | TO USE IT OR THE RESULTS OF ITS USE.
30 |
31 | Zendesk makes Zendesk Applications available for use through the user interface of
32 | the Service in the manner described (for each Zendesk Application) at www.zendesk.com/apps
33 | (“Service Implementation”). Use of Application Software, other than in connection with a
34 | Service Implementation is subject to the following risks and conditions: (i) the Application
35 | Software may contain errors, design flaws or other problems; and (ii) use of the Application
36 | Software may result in unexpected results, loss of data, project delays or other unpredictable
37 | damage or loss. Zendesk only supports the Application Software currently available and installed
38 | through the Service Implementation. By utilizing Application Software other than in connection
39 | with the Service Implementation, you are agreeing that Zendesk shall have no obligation to
40 | correct any bugs, defects or errors in the Application Software you have utilized or
41 | otherwise to support or maintain the Application Software you have utilized.
42 |
43 | If you elect to utilize any Application Software other than through a Service Implementation,
44 | you are agreeing to release Zendesk from any claim with regard to the Application Software,
45 | its operation, availability or its failure to operate or be available.
46 | Without limiting the generality of the foregoing, You acknowledge and agree that neither the use,
47 | availability nor operation of any Application Software shall be subject to any service level
48 | commitment applicable to the Service.
49 |
--------------------------------------------------------------------------------
/v2/support/requirements_sample_app/README.md:
--------------------------------------------------------------------------------
1 | :warning: *Use of this software is subject to important terms and conditions as set forth in the License file* :warning:
2 |
3 | # Requirements Sample App
4 |
5 | This sample app shows to the developers how to add Apps requirements to their Apps. "Apps Requirements" are a neat feature that allows your App to install business rules, ticket fields, and all other resources that it might need to function properly.
6 |
7 | This App will add requirements as well as "reference" those requirements from within the App.
8 |
9 | For an App that only creates requirements and nothing else please see [Requirements Only Sample App](./../requirements_only_sample_app)
10 |
11 | **Notes:**
12 | - Requirements aren't installed when running the app locally on the ZAT server. However, for testing purposes, you can install the app as a private app and then use the zat update command to make updates to the installed app. See [Updating an installed app](https://developer.zendesk.com/apps/docs/apps-v2/using_sdk#updating-an-installed-app).
13 | - If you have multiple ticket forms you will need to manually add the ticket field created by this app to one of the forms.
14 |
15 | ### The following information is displayed:
16 |
17 | * Create Apps requirements
18 |
19 | Please submit bug reports to [Zendesk Support](https://support.zendesk.com/hc). Pull requests are welcome.
20 |
21 | ### Screenshot(s):
22 |
23 | 
24 |
--------------------------------------------------------------------------------
/v2/support/requirements_sample_app/assets/iframe.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Loading...
7 |
8 |
9 |
47 |
48 |
49 |
--------------------------------------------------------------------------------
/v2/support/requirements_sample_app/assets/logo-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/demo_apps/6161eaf4fb1f183c123aaa4bd94ac682196be0ea/v2/support/requirements_sample_app/assets/logo-small.png
--------------------------------------------------------------------------------
/v2/support/requirements_sample_app/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/demo_apps/6161eaf4fb1f183c123aaa4bd94ac682196be0ea/v2/support/requirements_sample_app/assets/logo.png
--------------------------------------------------------------------------------
/v2/support/requirements_sample_app/assets/logo.svg:
--------------------------------------------------------------------------------
1 |
2 |
11 |
--------------------------------------------------------------------------------
/v2/support/requirements_sample_app/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Requirements Sample App",
3 | "author": {
4 | "name": "Zendesk",
5 | "email": "support@zendesk.com"
6 | },
7 | "defaultLocale": "en",
8 | "private": true,
9 | "version": "1.0",
10 | "location": {
11 | "support": {
12 | "ticket_sidebar": {
13 | "url": "assets/iframe.html",
14 | "flexible": true
15 | },
16 | "new_ticket_sidebar": {
17 | "url":"assets/iframe.html",
18 | "flexible": true
19 | }
20 | }
21 | },
22 | "frameworkVersion": "2.0"
23 | }
24 |
--------------------------------------------------------------------------------
/v2/support/requirements_sample_app/requirements.json:
--------------------------------------------------------------------------------
1 | {
2 | "ticket_fields": {
3 | "ticket_custom_field": {
4 | "type": "text",
5 | "title": "Sample app ticket field"
6 | }
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/v2/support/requirements_sample_app/translations/en.json:
--------------------------------------------------------------------------------
1 | {
2 | "app": {
3 | "installation_instructions": "Find the app in the Zendesk marketplace.",
4 | "long_description": "Requirements sample app.",
5 | "short_description": "Requirements sample app.",
6 | "name": "Requirements Sample App"
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/v2/support/secure_settings_sample_app/README.md:
--------------------------------------------------------------------------------
1 | # Secure Settings Example App
2 |
3 | This sample app shows how to add Secure Settings to an app. "Secure Settings" is a neat feature that allows your App to pass a secure setting via the proxy that is invisible to normal agents. Detailed documentation regarding this feature can be found here: https://developer.zendesk.com/apps/docs/developer-guide/using_sdk#using-secure-settings .
4 |
5 | In particular, this App uses a secure setting to store a token for https://thecatapi.com/ which is required for making api requests. To get such a key, you will need to sign up for an account, and then grab your api key from the signup email.
6 |
7 | On installation the account admin should paste this key into the "catering_token" field.
8 |
9 | The app will parse a single response from thecatapi and render it as an image within the app's iframe. The request made is a GET request to /images/search per https://documenter.getpostman.com/view/4016432/RWToRJCq .
10 |
11 | In particular, it will make this request:
12 |
13 | curl --request GET \
14 | --url 'https://api.thecatapi.com/v1/images/search?format=json' \
15 | --header 'Content-Type: application/json' \
16 | --header 'x-api-key: {{catering_token}}'
17 |
18 | ### Screenshot(s):
19 |
20 | None as yet!
21 |
--------------------------------------------------------------------------------
/v2/support/secure_settings_sample_app/assets/iframe.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
Adopt a new cat
11 |
12 |
13 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/v2/support/secure_settings_sample_app/assets/logo-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/demo_apps/6161eaf4fb1f183c123aaa4bd94ac682196be0ea/v2/support/secure_settings_sample_app/assets/logo-small.png
--------------------------------------------------------------------------------
/v2/support/secure_settings_sample_app/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/demo_apps/6161eaf4fb1f183c123aaa4bd94ac682196be0ea/v2/support/secure_settings_sample_app/assets/logo.png
--------------------------------------------------------------------------------
/v2/support/secure_settings_sample_app/assets/logo.svg:
--------------------------------------------------------------------------------
1 |
2 |
11 |
--------------------------------------------------------------------------------
/v2/support/secure_settings_sample_app/assets/styles.css:
--------------------------------------------------------------------------------
1 | div.button {
2 | color: yellow;
3 | background-color: blue;
4 | border-style: solid;
5 | border-width: 2px;
6 | }
7 |
--------------------------------------------------------------------------------
/v2/support/secure_settings_sample_app/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Secure Settings Example App",
3 | "author": {
4 | "name": "Zendesk",
5 | "email": "support@zendesk.com",
6 | "url": "https://support.zendesk.com"
7 | },
8 | "defaultLocale": "en",
9 | "private": true,
10 | "location": {
11 | "support": {
12 | "ticket_sidebar": {
13 | "url": "assets/iframe.html",
14 | "flexible": true
15 | }
16 | }
17 | },
18 | "domainWhitelist": ["thecatapi.com", "api.thecatapi.com"],
19 | "parameters": [
20 | {
21 | "name": "api_token",
22 | "type": "text",
23 | "secure": true
24 | }
25 | ],
26 | "version": "1.0",
27 | "frameworkVersion": "2.0"
28 | }
29 |
--------------------------------------------------------------------------------
/v2/support/secure_settings_sample_app/translations/en.json:
--------------------------------------------------------------------------------
1 | {
2 | "app": {
3 | "name": "Bag end catering helper",
4 | "short_description": "Sugar and spice and all things nice",
5 | "long_description": "Bagginses and Boffins, Tooks and Brandybucks, Grubbs, Chubbs, Hornblowers, Bolgers, Bracegirdles and Proudfoots.",
6 | "installation_instructions": "Hold your breath, try not to sneeze. Catering, now that's a right wheeze. Find a tomato and give it a good squeeze. Place your friends and compatriots at their ease. Finally, spin right round baby right round like a record baby right round round round. Then click the install button."
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/v2/zis/zendesk_app_as_admin_ui/README.md:
--------------------------------------------------------------------------------
1 | :warning: *Use of this software is subject to important terms and conditions as set forth in the License file* :warning:
2 |
3 | ## Zendesk Integration Services Sample apps
4 |
5 | This repository provides you with sample Apps to help learn how to use the Zendesk Apps framework v2 and Zendesk Integration Services.
6 |
7 | Please visit the [Zendesk Developer portal](https://developer.zendesk.com/documentation/integration-services/) for more documentations.
8 |
--------------------------------------------------------------------------------
/v2/zis/zendesk_app_as_admin_ui/part_1/.gitignore:
--------------------------------------------------------------------------------
1 | tmp
2 | .zat
3 |
--------------------------------------------------------------------------------
/v2/zis/zendesk_app_as_admin_ui/part_1/README.md:
--------------------------------------------------------------------------------
1 | # ZIS Tutorial - Zendesk App as an admin interface
2 |
3 | This folder contains the source code for [Part 1: Building an app with OAuth](https://developer.zendesk.com/documentation/integration-services/zis-tutorials/zendesk-app-admin-interface/app-oauth/)
4 |
--------------------------------------------------------------------------------
/v2/zis/zendesk_app_as_admin_ui/part_1/src/assets/bootstrap.js:
--------------------------------------------------------------------------------
1 | // Bootstrap the app when DOM is ready
2 | $(function() {
3 | // Initialise the Zendesk JavaScript API client
4 | // https://developer.zendesk.com/apps/docs/developer-guide/getting_started
5 | window.client = ZAFClient.init();
6 |
7 | // Subdomain is required to kick-off OAuth flow. See: connect.js
8 | let subdomain = undefined;
9 |
10 | // Integration key is the unique identifier for your integration app
11 | let integrationKey = undefined;
12 |
13 | client.context().then(function(context) {
14 | // Derive subdomain & integration key
15 | subdomain = context['account']['subdomain']
16 | integrationKey = subdomain + "_zis_tutorial"
17 | console.log("Integration key: " + integrationKey);
18 | }).then(function() {
19 | // Bind button to start OAuth flow
20 | $("#btnConnect").click(function() { startOAuth(integrationKey, subdomain) });
21 | });
22 | });
23 |
--------------------------------------------------------------------------------
/v2/zis/zendesk_app_as_admin_ui/part_1/src/assets/connect.js:
--------------------------------------------------------------------------------
1 | // zendeskConnectionName is a human-friendly name for referencing
2 | // Zendesk OAuth connection stored in ZIS
3 | const zendeskConnectionName = "zendesk";
4 |
5 | // zendeskOAuthClientName is used to reference the companion Zendesk OAuth
6 | // client that came with the ZIS integration
7 | const zendeskOAuthClientName = "zendesk";
8 |
9 | function startOAuth(integrationKey, subdomain) {
10 | let data = JSON.stringify({
11 | name: zendeskConnectionName,
12 | oauth_client_name: zendeskOAuthClientName,
13 | oauth_url_subdomain: subdomain,
14 | origin_oauth_redirect_url: window.location.href,
15 | permission_scopes: "read write"
16 | });
17 |
18 | let request = {
19 | type: "POST",
20 | url: "/api/services/zis/connections/oauth/start/" + integrationKey,
21 | contentType: "application/json",
22 | data: data
23 | };
24 |
25 | client.request(request).then(
26 | function(response) {
27 | console.log("OAuth started successfully");
28 | authorize(response.redirect_url)
29 | },
30 | function(response) {
31 | console.log("Failed to start OAuth: ", response);
32 | }
33 | );
34 | };
35 |
36 | function authorize(redirectURL) {
37 | let authWindow = window.open(redirectURL, '_blank')
38 | setTimeout(watchToken, 1500);
39 | // poll token from the newly opened window
40 | function watchToken() {
41 | try {
42 | let params = new URL(authWindow.location.href).searchParams;
43 | // Cross-origin access will cause error on the above line
44 | // Once the oauth is completed, the authWindow's location
45 | // will be redirected back to the same origin, which in turn
46 | // allow us to get the verification token
47 | let verificationToken = params.get('verification_token');
48 | console.log("Successfully established connection: " + zendeskConnectionName);
49 | authWindow.close();
50 | } catch(err) {
51 | console.log("DOM error is expected during cross domain authorization: " + err);
52 | setTimeout(watchToken, 500)
53 | }
54 | }
55 | };
56 |
--------------------------------------------------------------------------------
/v2/zis/zendesk_app_as_admin_ui/part_1/src/assets/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
--------------------------------------------------------------------------------
/v2/zis/zendesk_app_as_admin_ui/part_1/src/assets/logo-small.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/demo_apps/6161eaf4fb1f183c123aaa4bd94ac682196be0ea/v2/zis/zendesk_app_as_admin_ui/part_1/src/assets/logo-small.png
--------------------------------------------------------------------------------
/v2/zis/zendesk_app_as_admin_ui/part_1/src/assets/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zendesk/demo_apps/6161eaf4fb1f183c123aaa4bd94ac682196be0ea/v2/zis/zendesk_app_as_admin_ui/part_1/src/assets/logo.png
--------------------------------------------------------------------------------
/v2/zis/zendesk_app_as_admin_ui/part_1/src/assets/logo.svg:
--------------------------------------------------------------------------------
1 |
2 |
11 |
--------------------------------------------------------------------------------
/v2/zis/zendesk_app_as_admin_ui/part_1/src/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ZIS Tutorial - Slack Notifier",
3 | "author": {
4 | "name": "My name",
5 | "email": "dev@example.com",
6 | "url": "https://www.example.com"
7 | },
8 | "version": "1.0",
9 | "frameworkVersion": "2.0",
10 | "defaultLocale": "en",
11 | "private": true,
12 | "location": {
13 | "support": {
14 | "nav_bar": "assets/index.html"
15 | }
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/v2/zis/zendesk_app_as_admin_ui/part_1/src/translations/en.json:
--------------------------------------------------------------------------------
1 | {
2 | "app": {
3 | "name": "ZIS Tutorial - Slack Notifier Part 1",
4 | "short_description": "An example app to show case Zendesk apps being used as an admin UI for Zendesk Integration Services",
5 | "long_description": "An example app to show case Zendesk apps being used as an admin UI for Zendesk Integration Services",
6 | "installation_instructions": "Follow the instruction to install as a private app: https://developer.zendesk.com/documentation/apps/getting-started/uploading-and-installing-a-private-app/"
7 | }
8 | }
9 |
--------------------------------------------------------------------------------
/v2/zis/zendesk_app_as_admin_ui/part_2/.gitignore:
--------------------------------------------------------------------------------
1 | tmp
2 | .zat
3 |
--------------------------------------------------------------------------------
/v2/zis/zendesk_app_as_admin_ui/part_2/README.md:
--------------------------------------------------------------------------------
1 | # ZIS Tutorial - Zendesk App as an admin interface
2 |
3 | This folder contains the source code for [Part 3: Creating the configuration user interface](https://developer.zendesk.com/documentation/integration-services/zis-tutorials/zendesk-app-admin-interface/create-config-ui/)
4 |
--------------------------------------------------------------------------------
/v2/zis/zendesk_app_as_admin_ui/part_2/src/assets/bootstrap.js:
--------------------------------------------------------------------------------
1 | // Bootstrap the app when DOM is ready
2 | $(function() {
3 | // Initialise the Zendesk JavaScript API client
4 | // https://developer.zendesk.com/apps/docs/developer-guide/getting_started
5 | window.client = ZAFClient.init();
6 |
7 | // Subdomain is required to kick-off OAuth flow. See: connect.js
8 | let subdomain = undefined;
9 |
10 | // Integration key is the unique identifier for your integration app
11 | let integrationKey = undefined;
12 |
13 | client.context().then(function(context) {
14 | // Derive subdomain & integration key
15 | subdomain = context['account']['subdomain']
16 | integrationKey = subdomain + "_zis_tutorial"
17 | console.log("Integration key: " + integrationKey);
18 | }).then(function() {
19 | // Bind button to start OAuth flow
20 | $("#btnConnect").click(function() { startOAuth(integrationKey, subdomain) });
21 |
22 | // Bind button to submit config
23 | $("#submit").click(function() { submitConfig(integrationKey) });
24 |
25 | // Fetch configuration data and render on UI
26 | fetchConfig(integrationKey);
27 | });
28 | });
29 |
--------------------------------------------------------------------------------
/v2/zis/zendesk_app_as_admin_ui/part_2/src/assets/config.js:
--------------------------------------------------------------------------------
1 | // configScope is a custom defined key for referencing the configuration data
2 | let configScope = "slackNotification";
3 |
4 | // scopeExists is a boolean flag to indicate if the config data exists
5 | // for a given scope
6 | let scopeExists = false;
7 |
8 | // fetchConfig defines the function to fetch config data
9 | function fetchConfig(integrationKey) {
10 | // Fetch config request
11 | let request = {
12 | type: "GET",
13 | url: "/api/services/zis/integrations/" + integrationKey +
14 | "/configs?filter[scope]=" + configScope
15 | };
16 |
17 | client.request(request).then(
18 | function(response) {
19 | console.log("Config fetched successfully: ", response.configs[0].config)
20 | scopeExists = true;
21 | updateComponents(response.configs[0].config);
22 | },
23 | function(response) {
24 | console.log("Config fetching failed: ", response)
25 | if (response.status == 404) {
26 | scopeExists = false;
27 | }
28 | }
29 | );
30 | }
31 |
32 | // submitConfig maps the data from DOM and submit through ZIS Configs API
33 | function submitConfig(integrationKey) {
34 | // Prepare the config payload
35 | let data = JSON.stringify({
36 | scope: configScope,
37 | config: {
38 | priority: $("#select-priority").val(),
39 | channel: $("#txt-channel").val()
40 | }
41 | });
42 |
43 | // The request is for create or update config data
44 | let request;
45 |
46 | if (scopeExists) {
47 | // request for update config
48 | request = {
49 | type: "PUT",
50 | url: "/api/services/zis/integrations/" + integrationKey + "/configs/" + configScope,
51 | contentType: "application/json",
52 | data: data
53 | };
54 | } else {
55 | // request for create config
56 | request = {
57 | type: "POST",
58 | url: "/api/services/zis/integrations/" + integrationKey + "/configs",
59 | contentType: "application/json",
60 | data: data
61 | };
62 | }
63 |
64 | client.request(request).then(
65 | function(response) {
66 | console.log("Config submitted successfully: ", response);
67 | client.invoke('notify', "Submitted successfully");
68 | scopeExists = true;
69 | },
70 | function(response) {
71 | console.log("Config submission failed: ", response);
72 | }
73 | );
74 | }
75 |
76 | // updateComponents updates the UI components with the newly fetched config data
77 | function updateComponents(config) {
78 | console.log("Updating components with config: ", config);
79 | $("#select-priority").val(config.priority);
80 | $("#txt-channel").val(config.channel);
81 | }
82 |
--------------------------------------------------------------------------------
/v2/zis/zendesk_app_as_admin_ui/part_2/src/assets/connect.js:
--------------------------------------------------------------------------------
1 | // zendeskConnectionName is a human-friendly name for referencing
2 | // Zendesk OAuth connection stored in ZIS
3 | const zendeskConnectionName = "zendesk";
4 |
5 | // zendeskOAuthClientName is used to reference the companion Zendesk OAuth
6 | // client that came with the ZIS integration
7 | const zendeskOAuthClientName = "zendesk";
8 |
9 | function startOAuth(integrationKey, subdomain) {
10 | let data = JSON.stringify({
11 | name: zendeskConnectionName,
12 | oauth_client_name: zendeskOAuthClientName,
13 | oauth_url_subdomain: subdomain,
14 | origin_oauth_redirect_url: window.location.href,
15 | permission_scopes: "read write"
16 | });
17 |
18 | let request = {
19 | type: "POST",
20 | url: "/api/services/zis/connections/oauth/start/" + integrationKey,
21 | contentType: "application/json",
22 | data: data
23 | };
24 |
25 | client.request(request).then(
26 | function(response) {
27 | console.log("OAuth started successfully");
28 | authorize(response.redirect_url)
29 | },
30 | function(response) {
31 | console.log("Failed to start OAuth: ", response);
32 | }
33 | );
34 | };
35 |
36 | function authorize(redirectURL) {
37 | let authWindow = window.open(redirectURL, '_blank')
38 | setTimeout(watchToken, 1500);
39 | // poll token from the newly opened window
40 | function watchToken() {
41 | try {
42 | let params = new URL(authWindow.location.href).searchParams;
43 | // Cross-origin access will cause error on the above line
44 | // Once the oauth is completed, the authWindow's location
45 | // will be redirected back to the same origin, which in turn
46 | // allow us to get the verification token
47 | let verificationToken = params.get('verification_token');
48 | console.log("Successfully established connection: " + zendeskConnectionName);
49 | authWindow.close();
50 | } catch(err) {
51 | console.log("DOM error is expected during cross domain authorization: " + err);
52 | setTimeout(watchToken, 500)
53 | }
54 | }
55 | };
56 |
--------------------------------------------------------------------------------
/v2/zis/zendesk_app_as_admin_ui/part_2/src/assets/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |