NinjaOne Ticket Management
Overview
NinjaOne includes a built-in ticketing system that integrates with device monitoring. Tickets can be manually created or auto-generated from alerts, providing a complete service desk solution.
Anti-triggers
- The MSP's real service desk — most MSPs running NinjaOne keep their
ticket queue in a PSA and use NinjaOne ticketing only for
monitoring-generated work, or not at all. If the ticket has a contract,
an SLA, and billable time against it, it is in the PSA: use
autotask-tickets, connectwise-psa-tickets, halopsa-tickets,
syncro-tickets, or atera-tickets. Check which system holds the queue
before assuming this one.
- How to prioritise, categorise, and route an incoming ticket — this
skill covers the NinjaOne ticket API; the triage practice itself is
vendor-agnostic, so use
shared-skills-ticket-triage.
- Pulling device and alert context onto a ticket — that is a
cross-tool lookup; use
shared-skills-incident-correlation.
- The alert that would become a ticket — use
ninjaone-alerts.
API Endpoints
Create Ticket
POST /api/v2/ticketing/ticket
Content-Type: application/json
Authorization: Bearer {token}
{
"clientId": 123,
"subject": "Server disk space critical",
"description": "C: drive on SERVER-01 is at 95% capacity",
"priority": "HIGH",
"status": "OPEN",
"assignedTechnicianId": 456,
"deviceId": 789,
"tags": ["disk", "server", "critical"]
}
Update Ticket
PUT /api/v2/ticketing/ticket/{ticketId}
Content-Type: application/json
{
"status": "IN_PROGRESS",
"priority": "MEDIUM",
"assignedTechnicianId": 456
}
Get Ticket Log Entries
GET /api/v2/ticketing/ticket/{ticketId}/log-entry
Returns all log entries (comments, status changes, time entries) for a ticket.
Ticket Fields
Core Fields
| Field |
Type |
Required |
Description |
id |
integer |
System |
Auto-generated ID |
subject |
string |
Yes |
Brief issue summary |
description |
text |
No |
Detailed description |
clientId |
integer |
Yes |
Organization ID |
deviceId |
integer |
No |
Related device |
Status Fields
| Field |
Type |
Description |
status |
string |
Current ticket status |
priority |
string |
Urgency level |
assignedTechnicianId |
integer |
Assigned tech |
Metadata
| Field |
Type |
Description |
tags |
array |
Categorization tags |
createTime |
datetime |
Creation timestamp |
updateTime |
datetime |
Last modified |
Status Values
| Status |
Description |
OPEN |
New ticket, awaiting triage |
IN_PROGRESS |
Actively being worked |
WAITING |
Waiting for customer/vendor |
ON_HOLD |
Paused pending action |
RESOLVED |
Issue resolved |
CLOSED |
Ticket complete |
Priority Levels
| Priority |
Description |
SLA Target |
CRITICAL |
Business down |
Immediate |
HIGH |
Major impact |
1 hour |
MEDIUM |
Moderate impact |
4 hours |
LOW |
Minor issue |
24 hours |
NONE |
No urgency |
Best effort |
Log Entries
Log entries track all ticket activity:
Entry Types
| Type |
Description |
COMMENT |
Public or private comment |
STATUS_CHANGE |
Status transition |
ASSIGNMENT |
Technician assignment change |
TIME_ENTRY |
Logged work time |
Log Entry Structure
{
"id": 123,
"type": "COMMENT",
"content": "Investigated and found corrupted index",
"public": false,
"createdBy": {
"id": 456,
"name": "John Tech"
},
"createTime": "2024-02-15T14:30:00Z"
}
Common Workflows
Create Ticket from Alert
- Receive alert notification
- Get device and organization context
- Create ticket with device linked
- Add alert details to description
- Set priority based on alert severity
- Assign to appropriate technician
Ticket Resolution Flow
- Update status to IN_PROGRESS
- Add log entries documenting work
- Log time entries for billing
- Update status to RESOLVED
- Add resolution notes
- Close ticket
Escalation Workflow
- Review ticket age and SLA
- Update priority if needed
- Reassign to senior tech
- Add escalation note
- Notify stakeholders
Integration with Devices
Link tickets to devices for context:
{
"subject": "Outlook crashes repeatedly",
"deviceId": 12345,
"description": "User reports Outlook crashes when opening attachments"
}
Benefits:
- Quick access to device details
- View device alerts in ticket context
- Run remote actions from ticket
Tags for Categorization
{
"tags": [
"email",
"outlook",
"crash",
"user-reported"
]
}
Common tag patterns:
- Issue type:
hardware, software, network
- Application:
outlook, office, vpn
- Source:
user-reported, alert, scheduled
- Priority override:
vip, urgent
Best Practices
- Use descriptive subjects - Include who, what, where
- Log all work - Essential for billing and knowledge
- Update status promptly - Keeps queues accurate
Error Handling
| Code |
Description |
Resolution |
| 400 |
Invalid request |
Check required fields |
| 404 |
Ticket not found |
Verify ticket ID |
| 403 |
Access denied |
Check organization permissions |
| 422 |
Validation error |
Review field values |
Related Skills