/create-ticket
Create a new service ticket in Atera
$ npx -y skills add wyre-technology/msp-claude-plugins --agent claude-codeHow it fires
How this command gets triggered: by you, by Claude, or both.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/create-ticket
Context preview
What this command does when you run it.
Create a new service ticket in Atera
Command definition
create-ticket.mddescription: Create a new service ticket in Atera
argument-hint: "<customer> <title> [description] [priority] [contact] [technicianEmail]"
arguments: [customer, title, description, priority, contact, technicianEmail]
Create Atera Ticket
Create a new service ticket in Atera with specified details.
Prerequisites
- Valid Atera API key configured
- Customer must exist in Atera
- User must have ticket creation permissions
Steps
1. **Validate customer exists**
- If numeric, use as customer ID directly
- If text, search customers by name
- Suggest similar names if no exact match
2. **Check for duplicate tickets**
- Search open tickets for same customer
- Warn if similar titles found in last 24 hours
3. **Resolve optional fields**
- Look up contact ID if contact provided
- Validate technician email if provided
- Apply default priority if not specified
4. **Create the ticket**
POST /api/v3/tickets
X-API-KEY: {api_key}
Content-Type: application/json
{
"TicketTitle": "<title>",
"Description": "<description>",
"EndUserID": <resolved_contact_id>,
"TicketPriority": "<priority>",
"TicketType": "Problem",
"TechnicianContactID": <resolved_tech_id>
}5. **Return ticket details**
- Ticket ID
- Ticket title
- Customer name
- Assigned technician
Parameters
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | customer | string/int | Yes | - | Customer name or ID | | title | string | Yes | - | Brief summary of the issue | | description | string | No | - | Detailed issue description | | priority | string | No | Medium | Low, Medium, High, Critical | | contact | string | No | - | Contact name or email | | technicianEmail | string | No | - | Technician to assign |
Examples
Basic Usage
/create-ticket "Acme Corp" "Email not working"
With Full Details
/create-ticket "Acme Corp" "Email not working" --description "Multiple users unable to send/receive since 9am" --priority High --contact "john.smith@acme.com" --technicianEmail "tech@msp.com"
Using Customer ID
/create-ticket 12345 "Server offline" --priority Critical
Output
Ticket Created Successfully
Ticket ID: 54321
Title: Email not working
Customer: Acme Corporation
Priority: High
Status: Open
Assigned To: John Tech
URL: https://app.atera.com/new/rmm/ticket/54321
Error Handling
Customer Not Found
Customer not found: "Acme"
Did you mean one of these?
- Acme Corporation (ID: 12345)
- Acme Industries (ID: 12346)
- Acme LLC (ID: 12347)
Invalid Contact
Warning: Contact "john.smith@acme.com" not found for customer
Ticket will be created without a contact assignment.
Proceed? [Y/n]
Rate Limit Exceeded
Rate limit exceeded (700 req/min)
Waiting 30 seconds before retry...
API Errors
| Error | Resolution | |-------|------------| | Invalid customer ID | Verify customer exists | | Contact not found | Create ticket without contact, note in description | | Rate limited | Wait and retry automatically | | Unauthorized | Verify API key is valid |
Related Commands
- `/search-agents` - Search for RMM agents
- `/list-tickets` - List existing tickets
Read more
description: Create a new service ticket in Atera argument-hint: "<customer> <title> [description] [priority] [contact] [technicianEmail]" arguments: [customer, title, description, priority, contact, technicianEmail]
Create Atera Ticket
Create a new service ticket in Atera with specified details.
Prerequisites
- Valid Atera API key configured
- Customer must exist in Atera
- User must have ticket creation permissions
Steps
1. **Validate customer exists**
- If numeric, use as customer ID directly
- If text, search customers by name
- Suggest similar names if no exact match
2. **Check for duplicate tickets**
- Search open tickets for same customer
- Warn if similar titles found in last 24 hours
3. **Resolve optional fields**
- Look up contact ID if contact provided
- Validate technician email if provided
- Apply default priority if not specified
4. **Create the ticket**
POST /api/v3/tickets
X-API-KEY: {api_key}
Content-Type: application/json
{
"TicketTitle": "<title>",
"Description": "<description>",
"EndUserID": <resolved_contact_id>,
"TicketPriority": "<priority>",
"TicketType": "Problem",
"TechnicianContactID": <resolved_tech_id>
}5. **Return ticket details**
- Ticket ID
- Ticket title
- Customer name
- Assigned technician
Parameters
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | customer | string/int | Yes | - | Customer name or ID | | title | string | Yes | - | Brief summary of the issue | | description | string | No | - | Detailed issue description | | priority | string | No | Medium | Low, Medium, High, Critical | | contact | string | No | - | Contact name or email | | technicianEmail | string | No | - | Technician to assign |
Examples
Basic Usage
/create-ticket "Acme Corp" "Email not working"
With Full Details
/create-ticket "Acme Corp" "Email not working" --description "Multiple users unable to send/receive since 9am" --priority High --contact "john.smith@acme.com" --technicianEmail "tech@msp.com"
Using Customer ID
/create-ticket 12345 "Server offline" --priority Critical
Output
Ticket Created Successfully Ticket ID: 54321 Title: Email not working Customer: Acme Corporation Priority: High Status: Open Assigned To: John Tech URL: https://app.atera.com/new/rmm/ticket/54321
Error Handling
Customer Not Found
Customer not found: "Acme" Did you mean one of these? - Acme Corporation (ID: 12345) - Acme Industries (ID: 12346) - Acme LLC (ID: 12347)
Invalid Contact
Warning: Contact "john.smith@acme.com" not found for customer Ticket will be created without a contact assignment. Proceed? [Y/n]
Rate Limit Exceeded
Rate limit exceeded (700 req/min) Waiting 30 seconds before retry...
API Errors
| Error | Resolution | |-------|------------| | Invalid customer ID | Verify customer exists | | Contact not found | Create ticket without contact, note in description | | Rate limited | Wait and retry automatically | | Unauthorized | Verify API key is valid |
Related Commands
- `/search-agents` - Search for RMM agents
- `/list-tickets` - List existing tickets
One command to supercharge Claude Code for MSP workflows. Then restart Claude Code. That's it. Documentation: mcp.wyre.ai
Repo: wyre-technology/msp-claude-plugins
Other commands on msp-claude-plugins.
- /case-review
Review and triage abuse mailbox cases in Abnormal Security
Open command - /search-threats
Search for specific threat patterns in Abnormal Security by sender, recipient, attack type, or keywords
Open command - /threat-triage
Triage recent email threats detected by Abnormal Security by severity and attack type
Open command - /list-overdue-invoices
List open and overdue Alternative Payments invoices and optionally generate hosted payment links for them
Open command - /reconcile-payout
Reconcile an Alternative Payments payout by listing its transactions and matching them against invoices and customers
Open command - /eol-report
EOL/EOS risk report — devices, OS versions, and firmware approaching or past end-of-life/end-of-support, prioritized by criticality
Open command

