From atera
Manages Atera service desk tickets including creation, updates, statuses, priorities, comments, and time tracking. Essential for MSP technicians.
How this skill is triggered — by the user, by Claude, or both
Slash command
/atera:ticketsWhen to use
When creating, updating, searching, or managing service desk operations. 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.
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
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.
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.
| 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 |
| 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 |
| Type | Description |
|---|---|
| Problem | Standard service issue |
| Request | Service request |
| Incident | Unplanned interruption |
| Change | Planned change |
| 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 |
| 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 |
| Field | Type | Required | Description |
|---|---|---|---|
TechnicianContactID | int | No | Assigned technician ID |
TechnicianFullName | string | System | Technician display name |
TechnicianEmail | string | System | Technician email |
| 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 |
| Field | Type | Description |
|---|---|---|
TicketSource | string | How ticket was created (Portal, Email, Agent, API) |
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 /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": "[email protected]",
"TechnicianContactID": 11111,
"TechnicianFullName": "Jane Tech",
"TicketCreatedDate": "2024-02-15T09:00:00Z",
"TicketSource": "Email"
}
POST /api/v3/tickets/{ticketId}
X-API-KEY: {api_key}
Content-Type: application/json
{
"TicketStatus": "Resolved",
"TicketPriority": "Medium"
}
GET /api/v3/tickets?page=1&itemsInPage=50
X-API-KEY: {api_key}
Response:
{
"items": [...],
"totalItems": 2847,
"page": 1,
"itemsInPage": 50,
"totalPages": 57
}
GET /api/v3/tickets/statusmodified?modifiedAfter=2024-02-01T00:00:00Z
X-API-KEY: {api_key}
GET /api/v3/tickets/{ticketId}/comments
X-API-KEY: {api_key}
Response:
{
"items": [
{
"CommentID": 11111,
"TicketID": 54321,
"CommentText": "Initial triage: Checking Exchange connectivity",
"CommentDate": "2024-02-15T09:15:00Z",
"CreatorContactID": 12345,
"IsInternal": true
}
]
}
POST /api/v3/tickets/{ticketId}/comments
X-API-KEY: {api_key}
Content-Type: application/json
{
"CommentText": "Identified root cause - Exchange certificate expired",
"IsInternal": false
}
GET /api/v3/tickets/{ticketId}/billableduration
X-API-KEY: {api_key}
Response:
{
"TotalBillableDuration": 3600,
"TotalBillableHours": 1.0
}
GET /api/v3/tickets/{ticketId}/workhours
X-API-KEY: {api_key}
Response:
{
"items": [
{
"WorkHourID": 22222,
"TicketID": 54321,
"TechnicianContactID": 12345,
"StartDate": "2024-02-15T09:00:00Z",
"EndDate": "2024-02-15T10:30:00Z",
"Duration": 5400,
"IsBillable": true,
"Notes": "Initial investigation and resolution"
}
]
}
Open ──────────────────────────────> Closed
│ ↑
↓ │
Pending ──────────────> Resolved ──────┘
│ ↑
└─────────────────────────┘
Rules:
| Code | Message | Resolution |
|---|---|---|
| 400 | Invalid ticket ID | Verify ticket exists |
| 401 | Unauthorized | Check API key |
| 403 | Forbidden | Verify permissions |
| 404 | Ticket not found | Confirm ticket ID |
| 429 | Rate limited | Wait and retry (700 req/min limit) |
| Error | Cause | Fix |
|---|---|---|
| Title required | Missing TicketTitle | Add title to request |
| Invalid priority | Typo in priority value | Use Low, Medium, High, or Critical |
| Customer not found | Invalid EndUserID | Verify contact exists |
npx claudepluginhub wyre-technology/msp-claude-plugins --plugin ateraManages SuperOps.ai service desk tickets: create, update, search, triage, add notes/time entries, and automate workflows. Essential for MSP technicians.
Manages Autotask tickets including creation, updates, search, SLA calculations, escalation rules, and workflow automations for MSP service delivery.
Manages Syncro MSP tickets: create, update, search, resolve, add comments, track time, and handle status/priority transitions. Essential for service desk operations.