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.
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": [
{
"CommentID": 11111,
"TicketID": 54321,
"CommentText": "Initial triage: Checking Exchange connectivity",
"CommentDate": "2024-02-15T09:15:00Z",
"CreatorContactID": 12345,
"IsInternal": true
}
]
}
Create Ticket Comment
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 Billable Duration
GET /api/v3/tickets/{ticketId}/billableduration
X-API-KEY: {api_key}
Response:
{
"TotalBillableDuration": 3600,
"TotalBillableHours": 1.0
}
Get Work Hours
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"
}
]
}
Common Workflows
Ticket Creation Flow
- Receive request - Via portal, email, phone, or API
- Validate customer - Ensure customer exists in system
- Set priority - Based on impact and urgency
- Assign technician - Route to appropriate team member
- Send acknowledgment - Notify customer of ticket creation
Ticket Resolution Flow
- Investigate issue - Document findings in comments
- Implement fix - Perform remediation steps
- Log time - Record billable/non-billable hours
- Update status - Set to Resolved
- Notify customer - Send resolution summary
Status Transition Validation
Open ──────────────────────────────> Closed
│ ↑
↓ │
Pending ──────────────> Resolved ──────┘
│ ↑
└─────────────────────────┘
Rules:
- Cannot skip directly from Open to Closed (must resolve first)
- Resolved tickets can be reopened to Open
- Pending can transition to any status
Error Handling
Common API Errors
| 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) |
Validation Errors
| 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 |
Best Practices
- Use descriptive titles - Include affected system and symptom
- Set accurate priority - Use impact/urgency matrix
- **D