From 5799ddf527df3c64055903d9f2a9f40ffecc716b Mon Sep 17 00:00:00 2001 From: falc1 Date: Fri, 25 Apr 2025 13:05:00 +0400 Subject: [PATCH 1/5] Initial --- .../assign-ticket-to-agent.mjs | 35 ++++ .../assign-ticket-to-group.mjs | 35 ++++ .../actions/close-ticket/close-ticket.mjs | 33 ++++ .../sfreshdesk-set-ticket-priority.mjs | 36 +++++ .../freshdesk-set-ticket-status.mjs | 36 +++++ .../create-group-id-test.mjs | 27 ++++ .../freshdesk-update-ticket/create-ticket.mjs | 43 +++++ .../freshdesk-update-ticket.mjs | 149 ++++++++++++++++++ .../freshdesk-update-ticket/get-group-id.mjs | 28 ++++ .../freshdesk-update-ticket/responder_id.mjs | 0 components/freshdesk/package.json | 3 +- 11 files changed, 424 insertions(+), 1 deletion(-) create mode 100644 components/freshdesk/actions/assign-ticket-to-agent/assign-ticket-to-agent.mjs create mode 100644 components/freshdesk/actions/assign-ticket-to-group/assign-ticket-to-group.mjs create mode 100644 components/freshdesk/actions/close-ticket/close-ticket.mjs create mode 100644 components/freshdesk/actions/freshdesk-set-ticket-priority/sfreshdesk-set-ticket-priority.mjs create mode 100644 components/freshdesk/actions/freshdesk-set-ticket-status/freshdesk-set-ticket-status.mjs create mode 100644 components/freshdesk/actions/freshdesk-update-ticket/create-group-id-test.mjs create mode 100644 components/freshdesk/actions/freshdesk-update-ticket/create-ticket.mjs create mode 100644 components/freshdesk/actions/freshdesk-update-ticket/freshdesk-update-ticket.mjs create mode 100644 components/freshdesk/actions/freshdesk-update-ticket/get-group-id.mjs create mode 100644 components/freshdesk/actions/freshdesk-update-ticket/responder_id.mjs diff --git a/components/freshdesk/actions/assign-ticket-to-agent/assign-ticket-to-agent.mjs b/components/freshdesk/actions/assign-ticket-to-agent/assign-ticket-to-agent.mjs new file mode 100644 index 0000000000000..2a1a497182c07 --- /dev/null +++ b/components/freshdesk/actions/assign-ticket-to-agent/assign-ticket-to-agent.mjs @@ -0,0 +1,35 @@ +import freshdesk from "../../freshdesk.app.mjs"; + +export default { + key: "freshdesk-assign-ticket-to-agent", + name: "Assign Ticket to Agent", + description: "Assign a Freshdesk ticket to a specific agent", + version: "0.0.1", + type: "action", + props: { + freshdesk, + ticketId: { + propDefinition: [ + freshdesk, + "ticketId", + ], + }, + responder_id: { + type: "integer", + label: "Agent ID", + description: "ID of the agent to assign this ticket to", + }, + }, + async run({ $ }) { + const response = await this.freshdesk._makeRequest({ + $, + method: "PUT", + url: `/tickets/${this.ticketId}`, + data: { + responder_id: this.responder_id, + }, + }); + $.export("$summary", `Ticket ${this.ticketId} assigned to agent ${this.responder_id}`); + return response; + }, +}; \ No newline at end of file diff --git a/components/freshdesk/actions/assign-ticket-to-group/assign-ticket-to-group.mjs b/components/freshdesk/actions/assign-ticket-to-group/assign-ticket-to-group.mjs new file mode 100644 index 0000000000000..ec5012bb5ea06 --- /dev/null +++ b/components/freshdesk/actions/assign-ticket-to-group/assign-ticket-to-group.mjs @@ -0,0 +1,35 @@ +import freshdesk from "../../freshdesk.app.mjs"; + +export default { + key: "freshdesk-assign-ticket-to-group", + name: "Assign Ticket to Group", + description: "Assign a Freshdesk ticket to a specific group", + version: "0.0.1", + type: "action", + props: { + freshdesk, + ticketId: { + propDefinition: [ + freshdesk, + "ticketId", + ], + }, + group_id: { + type: "integer", + label: "Group ID", + description: "ID of the group to assign this ticket to", + }, + }, + async run({ $ }) { + const response = await this.freshdesk._makeRequest({ + $, + method: "PUT", + url: `/tickets/${this.ticketId}`, + data: { + group_id: this.group_id, + }, + }); + $.export("$summary", `Ticket ${this.ticketId} assigned to group ${this.group_id}`); + return response; + }, +}; \ No newline at end of file diff --git a/components/freshdesk/actions/close-ticket/close-ticket.mjs b/components/freshdesk/actions/close-ticket/close-ticket.mjs new file mode 100644 index 0000000000000..963260da7b973 --- /dev/null +++ b/components/freshdesk/actions/close-ticket/close-ticket.mjs @@ -0,0 +1,33 @@ +import freshdesk from "../../freshdesk.app.mjs"; + +export default { + key: "freshdesk-close-ticket", + name: "Close Ticket", + description: "Set a Freshdesk ticket's status to 'Closed'. [See docs](https://developers.freshdesk.com/api/#update_a_ticket)", + version: "0.0.1", + type: "action", + props: { + freshdesk, + ticketId: { + propDefinition: [ + freshdesk, + "ticketId", + ], + }, + }, + async run({ $ }) { + const CLOSED_STATUS = 5; // Freshdesk status code for 'Closed' + + const response = await this.freshdesk._makeRequest({ + $, + method: "PUT", + url: `/tickets/${this.ticketId}`, + data: { + status: CLOSED_STATUS, + }, + }); + + $.export("$summary", `Ticket ${this.ticketId} closed successfully`); + return response; + }, +}; diff --git a/components/freshdesk/actions/freshdesk-set-ticket-priority/sfreshdesk-set-ticket-priority.mjs b/components/freshdesk/actions/freshdesk-set-ticket-priority/sfreshdesk-set-ticket-priority.mjs new file mode 100644 index 0000000000000..196520180afef --- /dev/null +++ b/components/freshdesk/actions/freshdesk-set-ticket-priority/sfreshdesk-set-ticket-priority.mjs @@ -0,0 +1,36 @@ +import freshdesk from "../../freshdesk.app.mjs"; + +export default { + key: "freshdesk-set-ticket-priority-test", + name: "Set Ticket Priority", + description: "Update the priority of a ticket in Freshdesk", + version: "0.0.1", + type: "action", + props: { + freshdesk, + ticketId: { + propDefinition: [ + freshdesk, + "ticketId", + ], + }, + ticketPriority: { + propDefinition: [ + freshdesk, + "ticketPriority", + ], + }, + }, + async run({ $ }) { + const response = await this.freshdesk._makeRequest({ + $, + method: "PUT", + url: `/tickets/${this.ticketId}`, + data: { + priority: this.ticketPriority, + }, + }); + $.export("$summary", `Ticket ${this.ticketId} priority updated to ${this.ticketPriority}`); + return response; + }, +}; \ No newline at end of file diff --git a/components/freshdesk/actions/freshdesk-set-ticket-status/freshdesk-set-ticket-status.mjs b/components/freshdesk/actions/freshdesk-set-ticket-status/freshdesk-set-ticket-status.mjs new file mode 100644 index 0000000000000..84d4a8051e234 --- /dev/null +++ b/components/freshdesk/actions/freshdesk-set-ticket-status/freshdesk-set-ticket-status.mjs @@ -0,0 +1,36 @@ +import freshdesk from "../../freshdesk.app.mjs"; + +export default { + key: "freshdesk-set-ticket-status-test", + name: "Set Ticket Status", + description: "Update the status of a ticket in Freshdesk", + version: "0.0.1", + type: "action", + props: { + freshdesk, + ticketId: { + propDefinition: [ + freshdesk, + "ticketId", + ], + }, + ticketStatus: { + propDefinition: [ + freshdesk, + "ticketStatus", + ], + }, + }, + async run({ $ }) { + const response = await this.freshdesk._makeRequest({ + $, + method: "PUT", + url: `/tickets/${this.ticketId}`, + data: { + status: this.ticketStatus, + }, + }); + $.export("$summary", `Ticket ${this.ticketId} status updated to ${this.ticketStatus}`); + return response; + }, +}; \ No newline at end of file diff --git a/components/freshdesk/actions/freshdesk-update-ticket/create-group-id-test.mjs b/components/freshdesk/actions/freshdesk-update-ticket/create-group-id-test.mjs new file mode 100644 index 0000000000000..8d3cd73de0300 --- /dev/null +++ b/components/freshdesk/actions/freshdesk-update-ticket/create-group-id-test.mjs @@ -0,0 +1,27 @@ +const fetch = (...args) => import('node-fetch').then(({default: fetch}) => fetch(...args)); + +// 🔧 Replace these with your real values +const API_KEY = "YfaK2hd0KP3og3KbqV"; +const DOMAIN = "falc1.freshdesk.com"; // e.g. support.freshdesk.com + +const createGroup = async () => { + const res = await fetch(`https://${DOMAIN}/api/v2/groups`, { + method: "POST", + headers: { + "Authorization": "Basic " + Buffer.from(`${API_KEY}:X`).toString("base64"), + "Content-Type": "application/json", + }, + body: JSON.stringify({ + name: "My Team", + }), + }); + + const data = await res.json(); + if (!res.ok) { + console.error("❌ Group create error:", data); + return; + } + console.log("✅ Group created:", data); +}; + +createGroup(); \ No newline at end of file diff --git a/components/freshdesk/actions/freshdesk-update-ticket/create-ticket.mjs b/components/freshdesk/actions/freshdesk-update-ticket/create-ticket.mjs new file mode 100644 index 0000000000000..e59cdf66a5cfd --- /dev/null +++ b/components/freshdesk/actions/freshdesk-update-ticket/create-ticket.mjs @@ -0,0 +1,43 @@ +import fetch from "node-fetch"; // if you're using Node 18+, native fetch is available + +// 🔧 Replace these with your real values +const API_KEY = "YfaK2hd0KP3og3KbqV"; +const DOMAIN = "falc1.freshdesk.com"; // e.g. support.freshdesk.com + +// 🎟️ Ticket payload +const payload = { + subject: "Test ticket for full update suite", + description: "This is a test ticket
With rich HTML content.", + type: "Question", + priority: 2, // Medium + status: 2, // Open + tags: ["api-test", "pipedream", "full-update"], + email: "info@falc1.com", // + // Uncomment and customize if you have these + group_id: 157001089898, + responder_id: 157005992678, //Agent ID + custom_fields: { + // Example: "cf_customer_type": "premium" + }, +}; + +const createTicket = async () => { + const response = await fetch(`https://${DOMAIN}/api/v2/tickets`, { + method: "POST", + headers: { + "Authorization": "Basic " + Buffer.from(`${API_KEY}:X`).toString("base64"), + "Content-Type": "application/json", + }, + body: JSON.stringify(payload), + }); + + if (!response.ok) { + console.error("❌ Failed to create ticket", response.status, await response.text()); + return; + } + + const data = await response.json(); + console.log("✅ Ticket created:", data); +}; + +createTicket(); \ No newline at end of file diff --git a/components/freshdesk/actions/freshdesk-update-ticket/freshdesk-update-ticket.mjs b/components/freshdesk/actions/freshdesk-update-ticket/freshdesk-update-ticket.mjs new file mode 100644 index 0000000000000..3eb2a2f143daa --- /dev/null +++ b/components/freshdesk/actions/freshdesk-update-ticket/freshdesk-update-ticket.mjs @@ -0,0 +1,149 @@ +import freshdesk from "../../freshdesk.app.mjs"; +import { removeNullEntries } from "../../common/utils.mjs"; + +export default { + key: "freshdesk-update-ticket-testpd", + name: "Update a Ticket", + description: "Update status, priority, subject, description, agent, group, tags, etc. [See docs](https://developers.freshdesk.com/api/#update_a_ticket)", + version: "0.0.5", + type: "action", + props: { + freshdesk, + ticketId: { + propDefinition: [ + freshdesk, + "ticketId", + ], + }, + ticketStatus: { + propDefinition: [ + freshdesk, + "ticketStatus", + ], + optional: true, + }, + ticketPriority: { + propDefinition: [ + freshdesk, + "ticketPriority", + ], + optional: true, + }, + subject: { + type: "string", + label: "Subject", + description: "Ticket subject", + optional: true, + }, + description: { + type: "string", + label: "Description", + description: "Detailed ticket description (HTML allowed)", + optional: true, + }, + type: { + type: "string", + label: "Type", + description: "Type of ticket (e.g. Question, Incident, etc.)", + optional: true, + }, + group_id: { + type: "integer", + label: "Group ID", + description: "ID of the group to assign this ticket to", + optional: true, + }, + responder_id: { + type: "integer", + label: "Agent ID", + description: "ID of the agent to assign this ticket to", + optional: true, + }, + email: { + type: "string", + label: "Requester Email (replaces requester)", + description: "Updates the requester. If no contact with this email exists, a new one will be created and assigned to the ticket.", + optional: true, + }, + phone: { + type: "string", + label: "Requester Phone (replaces requester)", + description: "If no contact with this phone number exists, a new one will be created. If used without email, 'name' is required.", + optional: true, + }, + name: { + type: "string", + label: "Requester Name (required with phone if no email)", + description: "Used when creating a contact with phone but no email.", + optional: true, + }, + type: { + type: "string", + label: "Type", + description: "Type of ticket (must match one of the allowed values)", + optional: true, + options: [ + "Question", + "Incident", + "Problem", + "Feature Request", + "Refund", + ], + }, + custom_fields: { + type: "object", + label: "Custom Fields", + description: "Custom fields as key-value pairs (make sure types match your config)", + optional: true, + }, + }, + async run({ $ }) { + const { + freshdesk, + ticketId, + ticketStatus, + ticketPriority, + subject, + description, + type, + group_id, + responder_id, + email, + phone, + name, + tags, + custom_fields, + } = this; + + const data = removeNullEntries({ + status: ticketStatus, + priority: ticketPriority, + subject, + description, + type, + group_id, + responder_id, + email, + phone, + name, + tags, + custom_fields, + }); + + if (!Object.keys(data).length) { + throw new Error("Please provide at least one field to update."); + } + + const response = await freshdesk._makeRequest({ + $, + method: "PUT", + url: `/tickets/${ticketId}`, + data, + }); + + $.export("$summary", `Ticket ${ticketId} updated successfully`); + return response; + }, +}; + + diff --git a/components/freshdesk/actions/freshdesk-update-ticket/get-group-id.mjs b/components/freshdesk/actions/freshdesk-update-ticket/get-group-id.mjs new file mode 100644 index 0000000000000..e600f900dec3f --- /dev/null +++ b/components/freshdesk/actions/freshdesk-update-ticket/get-group-id.mjs @@ -0,0 +1,28 @@ +const fetch = (...args) => import('node-fetch').then(({default: fetch}) => fetch(...args)); + +// 🔧 Replace with your values +const API_KEY = "your_api_key"; +const DOMAIN = "yourdomain.freshdesk.com"; + +const getGroups = async () => { + const res = await fetch(`https://${DOMAIN}/api/v2/groups`, { + headers: { + "Authorization": "Basic " + Buffer.from(`${API_KEY}:X`).toString("base64"), + "Content-Type": "application/json", + }, + }); + + const data = await res.json(); + + if (!res.ok) { + console.error("❌ Failed to fetch groups:", data); + return; + } + + console.log("✅ Group List:"); + data.forEach(group => { + console.log(`- ${group.name}: ${group.id}`); + }); +}; + +getGroups(); \ No newline at end of file diff --git a/components/freshdesk/actions/freshdesk-update-ticket/responder_id.mjs b/components/freshdesk/actions/freshdesk-update-ticket/responder_id.mjs new file mode 100644 index 0000000000000..e69de29bb2d1d diff --git a/components/freshdesk/package.json b/components/freshdesk/package.json index 1128b1f775f3e..9a855be143a4a 100644 --- a/components/freshdesk/package.json +++ b/components/freshdesk/package.json @@ -15,6 +15,7 @@ "dependencies": { "@pipedream/platform": "^3.0.3", "async-retry": "^1.3.3", - "moment": "2.29.4" + "moment": "2.29.4", + "node-fetch": "^3.3.2" } } From 50d2bc7a604942468ea194c0e86ee224875e1740 Mon Sep 17 00:00:00 2001 From: falc1 Date: Fri, 25 Apr 2025 13:08:38 +0400 Subject: [PATCH 2/5] --amend --- .../set-ticket-priority.mjs} | 2 +- .../set-ticket-status.mjs} | 2 +- .../update-ticket/freshdesk-update-ticket.mjs | 149 ++++++++++++++++++ 3 files changed, 151 insertions(+), 2 deletions(-) rename components/freshdesk/actions/{freshdesk-set-ticket-priority/sfreshdesk-set-ticket-priority.mjs => set-ticket-priority/set-ticket-priority.mjs} (94%) rename components/freshdesk/actions/{freshdesk-set-ticket-status/freshdesk-set-ticket-status.mjs => set-ticket-status/set-ticket-status.mjs} (94%) create mode 100644 components/freshdesk/actions/update-ticket/freshdesk-update-ticket.mjs diff --git a/components/freshdesk/actions/freshdesk-set-ticket-priority/sfreshdesk-set-ticket-priority.mjs b/components/freshdesk/actions/set-ticket-priority/set-ticket-priority.mjs similarity index 94% rename from components/freshdesk/actions/freshdesk-set-ticket-priority/sfreshdesk-set-ticket-priority.mjs rename to components/freshdesk/actions/set-ticket-priority/set-ticket-priority.mjs index 196520180afef..827204169613d 100644 --- a/components/freshdesk/actions/freshdesk-set-ticket-priority/sfreshdesk-set-ticket-priority.mjs +++ b/components/freshdesk/actions/set-ticket-priority/set-ticket-priority.mjs @@ -1,7 +1,7 @@ import freshdesk from "../../freshdesk.app.mjs"; export default { - key: "freshdesk-set-ticket-priority-test", + key: "freshdesk-set-ticket-priority", name: "Set Ticket Priority", description: "Update the priority of a ticket in Freshdesk", version: "0.0.1", diff --git a/components/freshdesk/actions/freshdesk-set-ticket-status/freshdesk-set-ticket-status.mjs b/components/freshdesk/actions/set-ticket-status/set-ticket-status.mjs similarity index 94% rename from components/freshdesk/actions/freshdesk-set-ticket-status/freshdesk-set-ticket-status.mjs rename to components/freshdesk/actions/set-ticket-status/set-ticket-status.mjs index 84d4a8051e234..93b8fc8700240 100644 --- a/components/freshdesk/actions/freshdesk-set-ticket-status/freshdesk-set-ticket-status.mjs +++ b/components/freshdesk/actions/set-ticket-status/set-ticket-status.mjs @@ -1,7 +1,7 @@ import freshdesk from "../../freshdesk.app.mjs"; export default { - key: "freshdesk-set-ticket-status-test", + key: "freshdesk-set-ticket-status", name: "Set Ticket Status", description: "Update the status of a ticket in Freshdesk", version: "0.0.1", diff --git a/components/freshdesk/actions/update-ticket/freshdesk-update-ticket.mjs b/components/freshdesk/actions/update-ticket/freshdesk-update-ticket.mjs new file mode 100644 index 0000000000000..3eb2a2f143daa --- /dev/null +++ b/components/freshdesk/actions/update-ticket/freshdesk-update-ticket.mjs @@ -0,0 +1,149 @@ +import freshdesk from "../../freshdesk.app.mjs"; +import { removeNullEntries } from "../../common/utils.mjs"; + +export default { + key: "freshdesk-update-ticket-testpd", + name: "Update a Ticket", + description: "Update status, priority, subject, description, agent, group, tags, etc. [See docs](https://developers.freshdesk.com/api/#update_a_ticket)", + version: "0.0.5", + type: "action", + props: { + freshdesk, + ticketId: { + propDefinition: [ + freshdesk, + "ticketId", + ], + }, + ticketStatus: { + propDefinition: [ + freshdesk, + "ticketStatus", + ], + optional: true, + }, + ticketPriority: { + propDefinition: [ + freshdesk, + "ticketPriority", + ], + optional: true, + }, + subject: { + type: "string", + label: "Subject", + description: "Ticket subject", + optional: true, + }, + description: { + type: "string", + label: "Description", + description: "Detailed ticket description (HTML allowed)", + optional: true, + }, + type: { + type: "string", + label: "Type", + description: "Type of ticket (e.g. Question, Incident, etc.)", + optional: true, + }, + group_id: { + type: "integer", + label: "Group ID", + description: "ID of the group to assign this ticket to", + optional: true, + }, + responder_id: { + type: "integer", + label: "Agent ID", + description: "ID of the agent to assign this ticket to", + optional: true, + }, + email: { + type: "string", + label: "Requester Email (replaces requester)", + description: "Updates the requester. If no contact with this email exists, a new one will be created and assigned to the ticket.", + optional: true, + }, + phone: { + type: "string", + label: "Requester Phone (replaces requester)", + description: "If no contact with this phone number exists, a new one will be created. If used without email, 'name' is required.", + optional: true, + }, + name: { + type: "string", + label: "Requester Name (required with phone if no email)", + description: "Used when creating a contact with phone but no email.", + optional: true, + }, + type: { + type: "string", + label: "Type", + description: "Type of ticket (must match one of the allowed values)", + optional: true, + options: [ + "Question", + "Incident", + "Problem", + "Feature Request", + "Refund", + ], + }, + custom_fields: { + type: "object", + label: "Custom Fields", + description: "Custom fields as key-value pairs (make sure types match your config)", + optional: true, + }, + }, + async run({ $ }) { + const { + freshdesk, + ticketId, + ticketStatus, + ticketPriority, + subject, + description, + type, + group_id, + responder_id, + email, + phone, + name, + tags, + custom_fields, + } = this; + + const data = removeNullEntries({ + status: ticketStatus, + priority: ticketPriority, + subject, + description, + type, + group_id, + responder_id, + email, + phone, + name, + tags, + custom_fields, + }); + + if (!Object.keys(data).length) { + throw new Error("Please provide at least one field to update."); + } + + const response = await freshdesk._makeRequest({ + $, + method: "PUT", + url: `/tickets/${ticketId}`, + data, + }); + + $.export("$summary", `Ticket ${ticketId} updated successfully`); + return response; + }, +}; + + From 7ed1d7a31ab7a83b17f385377fd6ec1467f5232e Mon Sep 17 00:00:00 2001 From: falc1 Date: Fri, 25 Apr 2025 13:55:56 +0400 Subject: [PATCH 3/5] [ACTIONS] Set actions + Update action --- .../actions/update-ticket/freshdesk-update-ticket.mjs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/components/freshdesk/actions/update-ticket/freshdesk-update-ticket.mjs b/components/freshdesk/actions/update-ticket/freshdesk-update-ticket.mjs index 3eb2a2f143daa..6ef224898e9c6 100644 --- a/components/freshdesk/actions/update-ticket/freshdesk-update-ticket.mjs +++ b/components/freshdesk/actions/update-ticket/freshdesk-update-ticket.mjs @@ -2,10 +2,10 @@ import freshdesk from "../../freshdesk.app.mjs"; import { removeNullEntries } from "../../common/utils.mjs"; export default { - key: "freshdesk-update-ticket-testpd", + key: "freshdesk-update-ticket", name: "Update a Ticket", description: "Update status, priority, subject, description, agent, group, tags, etc. [See docs](https://developers.freshdesk.com/api/#update_a_ticket)", - version: "0.0.5", + version: "0.0.6", type: "action", props: { freshdesk, From 0362927c99bb9d32e157c11d5498468b13f56b16 Mon Sep 17 00:00:00 2001 From: falc1 Date: Fri, 25 Apr 2025 13:59:17 +0400 Subject: [PATCH 4/5] Remove accidental empty responder_id.mjs --- .../freshdesk/actions/freshdesk-update-ticket/responder_id.mjs | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 components/freshdesk/actions/freshdesk-update-ticket/responder_id.mjs diff --git a/components/freshdesk/actions/freshdesk-update-ticket/responder_id.mjs b/components/freshdesk/actions/freshdesk-update-ticket/responder_id.mjs deleted file mode 100644 index e69de29bb2d1d..0000000000000 From addf46608611a40bd4f47b26859c7566ed035fbf Mon Sep 17 00:00:00 2001 From: falc1 Date: Fri, 25 Apr 2025 13:59:17 +0400 Subject: [PATCH 5/5] Remove accidental empty responder_id.mjs --- components/freshdesk/package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/components/freshdesk/package.json b/components/freshdesk/package.json index 9a855be143a4a..1128b1f775f3e 100644 --- a/components/freshdesk/package.json +++ b/components/freshdesk/package.json @@ -15,7 +15,6 @@ "dependencies": { "@pipedream/platform": "^3.0.3", "async-retry": "^1.3.3", - "moment": "2.29.4", - "node-fetch": "^3.3.2" + "moment": "2.29.4" } }