Skip to main content
Glama

create_ticket

Create a new support ticket in Autotask to track issues, assign resources, and manage client requests with required company details, title, and description.

Instructions

Create a new ticket in Autotask

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
companyIDYesCompany ID for the ticket
titleYesTicket title
descriptionYesTicket description
statusNoTicket status ID
priorityNoTicket priority ID
assignedResourceIDNoAssigned resource ID
contactIDNoContact ID for the ticket

Implementation Reference

  • Core implementation of ticket creation using AutotaskClient.tickets.create() API call.
    async createTicket(ticket: Partial<AutotaskTicket>): Promise<number> { const client = await this.ensureClient(); try { this.logger.debug('Creating ticket:', ticket); const result = await client.tickets.create(ticket as any); const ticketId = (result.data as any)?.id; this.logger.info(`Ticket created with ID: ${ticketId}`); return ticketId; } catch (error) { this.logger.error('Failed to create ticket:', error); throw error; } }
  • MCP tool handler dispatches 'create_ticket' calls to AutotaskService.createTicket() with success message formatting.
    case 'create_ticket': result = await this.autotaskService.createTicket(args); message = `Successfully created ticket with ID: ${result}`; break;
  • JSON schema defining input parameters, descriptions, and required fields for the create_ticket tool.
    { name: 'create_ticket', description: 'Create a new ticket in Autotask', inputSchema: { type: 'object', properties: { companyID: { type: 'number', description: 'Company ID for the ticket' }, title: { type: 'string', description: 'Ticket title' }, description: { type: 'string', description: 'Ticket description' }, status: { type: 'number', description: 'Ticket status ID' }, priority: { type: 'number', description: 'Ticket priority ID' }, assignedResourceID: { type: 'number', description: 'Assigned resource ID' }, contactID: { type: 'number', description: 'Contact ID for the ticket' } }, required: ['companyID', 'title', 'description'] } },
  • Registers MCP ListToolsRequest handler that calls toolHandler.listTools(), exposing create_ticket schema.
    this.server.setRequestHandler(ListToolsRequestSchema, async () => { try { this.logger.debug('Handling list tools request'); const tools = await this.toolHandler.listTools(); return { tools }; } catch (error) { this.logger.error('Failed to list tools:', error); throw new McpError( ErrorCode.InternalError, `Failed to list tools: ${error instanceof Error ? error.message : 'Unknown error'}` ); } });
  • Registers MCP CallToolRequest handler that delegates tool execution to toolHandler.callTool(name, args), enabling create_ticket execution.
    this.server.setRequestHandler(CallToolRequestSchema, async (request) => { try { this.logger.debug(`Handling tool call: ${request.params.name}`); const result = await this.toolHandler.callTool( request.params.name, request.params.arguments || {} ); return { content: result.content, isError: result.isError }; } catch (error) { this.logger.error(`Failed to call tool ${request.params.name}:`, error); throw new McpError( ErrorCode.InternalError, `Failed to call tool: ${error instanceof Error ? error.message : 'Unknown error'}` ); } });

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/asachs01/autotask-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server