@bubblelab/bubble-core 0.1.220 → 0.1.222

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.
Files changed (96) hide show
  1. package/dist/bubble-bundle.d.ts +204 -126
  2. package/dist/bubble-factory.d.ts.map +1 -1
  3. package/dist/bubble-factory.js +6 -0
  4. package/dist/bubble-factory.js.map +1 -1
  5. package/dist/bubbles/service-bubble/agi-inc.d.ts +20 -20
  6. package/dist/bubbles/service-bubble/ai-agent.d.ts +74 -74
  7. package/dist/bubbles/service-bubble/airtable.d.ts +76 -76
  8. package/dist/bubbles/service-bubble/apify/actors/instagram-hashtag-scraper.d.ts +2 -2
  9. package/dist/bubbles/service-bubble/apify/actors/instagram-scraper.d.ts +8 -8
  10. package/dist/bubbles/service-bubble/apify/actors/linkedin-jobs-scraper.d.ts +2 -2
  11. package/dist/bubbles/service-bubble/apify/actors/linkedin-posts-search.d.ts +22 -22
  12. package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-detail.d.ts +38 -38
  13. package/dist/bubbles/service-bubble/apify/actors/linkedin-profile-posts.d.ts +52 -52
  14. package/dist/bubbles/service-bubble/apify/actors/tiktok-scraper.d.ts +6 -6
  15. package/dist/bubbles/service-bubble/apify/actors/twitter-scraper.d.ts +12 -12
  16. package/dist/bubbles/service-bubble/apify/actors/youtube-scraper.d.ts +12 -12
  17. package/dist/bubbles/service-bubble/apify/apify-scraper.schema.d.ts +126 -126
  18. package/dist/bubbles/service-bubble/apify/apify.d.ts +18 -18
  19. package/dist/bubbles/service-bubble/ashby/ashby.d.ts +2 -2
  20. package/dist/bubbles/service-bubble/ashby/ashby.schema.d.ts +2 -2
  21. package/dist/bubbles/service-bubble/assembled/assembled.d.ts +6 -6
  22. package/dist/bubbles/service-bubble/assembled/assembled.schema.d.ts +6 -6
  23. package/dist/bubbles/service-bubble/attio/attio.d.ts +6 -6
  24. package/dist/bubbles/service-bubble/attio/attio.schema.d.ts +6 -6
  25. package/dist/bubbles/service-bubble/browserbase/browserbase.d.ts +1 -1
  26. package/dist/bubbles/service-bubble/browserbase/browserbase.schema.d.ts +1 -1
  27. package/dist/bubbles/service-bubble/crustdata/crustdata.d.ts +4 -4
  28. package/dist/bubbles/service-bubble/crustdata/crustdata.schema.d.ts +8 -8
  29. package/dist/bubbles/service-bubble/firecrawl.d.ts +334 -334
  30. package/dist/bubbles/service-bubble/followupboss.d.ts +4 -4
  31. package/dist/bubbles/service-bubble/github.d.ts +60 -60
  32. package/dist/bubbles/service-bubble/gmail.d.ts +164 -164
  33. package/dist/bubbles/service-bubble/google-calendar.d.ts +6 -6
  34. package/dist/bubbles/service-bubble/google-drive.d.ts +4 -4
  35. package/dist/bubbles/service-bubble/http.d.ts +2 -2
  36. package/dist/bubbles/service-bubble/insforge-db.d.ts +8 -8
  37. package/dist/bubbles/service-bubble/jira/jira.d.ts +30 -30
  38. package/dist/bubbles/service-bubble/jira/jira.schema.d.ts +36 -36
  39. package/dist/bubbles/service-bubble/notion/notion.d.ts +168 -168
  40. package/dist/bubbles/service-bubble/notion/property-schemas.d.ts +8 -8
  41. package/dist/bubbles/service-bubble/postgresql.d.ts +8 -8
  42. package/dist/bubbles/service-bubble/posthog/posthog.d.ts +10 -10
  43. package/dist/bubbles/service-bubble/posthog/posthog.schema.d.ts +14 -14
  44. package/dist/bubbles/service-bubble/resend.d.ts +4 -4
  45. package/dist/bubbles/service-bubble/slab/index.d.ts +3 -0
  46. package/dist/bubbles/service-bubble/slab/index.d.ts.map +1 -0
  47. package/dist/bubbles/service-bubble/slab/index.js +3 -0
  48. package/dist/bubbles/service-bubble/slab/index.js.map +1 -0
  49. package/dist/bubbles/service-bubble/slab/slab.d.ts +617 -0
  50. package/dist/bubbles/service-bubble/slab/slab.d.ts.map +1 -0
  51. package/dist/bubbles/service-bubble/slab/slab.js +379 -0
  52. package/dist/bubbles/service-bubble/slab/slab.js.map +1 -0
  53. package/dist/bubbles/service-bubble/slab/slab.schema.d.ts +703 -0
  54. package/dist/bubbles/service-bubble/slab/slab.schema.d.ts.map +1 -0
  55. package/dist/bubbles/service-bubble/slab/slab.schema.js +226 -0
  56. package/dist/bubbles/service-bubble/slab/slab.schema.js.map +1 -0
  57. package/dist/bubbles/service-bubble/slack/slack.d.ts +388 -388
  58. package/dist/bubbles/service-bubble/stripe/stripe.d.ts +24 -24
  59. package/dist/bubbles/service-bubble/stripe/stripe.schema.d.ts +28 -28
  60. package/dist/bubbles/service-bubble/xero/xero.d.ts +2 -2
  61. package/dist/bubbles/service-bubble/xero/xero.schema.d.ts +2 -2
  62. package/dist/bubbles/service-bubble/zendesk/index.d.ts +3 -0
  63. package/dist/bubbles/service-bubble/zendesk/index.d.ts.map +1 -0
  64. package/dist/bubbles/service-bubble/zendesk/index.js +3 -0
  65. package/dist/bubbles/service-bubble/zendesk/index.js.map +1 -0
  66. package/dist/bubbles/service-bubble/zendesk/zendesk.d.ts +1065 -0
  67. package/dist/bubbles/service-bubble/zendesk/zendesk.d.ts.map +1 -0
  68. package/dist/bubbles/service-bubble/zendesk/zendesk.js +531 -0
  69. package/dist/bubbles/service-bubble/zendesk/zendesk.js.map +1 -0
  70. package/dist/bubbles/service-bubble/zendesk/zendesk.schema.d.ts +1008 -0
  71. package/dist/bubbles/service-bubble/zendesk/zendesk.schema.d.ts.map +1 -0
  72. package/dist/bubbles/service-bubble/zendesk/zendesk.schema.js +473 -0
  73. package/dist/bubbles/service-bubble/zendesk/zendesk.schema.js.map +1 -0
  74. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.d.ts +6 -6
  75. package/dist/bubbles/tool-bubble/amazon-shopping-tool/amazon-shopping-tool.schema.d.ts +8 -8
  76. package/dist/bubbles/tool-bubble/bubbleflow-validation-tool.d.ts +4 -4
  77. package/dist/bubbles/tool-bubble/company-enrichment-tool.d.ts +20 -20
  78. package/dist/bubbles/tool-bubble/linkedin-tool.d.ts +384 -384
  79. package/dist/bubbles/tool-bubble/people-search-tool.d.ts +44 -44
  80. package/dist/bubbles/tool-bubble/reddit-scrape-tool.d.ts +14 -14
  81. package/dist/bubbles/tool-bubble/research-agent-tool.d.ts +4 -4
  82. package/dist/bubbles/tool-bubble/sql-query-tool.d.ts +4 -4
  83. package/dist/bubbles/tool-bubble/tiktok-tool.d.ts +60 -60
  84. package/dist/bubbles/tool-bubble/twitter-tool.d.ts +134 -134
  85. package/dist/bubbles/tool-bubble/yc-scraper-tool.d.ts +8 -8
  86. package/dist/bubbles/tool-bubble/youtube-tool.d.ts +20 -20
  87. package/dist/bubbles/workflow-bubble/generate-document.workflow.d.ts +12 -12
  88. package/dist/bubbles/workflow-bubble/pdf-form-operations.workflow.d.ts +8 -8
  89. package/dist/bubbles/workflow-bubble/slack-data-assistant.workflow.d.ts +2 -2
  90. package/dist/bubbles/workflow-bubble/slack-formatter-agent.d.ts +26 -26
  91. package/dist/bubbles.json +2218 -2
  92. package/dist/index.d.ts +4 -0
  93. package/dist/index.d.ts.map +1 -1
  94. package/dist/index.js +2 -0
  95. package/dist/index.js.map +1 -1
  96. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zendesk.d.ts","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/zendesk/zendesk.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,531 @@
