Help us improve
Share bugs, ideas, or general feedback.
From syncro-msp
Manages Syncro MSP customer records: create, update, search; handle contacts, sites/locations via REST API. For MSP client onboarding and management.
npx claudepluginhub wyre-technology/msp-claude-plugins --plugin syncroHow this skill is triggered — by the user, by Claude, or both
Slash command
/syncro-msp:customersThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Syncro customers are the foundation of your service delivery. Every ticket, asset, invoice, and contract is associated with a customer. This skill covers comprehensive customer management including CRUD operations, contact management, and site/location handling.
Manages Atera customers and contacts via API: create, update, search records; handle info, custom fields, lifecycle ops. For MSP account 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.
Syncro customers are the foundation of your service delivery. Every ticket, asset, invoice, and contract is associated with a customer. This skill covers comprehensive customer management including CRUD operations, contact management, and site/location handling.
The primary entity representing a client organization.
| Field | Type | Required | Description |
|---|---|---|---|
id | integer | System | Unique identifier |
business_name | string | Yes | Official company name |
firstname | string | No | Primary contact first name |
lastname | string | No | Primary contact last name |
email | string | No | Primary email address |
phone | string | No | Main phone number |
mobile | string | No | Mobile phone |
address | string | No | Street address |
address_2 | string | No | Address line 2 |
city | string | No | City |
state | string | No | State/Province |
zip | string | No | ZIP/Postal code |
notes | text | No | Internal notes |
referred_by | string | No | Referral source |
tax_rate | decimal | No | Tax rate percentage |
Individual people at a customer organization.
| Field | Type | Required | Description |
|---|---|---|---|
id | integer | System | Unique identifier |
customer_id | integer | Yes | Associated customer |
name | string | Yes | Full name |
email | string | No | Email address |
phone | string | No | Phone number |
mobile | string | No | Mobile number |
title | string | No | Job title |
notes | text | No | Notes about contact |
Syncro supports flexible customer categorization:
| Type | Use Case |
|---|---|
| Business | Standard commercial clients |
| Residential | Home users |
| Government | Government agencies |
| Non-Profit | Non-profit organizations |
POST /api/v1/customers
Content-Type: application/json
Authorization: Bearer YOUR_API_KEY
{
"business_name": "Acme Corporation",
"firstname": "John",
"lastname": "Smith",
"email": "john.smith@acme.example.com",
"phone": "555-123-4567",
"address": "123 Main Street",
"city": "Springfield",
"state": "IL",
"zip": "62701",
"notes": "Referred by ABC Company"
}
Search by name:
GET /api/v1/customers?query=acme
List all customers with pagination:
GET /api/v1/customers?page=1
Filter by email:
GET /api/v1/customers?email=john.smith@acme.example.com
GET /api/v1/customers/{id}
Response includes:
PUT /api/v1/customers/{id}
Content-Type: application/json
{
"phone": "555-987-6543",
"notes": "Updated contact information per request"
}
POST /api/v1/contacts
Content-Type: application/json
{
"customer_id": 12345,
"name": "Jane Doe",
"email": "jane.doe@acme.example.com",
"phone": "555-123-4568",
"title": "IT Manager",
"notes": "Primary technical contact"
}
Contacts for a customer:
GET /api/v1/contacts?customer_id=12345
Search by email:
GET /api/v1/contacts?email=jane.doe@acme.example.com
PUT /api/v1/contacts/{id}
Content-Type: application/json
{
"title": "IT Director",
"phone": "555-123-4569"
}
DELETE /api/v1/contacts/{id}
Create customer record
Create primary contact
Add additional contacts
Set up assets
Create contract/agreement
Verify before creating
Maintain accuracy
Track relationships
When you discover duplicate customers:
{
"customer": {
"id": 12345,
"business_name": "Acme Corporation",
"firstname": "John",
"lastname": "Smith",
"email": "john.smith@acme.example.com",
"phone": "555-123-4567",
"address": "123 Main Street",
"city": "Springfield",
"state": "IL",
"zip": "62701",
"created_at": "2024-01-15T10:30:00Z",
"updated_at": "2024-02-10T14:22:00Z"
}
}
{
"contact": {
"id": 67890,
"customer_id": 12345,
"name": "Jane Doe",
"email": "jane.doe@acme.example.com",
"phone": "555-123-4568",
"mobile": "555-987-6543",
"title": "IT Manager",
"notes": "Primary technical contact",
"created_at": "2024-01-15T11:00:00Z"
}
}
| Code | Message | Resolution |
|---|---|---|
| 400 | Invalid parameters | Check field values |
| 401 | Unauthorized | Verify API key |
| 404 | Customer not found | Confirm customer ID |
| 422 | Validation failed | Check required fields |
| 429 | Rate limited | Wait and retry |
"business_name is required" - Customer must have a name
"Invalid email format" - Check email address syntax
"customer_id required" - Contact must belong to a customer