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
52200 skills146 agents200 commands4 MCP

Claude Code

$ npx -y skills add wyre-ai/msp-claude-plugins --skill companies --agent claude-code

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
@wyre-technology
Ships withmsp-claude-plugins

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

52200 skills146 agents4 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
52
Star history of wyre-technology/msp-claude-plugins on GitHub, a chart by star-history.com

Other skills on msp-claude-plugins.

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills11d309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc13d293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react2d252k
@facebook@facebookInstall Skill

Questions about companies.

Which coding agents can use companies?
companies installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.