WYRE-AI/msp-claude-plugins/msp-claude-plugins/kaseya/it-glue/skills/organizations/SKILL.md
IT Glue Organizations
IT Glue organizations (companies/clients): the foundational entity all documentation, configurations, contacts, passwords, and flexible assets attach to. Covers organization types, statuses, parent/child relationships, PSA sync fields, and quick notes.
- Source repository stars
- 42
- Declared platforms
- 0
- Static risk flags
- 0
- Last source update
- 2026-08-28
- Source checked
- 2026-08-28
Decision brief
What it does: where it fits
IT Glue organizations (companies/clients): the foundational entity all documentation, configurations, contacts, passwords, and flexible assets attach to. Covers organization types, statuses, parent/child relationships, PSA sync fields, and quick notes.
Not for
- Tasks that require unconfirmed production actions or broad system permissions.
- Environments where the pinned source and install steps cannot be inspected.
Compatibility matrix
Platform support, with evidence labels
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
Inspect first. Install second.
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/WYRE-AI/msp-claude-plugins --skill "msp-claude-plugins/kaseya/it-glue/skills/organizations"Inspect the Agent Skill "IT Glue Organizations" from https://github.com/WYRE-AI/msp-claude-plugins/blob/5005f73ba2f52cd299f58aa6bb79f4e70ae87103/msp-claude-plugins/kaseya/it-glue/skills/organizations/SKILL.md at commit 5005f73ba2f52cd299f58aa6bb79f4e70ae87103. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
What the source asks the agent to do
- 01
PSA Sync Verification
Review the “PSA Sync Verification” section in the pinned source before continuing.
Review and apply the “PSA Sync Verification” source section. - 02
Anti-triggers
The client as a billing entity — the PSA company record drives
The client as a billing entity — the PSA company record drivesThe client's grouping in monitoring or SOC tooling — useThe people at the organization — use itglue-contacts. - 03
Key Concepts
Organizations are classified by type for categorization:
Centralized management documentationShared configurations across divisionsHierarchical reporting - 04
Organization Types
Organizations are classified by type for categorization:
Organizations are classified by type for categorization: - 05
Organization Statuses
Review the “Organization Statuses” section in the pinned source before continuing.
Review and apply the “Organization Statuses” source section.
Permission review
Static risk signals and limitations
No configured static risk pattern was detected
This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.
Evidence record
Why each signal appears
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 91/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 42 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Provenance and original SKILL.md
- Repository
- WYRE-AI/msp-claude-plugins
- Skill path
- msp-claude-plugins/kaseya/it-glue/skills/organizations/SKILL.md
- Commit
- 5005f73ba2f52cd299f58aa6bb79f4e70ae87103
- License
- Apache-2.0
- Collected
- 2026-08-28
- Default branch
- main
View the original SKILL.md
IT Glue Organizations Management
Overview
Organizations are the foundational entity in IT Glue, representing companies, clients, vendors, or internal entities. All documentation, configurations, contacts, passwords, and flexible assets are associated with an organization. Proper organization management enables comprehensive client documentation and cross-platform integration with PSA tools.
Anti-triggers
- The client as a billing entity — the PSA company record drives
tickets, contracts, and invoices; use
autotask-crm. - The client's grouping in monitoring or SOC tooling — use
datto-rmm-sitesorrocketcyber-accounts; neither shares IDs with an IT Glue organization. - The people at the organization — use
itglue-contacts.
Key Concepts
Organization Types
Organizations are classified by type for categorization:
| Type | Description | Use Case |
|---|---|---|
| Customer | Active client organizations | Primary service clients |
| Vendor | Product/service suppliers | Software vendors, hardware suppliers |
| Partner | Business partners | MSP partnerships, referral partners |
| Internal | Your own organization | Internal documentation |
| Prospect | Potential clients | Pre-sales documentation |
Organization Statuses
| Status | Description | Business Logic |
|---|---|---|
| Active | Currently serviced | Standard operational state |
| Inactive | Not currently active | Suspended or paused accounts |
| Archived | Historical only | No longer serviced, read-only |
Parent/Child Relationships
Organizations can have hierarchical relationships:
Parent Organization (Acme Holdings)
├── Child: Acme East Division
├── Child: Acme West Division
└── Child: Acme International
This enables:
- Centralized management documentation
- Shared configurations across divisions
- Hierarchical reporting
- Inherited security settings
Field Reference
Core Fields
| Field | Type | Required | Description |
|---|---|---|---|
id | integer | System | Auto-generated unique identifier |
name | string | Yes | Organization name (unique) |
description | string | No | Detailed description |
quick-notes | string | No | Quick reference notes |
organization-type-id | integer | No | Type classification |
organization-status-id | integer | No | Status classification |
Relationship Fields
| Field | Type | Description |
|---|---|---|
parent-id | integer | Parent organization ID |
primary-contact-id | integer | Primary contact for org |
primary-location-id | integer | Primary location ID |
PSA Integration Fields
| Field | Type | Description |
|---|---|---|
psa-id | string | PSA system company ID |
psa-integration-type | string | PSA type (autotask, connectwise, etc.) |
Metadata Fields
| Field | Type | Description |
|---|---|---|
created-at | datetime | Creation timestamp |
updated-at | datetime | Last update timestamp |
short-name | string | Abbreviated name |
alert | string | Alert/warning message |
API Patterns
List Organizations
GET /organizations
x-api-key: YOUR_API_KEY
Content-Type: application/vnd.api+json
With Filters:
GET /organizations?filter[name]=Acme&filter[organization-status-id]=1
With Pagination:
GET /organizations?page[size]=100&page[number]=1&sort=name
Get Single Organization
GET /organizations/123456
x-api-key: YOUR_API_KEY
With Includes:
GET /organizations/123456?include=configurations,contacts,passwords
Create Organization
POST /organizations
Content-Type: application/vnd.api+json
x-api-key: YOUR_API_KEY
{
"data": {
"type": "organizations",
"attributes": {
"name": "New Client Corporation",
"description": "IT services client since 2024",
"quick-notes": "Primary contact: John Smith (555-123-4567)",
"organization-type-id": 37,
"organization-status-id": 1
}
}
}
Update Organization
PATCH /organizations/123456
Content-Type: application/vnd.api+json
x-api-key: YOUR_API_KEY
{
"data": {
"type": "organizations",
"attributes": {
"quick-notes": "Updated: New primary contact is Jane Doe",
"alert": "Contract renewal due March 2024"
}
}
}
Delete Organization
DELETE /organizations/123456
x-api-key: YOUR_API_KEY
Warning: Deleting an organization removes all associated resources (configurations, passwords, documents, etc.)
Search by PSA ID
GET /organizations?filter[psa-id]=12345
Common Workflows
New Client Onboarding
- Create organization with basic info
- Set organization type (Customer)
- Add quick notes for reference
- Link to PSA with psa-id
- Create primary contact
- Add initial configurations
- Document passwords
async function onboardClient(clientData) {
// Step 1: Create organization
const org = await createOrganization({
name: clientData.companyName,
description: clientData.description,
'quick-notes': clientData.notes,
'organization-type-id': CUSTOMER_TYPE_ID,
'organization-status-id': ACTIVE_STATUS_ID
});
// Step 2: Create primary contact
await createContact(org.id, {
name: clientData.primaryContact.name,
email: clientData.primaryContact.email,
phone: clientData.primaryContact.phone,
'contact-type-id': PRIMARY_CONTACT_TYPE
});
// Step 3: Create initial documentation
await createDocument(org.id, {
name: 'Client Overview',
content: generateOverviewContent(clientData)
});
return org;
}
Client Offboarding
- Archive passwords (don't delete for audit)
- Export documentation if needed
- Update organization status to Archived
- Add offboarding notes with date and reason
async function offboardClient(orgId, reason) {
// Update status to archived
await updateOrganization(orgId, {
'organization-status-id': ARCHIVED_STATUS_ID,
alert: `ARCHIVED: ${new Date().toISOString().split('T')[0]} - ${reason}`
});
// Add final note
await addQuickNote(orgId, `
Client offboarded on ${new Date().toLocaleDateString()}
Reason: ${reason}
Final contact: [Record contact name and handoff details]
`);
}
PSA Sync Verification
async function verifyPsaSync() {
// Get all active organizations
const orgs = await fetchOrganizations({
filter: { 'organization-status-id': ACTIVE_STATUS_ID }
});
const syncStatus = {
synced: [],
unsynced: [],
mismatched: []
};
for (const org of orgs) {
if (!org.attributes['psa-id']) {
syncStatus.unsynced.push(org);
} else {
// Verify PSA record exists
const psaCompany = await lookupPsaCompany(org.attributes['psa-id']);
if (psaCompany) {
syncStatus.synced.push(org);
} else {
syncStatus.mismatched.push(org);
}
}
}
return syncStatus;
}
Bulk Organization Report
async function generateOrgReport() {
const orgs = await fetchAllOrganizations();
return orgs.map(org => ({
name: org.attributes.name,
type: org.relationships['organization-type']?.data?.id,
status: org.relationships['organization-status']?.data?.id,
hasConfigurations: org.relationships.configurations?.data?.length > 0,
hasPasswords: org.relationships.passwords?.data?.length > 0,
psaSynced: !!org.attributes['psa-id'],
createdAt: org.attributes['created-at'],
updatedAt: org.attributes['updated-at']
}));
}
Error Handling
Common API Errors
| Code | Message | Resolution |
|---|---|---|
| 400 | Name can't be blank | Provide organization name |
| 400 | Name has already been taken | Use unique name |
| 401 | Invalid API key | Check IT_GLUE_API_KEY |
| 404 | Organization not found | Verify organization ID |
| 422 | Invalid organization type | Query valid type IDs first |
Validation Errors
| Error | Cause | Fix |
|---|---|---|
| Name required | Missing name field | Add name to request |
| Name not unique | Duplicate name | Use different name |
| Invalid type ID | Non-existent type | Query /organization-types first |
| Invalid status ID | Non-existent status | Query /organization-statuses first |
Error Recovery Pattern
async function safeCreateOrganization(data) {
try {
return await createOrganization(data);
} catch (error) {
if (error.status === 422 && error.detail?.includes('already been taken')) {
// Organization exists - find and return it
const existing = await findOrganizationByName(data.name);
return existing;
}
if (error.status === 401) {
throw new Error('API key invalid or expired. Check IT_GLUE_API_KEY.');
}
throw error;
}
}
Best Practices
- Use descriptive names - Include location or identifier if needed for uniqueness
- Maintain quick notes - Keep emergency contact info readily available
- Set organization types - Enable meaningful filtering and reporting
- Link to PSA - Always set psa-id for cross-platform lookups
- Use parent/child - Organize multi-location or division clients
- Archive, don't delete - Preserve historical documentation
- Document alerts - Use alert field for critical client notices
- Primary contact - Always set a primary contact for each org
- Standardize naming - Use consistent naming conventions
Related Skills
- IT Glue Configurations - Asset management for organizations
- IT Glue Contacts - Contact management
- IT Glue Passwords - Credential storage
- IT Glue Documents - Documentation
- IT Glue API Patterns - API reference
Frequently asked questions
What to verify before installation and use
What does the IT Glue Organizations source document cover?
IT Glue organizations (companies/clients): the foundational entity all documentation, configurations, contacts, passwords, and flexible assets attach to. Covers organization types, statuses, parent/child relationships, PSA sync fields, and quick notes.
How do I install IT Glue Organizations?
The source record exposes this install command: npx skills add https://github.com/WYRE-AI/msp-claude-plugins --skill "msp-claude-plugins/kaseya/it-glue/skills/organizations". Inspect the command and pinned source before running it.
Alternatives
Compare before choosing
enuno/unifi-mcp-server
unifi-mcp-tool-builder
Specialized guide for adding new MCP tools to the UniFi MCP Server following project standards, UniFi API patterns, and test-driven development practices. Use when implementing new UniFi Network Controller features as MCP tools.
NintendaDev/unikit-ai
unikit-docs
Generate and maintain the project's TECHNICAL documentation from its codebase — scans the project structure, tech stack, and module boundaries, then writes a lean README landing page plus detailed topic pages (architecture, modules, setup, build, APIs), only the docs that are relevant. Use whenever the user wants to create, update, or validate documentation of the CODE or the project itself, e.g. "generate documentation", "create docs", "write the README", "update the project docs", "document th
vasilyu1983/AI-Agents-public
research-git
Scans public GitHub repos for agent skills, dev practices, and code patterns. Use when enriching skills, setting team policy, or researching a build domain.
SerendipityOneInc/ZooData-Skills
zoodata
API endpoint reference for the ZooData data platform: the 12 commerce endpoints plus 10 keyword-intelligence endpoints (categories, markets, products, competitors, realtime ASIN, AI review analysis, raw reviews, price band, brand, history, and the keyword detail/trend/extends/search/ market-profile/product-traffic/competitor-keywords/traffic-profile/ traffic-timeline family) — their inputs/outputs, parameter quirks, Quick Start (auth, base URL), how credits are tracked (meta.creditsConsumed), an