@awell-health/awell-extensions 2.1.14 → 2.1.16

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 (33) hide show
  1. package/dist/extensions/markdown.json +1 -1
  2. package/dist/extensions/zendesk/v1/actions/deleteTicket/config/fields.d.ts +18 -0
  3. package/dist/extensions/zendesk/v1/actions/deleteTicket/config/fields.js +18 -0
  4. package/dist/extensions/zendesk/v1/actions/deleteTicket/config/fields.js.map +1 -0
  5. package/dist/extensions/zendesk/v1/actions/deleteTicket/config/index.d.ts +1 -0
  6. package/dist/extensions/zendesk/v1/actions/deleteTicket/config/index.js +7 -0
  7. package/dist/extensions/zendesk/v1/actions/deleteTicket/config/index.js.map +1 -0
  8. package/dist/extensions/zendesk/v1/actions/deleteTicket/deleteTicket.d.ts +4 -0
  9. package/dist/extensions/zendesk/v1/actions/deleteTicket/deleteTicket.js +53 -0
  10. package/dist/extensions/zendesk/v1/actions/deleteTicket/deleteTicket.js.map +1 -0
  11. package/dist/extensions/zendesk/v1/actions/deleteTicket/index.d.ts +1 -0
  12. package/dist/extensions/zendesk/v1/actions/deleteTicket/index.js +6 -0
  13. package/dist/extensions/zendesk/v1/actions/deleteTicket/index.js.map +1 -0
  14. package/dist/extensions/zendesk/v1/actions/index.d.ts +2 -0
  15. package/dist/extensions/zendesk/v1/actions/index.js +5 -1
  16. package/dist/extensions/zendesk/v1/actions/index.js.map +1 -1
  17. package/dist/extensions/zendesk/v1/actions/updateTicket/config/fields.d.ts +62 -0
  18. package/dist/extensions/zendesk/v1/actions/updateTicket/config/fields.js +58 -0
  19. package/dist/extensions/zendesk/v1/actions/updateTicket/config/fields.js.map +1 -0
  20. package/dist/extensions/zendesk/v1/actions/updateTicket/config/index.d.ts +1 -0
  21. package/dist/extensions/zendesk/v1/actions/updateTicket/config/index.js +7 -0
  22. package/dist/extensions/zendesk/v1/actions/updateTicket/config/index.js.map +1 -0
  23. package/dist/extensions/zendesk/v1/actions/updateTicket/index.d.ts +1 -0
  24. package/dist/extensions/zendesk/v1/actions/updateTicket/index.js +6 -0
  25. package/dist/extensions/zendesk/v1/actions/updateTicket/index.js.map +1 -0
  26. package/dist/extensions/zendesk/v1/actions/updateTicket/updateTicket.d.ts +4 -0
  27. package/dist/extensions/zendesk/v1/actions/updateTicket/updateTicket.js +63 -0
  28. package/dist/extensions/zendesk/v1/actions/updateTicket/updateTicket.js.map +1 -0
  29. package/dist/extensions/zendesk/v1/client/client.d.ts +3 -1
  30. package/dist/extensions/zendesk/v1/client/client.js +6 -0
  31. package/dist/extensions/zendesk/v1/client/client.js.map +1 -1
  32. package/dist/extensions/zendesk/v1/client/types.d.ts +7 -0
  33. package/package.json +1 -1
@@ -224,7 +224,7 @@
224
224
  "changelog": "# Workramp changelog\n\n## 2024-08-28\n\nCreated the extension."
225
225
  },
