Help us improve
Share bugs, ideas, or general feedback.
From atera
Manages Atera customers and contacts via API: create, update, search records; handle info, custom fields, lifecycle ops. For MSP account management.
npx claudepluginhub wyre-technology/msp-claude-plugins --plugin ateraHow this skill is triggered — by the user, by Claude, or both
Slash command
/atera:customersThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Customers in Atera represent the organizations you provide IT services to. Each customer can have multiple contacts (end users), agents (managed devices), contracts, and associated tickets. Proper customer management is essential for organized service delivery.
Manages Syncro MSP customer records: create, update, search; handle contacts, sites/locations via REST API. For MSP client onboarding and management.
Guides management of Autotask CRM entities: companies, contacts, sites/locations, and opportunities. Useful for MSP account management, client onboarding, and REST API usage.
Manages SuperOps.ai client accounts via GraphQL: create, update, search, delete; handle sites, contacts, custom fields, stages, and statuses. For MSP PSA workflows.
Share bugs, ideas, or general feedback.
Customers in Atera represent the organizations you provide IT services to. Each customer can have multiple contacts (end users), agents (managed devices), contracts, and associated tickets. Proper customer management is essential for organized service delivery.
| Field | Type | Required | Description |
|---|---|---|---|
CustomerID | int | System | Auto-generated unique identifier |
CustomerName | string | Yes | Company name |
BusinessNumber | string | No | Tax ID or business registration |
Domain | string | No | Primary email domain |
Address | string | No | Street address |
City | string | No | City name |
State | string | No | State/province |
Country | string | No | Country name |
ZipCodeStr | string | No | Postal/ZIP code |
Phone | string | No | Main phone number |
Fax | string | No | Fax number |
Notes | string | No | Internal notes |
Website | string | No | Company website URL |
| Field | Type | Description |
|---|---|---|
CreatedOn | datetime | Customer creation date |
LastModified | datetime | Last modification date |
| Field | Type | Required | Description |
|---|---|---|---|
EndUserID | int | System | Auto-generated unique identifier |
CustomerID | int | Yes | Parent customer ID |
CustomerName | string | System | Parent customer name |
FirstName | string | No | Contact first name |
LastName | string | No | Contact last name |
Email | string | Yes | Email address (unique) |
Phone | string | No | Phone number |
JobTitle | string | No | Job title/position |
IsContactPerson | boolean | No | Primary contact flag |
InIgnoreMode | boolean | No | Ignore emails from contact |
CreatedOn | datetime | System | Contact creation date |
GET /api/v3/customers?page=1&itemsInPage=50
X-API-KEY: {api_key}
Response:
{
"items": [
{
"CustomerID": 12345,
"CustomerName": "Acme Corporation",
"Domain": "acme.com",
"Address": "123 Main Street",
"City": "New York",
"State": "NY",
"Country": "United States",
"ZipCodeStr": "10001",
"Phone": "555-123-4567",
"Website": "https://www.acme.com",
"CreatedOn": "2023-01-15T10:00:00Z"
}
],
"totalItems": 150,
"page": 1,
"itemsInPage": 50,
"totalPages": 3
}
GET /api/v3/customers/{customerId}
X-API-KEY: {api_key}
Response:
{
"CustomerID": 12345,
"CustomerName": "Acme Corporation",
"BusinessNumber": "12-3456789",
"Domain": "acme.com",
"Address": "123 Main Street",
"City": "New York",
"State": "NY",
"Country": "United States",
"ZipCodeStr": "10001",
"Phone": "555-123-4567",
"Fax": "555-123-4568",
"Website": "https://www.acme.com",
"Notes": "Enterprise customer - 24/7 support",
"CreatedOn": "2023-01-15T10:00:00Z",
"LastModified": "2024-02-01T14:30:00Z"
}
POST /api/v3/customers
X-API-KEY: {api_key}
Content-Type: application/json
{
"CustomerName": "New Company Inc",
"Domain": "newcompany.com",
"Address": "456 Oak Avenue",
"City": "Chicago",
"State": "IL",
"Country": "United States",
"ZipCodeStr": "60601",
"Phone": "555-987-6543",
"Website": "https://www.newcompany.com",
"Notes": "Referred by Acme Corporation"
}
Response:
{
"ActionID": 67890,
"CustomerID": 67890,
"CustomerName": "New Company Inc"
}
POST /api/v3/customers/{customerId}
X-API-KEY: {api_key}
Content-Type: application/json
{
"Phone": "555-987-6544",
"Notes": "Updated contact information",
"Address": "789 New Street"
}
DELETE /api/v3/customers/{customerId}
X-API-KEY: {api_key}
Warning: Deleting a customer removes all associated data including contacts, agents, and tickets.
GET /api/v3/contacts?page=1&itemsInPage=50
X-API-KEY: {api_key}
Response:
{
"items": [
{
"EndUserID": 67890,
"CustomerID": 12345,
"CustomerName": "Acme Corporation",
"FirstName": "John",
"LastName": "Smith",
"Email": "john.smith@acme.com",
"Phone": "555-123-4567 x101",
"JobTitle": "IT Manager",
"IsContactPerson": true,
"CreatedOn": "2023-01-20T09:00:00Z"
}
],
"totalItems": 500,
"page": 1,
"itemsInPage": 50,
"totalPages": 10
}
GET /api/v3/contacts/{contactId}
X-API-KEY: {api_key}
POST /api/v3/contacts
X-API-KEY: {api_key}
Content-Type: application/json
{
"CustomerID": 12345,
"FirstName": "Jane",
"LastName": "Doe",
"Email": "jane.doe@acme.com",
"Phone": "555-123-4567 x102",
"JobTitle": "CFO",
"IsContactPerson": false
}
Response:
{
"ActionID": 77777,
"EndUserID": 77777
}
POST /api/v3/contacts/{contactId}
X-API-KEY: {api_key}
Content-Type: application/json
{
"Phone": "555-123-4567 x103",
"JobTitle": "COO",
"IsContactPerson": true
}
DELETE /api/v3/contacts/{contactId}
X-API-KEY: {api_key}
Atera supports custom fields for customers and contacts.
GET /api/v3/customvalues/customer/{customerId}
X-API-KEY: {api_key}
POST /api/v3/customvalues/customer/{customerId}
X-API-KEY: {api_key}
Content-Type: application/json
{
"FieldName": "ContractType",
"Value": "Managed Services"
}
DELETE /api/v3/customvalues/customer/{customerId}/{fieldName}
X-API-KEY: {api_key}
| Code | Message | Resolution |
|---|---|---|
| 400 | Invalid customer ID | Verify customer exists |
| 400 | Email already exists | Contact email must be unique |
| 401 | Unauthorized | Check API key |
| 403 | Forbidden | Verify permissions |
| 404 | Customer not found | Confirm customer ID |
| 429 | Rate limited | Wait and retry (700 req/min) |
| Error | Cause | Fix |
|---|---|---|
| Name required | Missing CustomerName | Add customer name |
| Email required | Missing contact email | Add email address |
| Invalid email | Malformed email address | Fix email format |
| Duplicate email | Email exists for another contact | Use unique email |
Customer (CustomerID)
│
├── Contacts (EndUserID)
│ └── Tickets (as EndUser)
│
├── Agents (AgentID)
│ └── Alerts
│
├── Contracts (ContractID)
│
└── Custom Values