Syncro MSP Customer Management
Overview
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.
Key Concepts
Customer
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 |
Contact
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 |
Customer Types
Syncro supports flexible customer categorization:
| Type | Use Case | |------|----------| | Business | Standard commercial clients | | Residential | Home users | | Government | Government agencies | | Non-Profit | Non-profit organizations |
API Patterns
Creating a Customer
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"
}
Searching Customers
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
Getting Customer Details
GET /api/v1/customers/{id}
Response includes:
- Customer information
- Associated contacts
- Recent tickets
- Assets summary
- Invoice history
Updating a Customer
PUT /api/v1/customers/{id}
Content-Type: application/json
{
"phone": "555-987-6543",
"notes": "Updated contact information per request"
}
Creating a Contact
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"
}
Searching Contacts
Contacts for a customer:
GET /api/v1/contacts?customer_id=12345
Search by email:
GET /api/v1/contacts?email=jane.doe@acme.example.com
Updating a Contact
PUT /api/v1/contacts/{id}
Content-Type: application/json
{
"title": "IT Director",
"phone": "555-123-4569"
}
Deleting a Contact
DELETE /api/v1/contacts/{id}
Common Workflows
Client Onboarding
- Create customer record
- Enter business information
- Set tax rate if applicable
- Add referral source for tracking
- Create primary contact
- Add decision maker/main contact
- Include email for communications
- Note any preferences
- Add additional contacts
- Technical contacts
- Billing contacts
- Other stakeholders
- Set up assets
- Deploy RMM agent
- Import existing inventory
- Create contract/agreement
- Define service terms
- Set billing schedule
Contact Management
- Verify before creating
- Search for existing contact by email
- Check for duplicates
- Maintain accuracy
- Update titles when roles change
- Archive contacts who leave
- Add new contacts as needed
- Track relationships
- Note who can authorize work
- Track technical vs billing contacts
Customer Merge/Cleanup
When you discover duplicate customers:
- Identify the primary record to keep
- Document assets on both records
- Move tickets to primary customer
- Update contacts to point to primary
- Archive or delete duplicate
Response Examples
Customer Object
{
"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 Object
{
"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"
}
}
Error Handling
Common API Errors
| 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 |
Validation Errors
"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
Best Practices
- Standardize naming - Use consistent company name formats
- Verify before creating - Always search first to prevent duplicates
- Complete profiles - Fill in as much information as possible
- Keep contacts current - Update when staff changes
- Use notes effectively - Document important relationship details
- Track referrals - Helps with marketing analysis
- Set appropriate tax rates - Prevents billing errors
- Regular data cleanup - Audit for duplicates periodically
Related Skills
- [Syncro Tickets](../tickets/SKILL.md) - Service tickets for customers
- [Syncro Assets](../assets/SKILL.md) - Asset management
- [Syncro Invoices](../invoices/SKILL.md) - Customer billing
- [Syncro API Patterns](../api-patterns/SKILL.md) - Authentication and pagination