226
226
  "zendesk": {
227
- "readme": "# Zendesk Support\n\nZendesk Support is a customer service platform that provides ticketing, knowledge base, and customer communication tools.\n\n## Extension settings\n\nTo set up this extension, you will need to provide the following:\n\n1. **Zendesk Subdomain:** your Zendesk subdomain (e.g., \"company\" for company.zendesk.com)\n2. **OAuth Client ID:** the client ID of the OAuth app you created in Zendesk\n3. **OAuth Client Secret:** the client secret of the OAuth app you created in Zendesk\n\nYou'll have to set up an [OAuth app](https://developer.zendesk.com/api-reference/introduction/security-and-auth/#oauth-access-token) in Zendesk to provision a client ID and secret.\n\n## Actions\n\n### Create Ticket\n\nCreates a new support ticket in Zendesk with the specified details.\n\n**Required fields:**\n- Subject: The subject line of the ticket\n- Comment: The initial comment/description for the ticket\n\n**Optional fields:**\n- Group ID: The ID of the group to assign the ticket to\n- Priority: The priority level (urgent, high, normal, or low)\n- External ID: An external identifier to link this ticket to your system\n- Tag: A tag to add to the ticket\n\n**Returns:**\n- Ticket ID: The unique identifier of the created ticket\n- Ticket URL: Direct link to the ticket in Zendesk agent interface\n",
227
+ "readme": "# Zendesk Support\n\nZendesk Support is a customer service platform that provides ticketing, knowledge base, and customer communication tools.\n\n## Extension settings\n\nTo set up this extension, you will need to provide the following:\n\n1. **Zendesk Subdomain:** your Zendesk subdomain (e.g., \"company\" for company.zendesk.com)\n2. **User Email:** your Zendesk user email address\n3. **API Token:** your Zendesk API token\n\nYou can generate an API token in your Zendesk admin settings under API > Zendesk API.\n\n## Actions\n\n### Create Ticket\n\nCreates a new support ticket in Zendesk with the specified details.\n\n**Required fields:**\n- Subject: The subject line of the ticket\n- Comment: The initial comment/description for the ticket\n\n**Optional fields:**\n- Group ID: The ID of the group to assign the ticket to\n- Priority: The priority level (urgent, high, normal, or low)\n- External ID: An external identifier to link this ticket to your system\n- Tag: A tag to add to the ticket\n\n**Returns:**\n- Ticket ID: The unique identifier of the created ticket\n- Ticket URL: Direct link to the ticket in Zendesk agent interface\n\n### Delete Ticket\n\nDeletes a support ticket in Zendesk. This action permanently removes the ticket from your Zendesk instance.\n\n**Required fields:**\n- Ticket ID: The unique identifier of the ticket to delete\n\n**Note:** This action cannot be undone. Deleted tickets are permanently removed from Zendesk.\n",
228
228
  "changelog": "# Changelog\n\nAll notable changes to this project will be documented in this file.\n\n## [1.0.0] - 2025-01-10\n\n### Added\n\n- Initial release of Zendesk Support extension\n- Create Ticket action with OAuth authentication\n- Support for all major ticket fields: subject, comment, group_id, priority, external_id, tags\n"
229
229
  },
