SDK Mutations
Mutation methods are curated — hand-written to cover the most useful write operations on each domain. Every mutation accepts a structured input object (path params + body) and validates it at runtime with Zod before sending the request.
Destruction safety
Methods that delete or have destructive side effects require confirm: true in their input to execute. This prevents accidental calls.
// This will throw:
await client.tickets.deleteTicket({ appId: 1, ticketId: 5 })
// → TeamDynamixClientError: 'confirmation required'
// This works:
await client.tickets.deleteTicket({ appId: 1, ticketId: 5, confirm: true })client.tickets
createTicket
createTicket(input: {
appId: string | number
body: Record<string, unknown>
}): Promise<unknown>Creates a new ticket. The body should include fields like Title, Description, StatusID, PriorityID, TypeID.
await client.tickets.createTicket({
appId: 1,
body: {
Title: 'New ticket',
StatusID: 1,
PriorityID: 2,
},
})updateTicket
updateTicket(input: {
appId: string | number
ticketId: string | number
body: Record<string, unknown>
}): Promise<unknown>Updates an existing ticket. Only include the fields you want to change.
await client.tickets.updateTicket({
appId: 1,
ticketId: 456,
body: { StatusID: 3, PriorityID: 1 },
})deleteTicket
deleteTicket(input: {
appId: string | number
ticketId: string | number
confirm: true
}): Promise<unknown>Acknowledges a ticket cancellation. Requires confirm: true.
addTicketComment
addTicketComment(input: {
appId: string | number
ticketId: string | number
body: { Comment: string }
}): Promise<unknown>Adds a feed item (comment) to a ticket.
await client.tickets.addTicketComment({
appId: 1,
ticketId: 456,
body: { Comment: 'Issue resolved.' },
})performTicketWorkflowAction
performTicketWorkflowAction(input: {
appId: string | number
ticketId: string | number
actionId: string | number
body?: Record<string, unknown>
}): Promise<unknown>Executes a workflow action on a ticket. The actionId comes from appIdTicketsIdWorkflowActions() read method.
client.ticketRelationships
addTicketAsset
addTicketAsset(input: {
appId: string | number
ticketId: string | number
assetId: string | number
}): Promise<unknown>Links an existing asset to a ticket.
removeTicketAsset
removeTicketAsset(input: {
appId: string | number
ticketId: string | number
assetId: string | number
confirm: true
}): Promise<unknown>Removes an asset from a ticket. Requires confirm: true.
addTicketContact
addTicketContact(input: {
appId: string | number
ticketId: string | number
body: { UID?: string }
}): Promise<unknown>Adds a contact person to a ticket.
createTicketTask
createTicketTask(input: {
appId: string | number
ticketId: string | number
body: Record<string, unknown>
}): Promise<unknown>Creates a task on a ticket.
updateTicketTask
updateTicketTask(input: {
appId: string | number
ticketId: string | number
taskId: string | number
body: Record<string, unknown>
}): Promise<unknown>Updates a ticket task.
deleteTicketTask
deleteTicketTask(input: {
appId: string | number
ticketId: string | number
taskId: string | number
confirm: true
}): Promise<unknown>Deletes a ticket task. Requires confirm: true.
addTicketTaskComment
addTicketTaskComment(input: {
appId: string | number
ticketId: string | number
taskId: string | number
body: { Comment: string }
}): Promise<unknown>Adds a comment to a ticket task.
client.people
addUserToGroup
addUserToGroup(input: {
groupId: string | number
uid: string | number
}): Promise<unknown>Adds a single user to a group.
removeUserFromGroup
removeUserFromGroup(input: {
groupId: string | number
uid: string | number
confirm: true
}): Promise<unknown>Removes a user from a group. Requires confirm: true.
client.knowledgeBase
createArticle
createArticle(input: {
appId: string | number
body: Record<string, unknown>
}): Promise<unknown>Creates a knowledge base article.
updateArticle
updateArticle(input: {
appId: string | number
articleId: string | number
body: Record<string, unknown>
}): Promise<unknown>Updates a knowledge base article.
deleteArticle
deleteArticle(input: {
appId: string | number
articleId: string | number
confirm: true
}): Promise<unknown>Deletes a knowledge base article. Requires confirm: true.
client.assets
createAsset
createAsset(input: {
appId: string | number
body: Record<string, unknown>
}): Promise<unknown>Creates a new asset.
updateAsset
updateAsset(input: {
appId: string | number
assetId: string | number
body: Record<string, unknown>
}): Promise<unknown>Updates an existing asset.
deleteAsset
deleteAsset(input: {
appId: string | number
assetId: string | number
confirm: true
}): Promise<unknown>Deletes an asset. Requires confirm: true.
addAssetComment
addAssetComment(input: {
appId: string | number
assetId: string | number
body: { Comment: string }
}): Promise<unknown>Adds a feed comment to an asset.
client.cmdb
createConfigurationItem
createConfigurationItem(input: {
appId: string | number
body: Record<string, unknown>
}): Promise<unknown>Creates a configuration item in the CMDB.
updateConfigurationItem
updateConfigurationItem(input: {
appId: string | number
ciId: string | number
body: Record<string, unknown>
}): Promise<unknown>Updates a configuration item.
deleteConfigurationItem
deleteConfigurationItem(input: {
appId: string | number
ciId: string | number
confirm: true
}): Promise<unknown>Deletes a configuration item. Requires confirm: true.
client.services
createServiceOffering
createServiceOffering(input: {
appId: string | number
serviceId: string | number
body: Record<string, unknown>
}): Promise<unknown>Creates an offering within a service catalog item.
client.projects
createProject
createProject(input: {
body: Record<string, unknown>
}): Promise<unknown>Creates a new project.
updateProject
updateProject(input: {
projectId: string | number
body: Record<string, unknown>
}): Promise<unknown>Updates a project.
deleteProject
deleteProject(input: {
projectId: string | number
confirm: true
}): Promise<unknown>Deletes a project. Requires confirm: true.
addProjectComment
addProjectComment(input: {
projectId: string | number
body: { Comment: string }
}): Promise<unknown>Adds a comment to a project's feed.
client.time
createTimeEntry
createTimeEntry(input: {
body: Record<string, unknown>
}): Promise<unknown>Creates a time entry.
updateTimeEntry
updateTimeEntry(input: {
entryId: string | number
body: Record<string, unknown>
}): Promise<unknown>Updates a time entry.
deleteTimeEntry
deleteTimeEntry(input: {
entryId: string | number
confirm: true
}): Promise<unknown>Deletes a time entry. Requires confirm: true.