/add-note
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.
- Fires itselfClaude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/add-note
Context preview
What this command does when you run it.
Add an internal or external note to a ConnectWise PSA ticket
Command definition
add-note.mddescription: 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 Note to ConnectWise PSA Ticket
Add an internal or external note to a ConnectWise ticket.
Prerequisites
- Valid ConnectWise PSA API credentials configured
- User must have ticket note creation permissions
- Ticket must exist and be accessible
Steps
1. **Validate ticket exists**
GET /service/tickets/{id}- Confirm ticket is accessible
- Check if ticket is closed (warn if adding note to closed ticket)
2. **Determine note type and destination**
- If `detail_description`, `internal_analysis`, or `resolution` is true, update ticket fields
- Otherwise, create a service note
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**
- Return note ID and timestamp
- Show note visibility
Parameters
| 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 |
Note Types Explained
Standard Notes (Default)
Created as service ticket notes, appear in the notes/activity stream.
Detail Description
Appends to the ticket's main description field. Use for expanding initial problem description.
Internal Analysis
Appends to the internal analysis field. Use for documenting troubleshooting steps and findings not shared with customer.
Resolution
Appends to the resolution field. Use for documenting how the issue was resolved.
Visibility Flags
| Flag | Internal Users | Customer Portal | Email Notifications | |------|----------------|-----------------|---------------------| | internal | Yes | No | No | | external | Yes | Yes | Yes (if configured) | | both | Yes | Yes | Yes (if configured) |
Examples
Basic Internal Note
/add-note 12345 "Contacted customer, issue reproduced on their end"
External Note (Customer-Visible)
/add-note 12345 "Applied KB12345 patch, monitoring for recurrence" --flag external
Note Visible to Both
/add-note 12345 "Issue resolved. Please let us know if you experience any further problems." --flag both
Add to Internal Analysis
/add-note 12345 "Root cause identified as DNS misconfiguration on primary DC" --internal_analysis true
Add to Resolution Field
/add-note 12345 "Corrected DNS settings on DC01 and flushed DNS cache on affected workstations" --resolution true
Add to Detail Description
/add-note 12345 "Additional info: Issue also affects mobile devices connecting via ActiveSync" --detail_description true
Multi-Line Note
/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."
Output
Standard Note Added
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
External Note Added
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
Field Update
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"
API Authentication
# 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/jRead more
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 Note to ConnectWise PSA Ticket
Add an internal or external note to a ConnectWise ticket.
Prerequisites
- Valid ConnectWise PSA API credentials configured
- User must have ticket note creation permissions
- Ticket must exist and be accessible
Steps
1. **Validate ticket exists**
GET /service/tickets/{id}- Confirm ticket is accessible
- Check if ticket is closed (warn if adding note to closed ticket)
2. **Determine note type and destination**
- If `detail_description`, `internal_analysis`, or `resolution` is true, update ticket fields
- Otherwise, create a service note
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**
- Return note ID and timestamp
- Show note visibility
Parameters
| 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 |
Note Types Explained
Standard Notes (Default)
Created as service ticket notes, appear in the notes/activity stream.
Detail Description
Appends to the ticket's main description field. Use for expanding initial problem description.
Internal Analysis
Appends to the internal analysis field. Use for documenting troubleshooting steps and findings not shared with customer.
Resolution
Appends to the resolution field. Use for documenting how the issue was resolved.
Visibility Flags
| Flag | Internal Users | Customer Portal | Email Notifications | |------|----------------|-----------------|---------------------| | internal | Yes | No | No | | external | Yes | Yes | Yes (if configured) | | both | Yes | Yes | Yes (if configured) |
Examples
Basic Internal Note
/add-note 12345 "Contacted customer, issue reproduced on their end"
External Note (Customer-Visible)
/add-note 12345 "Applied KB12345 patch, monitoring for recurrence" --flag external
Note Visible to Both
/add-note 12345 "Issue resolved. Please let us know if you experience any further problems." --flag both
Add to Internal Analysis
/add-note 12345 "Root cause identified as DNS misconfiguration on primary DC" --internal_analysis true
Add to Resolution Field
/add-note 12345 "Corrected DNS settings on DC01 and flushed DNS cache on affected workstations" --resolution true
Add to Detail Description
/add-note 12345 "Additional info: Issue also affects mobile devices connecting via ActiveSync" --detail_description true
Multi-Line Note
/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."
Output
Standard Note Added
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
External Note Added
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
Field Update
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"
API Authentication
# 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
Other commands on msp-claude-plugins.
- /case-review
Review and triage abuse mailbox cases in Abnormal Security
Open command - /search-threats
Search for specific threat patterns in Abnormal Security by sender, recipient, attack type, or keywords
Open command - /threat-triage
Triage recent email threats detected by Abnormal Security by severity and attack type
Open command - /list-overdue-invoices
List open and overdue Alternative Payments invoices and optionally generate hosted payment links for them
Open command - /reconcile-payout
Reconcile an Alternative Payments payout by listing its transactions and matching them against invoices and customers
Open command - /eol-report
EOL/EOS risk report — devices, OS versions, and firmware approaching or past end-of-life/end-of-support, prioritized by criticality
Open command