230
230
  "zendeskSell": {
@@ -0,0 +1,18 @@
1
+ import { z } from 'zod';
2
+ import { FieldType } from '@awell-health/extensions-core';
3
+ export declare const fields: {
4
+ ticketId: {
5
+ label: string;
6
+ id: string;
7
+ type: FieldType.NUMERIC;
8
+ required: true;
9
+ description: string;
10
+ };
11
+ };
12
+ export declare const FieldsValidationSchema: z.ZodObject<{
13
+ ticketId: z.ZodNumber;
14
+ }, "strip", z.ZodTypeAny, {
15
+ ticketId: number;
16
+ }, {
17
+ ticketId: number;
18
+ }>;
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FieldsValidationSchema = exports.fields = void 0;
4
+ const zod_1 = require("zod");
5
+ const extensions_core_1 = require("@awell-health/extensions-core");
6
+ exports.fields = {
7
+ ticketId: {
8
+ label: 'Ticket ID',
9
+ id: 'ticketId',
10
+ type: extensions_core_1.FieldType.NUMERIC,
11
+ required: true,
12
+ description: 'The ID of the ticket to delete.',
13
+ },
14
+ };
15
+ exports.FieldsValidationSchema = zod_1.z.object({
16
+ ticketId: extensions_core_1.NumericIdSchema,
17
+ });
18
+ //# sourceMappingURL=fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../../../../../extensions/zendesk/v1/actions/deleteTicket/config/fields.ts"],"names":[],"mappings":";;;AAAA,6BAAwC;AACxC,mEAIsC;AAEzB,QAAA,MAAM,GAAG;IACpB,QAAQ,EAAE;QACR,KAAK,EAAE,WAAW;QAClB,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,2BAAS,CAAC,OAAO;QACvB,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,iCAAiC;KAC/C;CAC8B,CAAA;AAEpB,QAAA,sBAAsB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7C,QAAQ,EAAE,iCAAe;CACwB,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export { fields, FieldsValidationSchema } from './fields';
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FieldsValidationSchema = exports.fields = void 0;
4
+ var fields_1 = require("./fields");
5
+ Object.defineProperty(exports, "fields", { enumerable: true, get: function () { return fields_1.fields; } });
6
+ Object.defineProperty(exports, "FieldsValidationSchema", { enumerable: true, get: function () { return fields_1.FieldsValidationSchema; } });
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../extensions/zendesk/v1/actions/deleteTicket/config/index.ts"],"names":[],"mappings":";;;AAAA,mCAAyD;AAAhD,gGAAA,MAAM,OAAA;AAAE,gHAAA,sBAAsB,OAAA"}
@@ -0,0 +1,4 @@
1
+ import { type Action } from '@awell-health/extensions-core';
2
+ import { type settings } from '../../../settings';
3
+ import { fields } from './config';
4
+ export declare const deleteTicket: Action<typeof fields, typeof settings>;
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteTicket = void 0;
4
+ const zod_1 = require("zod");
5
+ const extensions_core_1 = require("@awell-health/extensions-core");
6
+ const settings_1 = require("../../../settings");
7
+ const config_1 = require("./config");
8
+ const client_1 = require("../../client");
9
+ const error_1 = require("../../client/error");
10
+ exports.deleteTicket = {
11
+ key: 'deleteTicket',
12
+ title: 'Delete ticket',
13
+ description: 'Deletes a support ticket in Zendesk',
14
+ category: extensions_core_1.Category.CUSTOMER_SUPPORT,
15
+ fields: config_1.fields,
16
+ previewable: false,
17
+ onEvent: async ({ payload, onComplete, onError }) => {
18
+ try {
19
+ const { settings, fields: { ticketId }, } = (0, extensions_core_1.validate)({
20
+ schema: zod_1.z.object({
21
+ settings: settings_1.SettingsValidationSchema,
22
+ fields: config_1.FieldsValidationSchema,
23
+ }),
24
+ payload,
25
+ });
26
+ const client = (0, client_1.makeAPIClient)(settings);
27
+ await client.deleteTicket(String(ticketId));
28
+ await onComplete();
29
+ }
30
+ catch (err) {
31
+ if ((0, error_1.isZendeskApiError)(err)) {
32
+ const events = (0, error_1.zendeskApiErrorToActivityEvent)(err);
33
+ await onError({ events });
34
+ }
35
+ else {
36
+ const errorMessage = err instanceof Error ? err.message : 'Unknown error occurred';
37
+ await onError({
38
+ events: [
39
+ {
40
+ date: new Date().toISOString(),
41
+ text: { en: `Failed to delete ticket: ${errorMessage}` },
42
+ error: {
43
+ category: 'SERVER_ERROR',
44
+ message: errorMessage,
45
+ },
46
+ },
47
+ ],
48
+ });
49
+ }
50
+ }
51
+ },
52
+ };
53
+ //# sourceMappingURL=deleteTicket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"deleteTicket.js","sourceRoot":"","sources":["../../../../../../extensions/zendesk/v1/actions/deleteTicket/deleteTicket.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAGvB,mEAAkE;AAClE,gDAA4D;AAC5D,qCAAyD;AACzD,yCAA4C;AAC5C,8CAG2B;AAEd,QAAA,YAAY,GAA2C;IAClE,GAAG,EAAE,cAAc;IACnB,KAAK,EAAE,eAAe;IACtB,WAAW,EAAE,qCAAqC;IAClD,QAAQ,EAAE,0BAAQ,CAAC,gBAAgB;IACnC,MAAM,EAAN,eAAM;IACN,WAAW,EAAE,KAAK;IAClB,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAiB,EAAE;QACjE,IAAI,CAAC;YACH,MAAM,EACJ,QAAQ,EACR,MAAM,EAAE,EAAE,QAAQ,EAAE,GACrB,GAAG,IAAA,0BAAQ,EAAC;gBACX,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC;oBACf,QAAQ,EAAE,mCAAwB;oBAClC,MAAM,EAAE,+BAAsB;iBAC/B,CAAC;gBACF,OAAO;aACR,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG,IAAA,sBAAa,EAAC,QAAQ,CAAC,CAAA;YACtC,MAAM,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA;YAE3C,MAAM,UAAU,EAAE,CAAA;QACpB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,IAAA,yBAAiB,EAAC,GAAG,CAAC,EAAE,CAAC;gBAC3B,MAAM,MAAM,GAAG,IAAA,sCAA8B,EAAC,GAAG,CAAC,CAAA;gBAClD,MAAM,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;YAC3B,CAAC;iBAAM,CAAC;gBACN,MAAM,YAAY,GAChB,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAA;gBAC/D,MAAM,OAAO,CAAC;oBACZ,MAAM,EAAE;wBACN;4BACE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;4BAC9B,IAAI,EAAE,EAAE,EAAE,EAAE,4BAA4B,YAAY,EAAE,EAAE;4BACxD,KAAK,EAAE;gCACL,QAAQ,EAAE,cAAc;gCACxB,OAAO,EAAE,YAAY;6BACtB;yBACF;qBACF;iBACF,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;IACH,CAAC;CACF,CAAA"}
@@ -0,0 +1 @@
1
+ export { deleteTicket } from './deleteTicket';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.deleteTicket = void 0;
4
+ var deleteTicket_1 = require("./deleteTicket");
5
+ Object.defineProperty(exports, "deleteTicket", { enumerable: true, get: function () { return deleteTicket_1.deleteTicket; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../extensions/zendesk/v1/actions/deleteTicket/index.ts"],"names":[],"mappings":";;;AAAA,+CAA6C;AAApC,4GAAA,YAAY,OAAA"}
@@ -1 +1,3 @@
1
1
  export { createTicket } from './createTicket';
2
+ export { deleteTicket } from './deleteTicket';
3
+ export { updateTicket } from './updateTicket';
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createTicket = void 0;
3
+ exports.updateTicket = exports.deleteTicket = exports.createTicket = void 0;
4
4
  var createTicket_1 = require("./createTicket");
5
5
  Object.defineProperty(exports, "createTicket", { enumerable: true, get: function () { return createTicket_1.createTicket; } });
6
+ var deleteTicket_1 = require("./deleteTicket");
7
+ Object.defineProperty(exports, "deleteTicket", { enumerable: true, get: function () { return deleteTicket_1.deleteTicket; } });
8
+ var updateTicket_1 = require("./updateTicket");
9
+ Object.defineProperty(exports, "updateTicket", { enumerable: true, get: function () { return updateTicket_1.updateTicket; } });
6
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../extensions/zendesk/v1/actions/index.ts"],"names":[],"mappings":";;;AAAA,+CAA6C;AAApC,4GAAA,YAAY,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../extensions/zendesk/v1/actions/index.ts"],"names":[],"mappings":";;;AAAA,+CAA6C;AAApC,4GAAA,YAAY,OAAA;AACrB,+CAA6C;AAApC,4GAAA,YAAY,OAAA;AACrB,+CAA6C;AAApC,4GAAA,YAAY,OAAA"}
@@ -0,0 +1,62 @@
1
+ import { z } from 'zod';
2
+ import { FieldType, StringType } from '@awell-health/extensions-core';
3
+ export declare const fields: {
4
+ ticket_id: {
5
+ label: string;
6
+ id: string;
7
+ type: FieldType.STRING;
8
+ stringType: StringType.TEXT;
9
+ required: true;
10
+ description: string;
11
+ };
12
+ comment: {
13
+ label: string;
14
+ id: string;
15
+ type: FieldType.STRING;
16
+ stringType: StringType.TEXT;
17
+ required: false;
18
+ description: string;
19
+ };
20
+ priority: {
21
+ label: string;
22
+ id: string;
23
+ type: FieldType.STRING;
24
+ required: false;
25
+ description: string;
26
+ options: {
27
+ dropdownOptions: {
28
+ label: "urgent" | "high" | "normal" | "low";
29
+ value: "urgent" | "high" | "normal" | "low";
30
+ }[];
31
+ };
32
+ };
33
+ status: {
34
+ label: string;
35
+ id: string;
36
+ type: FieldType.STRING;
37
+ required: false;
38
+ description: string;
39
+ options: {
40
+ dropdownOptions: {
41
+ label: "pending" | "closed" | "open" | "new" | "hold" | "solved";
42
+ value: "pending" | "closed" | "open" | "new" | "hold" | "solved";
43
+ }[];
44
+ };
45
+ };
46
+ };
47
+ export declare const FieldsValidationSchema: z.ZodObject<{
48
+ ticket_id: z.ZodString;
49
+ comment: z.ZodOptional<z.ZodString>;
50
+ priority: z.ZodUnion<[z.ZodOptional<z.ZodEnum<["urgent", "high", "normal", "low"]>>, z.ZodEffects<z.ZodLiteral<"">, undefined, "">]>;
51
+ status: z.ZodUnion<[z.ZodOptional<z.ZodEnum<["new", "open", "pending", "hold", "solved", "closed"]>>, z.ZodEffects<z.ZodLiteral<"">, undefined, "">]>;
52
+ }, "strip", z.ZodTypeAny, {
53
+ ticket_id: string;
54
+ status?: "pending" | "closed" | "open" | "new" | "hold" | "solved" | undefined;
55
+ priority?: "urgent" | "high" | "normal" | "low" | undefined;
56
+ comment?: string | undefined;
57
+ }, {
58
+ ticket_id: string;
59
+ status?: "" | "pending" | "closed" | "open" | "new" | "hold" | "solved" | undefined;
60
+ priority?: "" | "urgent" | "high" | "normal" | "low" | undefined;
61
+ comment?: string | undefined;
62
+ }>;
@@ -0,0 +1,58 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FieldsValidationSchema = exports.fields = void 0;
4
+ const zod_1 = require("zod");
5
+ const extensions_core_1 = require("@awell-health/extensions-core");
6
+ const priorityEnum = zod_1.z.enum(['urgent', 'high', 'normal', 'low']);
7
+ const statusEnum = zod_1.z.enum(['new', 'open', 'pending', 'hold', 'solved', 'closed']);
8
+ exports.fields = {
9
+ ticket_id: {
10
+ label: 'Ticket ID',
11
+ id: 'ticket_id',
12
+ type: extensions_core_1.FieldType.STRING,
13
+ stringType: extensions_core_1.StringType.TEXT,
14
+ required: true,
15
+ description: 'The ID of the ticket to update.',
16
+ },
17
+ comment: {
18
+ label: 'Comment',
19
+ id: 'comment',
20
+ type: extensions_core_1.FieldType.STRING,
21
+ stringType: extensions_core_1.StringType.TEXT,
22
+ required: false,
23
+ description: 'Add a comment to the ticket.',
24
+ },
25
+ priority: {
26
+ label: 'Priority',
27
+ id: 'priority',
28
+ type: extensions_core_1.FieldType.STRING,
29
+ required: false,
30
+ description: 'The priority level: urgent, high, normal, or low.',
31
+ options: {
32
+ dropdownOptions: Object.values(priorityEnum.enum).map((priority) => ({
33
+ label: priority,
34
+ value: priority,
35
+ })),
36
+ },
37
+ },
38
+ status: {
39
+ label: 'Status',
40
+ id: 'status',
41
+ type: extensions_core_1.FieldType.STRING,
42
+ required: false,
43
+ description: 'The status: new, open, pending, hold, solved, or closed.',
44
+ options: {
45
+ dropdownOptions: Object.values(statusEnum.enum).map((status) => ({
46
+ label: status,
47
+ value: status,
48
+ })),
49
+ },
50
+ },
51
+ };
52
+ exports.FieldsValidationSchema = zod_1.z.object({
53
+ ticket_id: zod_1.z.string().nonempty(),
54
+ comment: zod_1.z.string().optional(),
55
+ priority: (0, extensions_core_1.makeStringOptional)(priorityEnum),
56
+ status: (0, extensions_core_1.makeStringOptional)(statusEnum),
57
+ });
58
+ //# sourceMappingURL=fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../../../../../extensions/zendesk/v1/actions/updateTicket/config/fields.ts"],"names":[],"mappings":";;;AAAA,6BAAwC;AACxC,mEAKsC;AAEtC,MAAM,YAAY,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAA;AAChE,MAAM,UAAU,GAAG,OAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAA;AAEpE,QAAA,MAAM,GAAG;IACpB,SAAS,EAAE;QACT,KAAK,EAAE,WAAW;QAClB,EAAE,EAAE,WAAW;QACf,IAAI,EAAE,2BAAS,CAAC,MAAM;QACtB,UAAU,EAAE,4BAAU,CAAC,IAAI;QAC3B,QAAQ,EAAE,IAAI;QACd,WAAW,EAAE,iCAAiC;KAC/C;IACD,OAAO,EAAE;QACP,KAAK,EAAE,SAAS;QAChB,EAAE,EAAE,SAAS;QACb,IAAI,EAAE,2BAAS,CAAC,MAAM;QACtB,UAAU,EAAE,4BAAU,CAAC,IAAI;QAC3B,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,8BAA8B;KAC5C;IACD,QAAQ,EAAE;QACR,KAAK,EAAE,UAAU;QACjB,EAAE,EAAE,UAAU;QACd,IAAI,EAAE,2BAAS,CAAC,MAAM;QACtB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,mDAAmD;QAChE,OAAO,EAAE;YACP,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;gBACnE,KAAK,EAAE,QAAQ;gBACf,KAAK,EAAE,QAAQ;aAChB,CAAC,CAAC;SACJ;KACF;IACD,MAAM,EAAE;QACN,KAAK,EAAE,QAAQ;QACf,EAAE,EAAE,QAAQ;QACZ,IAAI,EAAE,2BAAS,CAAC,MAAM;QACtB,QAAQ,EAAE,KAAK;QACf,WAAW,EAAE,0DAA0D;QACvE,OAAO,EAAE;YACP,eAAe,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;gBAC/D,KAAK,EAAE,MAAM;gBACb,KAAK,EAAE,MAAM;aACd,CAAC,CAAC;SACJ;KACF;CAC8B,CAAA;AAEpB,QAAA,sBAAsB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7C,SAAS,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAChC,OAAO,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9B,QAAQ,EAAE,IAAA,oCAAkB,EAAC,YAAY,CAAC;IAC1C,MAAM,EAAE,IAAA,oCAAkB,EAAC,UAAU,CAAC;CACW,CAAC,CAAA"}
@@ -0,0 +1 @@
1
+ export { fields, FieldsValidationSchema } from './fields';
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FieldsValidationSchema = exports.fields = void 0;
4
+ var fields_1 = require("./fields");
5
+ Object.defineProperty(exports, "fields", { enumerable: true, get: function () { return fields_1.fields; } });
6
+ Object.defineProperty(exports, "FieldsValidationSchema", { enumerable: true, get: function () { return fields_1.FieldsValidationSchema; } });
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../extensions/zendesk/v1/actions/updateTicket/config/index.ts"],"names":[],"mappings":";;;AAAA,mCAAyD;AAAhD,gGAAA,MAAM,OAAA;AAAE,gHAAA,sBAAsB,OAAA"}
@@ -0,0 +1 @@
1
+ export { updateTicket } from './updateTicket';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateTicket = void 0;
4
+ var updateTicket_1 = require("./updateTicket");
5
+ Object.defineProperty(exports, "updateTicket", { enumerable: true, get: function () { return updateTicket_1.updateTicket; } });
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../extensions/zendesk/v1/actions/updateTicket/index.ts"],"names":[],"mappings":";;;AAAA,+CAA6C;AAApC,4GAAA,YAAY,OAAA"}
@@ -0,0 +1,4 @@
1
+ import { type Action } from '@awell-health/extensions-core';
2
+ import { type settings } from '../../../settings';
3
+ import { fields } from './config';
4
+ export declare const updateTicket: Action<typeof fields, typeof settings>;
@@ -0,0 +1,63 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.updateTicket = void 0;
4
+ const zod_1 = require("zod");
5
+ const extensions_core_1 = require("@awell-health/extensions-core");
6
+ const settings_1 = require("../../../settings");
7
+ const config_1 = require("./config");
8
+ const client_1 = require("../../client");
9
+ const error_1 = require("../../client/error");
10
+ exports.updateTicket = {
11
+ key: 'updateTicket',
12
+ title: 'Update ticket',
13
+ description: 'Updates an existing support ticket in Zendesk',
14
+ category: extensions_core_1.Category.CUSTOMER_SUPPORT,
15
+ fields: config_1.fields,
16
+ previewable: false,
17
+ onEvent: async ({ payload, onComplete, onError, helpers }) => {
18
+ try {
19
+ const { settings, fields: { ticket_id, comment, priority, status }, } = (0, extensions_core_1.validate)({
20
+ schema: zod_1.z.object({
21
+ settings: settings_1.SettingsValidationSchema,
22
+ fields: config_1.FieldsValidationSchema,
23
+ }),
24
+ payload,
25
+ });
26
+ const client = (0, client_1.makeAPIClient)(settings);
27
+ const updateData = {};
28
+ if (comment) {
29
+ updateData.comment = { body: comment };
30
+ }
31
+ if (priority) {
32
+ updateData.priority = priority;
33
+ }
34
+ if (status) {
35
+ updateData.status = status;
36
+ }
37
+ await client.updateTicket(ticket_id, updateData);
38
+ await onComplete({});
39
+ }
40
+ catch (err) {
41
+ if ((0, error_1.isZendeskApiError)(err)) {
42
+ const events = (0, error_1.zendeskApiErrorToActivityEvent)(err);
43
+ await onError({ events });
44
+ }
45
+ else {
46
+ const errorMessage = err instanceof Error ? err.message : 'Unknown error occurred';
47
+ await onError({
48
+ events: [
49
+ {
50
+ date: new Date().toISOString(),
51
+ text: { en: `Failed to update ticket: ${errorMessage}` },
52
+ error: {
53
+ category: 'SERVER_ERROR',
54
+ message: errorMessage,
55
+ },
56
+ },
57
+ ],
58
+ });
59
+ }
60
+ }
61
+ },
62
+ };
63
+ //# sourceMappingURL=updateTicket.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"updateTicket.js","sourceRoot":"","sources":["../../../../../../extensions/zendesk/v1/actions/updateTicket/updateTicket.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAGvB,mEAAkE;AAClE,gDAA4D;AAC5D,qCAAyD;AACzD,yCAA4C;AAC5C,8CAAsF;AAEzE,QAAA,YAAY,GAA2C;IAClE,GAAG,EAAE,cAAc;IACnB,KAAK,EAAE,eAAe;IACtB,WAAW,EAAE,+CAA+C;IAC5D,QAAQ,EAAE,0BAAQ,CAAC,gBAAgB;IACnC,MAAM,EAAN,eAAM;IACN,WAAW,EAAE,KAAK;IAClB,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,EAAiB,EAAE;QAC1E,IAAI,CAAC;YACH,MAAM,EACJ,QAAQ,EACR,MAAM,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GACjD,GAAG,IAAA,0BAAQ,EAAC;gBACX,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC;oBACf,QAAQ,EAAE,mCAAwB;oBAClC,MAAM,EAAE,+BAAsB;iBAC/B,CAAC;gBACF,OAAO;aACR,CAAC,CAAA;YAEF,MAAM,MAAM,GAAG,IAAA,sBAAa,EAAC,QAAQ,CAAC,CAAA;YAEtC,MAAM,UAAU,GAAQ,EAAE,CAAA;YAE1B,IAAI,OAAO,EAAE,CAAC;gBACZ,UAAU,CAAC,OAAO,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,CAAA;YACxC,CAAC;YACD,IAAI,QAAQ,EAAE,CAAC;gBACb,UAAU,CAAC,QAAQ,GAAG,QAAQ,CAAA;YAChC,CAAC;YACD,IAAI,MAAM,EAAE,CAAC;gBACX,UAAU,CAAC,MAAM,GAAG,MAAM,CAAA;YAC5B,CAAC;YAED,MAAM,MAAM,CAAC,YAAY,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;YAEhD,MAAM,UAAU,CAAC,EAAE,CAAC,CAAA;QACtB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,IAAA,yBAAiB,EAAC,GAAG,CAAC,EAAE,CAAC;gBAC3B,MAAM,MAAM,GAAG,IAAA,sCAA8B,EAAC,GAAG,CAAC,CAAA;gBAClD,MAAM,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC,CAAA;YAC3B,CAAC;iBAAM,CAAC;gBACN,MAAM,YAAY,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,wBAAwB,CAAA;gBAClF,MAAM,OAAO,CAAC;oBACZ,MAAM,EAAE;wBACN;4BACE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;4BAC9B,IAAI,EAAE,EAAE,EAAE,EAAE,4BAA4B,YAAY,EAAE,EAAE;4BACxD,KAAK,EAAE;gCACL,QAAQ,EAAE,cAAc;gCACxB,OAAO,EAAE,YAAY;6BACtB;yBACF;qBACF;iBACF,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;IACH,CAAC;CACF,CAAA"}
@@ -1,7 +1,9 @@
1
- import { type CreateTicketInput, type CreateTicketResponse } from './types';
1
+ import { type CreateTicketInput, type CreateTicketResponse, type UpdateTicketInput } from './types';
2
2
  export declare class ZendeskAPIClient {
3
3
  private readonly client;
4
4
  constructor(subdomain: string, userEmail: string, apiToken: string);
5
5
  createTicket(data: CreateTicketInput): Promise<CreateTicketResponse>;
6
+ deleteTicket(ticketId: string): Promise<void>;
7
+ updateTicket(ticketId: string, data: UpdateTicketInput): Promise<void>;
6
8
  }
7
9
  export declare const makeAPIClient: (payloadSettings: Record<string, string | undefined>) => ZendeskAPIClient;
@@ -22,6 +22,12 @@ class ZendeskAPIClient {
22
22
  const response = await this.client.post('/api/v2/tickets', { ticket: data });
23
23
  return response.data;
24
24
  }
25
+ async deleteTicket(ticketId) {
26
+ await this.client.delete(`/api/v2/tickets/${ticketId}`);
27
+ }
28
+ async updateTicket(ticketId, data) {
29
+ await this.client.put(`/api/v2/tickets/${ticketId}`, { ticket: data });
30
+ }
25
31
  }
26
32
  exports.ZendeskAPIClient = ZendeskAPIClient;
27
33
  const makeAPIClient = (payloadSettings) => {
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../../extensions/zendesk/v1/client/client.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAqE;AACrE,6CAAyD;AAGzD,MAAa,gBAAgB;IAG3B,YAAY,SAAiB,EAAE,SAAiB,EAAE,QAAgB;QAChE,MAAM,WAAW,GAAG,GAAG,SAAS,UAAU,QAAQ,EAAE,CAAA;QACpD,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAEtE,IAAI,CAAC,MAAM,GAAG,eAAK,CAAC,MAAM,CAAC;YACzB,OAAO,EAAE,WAAW,SAAS,cAAc;YAC3C,OAAO,EAAE;gBACP,aAAa,EAAE,SAAS,kBAAkB,EAAE;gBAC5C,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAC,CAAA;IACJ,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,IAAuB;QAC/C,MAAM,QAAQ,GAAwC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAC1E,iBAAiB,EACjB,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB,CAAA;QAED,OAAO,QAAQ,CAAC,IAAI,CAAA;IACtB,CAAC;CACF;AAxBD,4CAwBC;AAEM,MAAM,aAAa,GAAG,CAC3B,eAAmD,EACjC,EAAE;IACpB,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,mCAAwB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;IAE5F,OAAO,IAAI,gBAAgB,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAA;AAC/D,CAAC,CAAA;AANY,QAAA,aAAa,iBAMzB"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../../extensions/zendesk/v1/client/client.ts"],"names":[],"mappings":";;;;;;AAAA,kDAAqE;AACrE,6CAAyD;AAGzD,MAAa,gBAAgB;IAG3B,YAAY,SAAiB,EAAE,SAAiB,EAAE,QAAgB;QAChE,MAAM,WAAW,GAAG,GAAG,SAAS,UAAU,QAAQ,EAAE,CAAA;QACpD,MAAM,kBAAkB,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAEtE,IAAI,CAAC,MAAM,GAAG,eAAK,CAAC,MAAM,CAAC;YACzB,OAAO,EAAE,WAAW,SAAS,cAAc;YAC3C,OAAO,EAAE;gBACP,aAAa,EAAE,SAAS,kBAAkB,EAAE;gBAC5C,cAAc,EAAE,kBAAkB;aACnC;SACF,CAAC,CAAA;IACJ,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,IAAuB;QAC/C,MAAM,QAAQ,GAAwC,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAC1E,iBAAiB,EACjB,EAAE,MAAM,EAAE,IAAI,EAAE,CACjB,CAAA;QAED,OAAO,QAAQ,CAAC,IAAI,CAAA;IACtB,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,QAAgB;QACxC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,mBAAmB,QAAQ,EAAE,CAAC,CAAA;IACzD,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,QAAgB,EAAE,IAAuB;QACjE,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mBAAmB,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAA;IACxE,CAAC;CACF;AAhCD,4CAgCC;AAEM,MAAM,aAAa,GAAG,CAC3B,eAAmD,EACjC,EAAE;IACpB,MAAM,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,mCAAwB,CAAC,KAAK,CAAC,eAAe,CAAC,CAAA;IAE5F,OAAO,IAAI,gBAAgB,CAAC,SAAS,EAAE,UAAU,EAAE,SAAS,CAAC,CAAA;AAC/D,CAAC,CAAA;AANY,QAAA,aAAa,iBAMzB"}
@@ -17,6 +17,13 @@ export interface CreateTicketResponse {
17
17
  updated_at: string;
18
18
  };
19
19
  }
20
+ export interface UpdateTicketInput {
21
+ comment?: {
22
+ body: string;
23
+ };
24
+ priority?: 'urgent' | 'high' | 'normal' | 'low';
25
+ status?: 'new' | 'open' | 'pending' | 'hold' | 'solved' | 'closed';
26
+ }
20
27
  export interface ZendeskApiErrorResponse {
21
28
  errors: Array<{
22
29
  error: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@awell-health/awell-extensions",
3
- "version": "2.1.14",
3
+ "version": "2.1.16",
4
4
  "packageManager": "yarn@4.5.3",
5
5
  "main": "dist/src/index.js",
6
6
  "repository": {