diff --git a/components/zendesk/actions/add-ticket-tags/add-ticket-tags.mjs b/components/zendesk/actions/add-ticket-tags/add-ticket-tags.mjs index c171ca1259755..3274acaecf226 100644 --- a/components/zendesk/actions/add-ticket-tags/add-ticket-tags.mjs +++ b/components/zendesk/actions/add-ticket-tags/add-ticket-tags.mjs @@ -5,7 +5,7 @@ export default { name: "Add Ticket Tags", description: "Add tags to a ticket (appends to existing tags). [See the documentation](https://developer.zendesk.com/api-reference/ticketing/ticket-management/tags/#add-tags).", type: "action", - version: "0.0.3", + version: "0.0.4", props: { app, ticketId: { diff --git a/components/zendesk/actions/create-ticket/create-ticket.mjs b/components/zendesk/actions/create-ticket/create-ticket.mjs index a0e396a0be85a..008efe76403d0 100644 --- a/components/zendesk/actions/create-ticket/create-ticket.mjs +++ b/components/zendesk/actions/create-ticket/create-ticket.mjs @@ -5,7 +5,7 @@ export default { name: "Create Ticket", description: "Creates a ticket. [See the documentation](https://developer.zendesk.com/api-reference/ticketing/tickets/tickets/#create-ticket).", type: "action", - version: "0.1.7", + version: "0.1.8", props: { app, ticketCommentBody: { diff --git a/components/zendesk/actions/delete-ticket/delete-ticket.mjs b/components/zendesk/actions/delete-ticket/delete-ticket.mjs index bef6c225f95f0..1b1e4df2b0d22 100644 --- a/components/zendesk/actions/delete-ticket/delete-ticket.mjs +++ b/components/zendesk/actions/delete-ticket/delete-ticket.mjs @@ -5,7 +5,7 @@ export default { name: "Delete Ticket", description: "Deletes a ticket. [See the documentation](https://developer.zendesk.com/api-reference/ticketing/tickets/tickets/#delete-ticket).", type: "action", - version: "0.1.7", + version: "0.1.8", props: { app, ticketId: { diff --git a/components/zendesk/actions/get-ticket-info/get-ticket-info.mjs b/components/zendesk/actions/get-ticket-info/get-ticket-info.mjs index 4d841013e3fe7..87e8c2a8dca5f 100644 --- a/components/zendesk/actions/get-ticket-info/get-ticket-info.mjs +++ b/components/zendesk/actions/get-ticket-info/get-ticket-info.mjs @@ -5,7 +5,7 @@ export default { name: "Get Ticket Info", description: "Retrieves information about a specific ticket. [See the documentation](https://developer.zendesk.com/api-reference/ticketing/tickets/tickets/#show-ticket).", type: "action", - version: "0.0.5", + version: "0.0.6", props: { app, ticketId: { diff --git a/components/zendesk/actions/get-user-info/get-user-info.mjs b/components/zendesk/actions/get-user-info/get-user-info.mjs index c0dd22f32a66e..0a4e8f7699d92 100644 --- a/components/zendesk/actions/get-user-info/get-user-info.mjs +++ b/components/zendesk/actions/get-user-info/get-user-info.mjs @@ -4,7 +4,7 @@ export default { key: "zendesk-get-user-info", name: "Get User Info", description: "Retrieves information about a specific user. [See the documentation](https://developer.zendesk.com/api-reference/ticketing/users/users/#show-user).", - version: "0.0.2", + version: "0.0.3", type: "action", props: { zendesk, diff --git a/components/zendesk/actions/list-locales/list-locales.mjs b/components/zendesk/actions/list-locales/list-locales.mjs index e6e0050650a43..84a97e650fa07 100644 --- a/components/zendesk/actions/list-locales/list-locales.mjs +++ b/components/zendesk/actions/list-locales/list-locales.mjs @@ -4,7 +4,7 @@ export default { key: "zendesk-list-locales", name: "List Locales", description: "Retrieves all locales. [See the documentation](https://developer.zendesk.com/api-reference/ticketing/account-configuration/locales/).", - version: "0.0.2", + version: "0.0.3", type: "action", props: { zendesk, diff --git a/components/zendesk/actions/list-macros/list-macros.mjs b/components/zendesk/actions/list-macros/list-macros.mjs index 2d2d3cb1cac79..b82daefdae49f 100644 --- a/components/zendesk/actions/list-macros/list-macros.mjs +++ b/components/zendesk/actions/list-macros/list-macros.mjs @@ -4,7 +4,7 @@ export default { key: "zendesk-list-macros", name: "List Macros", description: "Retrieves all macros. [See the documentation](https://developer.zendesk.com/api-reference/ticketing/business-rules/macros/#list-macros).", - version: "0.0.2", + version: "0.0.3", type: "action", props: { zendesk, diff --git a/components/zendesk/actions/list-ticket-comments/list-ticket-comments.mjs b/components/zendesk/actions/list-ticket-comments/list-ticket-comments.mjs index be82b6c26e703..2078299f304f2 100644 --- a/components/zendesk/actions/list-ticket-comments/list-ticket-comments.mjs +++ b/components/zendesk/actions/list-ticket-comments/list-ticket-comments.mjs @@ -4,7 +4,7 @@ export default { key: "zendesk-list-ticket-comments", name: "List Ticket Comments", description: "Retrieves all comments for a specific ticket. [See the documentation](https://developer.zendesk.com/api-reference/ticketing/tickets/ticket_comments/#list-comments).", - version: "0.0.2", + version: "0.0.3", type: "action", props: { zendesk, diff --git a/components/zendesk/actions/list-tickets/list-tickets.mjs b/components/zendesk/actions/list-tickets/list-tickets.mjs index 26ef649461123..104d1707b4040 100644 --- a/components/zendesk/actions/list-tickets/list-tickets.mjs +++ b/components/zendesk/actions/list-tickets/list-tickets.mjs @@ -5,7 +5,7 @@ export default { name: "List Tickets", description: "Retrieves a list of tickets. [See the documentation](https://developer.zendesk.com/api-reference/ticketing/tickets/tickets/#list-tickets).", type: "action", - version: "0.0.5", + version: "0.0.6", props: { app, sortBy: { diff --git a/components/zendesk/actions/remove-ticket-tags/remove-ticket-tags.mjs b/components/zendesk/actions/remove-ticket-tags/remove-ticket-tags.mjs index 17b81b1626c4d..be8d5c142d102 100644 --- a/components/zendesk/actions/remove-ticket-tags/remove-ticket-tags.mjs +++ b/components/zendesk/actions/remove-ticket-tags/remove-ticket-tags.mjs @@ -5,7 +5,7 @@ export default { name: "Remove Ticket Tags", description: "Remove specific tags from a ticket. [See the documentation](https://developer.zendesk.com/api-reference/ticketing/ticket-management/tags/#remove-tags).", type: "action", - version: "0.0.3", + version: "0.0.4", props: { app, ticketId: { diff --git a/components/zendesk/actions/search-tickets/search-tickets.mjs b/components/zendesk/actions/search-tickets/search-tickets.mjs index a4bc5c4981490..2085ec2a30d65 100644 --- a/components/zendesk/actions/search-tickets/search-tickets.mjs +++ b/components/zendesk/actions/search-tickets/search-tickets.mjs @@ -5,7 +5,7 @@ export default { name: "Search Tickets", description: "Searches for tickets using Zendesk's search API. [See the documentation](https://developer.zendesk.com/api-reference/ticketing/ticket-management/search/#search-tickets).", type: "action", - version: "0.0.6", + version: "0.0.7", props: { app, query: { diff --git a/components/zendesk/actions/set-ticket-tags/set-ticket-tags.mjs b/components/zendesk/actions/set-ticket-tags/set-ticket-tags.mjs index 2a584a38128d8..7e2dd035b0356 100644 --- a/components/zendesk/actions/set-ticket-tags/set-ticket-tags.mjs +++ b/components/zendesk/actions/set-ticket-tags/set-ticket-tags.mjs @@ -5,7 +5,7 @@ export default { name: "Set Ticket Tags", description: "Set tags on a ticket (replaces all existing tags). [See the documentation](https://developer.zendesk.com/api-reference/ticketing/ticket-management/tags/#set-tags).", type: "action", - version: "0.0.3", + version: "0.0.4", props: { app, ticketId: { diff --git a/components/zendesk/actions/update-ticket/update-ticket.mjs b/components/zendesk/actions/update-ticket/update-ticket.mjs index 75708ec495e3f..fb82127cc93c0 100644 --- a/components/zendesk/actions/update-ticket/update-ticket.mjs +++ b/components/zendesk/actions/update-ticket/update-ticket.mjs @@ -5,7 +5,7 @@ export default { name: "Update Ticket", description: "Updates a ticket. [See the documentation](https://developer.zendesk.com/api-reference/ticketing/tickets/tickets/#update-ticket).", type: "action", - version: "0.2.0", + version: "0.2.1", props: { app, ticketId: { @@ -89,6 +89,18 @@ export default { optional: true, default: "set", }, + assigneeId: { + propDefinition: [ + app, + "assigneeId", + ], + }, + assigneeEmail: { + propDefinition: [ + app, + "assigneeEmail", + ], + }, }, methods: { updateTicket({ @@ -113,6 +125,8 @@ export default { attachments, ticketTags, tagAction, + assigneeId, + assigneeEmail, } = this; const ticketComment = ticketCommentBodyIsHTML @@ -143,24 +157,47 @@ export default { } } + // Build ticket data object + const ticketData = { + comment: ticketComment, + priority: ticketPriority, + subject: ticketSubject, + status: ticketStatus, + }; + + // Add assignee fields if provided + if (assigneeId) { + ticketData.assignee_id = assigneeId; + } + if (assigneeEmail) { + ticketData.assignee_email = assigneeEmail; + } + const response = await this.updateTicket({ step, ticketId, customSubdomain, data: { - ticket: { - comment: ticketComment, - priority: ticketPriority, - subject: ticketSubject, - status: ticketStatus, - }, + ticket: ticketData, }, }); const attachmentCount = ticketComment.uploads?.length || 0; - const summary = attachmentCount > 0 - ? `Successfully updated ticket with ID ${response.ticket.id} with ${attachmentCount} attachment(s)` - : `Successfully updated ticket with ID ${response.ticket.id}`; + const assigneeUpdated = assigneeId || assigneeEmail; + + let summary = `Successfully updated ticket with ID ${response.ticket.id}`; + + const updates = []; + if (attachmentCount > 0) { + updates.push(`${attachmentCount} attachment(s)`); + } + if (assigneeUpdated) { + updates.push("assignee"); + } + + if (updates.length > 0) { + summary += ` with ${updates.join(" and ")}`; + } step.export("$summary", summary); diff --git a/components/zendesk/package.json b/components/zendesk/package.json index 4c1206e7c0f68..87d947ea34b21 100644 --- a/components/zendesk/package.json +++ b/components/zendesk/package.json @@ -1,6 +1,6 @@ { "name": "@pipedream/zendesk", - "version": "0.8.2", + "version": "0.8.3", "description": "Pipedream Zendesk Components", "main": "zendesk.app.mjs", "keywords": [ diff --git a/components/zendesk/sources/locale-updated/locale-updated.mjs b/components/zendesk/sources/locale-updated/locale-updated.mjs index edf4439a54a4f..c69002d7332d6 100644 --- a/components/zendesk/sources/locale-updated/locale-updated.mjs +++ b/components/zendesk/sources/locale-updated/locale-updated.mjs @@ -6,7 +6,7 @@ export default { name: "Locale Updated", type: "source", description: "Emit new event when a locale has been updated", - version: "0.0.2", + version: "0.0.3", dedupe: "unique", async run() { const lastTs = this._getLastTs(); diff --git a/components/zendesk/sources/new-ticket-comment-added/new-ticket-comment-added.mjs b/components/zendesk/sources/new-ticket-comment-added/new-ticket-comment-added.mjs index b760f5e740890..c3dd3b4940ea6 100644 --- a/components/zendesk/sources/new-ticket-comment-added/new-ticket-comment-added.mjs +++ b/components/zendesk/sources/new-ticket-comment-added/new-ticket-comment-added.mjs @@ -7,7 +7,7 @@ export default { key: "zendesk-new-ticket-comment-added", type: "source", description: "Emit new event when a ticket comment has been added", - version: "0.0.2", + version: "0.0.3", dedupe: "unique", props: { app, diff --git a/components/zendesk/sources/new-ticket/new-ticket.mjs b/components/zendesk/sources/new-ticket/new-ticket.mjs index afbefcb407383..66e9f16cabd02 100644 --- a/components/zendesk/sources/new-ticket/new-ticket.mjs +++ b/components/zendesk/sources/new-ticket/new-ticket.mjs @@ -6,7 +6,7 @@ export default { key: "zendesk-new-ticket", type: "source", description: "Emit new event when a ticket is created", - version: "0.2.7", + version: "0.2.8", dedupe: "unique", methods: { ...common.methods, diff --git a/components/zendesk/sources/ticket-added-to-view/ticket-added-to-view.mjs b/components/zendesk/sources/ticket-added-to-view/ticket-added-to-view.mjs index 0dc8ce8ace2c0..439336f517cbf 100644 --- a/components/zendesk/sources/ticket-added-to-view/ticket-added-to-view.mjs +++ b/components/zendesk/sources/ticket-added-to-view/ticket-added-to-view.mjs @@ -5,7 +5,7 @@ export default { key: "zendesk-ticket-added-to-view", name: "New Ticket Added to View (Instant)", description: "Emit new event when a ticket is added to the specified view", - version: "0.0.7", + version: "0.0.8", type: "source", dedupe: "unique", props: { diff --git a/components/zendesk/sources/ticket-closed/ticket-closed.mjs b/components/zendesk/sources/ticket-closed/ticket-closed.mjs index f77aa1444b38e..5aebcae343e65 100644 --- a/components/zendesk/sources/ticket-closed/ticket-closed.mjs +++ b/components/zendesk/sources/ticket-closed/ticket-closed.mjs @@ -6,7 +6,7 @@ export default { key: "zendesk-ticket-closed", type: "source", description: "Emit new event when a ticket has changed to closed status", - version: "0.2.7", + version: "0.2.8", dedupe: "unique", methods: { ...common.methods, diff --git a/components/zendesk/sources/ticket-pended/ticket-pended.mjs b/components/zendesk/sources/ticket-pended/ticket-pended.mjs index 48a1f0b901980..e1c6da26427c0 100644 --- a/components/zendesk/sources/ticket-pended/ticket-pended.mjs +++ b/components/zendesk/sources/ticket-pended/ticket-pended.mjs @@ -6,7 +6,7 @@ export default { key: "zendesk-ticket-pended", type: "source", description: "Emit new event when a ticket has changed to pending status", - version: "0.2.7", + version: "0.2.8", dedupe: "unique", methods: { ...common.methods, diff --git a/components/zendesk/sources/ticket-solved/ticket-solved.mjs b/components/zendesk/sources/ticket-solved/ticket-solved.mjs index 206007e0390b6..f8a5e35757eb5 100644 --- a/components/zendesk/sources/ticket-solved/ticket-solved.mjs +++ b/components/zendesk/sources/ticket-solved/ticket-solved.mjs @@ -6,7 +6,7 @@ export default { key: "zendesk-ticket-solved", type: "source", description: "Emit new event when a ticket has changed to solved status", - version: "0.2.7", + version: "0.2.8", dedupe: "unique", methods: { ...common.methods, diff --git a/components/zendesk/sources/ticket-updated/ticket-updated.mjs b/components/zendesk/sources/ticket-updated/ticket-updated.mjs index 24a0c3edc7780..35cf632e9ac9f 100644 --- a/components/zendesk/sources/ticket-updated/ticket-updated.mjs +++ b/components/zendesk/sources/ticket-updated/ticket-updated.mjs @@ -6,7 +6,7 @@ export default { key: "zendesk-ticket-updated", type: "source", description: "Emit new event when a ticket has been updated", - version: "0.2.7", + version: "0.2.8", dedupe: "unique", methods: { ...common.methods, diff --git a/components/zendesk/zendesk.app.mjs b/components/zendesk/zendesk.app.mjs index 40c1ab4d8bc6f..d226fb2e1ee23 100644 --- a/components/zendesk/zendesk.app.mjs +++ b/components/zendesk/zendesk.app.mjs @@ -274,6 +274,44 @@ export default { description: "Array of tags to apply to the ticket. These will replace any existing tags on the ticket.", optional: true, }, + assigneeId: { + type: "string", + label: "Assignee ID", + description: "The ID of the agent to assign the ticket to", + optional: true, + async options({ prevContext }) { + const { afterCursor } = prevContext; + + const { + users, + meta, + } = await this.listUsers({ + params: { + [constants.PAGE_SIZE_PARAM]: constants.DEFAULT_LIMIT, + [constants.PAGE_AFTER_PARAM]: afterCursor, + role: "agent", + }, + }); + + return { + context: { + afterCursor: meta.after_cursor, + }, + options: users.map(({ + id, name, + }) => ({ + label: name, + value: id, + })), + }; + }, + }, + assigneeEmail: { + type: "string", + label: "Assignee Email", + description: "The email address of the agent to assign the ticket to", + optional: true, + }, }, methods: { getUrl(path, customSubdomain) {