ConnectWise PSA skills and tools under ops/connectwise (hub-sanitized 2026-11-01: client intel, internal workflow/credential/member/company ids, archived-page apiToken/sessionId stripped to placeholders)
This commit is contained in:
commit
9c96092034
36 files changed
+310875
No files matched your search
@@ -0,0 +1,41 @@
|
||||
# Correlating Meeting Agenda Items with ConnectWise Tickets
|
||||
|
||||
When a user provides a meeting agenda with client-specific items (locations, projects, systems), search ConnectWise for related tickets to surface existing work and avoid duplicates.
|
||||
|
||||
## Search Pattern
|
||||
|
||||
Use the `summary contains` condition on `/service/tickets`:
|
||||
|
||||
```python
|
||||
data, status = list_tickets(
|
||||
conditions='summary contains "KEYWORD"',
|
||||
page_size=200
|
||||
)
|
||||
```
|
||||
|
||||
## Pitfalls
|
||||
|
||||
- **Keyword choice**: Search for the distinctive noun (location name, project name, system name) rather than generic terms like "setup" or "install". In the example below, the location keyword "Harborview" found the right ticket; "firewall" would have returned dozens.
|
||||
- **False positives**: A broad keyword may match old closed tickets for other clients. Always inspect `company.name` and `site.name` to confirm relevance.
|
||||
- **Status filter**: Do NOT pre-filter by `closedFlag=false` in the API query — the legacy mirror bug can omit current production tickets. Fetch all matches and filter client-side: exclude statuses starting with `>` (e.g., `>Closed`) and tickets with a `dateResolved` value.
|
||||
|
||||
## Example
|
||||
|
||||
**Agenda item**: "Harborview — Setup this month, 5 workstations, firewall install, WAN carrier needed, range <siteLAN>/24"
|
||||
|
||||
**Search**:
|
||||
```python
|
||||
data, status = list_tickets(conditions='summary contains "Harborview"', page_size=200)
|
||||
```
|
||||
|
||||
**Result**: Ticket `<ticketId>` — "Firewall for Harborview" (`<Client Name>`, `<Site>` site, Must Schedule, owner `<staff-initials>`, resources `<staff-initials>`, entered 2026-05-20).
|
||||
|
||||
This linked the agenda item directly to existing tracked work and surfaced that the ticket had been stalled in "Must Schedule" since May.
|
||||
|
||||
## Verification
|
||||
|
||||
After finding a candidate ticket, always read the full ticket (`get_ticket(id)`) to confirm:
|
||||
1. `company.identifier` matches the expected client.
|
||||
2. `site.name` matches the expected location.
|
||||
3. `closedFlag` is false and `status.name` does not start with `>`.
|
||||
4. `resources` or `owner` fields show who is assigned.
|
||||
Reference in new issue
Block a user