Skip to content
Development
Skill

/crm

Autotask CRM entities - companies (accounts), contacts, and sites/locations - including field references, company type classifications, and how these records underpin tickets, contracts, and projects for MSP account management.

From plugin
msp-claude-plugins
46200 skills146 agents200 commands4 MCP
Install
$ npx -y skills add wyre-technology/msp-claude-plugins --skill crm --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/crm

Context preview

The summary Claude sees to decide when to auto-load this skill.

Autotask CRM entities - companies (accounts), contacts, and sites/locations - including field references, company type classifications, and how these records underpin tickets, contracts, and projects for MSP account management.

SKILL.md

crm.SKILL.md
name: "Autotask CRM"
description: >
  Autotask CRM entities - companies (accounts), contacts, and sites/locations -
  including field references, company type classifications, and how these
  records underpin tickets, contracts, and projects for MSP account management.
when_to_use: >-
  When working with companies, contacts, sites/locations, or opportunities in Autotask CRM. Use
  when: autotask company, autotask contact, autotask account, autotask crm, company management,
  contact management, client onboarding, autotask site, or autotask location.

Autotask CRM Management

Overview

Autotask CRM manages the core entities that define your client relationships: companies (accounts), contacts, and sites. Proper CRM data is foundational - tickets, contracts, projects, and billing all depend on accurate company and contact information.

Anti-triggers

  • **The same client as a documentation record** — use

`itglue-organizations`, and `itglue-contacts` for the people.

  • **The client's grouping in monitoring or SOC tooling** — Datto RMM

calls it a site (`datto-rmm-sites`), RocketCyber calls it an account (`rocketcyber-accounts`). Neither shares IDs with an Autotask company.

  • **Kaseya BMS accounts and contacts** — a separate PSA with its own

client records; use `kaseya-bms-api-patterns`.

Key Concepts

Company (Account)

The primary entity representing a client organization.

| Field | Description | Required | |-------|-------------|----------| | `id` | Unique identifier | System | | `companyName` | Official company name | Yes | | `companyType` | Customer, Lead, Prospect, etc. | Yes | | `phone` | Main phone number | No | | `address1` | Street address | No | | `city` | City | No | | `state` | State/Province | No | | `postalCode` | ZIP/Postal code | No | | `country` | Country | No | | `webAddress` | Website URL | No | | `parentCompanyID` | Parent company for hierarchies | No | | `ownerResourceID` | Account manager | No | | `classification` | Classification category | No |

Company Types

| ID | Type | Use Case | |----|------|----------| | 1 | Customer | Active paying clients | | 2 | Lead | Potential new business | | 3 | Prospect | Qualified leads | | 4 | Dead | Churned/lost clients | | 5 | Vendor | Suppliers and partners | | 6 | Partner | Strategic partners |

Contact

Individual people at a company.

| Field | Description | Required | |-------|-------------|----------| | `id` | Unique identifier | System | | `companyID` | Associated company | Yes | | `firstName` | First name | Yes | | `lastName` | Last name | Yes | | `emailAddress` | Primary email | No | | `phone` | Direct phone | No | | `mobilePhone` | Mobile number | No | | `title` | Job title | No | | `isActive` | Active status | Yes | | `isPrimaryContact` | Primary contact flag | No |

Site/Location

Physical locations for a company (for on-site service).

| Field | Description | Required | |-------|-------------|----------| | `id` | Unique identifier | System | | `companyID` | Parent company | Yes | | `name` | Site name | Yes | | `address1` | Street address | No | | `city` | City | No | | `isActive` | Active status | Yes | | `isPrimaryLocation` | Primary site flag | No |

API Patterns

Creating a Company

POST /v1.0/Companies
Content-Type: application/json
{
  "companyName": "Acme Corporation",
  "companyType": 1,
  "phone": "555-123-4567",
  "address1": "123 Main Street",
  "city": "Springfield",
  "state": "IL",
  "postalCode": "62701",
  "country": "United States",
  "webAddress": "https://acme.example.com",
  "ownerResourceID": 29744150
}

Searching Companies

GET /v1.0/Companies/query?search={"filter":[{"field":"companyName","op":"contains","value":"acme"}]}

Common Search Patterns

**Search by name:**

{
  "filter": [
    {"field": "companyName", "op": "contains", "value": "acme"}
  ]
}

**Active customers only:**

{
  "filter": [
    {"field": "companyType", "op": "eq", "value": 1},
    {"field": "isActive", "op": "eq", "value": true}
  ]
}

**Companies by account manager:**

{
  "filter": [
    {"field": "ownerResourceID", "op": "eq", "value": 29744150}
  ]
}

Updating a Company

PATCH /v1.0/Companies
Content-Type: application/json
{
  "id": 12345,
  "phone": "555-987-6543",
  "webAddress": "https://newsite.acme.com"
}

Creating a Contact

POST /v1.0/Contacts
Content-Type: application/json
{
  "companyID": 12345,
  "firstName": "John",
  "lastName": "Smith",
  "emailAddress": "john.smith@acme.example.com",
  "phone": "555-123-4567",
  "mobilePhone": "555-987-6543",
  "title": "IT Director",
  "isActive": 1,
  "isPrimaryContact": true
}

Searching Contacts

**Contacts for a company:**

{
  "filter": [
    {"field": "companyID", "op": "eq", "value": 12345},
    {"field": "isActive", "op": "eq", "value": 1}
  ]
}

**Search by email:**

{
  "filter": [
    {"field": "emailAddress", "op": "eq", "value": "john.smith@acme.example.com"}
  ]
}

Creating a Site

POST /v1.0/CompanyLocations
Content-Type: application/json
{
  "companyID": 12345,
  "name": "Main Office",
  "address1": "123 Main Street",
  "city": "Springfield",
  "state": "IL",
  "postalCode": "62701",
  "country": "United States",
  "isPrimaryLocation": true,
  "isActive": 1
}

Common Workflows

Client Onboarding

1. **Create company record**

  • Set company type to Customer
  • Assign account manager
  • Add billing information

2. **Create primary contact**

  • Mark as primary contact
  • Verify email address

3. **Create site(s)**

  • Add all service locations
  • Mark primary location

4. **Set up contract**

  • Associate with company
  • Define service levels

5. **Configure billing**

  • Payment terms
  • Tax information

Contact Management

1. **Verify before creating**

  • Search for existing contact by email
Read more
Ships withmsp-claude-plugins

One command to supercharge Claude Code for MSP workflows. Then restart Claude Code. That's it. Documentation: mcp.wyre.ai

Get the whole plugin

Other skills on msp-claude-plugins.