Skip to content
Development
Skill

/tickets

Atera service desk tickets: ticket fields, statuses, priorities, comments, work hours, and billing duration.

From plugin
msp-claude-plugins
46200 skills146 agents200 commands4 MCP
Install
$ npx -y skills add wyre-technology/msp-claude-plugins --skill tickets --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/tickets

Context preview

The summary Claude sees to decide when to auto-load this skill.

Atera service desk tickets: ticket fields, statuses, priorities, comments, work hours, and billing duration.

SKILL.md

tickets.SKILL.md
name: "Atera Tickets"
description: >
  Atera service desk tickets: ticket fields, statuses, priorities, comments,
  work hours, and billing duration.
when_to_use: >-
  When creating, updating, searching, or managing Atera service desk
  tickets. Use when: atera ticket, service ticket atera, create ticket
  atera, ticket status atera, ticket priority atera, atera service desk,
  ticket comments, work hours atera, billable hours, or resolve ticket
  atera.

Atera Ticket Management

Overview

Atera tickets are the core unit of service delivery in the RMM/PSA platform. Every client request, incident, and service call flows through the ticketing system. This skill covers comprehensive ticket management including creation, updates, comments, and time tracking.

Anti-triggers

  • **The MSP's system-of-record helpdesk** — plenty of shops run Atera

for RMM and a separate PSA for service desk. If tickets live elsewhere, use `connectwise-psa-tickets`, `autotask-tickets`, `halopsa-tickets`, `syncro-tickets`, or `superops-tickets`; a ticket created in the wrong system is a ticket nobody is watching.

  • **The alert behind the ticket** — alert-to-ticket conversion rules and

the alert side of that workflow are `atera-alerts`.

Ticket Status Values

| Status | Description | Business Logic | |--------|-------------|----------------| | **Open** | Newly created or reopened ticket | Default for new tickets | | **Pending** | Awaiting customer response or information | SLA clock may pause | | **Resolved** | Issue has been fixed | Awaiting customer confirmation | | **Closed** | Ticket is complete | Final state, no further action |

Ticket Priority Levels

| Priority | Description | Typical SLA | |----------|-------------|-------------| | **Critical** | Complete business outage | 1 hour response | | **High** | Major productivity impact | 4 hour response | | **Medium** | Single user/workaround exists | 8 hour response | | **Low** | Minor issue/enhancement | 24 hour response |

Ticket Types

| Type | Description | |------|-------------| | **Problem** | Standard service issue | | **Request** | Service request | | **Incident** | Unplanned interruption | | **Change** | Planned change |

Complete Ticket Field Reference

Core Fields

| Field | Type | Required | Description | |-------|------|----------|-------------| | `TicketID` | int | System | Auto-generated unique identifier | | `TicketTitle` | string | Yes | Brief issue summary | | `Description` | string | No | Detailed description | | `TicketPriority` | string | No | Low, Medium, High, Critical | | `TicketStatus` | string | No | Open, Pending, Resolved, Closed | | `TicketType` | string | No | Problem, Request, Incident, Change |

Customer/Contact Fields

| Field | Type | Required | Description | |-------|------|----------|-------------| | `CustomerID` | int | Conditional | Customer reference (required if no EndUserID) | | `CustomerName` | string | System | Customer display name | | `EndUserID` | int | Conditional | Contact reference | | `EndUserEmail` | string | System | Contact email address | | `EndUserFirstName` | string | System | Contact first name | | `EndUserLastName` | string | System | Contact last name |

Assignment Fields

| Field | Type | Required | Description | |-------|------|----------|-------------| | `TechnicianContactID` | int | No | Assigned technician ID | | `TechnicianFullName` | string | System | Technician display name | | `TechnicianEmail` | string | System | Technician email |

Timeline Fields

| Field | Type | Required | Description | |-------|------|----------|-------------| | `TicketCreatedDate` | datetime | System | When ticket was created | | `TicketResolvedDate` | datetime | System | When marked resolved | | `FirstResponseDate` | datetime | System | First response timestamp | | `LastActivityDate` | datetime | System | Last update timestamp | | `DueDate` | datetime | No | SLA due date |

Source Fields

| Field | Type | Description | |-------|------|-------------| | `TicketSource` | string | How ticket was created (Portal, Email, Agent, API) |

API Patterns

Create a Ticket

POST /api/v3/tickets
X-API-KEY: {api_key}
Content-Type: application/json
{
  "TicketTitle": "Unable to access email - multiple users affected",
  "Description": "Sales team (5 users) reporting Outlook disconnected since 9am",
  "EndUserID": 67890,
  "TicketPriority": "High",
  "TicketType": "Problem",
  "TechnicianContactID": 12345
}

**Response:**

{
  "ActionID": 54321,
  "TicketID": 54321,
  "TicketTitle": "Unable to access email - multiple users affected"
}

Get Ticket Details

GET /api/v3/tickets/{ticketId}
X-API-KEY: {api_key}

**Response:**

{
  "TicketID": 54321,
  "TicketTitle": "Unable to access email - multiple users affected",
  "TicketStatus": "Open",
  "TicketPriority": "High",
  "TicketType": "Problem",
  "CustomerID": 12345,
  "CustomerName": "Acme Corporation",
  "EndUserID": 67890,
  "EndUserFirstName": "John",
  "EndUserLastName": "Smith",
  "EndUserEmail": "john.smith@acme.com",
  "TechnicianContactID": 11111,
  "TechnicianFullName": "Jane Tech",
  "TicketCreatedDate": "2024-02-15T09:00:00Z",
  "TicketSource": "Email"
}

Update a Ticket

POST /api/v3/tickets/{ticketId}
X-API-KEY: {api_key}
Content-Type: application/json
{
  "TicketStatus": "Resolved",
  "TicketPriority": "Medium"
}

List All Tickets (Paginated)

GET /api/v3/tickets?page=1&itemsInPage=50
X-API-KEY: {api_key}

**Response:**

{
  "items": [...],
  "totalItems": 2847,
  "page": 1,
  "itemsInPage": 50,
  "totalPages": 57
}

Get Tickets Modified After Date

GET /api/v3/tickets/statusmodified?modifiedAfter=2024-02-01T00:00:00Z
X-API-KEY: {api_key}

Get Ticket Comments

GET /api/v3/tickets/{ticketId}/comments
X-API-KEY: {api_key}

**Response:**

{
  "items": [
    {
Read more
Ships withmsp-claude-plugins

One command to supercharge Claude Code for MSP workflows. Then restart Claude Code. That's it. Documentation: mcp.wyre.ai

Get the whole plugin

Other skills on msp-claude-plugins.