1
+ import re
2
+ from zendesk import Zendesk
3
+
4
+ def get_id_from_url (url ):
5
+ match = re .match (r".*/(?P<identifier>\d+)\.xml" , url )
6
+ if match and match .group ('identifier' ):
7
+ return match .group ('identifier' )
8
+
9
+
10
+ ################################################################
11
+ ## NEW CONNECTION CLIENT
12
+ ################################################################
13
+ zendesk = Zendesk (
'https://yourcompany.zendesk.com' ,
'[email protected] ' ,
'passwd' )
14
+
15
+ ################################################################
16
+ ## TICKETS
17
+ ################################################################
18
+
19
+ # List
20
+ zendesk .list_tickets (view_id = 1 ) # Must have a view defined
21
+
22
+ # Create
23
+ new_ticket = {
24
+ 'ticket' : {
25
+ 'requester-name' : 'Howard Schultz' ,
26
+ 'requester-email' :
'[email protected] ' ,
27
+ 'subject' :'My Starbucks coffee is cold!' ,
28
+ 'description' : 'please reheat my coffee' ,
29
+ 'set-tags' : 'coffee drinks' ,
30
+ 'ticket-field-entries' : {
31
+ '@type' : 'array' ,
32
+ 'ticket-field-entry' : [
33
+ {'ticket-field-id' : 1 , 'value' : 'venti' },
34
+ {'ticket-field-id' : 2 , 'value' : '$10' }
35
+ ]
36
+ },
37
+ }
38
+ }
39
+ post_data = Zendesk .dict2xml (new_ticket )
40
+ ticket_url = zendesk .create_ticket (xml_data = post_data )
41
+ ticket_id = get_id_from_url (ticket_url )
42
+
43
+ # Show
44
+ zendesk .show_ticket (ticket_id = ticket_id )
45
+
46
+ # Delete
47
+ zendesk .delete_ticket (ticket_id = ticket_id )
48
+
49
+
50
+ ################################################################
51
+ ## ORGANIZATIONS
52
+ ################################################################
53
+
54
+ # List
55
+ zendesk .list_organizations ()
56
+
57
+ # Create
58
+ new_org = {
59
+ 'organization' : {
60
+ 'name' : 'Starbucks Corp'
61
+ }
62
+ }
63
+ post_data = Zendesk .dict2xml (new_org )
64
+ org_url = zendesk .create_organization (xml_data = post_data )
65
+ org_id = get_id_from_url (org_url )
66
+
67
+ # Show
68
+ zendesk .show_organization (organization_id = org_id )
69
+
70
+ # Delete
71
+ zendesk .delete_organization (organization_id = org_id )
72
+
73
+
74
+ ################################################################
75
+ ## USERS (AGENTS)
76
+ ################################################################
77
+
78
+ # List
79
+ zendesk .list_users ()
80
+
81
+ # Create
82
+ new_user = {
83
+ 'user' : {
84
+ 'name' : 'Howard Schultz' ,
85
+
86
+ 'roles' : 4 ,
87
+ }
88
+ }
89
+ post_data = Zendesk .dict2xml (new_user )
90
+ user_url = zendesk .create_user (xml_data = post_data )
91
+ user_id = get_id_from_url (user_url )
92
+
93
+ # Show
94
+ zendesk .show_user (group_id = user_id )
95
+
96
+ # Delete
97
+ zendesk .delete_user (group_id = user_id )
98
+
99
+
100
+ ################################################################
101
+ ## GROUPS
102
+ ################################################################
103
+
104
+ # List
105
+ zendesk .list_groups ()
106
+
107
+ # Create
108
+ new_group = {
109
+ 'group' : {
110
+ 'name' : 'Starbucks Group' ,
111
+ 'agents' : {
112
+ '@type' : 'array' ,
113
+ 'agent' : 123 ,
114
+ }
115
+ }
116
+ }
117
+ post_data = Zendesk .dict2xml (new_group )
118
+ group_url = zendesk .create_group (xml_data = post_data )
119
+ group_id = get_id_from_url (group_url )
120
+
121
+ # Show
122
+ zendesk .show_group (group_id = group_id )
123
+
124
+ # Delete
125
+ zendesk .delete_group (group_id = group_id )
126
+
127
+
128
+ ################################################################
129
+ ## TAGS
130
+ ################################################################
131
+
132
+ # List
133
+ zendesk .list_tags ()
134
+
135
+ # Show
136
+ zendesk .list_assets (tag_id = 123 , asset_type = 'event' ) # event | entry
137
+
138
+
139
+ ################################################################
140
+ ## TICKET TYPES
141
+ ################################################################
142
+ zendesk .list_ticket_fields ()
143
+
144
+
145
+ ################################################################
146
+ ## SEARCH
147
+ ################################################################
148
+
149
+ # http://www.zendesk.com/api/search
150
+ # make sure to url-encode the query
151
+ results = zendesk .search (query = 'ticket+sort:desc' , page = 1 )
0 commit comments