1
+ import { ServiceBubble } from '../../../types/service-bubble-class.js';
2
+ import { CredentialType, decodeCredentialPayload, } from '@bubblelab/shared-schemas';
3
+ import { ZendeskParamsSchema, ZendeskResultSchema, } from './zendesk.schema.js';
4
+ /**
5
+ * Zendesk Service Bubble
6
+ *
7
+ * Zendesk integration for managing tickets, users, organizations, and help center articles.
8
+ *
9
+ * Features:
10
+ * - Create, retrieve, update, and list tickets
11
+ * - List and read ticket comments / replies
12
+ * - List and retrieve users and organizations
13
+ * - Unified search across all Zendesk resources
14
+ * - Help Center article management
15
+ *
16
+ * Security Features:
17
+ * - OAuth 2.0 authentication with Zendesk
18
+ * - Subdomain-scoped API access
19
+ * - Secure credential handling
20
+ */
21
+ export class ZendeskBubble extends ServiceBubble {
22
+ static type = 'service';
23
+ static service = 'zendesk';
24
+ static authType = 'oauth';
25
+ static bubbleName = 'zendesk';
26
+ static schema = ZendeskParamsSchema;
27
+ static resultSchema = ZendeskResultSchema;
28
+ static shortDescription = 'Zendesk integration for tickets, comments, users, and help center';
29
+ static longDescription = `
30
+ Zendesk customer support integration for ticket management and help center.
31
+
32
+ Features:
33
+ - Create, retrieve, update, and list support tickets
34
+ - List ticket comments and add replies (public or internal notes)
35
+ - List and retrieve users and organizations
36
+ - Unified search across tickets, users, and organizations
37
+ - Help Center article listing and retrieval
38
+
39
+ Use cases:
40
+ - Automated ticket triage and response
41
+ - Customer support workflow automation
42
+ - Help center content management
43
+ - Support analytics and reporting
44
+
45
+ Security Features:
46
+ - OAuth 2.0 authentication with Zendesk
47
+ - Subdomain-scoped API access
48
+ - Secure credential handling and validation
49
+ `;
50
+ static alias = 'support';
51
+ constructor(params = {
52
+ operation: 'list_tickets',
53
+ }, context) {
54
+ super(params, context);
55
+ }
56
+ async testCredential() {
57
+ const creds = this.parseCredentials();
58
+ if (!creds) {
59
+ throw new Error('Zendesk credentials are required');
60
+ }
61
+ const response = await fetch(`https://${creds.subdomain}.zendesk.com/api/v2/users/me.json`, {
62
+ headers: {
63
+ Authorization: `Bearer ${creds.accessToken}`,
64
+ Accept: 'application/json',
65
+ },
66
+ });
67
+ if (!response.ok) {
68
+ const text = await response.text();
69
+ throw new Error(`Zendesk API error (${response.status}): ${text}`);
70
+ }
71
+ return true;
72
+ }
73
+ /**
74
+ * Zendesk credential format:
75
+ * Base64-encoded JSON: { accessToken, subdomain }
76
+ * The subdomain identifies which Zendesk instance to access.
77
+ */
78
+ parseCredentials() {
79
+ const { credentials } = this.params;
80
+ if (!credentials || typeof credentials !== 'object') {
81
+ return null;
82
+ }
83
+ const zendeskCredRaw = credentials[CredentialType.ZENDESK_CRED];
84
+ if (!zendeskCredRaw) {
85
+ return null;
86
+ }
87
+ try {
88
+ const parsed = decodeCredentialPayload(zendeskCredRaw);
89
+ if (parsed.accessToken && parsed.subdomain) {
90
+ return {
91
+ accessToken: parsed.accessToken,
92
+ subdomain: parsed.subdomain,
93
+ };
94
+ }
95
+ }
96
+ catch {
97
+ // If decoding fails, treat the raw value as an access token (validator path)
98
+ // In this case, we can't make API calls without subdomain
99
+ }
100
+ return null;
101
+ }
102
+ chooseCredential() {
103
+ const creds = this.parseCredentials();
104
+ return creds?.accessToken;
105
+ }
106
+ async makeZendeskApiRequest(endpoint, method = 'GET', body) {
107
+ const creds = this.parseCredentials();
108
+ if (!creds) {
109
+ throw new Error('Invalid Zendesk credentials. Expected base64-encoded JSON with { accessToken, subdomain }.');
110
+ }
111
+ const url = endpoint.startsWith('https://')
112
+ ? endpoint
113
+ : `https://${creds.subdomain}.zendesk.com${endpoint}`;
114
+ const requestInit = {
115
+ method,
116
+ headers: {
117
+ Authorization: `Bearer ${creds.accessToken}`,
118
+ 'Content-Type': 'application/json',
119
+ Accept: 'application/json',
120
+ },
121
+ };
122
+ if (body && method !== 'GET') {
123
+ requestInit.body = JSON.stringify(body);
124
+ }
125
+ const response = await fetch(url, requestInit);
126
+ if (!response.ok) {
127
+ const errorText = await response.text();
128
+ throw new Error(`Zendesk API error (${response.status}): ${errorText}`);
129
+ }
130
+ const contentType = response.headers.get('content-type');
131
+ if (contentType && contentType.includes('application/json')) {
132
+ return await response.json();
133
+ }
134
+ return await response.text();
135
+ }
136
+ async performAction(context) {
137
+ void context;
138
+ const { operation } = this.params;
139
+ try {
140
+ const result = await (async () => {
141
+ const parsedParams = this.params;
142
+ switch (operation) {
143
+ case 'list_tickets':
144
+ return await this.listTickets(parsedParams);
145
+ case 'get_ticket':
146
+ return await this.getTicket(parsedParams);
147
+ case 'create_ticket':
148
+ return await this.createTicket(parsedParams);
149
+ case 'update_ticket':
150
+ return await this.updateTicket(parsedParams);
151
+ case 'list_ticket_comments':
152
+ return await this.listTicketComments(parsedParams);
153
+ case 'list_users':
154
+ return await this.listUsers(parsedParams);
155
+ case 'get_user':
156
+ return await this.getUser(parsedParams);
157
+ case 'list_organizations':
158
+ return await this.listOrganizations(parsedParams);
159
+ case 'get_organization':
160
+ return await this.getOrganization(parsedParams);
161
+ case 'search':
162
+ return await this.search(parsedParams);
163
+ case 'list_articles':
164
+ return await this.listArticles(parsedParams);
165
+ case 'get_article':
166
+ return await this.getArticle(parsedParams);
167
+ default:
168
+ throw new Error(`Unsupported operation: ${operation}`);
169
+ }
170
+ })();
171
+ return result;
172
+ }
173
+ catch (error) {
174
+ return {
175
+ operation,
176
+ success: false,
177
+ error: error instanceof Error ? error.message : 'Unknown error occurred',
178
+ };
179
+ }
180
+ }
181
+ // ---- Ticket operations ----
182
+ async listTickets(params) {
183
+ const queryParams = new URLSearchParams();
184
+ if (params.page)
185
+ queryParams.set('page', String(params.page));
186
+ if (params.per_page)
187
+ queryParams.set('per_page', String(params.per_page));
188
+ if (params.sort_by)
189
+ queryParams.set('sort_by', params.sort_by);
190
+ if (params.sort_order)
191
+ queryParams.set('sort_order', params.sort_order);
192
+ // If status filter, use the search API for filtering
193
+ if (params.status) {
194
+ const searchQuery = `type:ticket status:${params.status}`;
195
+ queryParams.set('query', searchQuery);
196
+ const queryString = queryParams.toString();
197
+ const response = await this.makeZendeskApiRequest(`/api/v2/search.json?${queryString}`);
198
+ return {
199
+ operation: 'list_tickets',
200
+ success: true,
201
+ tickets: (response.results || []).map(this.mapTicket),
202
+ count: response.count,
203
+ next_page: response.next_page ?? null,
204
+ error: '',
205
+ };
206
+ }
207
+ const queryString = queryParams.toString();
208
+ const endpoint = `/api/v2/tickets.json${queryString ? `?${queryString}` : ''}`;
209
+ const response = await this.makeZendeskApiRequest(endpoint);
210
+ return {
211
+ operation: 'list_tickets',
212
+ success: true,
213
+ tickets: (response.tickets || []).map(this.mapTicket),
214
+ count: response.count,
215
+ next_page: response.next_page ?? null,
216
+ error: '',
217
+ };
218
+ }
219
+ async getTicket(params) {
220
+ const response = await this.makeZendeskApiRequest(`/api/v2/tickets/${params.ticket_id}.json`);
221
+ return {
222
+ operation: 'get_ticket',
223
+ success: true,
224
+ ticket: this.mapTicket(response.ticket),
225
+ error: '',
226
+ };
227
+ }
228
+ async createTicket(params) {
229
+ const ticketBody = {
230
+ subject: params.subject,
231
+ comment: { body: params.body },
232
+ };
233
+ if (params.requester_email) {
234
+ const requester = {
235
+ email: params.requester_email,
236
+ };
237
+ if (params.requester_name) {
238
+ requester.name = params.requester_name;
239
+ }
240
+ else {
241
+ // Zendesk requires a name when creating a requester; derive from email
242
+ requester.name = params.requester_email.split('@')[0];
243
+ }
244
+ ticketBody.requester = requester;
245
+ }
246
+ if (params.assignee_id)
247
+ ticketBody.assignee_id = params.assignee_id;
248
+ if (params.priority)
249
+ ticketBody.priority = params.priority;
250
+ if (params.type)
251
+ ticketBody.type = params.type;
252
+ if (params.tags)
253
+ ticketBody.tags = params.tags;
254
+ const response = await this.makeZendeskApiRequest('/api/v2/tickets.json', 'POST', { ticket: ticketBody });
255
+ return {
256
+ operation: 'create_ticket',
257
+ success: true,
258
+ ticket: this.mapTicket(response.ticket),
259
+ error: '',
260
+ };
261
+ }
262
+ async updateTicket(params) {
263
+ const ticketBody = {};
264
+ if (params.comment) {
265
+ ticketBody.comment = {
266
+ body: params.comment,
267
+ public: params.public ?? true,
268
+ };
269
+ }
270
+ if (params.status)
271
+ ticketBody.status = params.status;
272
+ if (params.priority)
273
+ ticketBody.priority = params.priority;
274
+ if (params.assignee_id)
275
+ ticketBody.assignee_id = params.assignee_id;
276
+ if (params.tags)
277
+ ticketBody.tags = params.tags;
278
+ const response = await this.makeZendeskApiRequest(`/api/v2/tickets/${params.ticket_id}.json`, 'PUT', { ticket: ticketBody });
279
+ return {
280
+ operation: 'update_ticket',
281
+ success: true,
282
+ ticket: this.mapTicket(response.ticket),
283
+ error: '',
284
+ };
285
+ }
286
+ // ---- Comment operations ----
287
+ async listTicketComments(params) {
288
+ const queryParams = new URLSearchParams();
289
+ if (params.page)
290
+ queryParams.set('page', String(params.page));
291
+ if (params.per_page)
292
+ queryParams.set('per_page', String(params.per_page));
293
+ if (params.sort_order)
294
+ queryParams.set('sort_order', params.sort_order);
295
+ const queryString = queryParams.toString();
296
+ const endpoint = `/api/v2/tickets/${params.ticket_id}/comments.json${queryString ? `?${queryString}` : ''}`;
297
+ const response = await this.makeZendeskApiRequest(endpoint);
298
+ return {
299
+ operation: 'list_ticket_comments',
300
+ success: true,
301
+ comments: (response.comments || []).map(this.mapComment),
302
+ count: response.count,
303
+ next_page: response.next_page ?? null,
304
+ error: '',
305
+ };
306
+ }
307
+ // ---- User operations ----
308
+ async listUsers(params) {
309
+ const queryParams = new URLSearchParams();
310
+ if (params.page)
311
+ queryParams.set('page', String(params.page));
312
+ if (params.per_page)
313
+ queryParams.set('per_page', String(params.per_page));
314
+ if (params.query) {
315
+ queryParams.set('query', params.query);
316
+ if (params.role)
317
+ queryParams.set('role', params.role);
318
+ const queryString = queryParams.toString();
319
+ const response = await this.makeZendeskApiRequest(`/api/v2/users/search.json?${queryString}`);
320
+ return {
321
+ operation: 'list_users',
322
+ success: true,
323
+ users: (response.users || []).map(this.mapUser),
324
+ count: response.count,
325
+ next_page: response.next_page ?? null,
326
+ error: '',
327
+ };
328
+ }
329
+ if (params.role)
330
+ queryParams.set('role', params.role);
331
+ const queryString = queryParams.toString();
332
+ const endpoint = `/api/v2/users.json${queryString ? `?${queryString}` : ''}`;
333
+ const response = await this.makeZendeskApiRequest(endpoint);
334
+ return {
335
+ operation: 'list_users',
336
+ success: true,
337
+ users: (response.users || []).map(this.mapUser),
338
+ count: response.count,
339
+ next_page: response.next_page ?? null,
340
+ error: '',
341
+ };
342
+ }
343
+ async getUser(params) {
344
+ const response = await this.makeZendeskApiRequest(`/api/v2/users/${params.user_id}.json`);
345
+ return {
346
+ operation: 'get_user',
347
+ success: true,
348
+ user: this.mapUser(response.user),
349
+ error: '',
350
+ };
351
+ }
352
+ // ---- Organization operations ----
353
+ async listOrganizations(params) {
354
+ const queryParams = new URLSearchParams();
355
+ if (params.page)
356
+ queryParams.set('page', String(params.page));
357
+ if (params.per_page)
358
+ queryParams.set('per_page', String(params.per_page));
359
+ if (params.query) {
360
+ queryParams.set('name', params.query);
361
+ const queryString = queryParams.toString();
362
+ const response = await this.makeZendeskApiRequest(`/api/v2/organizations/search.json?${queryString}`);
363
+ return {
364
+ operation: 'list_organizations',
365
+ success: true,
366
+ organizations: (response.organizations || []).map(this.mapOrganization),
367
+ count: response.count,
368
+ next_page: response.next_page ?? null,
369
+ error: '',
370
+ };
371
+ }
372
+ const queryString = queryParams.toString();
373
+ const endpoint = `/api/v2/organizations.json${queryString ? `?${queryString}` : ''}`;
374
+ const response = await this.makeZendeskApiRequest(endpoint);
375
+ return {
376
+ operation: 'list_organizations',
377
+ success: true,
378
+ organizations: (response.organizations || []).map(this.mapOrganization),
379
+ count: response.count,
380
+ next_page: response.next_page ?? null,
381
+ error: '',
382
+ };
383
+ }
384
+ async getOrganization(params) {
385
+ const response = await this.makeZendeskApiRequest(`/api/v2/organizations/${params.organization_id}.json`);
386
+ return {
387
+ operation: 'get_organization',
388
+ success: true,
389
+ organization: this.mapOrganization(response.organization),
390
+ error: '',
391
+ };
392
+ }
393
+ // ---- Search ----
394
+ async search(params) {
395
+ const queryParams = new URLSearchParams();
396
+ queryParams.set('query', params.query);
397
+ if (params.page)
398
+ queryParams.set('page', String(params.page));
399
+ if (params.per_page)
400
+ queryParams.set('per_page', String(params.per_page));
401
+ if (params.sort_by)
402
+ queryParams.set('sort_by', params.sort_by);
403
+ if (params.sort_order)
404
+ queryParams.set('sort_order', params.sort_order);
405
+ const queryString = queryParams.toString();
406
+ const response = await this.makeZendeskApiRequest(`/api/v2/search.json?${queryString}`);
407
+ return {
408
+ operation: 'search',
409
+ success: true,
410
+ results: response.results || [],
411
+ count: response.count,
412
+ next_page: response.next_page ?? null,
413
+ error: '',
414
+ };
415
+ }
416
+ // ---- Help Center ----
417
+ async listArticles(params) {
418
+ const queryParams = new URLSearchParams();
419
+ if (params.page)
420
+ queryParams.set('page', String(params.page));
421
+ if (params.per_page)
422
+ queryParams.set('per_page', String(params.per_page));
423
+ // Search endpoint vs list endpoint
424
+ if (params.query) {
425
+ queryParams.set('query', params.query);
426
+ if (params.locale)
427
+ queryParams.set('locale', params.locale);
428
+ if (params.category_id)
429
+ queryParams.set('category', params.category_id);
430
+ if (params.section_id)
431
+ queryParams.set('section', params.section_id);
432
+ const queryString = queryParams.toString();
433
+ const response = await this.makeZendeskApiRequest(`/api/v2/help_center/articles/search.json?${queryString}`);
434
+ return {
435
+ operation: 'list_articles',
436
+ success: true,
437
+ articles: (response.results || []).map(this.mapArticle),
438
+ count: response.count,
439
+ next_page: response.next_page ?? null,
440
+ error: '',
441
+ };
442
+ }
443
+ let basePath = '/api/v2/help_center';
444
+ if (params.locale)
445
+ basePath += `/${params.locale}`;
446
+ if (params.section_id) {
447
+ basePath += `/sections/${params.section_id}/articles.json`;
448
+ }
449
+ else if (params.category_id) {
450
+ basePath += `/categories/${params.category_id}/articles.json`;
451
+ }
452
+ else {
453
+ basePath += '/articles.json';
454
+ }
455
+ const queryString = queryParams.toString();
456
+ const endpoint = `${basePath}${queryString ? `?${queryString}` : ''}`;
457
+ const response = await this.makeZendeskApiRequest(endpoint);
458
+ return {
459
+ operation: 'list_articles',
460
+ success: true,
461
+ articles: (response.articles || []).map(this.mapArticle),
462
+ count: response.count,
463
+ next_page: response.next_page ?? null,
464
+ error: '',
465
+ };
466
+ }
467
+ async getArticle(params) {
468
+ let endpoint = '/api/v2/help_center';
469
+ if (params.locale)
470
+ endpoint += `/${params.locale}`;
471
+ endpoint += `/articles/${params.article_id}.json`;
472
+ const response = await this.makeZendeskApiRequest(endpoint);
473
+ return {
474
+ operation: 'get_article',
475
+ success: true,
476
+ article: this.mapArticle(response.article),
477
+ error: '',
478
+ };
479
+ }
480
+ // ---- Mappers ----
481
+ mapTicket = (t) => ({
482
+ id: t.id,
483
+ subject: t.subject,
484
+ description: t.description,
485
+ status: t.status,
486
+ priority: t.priority,
487
+ type: t.type,
488
+ requester_id: t.requester_id,
489
+ assignee_id: t.assignee_id,
490
+ organization_id: t.organization_id,
491
+ tags: t.tags,
492
+ created_at: t.created_at,
493
+ updated_at: t.updated_at,
494
+ });
495
+ mapComment = (c) => ({
496
+ id: c.id,
497
+ body: c.body,
498
+ html_body: c.html_body,
499
+ public: c.public,
500
+ author_id: c.author_id,
501
+ created_at: c.created_at,
502
+ });
503
+ mapUser = (u) => ({
504
+ id: u.id,
505
+ name: u.name,
506
+ email: u.email,
507
+ role: u.role,
508
+ organization_id: u.organization_id,
509
+ active: u.active,
510
+ created_at: u.created_at,
511
+ });
512
+ mapOrganization = (o) => ({
513
+ id: o.id,
514
+ name: o.name,
515
+ domain_names: o.domain_names,
516
+ external_id: o.external_id,
517
+ created_at: o.created_at,
518
+ });
519
+ mapArticle = (a) => ({
520
+ id: a.id,
521
+ title: a.title,
522
+ body: a.body,
523
+ locale: a.locale,
524
+ section_id: a.section_id,
525
+ author_id: a.author_id,
526
+ draft: a.draft,
527
+ created_at: a.created_at,
528
+ updated_at: a.updated_at,
529
+ });
530
+ }
531
+ //# sourceMappingURL=zendesk.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zendesk.js","sourceRoot":"","sources":["../../../../src/bubbles/service-bubble/zendesk/zendesk.ts"],"names":[],"mappings":"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"}