Skip to content

Commit 14b4359

Browse files
seynadioclaudeAfstklamichelle0927
authored
Merging pull request #17610
* Add comprehensive tag management for Freshdesk tickets - Added ticketTags prop definition to freshdesk.app.mjs - Added 3 tag management methods: setTicketTags, addTicketTags, removeTicketTags - Created 3 dedicated tag actions: set-ticket-tags, add-ticket-tags, remove-ticket-tags - Enhanced update-ticket action with tag support - Provides feature parity with Zendesk tag management 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]> * Update update-ticket.mjs * versions, eslint * pnpm-lock.yaml --------- Co-authored-by: Claude <[email protected]> Co-authored-by: Job <[email protected]> Co-authored-by: Michelle Bergeron <[email protected]>
1 parent 1de7c03 commit 14b4359

File tree

18 files changed

+228
-14
lines changed

18 files changed

+228
-14
lines changed
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import freshdesk from "../../freshdesk.app.mjs";
2+
import { ConfigurationError } from "@pipedream/platform";
3+
4+
export default {
5+
key: "freshdesk-add-ticket-tags",
6+
name: "Add Ticket Tags",
7+
description: "Add tags to a ticket (appends to existing tags). [See the documentation](https://developers.freshdesk.com/api/#update_ticket)",
8+
type: "action",
9+
version: "0.0.1",
10+
props: {
11+
freshdesk,
12+
ticketId: {
13+
propDefinition: [
14+
freshdesk,
15+
"ticketId",
16+
],
17+
},
18+
ticketTags: {
19+
propDefinition: [
20+
freshdesk,
21+
"ticketTags",
22+
],
23+
description: "Array of tags to add to the ticket. These will be added to any existing tags.",
24+
},
25+
},
26+
async run({ $ }) {
27+
const {
28+
ticketId,
29+
ticketTags,
30+
} = this;
31+
32+
if (!ticketTags || ticketTags.length === 0) {
33+
throw new ConfigurationError("At least one tag must be provided");
34+
}
35+
36+
const response = await this.freshdesk.addTicketTags({
37+
ticketId,
38+
tags: ticketTags,
39+
$,
40+
});
41+
42+
$.export("$summary", `Successfully added ${ticketTags.length} tag(s) to ticket ${ticketId}`);
43+
return response;
44+
},
45+
};

components/freshdesk/actions/assign-ticket-to-agent/assign-ticket-to-agent.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ export default {
44
key: "freshdesk-assign-ticket-to-agent",
55
name: "Assign Ticket to Agent",
66
description: "Assign a Freshdesk ticket to a specific agent. [See the documentation](https://developers.freshdesk.com/api/#update_ticket).",
7-
version: "0.0.1",
7+
version: "0.0.2",
88
type: "action",
99
props: {
1010
freshdesk,

components/freshdesk/actions/assign-ticket-to-group/assign-ticket-to-group.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ export default {
44
key: "freshdesk-assign-ticket-to-group",
55
name: "Assign Ticket to Group",
66
description: "Assign a Freshdesk ticket to a specific group [See the documentation](https://developers.freshdesk.com/api/#update_ticket).",
7-
version: "0.0.1",
7+
version: "0.0.2",
88
type: "action",
99
props: {
1010
freshdesk,

components/freshdesk/actions/close-ticket/close-ticket.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ export default {
44
key: "freshdesk-close-ticket",
55
name: "Close Ticket",
66
description: "Set a Freshdesk ticket's status to 'Closed'. [See docs](https://developers.freshdesk.com/api/#update_a_ticket)",
7-
version: "0.0.1",
7+
version: "0.0.2",
88
type: "action",
99
props: {
1010
freshdesk,

components/freshdesk/actions/create-company/create-company.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ export default {
44
key: "freshdesk-create-company",
55
name: "Create a Company",
66
description: "Create a company. [See the documentation](https://developers.freshdesk.com/api/#create_company)",
7-
version: "0.0.4",
7+
version: "0.0.5",
88
type: "action",
99
props: {
1010
freshdesk,

components/freshdesk/actions/create-contact/create-contact.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ export default {
55
key: "freshdesk-create-contact",
66
name: "Create a Contact",
77
description: "Create a contact. [See the documentation](https://developers.freshdesk.com/api/#create_contact)",
8-
version: "0.0.4",
8+
version: "0.0.5",
99
type: "action",
1010
props: {
1111
freshdesk,

components/freshdesk/actions/create-ticket/create-ticket.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ export default {
44
key: "freshdesk-create-ticket",
55
name: "Create a Ticket",
66
description: "Create a ticket. [See the documentation](https://developers.freshdesk.com/api/#create_ticket)",
7-
version: "0.0.5",
7+
version: "0.0.6",
88
type: "action",
99
props: {
1010
freshdesk,

components/freshdesk/actions/get-ticket/get-ticket.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ export default {
44
key: "freshdesk-get-ticket",
55
name: "Get Ticket Details",
66
description: "Get details of a Ticket. [See the documentation](https://developers.freshdesk.com/api/#view_a_ticket)",
7-
version: "0.1.2",
7+
version: "0.1.3",
88
type: "action",
99
props: {
1010
freshdesk,

components/freshdesk/actions/list-all-tickets/list-all-tickets.mjs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ export default {
55
name: "List Tickets",
66
description:
77
"Fetch up to 100 tickets according to the selected filters. [See the documentation](https://developers.freshdesk.com/api/#list_all_tickets)",
8-
version: "0.2.2",
8+
version: "0.2.3",
99
type: "action",
1010
props: {
1111
freshdesk,
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
import freshdesk from "../../freshdesk.app.mjs";
2+
import { ConfigurationError } from "@pipedream/platform";
3+
4+
export default {
5+
key: "freshdesk-remove-ticket-tags",
6+
name: "Remove Ticket Tags",
7+
description: "Remove specific tags from a ticket. [See the documentation](https://developers.freshdesk.com/api/#update_ticket)",
8+
type: "action",
9+
version: "0.0.1",
10+
props: {
11+
freshdesk,
12+
ticketId: {
13+
propDefinition: [
14+
freshdesk,
15+
"ticketId",
16+
],
17+
},
18+
ticketTags: {
19+
propDefinition: [
20+
freshdesk,
21+
"ticketTags",
22+
],
23+
description: "Array of tags to remove from the ticket. Only these specific tags will be removed.",
24+
},
25+
},
26+
async run({ $ }) {
27+
const {
28+
ticketId,
29+
ticketTags,
30+
} = this;
31+
32+
if (!ticketTags || ticketTags.length === 0) {
33+
throw new ConfigurationError("At least one tag must be provided");
34+
}
35+
36+
const response = await this.freshdesk.removeTicketTags({
37+
ticketId,
38+
tags: ticketTags,
39+
$,
40+
});
41+
42+
$.export("$summary", `Successfully removed ${ticketTags.length} tag(s) from ticket ${ticketId}`);
43+
return response;
44+
},
45+
};

0 commit comments

Comments
 (0)