find-contact
Resolve a 3CX contact or extension by email, extension, or name
Add an internal or external note to a ConnectWise PSA ticket
$ npx -y skills add wyre-technology/msp-claude-plugins --agent claude-codeHow it fires
How this command gets triggered: by you, by Claude, or both.
/add-noteContext preview
What this command does when you run it.
Add an internal or external note to a ConnectWise PSA ticket
description: Add an internal or external note to a ConnectWise PSA ticket argument-hint: "<ticket_id> <text> [detail_description] [internal_analysis] [resolution] [flag]" arguments: [ticket_id, text, detail_description, internal_analysis, resolution, flag]
Add an internal or external note to a ConnectWise ticket.
1. **Validate ticket exists**
GET /service/tickets/{id}2. **Determine note type and destination**
3. **For standard notes - Create the note**
POST /service/tickets/{id}/notes
Content-Type: application/json
{
"text": "<note_text>",
"detailDescriptionFlag": false,
"internalAnalysisFlag": <true if flag=internal or both>,
"resolutionFlag": false,
"customerUpdatedFlag": <true if flag=external or both>,
"processNotifications": true
}4. **For ticket field updates - Patch the ticket**
PATCH /service/tickets/{id}
Content-Type: application/json
[
{"op": "replace", "path": "/detailDescription", "value": "<text>"},
{"op": "replace", "path": "/internalAnalysis", "value": "<text>"},
{"op": "replace", "path": "/resolution", "value": "<text>"}
]5. **Confirm note was added**
| Parameter | Type | Required | Default | Description | |-----------|------|----------|---------|-------------| | ticket_id | integer | Yes | - | ConnectWise ticket ID | | text | string | Yes | - | Note content (multi-line supported) | | detail_description | boolean | No | false | Add to detail description field | | internal_analysis | boolean | No | false | Add to internal analysis field | | resolution | boolean | No | false | Add to resolution field | | flag | string | No | internal | Visibility: internal, external, both |
Created as service ticket notes, appear in the notes/activity stream.
Appends to the ticket's main description field. Use for expanding initial problem description.
Appends to the internal analysis field. Use for documenting troubleshooting steps and findings not shared with customer.
Appends to the resolution field. Use for documenting how the issue was resolved.
| Flag | Internal Users | Customer Portal | Email Notifications | |------|----------------|-----------------|---------------------| | internal | Yes | No | No | | external | Yes | Yes | Yes (if configured) | | both | Yes | Yes | Yes (if configured) |
/add-note 12345 "Contacted customer, issue reproduced on their end"
/add-note 12345 "Applied KB12345 patch, monitoring for recurrence" --flag external
/add-note 12345 "Issue resolved. Please let us know if you experience any further problems." --flag both
/add-note 12345 "Root cause identified as DNS misconfiguration on primary DC" --internal_analysis true
/add-note 12345 "Corrected DNS settings on DC01 and flushed DNS cache on affected workstations" --resolution true
/add-note 12345 "Additional info: Issue also affects mobile devices connecting via ActiveSync" --detail_description true
/add-note 12345 "Troubleshooting steps performed: 1. Verified DNS resolution - FAILED 2. Checked mail flow rules - OK 3. Tested SMTP connectivity - OK 4. Reviewed DNS records on DC01 - Found stale A record Root cause: Stale DNS record pointing to decommissioned server."
Note Added to Ticket #12345 Note ID: 98765 Added: 2026-02-04 14:30:00 Added By: Jane Technician Visibility: Internal Only Content: "Contacted customer, issue reproduced on their end" Ticket: Email not working for multiple users Company: Acme Corporation Status: In Progress
Note Added to Ticket #12345 Note ID: 98766 Added: 2026-02-04 14:35:00 Added By: Jane Technician Visibility: Customer Visible Content: "Applied KB12345 patch, monitoring for recurrence" Note: Customer notification email will be sent based on your notification settings. Ticket: Email not working for multiple users Company: Acme Corporation
Ticket #12345 Updated Field Updated: Internal Analysis Content Added: "Root cause identified as DNS misconfiguration on primary DC" Previous Content: "Initial triage indicates mail server issue" New Content: "Initial triage indicates mail server issue Root cause identified as DNS misconfiguration on primary DC"
# Base64 encode credentials: company+publicKey:privateKey
AUTH=$(echo -n "${CW_COMPANY}+${CW_PUBLIC_KEY}:${CW_PRIVATE_KEY}" | base64)
# Create internal note
curl -s -X POST \
"https://${CW_HOST}/v4_6_release/apis/3.0/service/tickets/${TICKET_ID}/notes" \
-H "Authorization: Basic ${AUTH}" \
-H "clientId: ${CW_CLIENT_ID}" \
-H "Content-Type: application/json" \
-d '{
"text": "Note content here",
"internalAnalysisFlag": true,
"processNotifications": true
}'
# Create external note
curl -s -X POST \
"https://${CW_HOST}/v4_6_release/apis/3.0/service/tickets/${TICKET_ID}/notes" \
-H "Authorization: Basic ${AUTH}" \
-H "clientId: ${CW_CLIENT_ID}" \
-H "Content-Type: application/jOne command to supercharge Claude Code for MSP workflows. Then restart Claude Code. That's it. Documentation: mcp.wyre.ai
Repo: wyre-technology/msp-claude-plugins
Resolve a 3CX contact or extension by email, extension, or name
Search for specific threat patterns in Abnormal Security by sender, recipient, attack type, or keywords
Triage recent email threats detected by Abnormal Security by severity and attack type