Skip to content
Development
Skill

/companies

ConnectWise PSA company/account management: company types, statuses, sites/locations, custom fields, and company relationships. Essential for MSP account management and CRM operations in ConnectWise PSA.

From plugin
msp-claude-plugins
46200 skills146 agents200 commands4 MCP
Install
$ npx -y skills add wyre-technology/msp-claude-plugins --skill companies --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/companies

Context preview

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

ConnectWise PSA company/account management: company types, statuses, sites/locations, custom fields, and company relationships. Essential for MSP account management and CRM operations in ConnectWise PSA.

SKILL.md

companies.SKILL.md
name: "ConnectWise Manage Companies"
description: >
  ConnectWise PSA company/account management: company types, statuses,
  sites/locations, custom fields, and company relationships. Essential for MSP
  account management and CRM operations in ConnectWise PSA.
when_to_use: >-
  When creating, updating, searching, or managing company/account records. Use when: connectwise
  company, connectwise account, company management, create company connectwise, company site,
  company location, company type, company status, customer record, client record, or company
  custom field.

ConnectWise PSA Company Management

Overview

Companies in ConnectWise PSA represent your clients, prospects, vendors, and other business entities. Company records are central to ticketing, agreements, projects, and billing. This skill covers company CRUD operations, types, statuses, sites, and custom fields.

Anti-triggers

  • **The same customer in Automate** — ConnectWise Automate calls it a

`Client` and keeps its own ID space; a PSA `company/id` never matches an Automate `ClientID`. Use `connectwise-automate-clients`.

  • **People at the company** — names, email addresses, phone numbers and

portal logins are contact records; use `connectwise-psa-contacts`.

  • **The same client in a documentation or distributor platform** — a

Hudu company is a documentation container and a Pax8 company is the billing account licences are bought against; neither shares an ID with the PSA. Use `hudu-companies` or `pax8-companies`.

API Endpoint

Base: /company/companies

Company Types

Standard company types in ConnectWise PSA:

| Type ID | Name | Description | |---------|------|-------------| | 1 | Client | Active paying customer | | 2 | Prospect | Potential customer | | 3 | Vendor | Supplier or partner | | 4 | Partner | Strategic partner | | 5 | Competitor | Market competitor |

**Note:** Company types are configurable. Query `/company/companies/types` for your instance's types.

Company Statuses

Standard company statuses:

| Status ID | Name | Description | Active | |-----------|------|-------------|--------| | 1 | Active | Active company | Yes | | 2 | Inactive | Inactive company | No | | 3 | Not Approved | Pending approval | No |

Query `/company/companies/statuses` for available statuses.

Complete Company Field Reference

Core Fields

| Field | Type | Required | Description | |-------|------|----------|-------------| | `id` | int | System | Auto-generated unique identifier | | `identifier` | string(25) | Yes | Unique company code (e.g., "ACME") | | `name` | string(50) | Yes | Full company name | | `status` | object | No | `{id: statusId}` | | `type` | object | No | `{id: typeId}` |

Contact Information

| Field | Type | Required | Description | |-------|------|----------|-------------| | `phoneNumber` | string(30) | No | Main phone | | `faxNumber` | string(30) | No | Fax number | | `website` | string(255) | No | Company website URL |

Address Fields

| Field | Type | Required | Description | |-------|------|----------|-------------| | `addressLine1` | string(50) | No | Street address | | `addressLine2` | string(50) | No | Suite/unit | | `city` | string(50) | No | City | | `state` | string(50) | No | State/province | | `zip` | string(12) | No | Postal code | | `country` | object | No | `{id: countryId}` |

Classification Fields

| Field | Type | Required | Description | |-------|------|----------|-------------| | `territory` | object | No | `{id: territoryId}` - Sales territory | | `market` | object | No | `{id: marketId}` - Industry/market | | `accountNumber` | string(30) | No | External accounting ID | | `taxIdentifier` | string(25) | No | Tax ID/EIN | | `annualRevenue` | decimal | No | Company annual revenue | | `numberOfEmployees` | int | No | Employee count |

Billing Fields

| Field | Type | Required | Description | |-------|------|----------|-------------| | `billingTerms` | object | No | `{id: termsId}` - Payment terms | | `billToCompany` | object | No | `{id: companyId}` - Bill to different company | | `invoiceDeliveryMethod` | object | No | `{id: methodId}` - Email, Mail, etc. | | `invoiceTemplate` | object | No | `{id: templateId}` | | `pricingSchedule` | object | No | `{id: scheduleId}` |

Ownership Fields

| Field | Type | Required | Description | |-------|------|----------|-------------| | `ownerLevel` | object | No | `{id: levelId}` - Account manager level | | `defaultContact` | object | No | `{id: contactId}` - Primary contact | | `leadSource` | string(50) | No | How lead was acquired | | `leadFlag` | boolean | No | Is this a lead |

Tracking Fields

| Field | Type | Required | Description | |-------|------|----------|-------------| | `dateAcquired` | date | No | When became customer | | `deletedFlag` | boolean | System | Soft delete status | | `mobileGuid` | guid | System | Mobile app identifier | | `_info` | object | System | Metadata including last updated |

Company Sites

Sites represent physical locations for a company. Each company can have multiple sites.

Site Endpoint

/company/companies/{companyId}/sites

Site Fields

| Field | Type | Required | Description | |-------|------|----------|-------------| | `id` | int | System | Site identifier | | `name` | string(50) | Yes | Site name | | `addressLine1` | string(50) | No | Street address | | `addressLine2` | string(50) | No | Suite/unit | | `city` | string(50) | No | City | | `state` | string(50) | No | State/province | | `zip` | string(12) | No | Postal code | | `country` | object | No | `{id: countryId}` | | `phoneNumber` | string(30) | No | Site phone | | `faxNumber` | string(30) | No | Site fax | | `taxCode` | object | No | `{id: taxCodeId}` | | `defaultFlag` | boolean | No | Is primary site |

Create Site

POST /company/companies/{companyId}/sites
Content-Type: application/json

{
  "name": "Main Office",
  "addressLine1": "123 Main Street",
  "city":
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.