cwsell_ · 29 tools · Free 29
ConnectWise Sell (Quosal) API; raw JSON passthrough.
Quotes
| Tool |
Plan |
Access |
Description |
cwsell_copy_quote |
Free |
Write |
[CWSell] Copy an existing quote by internal ID to create a new draft. This is a side-effecting operation that duplicates the source quote's tabs, items, and customers onto a fresh quote record; it is not idempotent. Returns the new quote. |
cwsell_delete_quote |
Free |
Destructive |
[CWSell] Permanently hard-delete a quote and its associated data by internal ID. This cannot be undone. To remove only a single version, use cwsell_delete_quote_version instead. |
cwsell_delete_quote_version |
Free |
Destructive |
[CWSell] Permanently hard-delete a single version of a quote identified by quote number + version number. This cannot be undone. Prefer this over cwsell_delete_quote when only one revision should be removed. |
cwsell_get_latest_quote_version |
Free |
Read-only |
[CWSell] Convenience: retrieve the latest version of a quote by quote number only. |
cwsell_get_quote |
Free |
Read-only |
[CWSell] Retrieve a quote by its stable internal ID. Use this when you have an id from a prior list call. For human-facing quote numbers, use cwsell_get_quote_version or cwsell_get_latest_quote_version instead. |
cwsell_get_quote_version |
Free |
Read-only |
[CWSell] Retrieve a specific version of a quote by human-facing quote number + version number. Use this when the user gave you a quote number (not an internal id). For the current/live version, use cwsell_get_latest_quote_version. |
cwsell_list_quote_versions |
Free |
Read-only |
[CWSell] List all versions for a given quote number. Useful for auditing revision history before selecting a specific version. |
cwsell_list_quotes |
Free |
Read-only |
[CWSell] List quotes with optional filtering and pagination. Returns quote summaries. Use includeFields to reduce response size when you only need specific fields. |
cwsell_update_quote |
Free |
Write |
[CWSell] Update a quote by its internal ID using an RFC 6902 JSON Patch operations array. Returns the updated quote. |
cwsell_copy_quote parameters
| Param |
Type |
Required |
Default |
Description |
id |
integer |
yes |
|
The internal CW Sell quote ID to copy. |
cwsell_delete_quote parameters
| Param |
Type |
Required |
Default |
Description |
id |
integer |
yes |
|
The internal CW Sell quote ID to delete. |
cwsell_delete_quote_version parameters
| Param |
Type |
Required |
Default |
Description |
quoteNumber |
integer |
yes |
|
The human-facing quote number. |
quoteVersion |
integer |
yes |
|
The version number to delete. |
cwsell_get_latest_quote_version parameters
| Param |
Type |
Required |
Default |
Description |
quoteNumber |
integer |
yes |
|
The human-facing quote number. |
cwsell_get_quote parameters
| Param |
Type |
Required |
Default |
Description |
id |
integer |
yes |
|
The internal CW Sell quote ID (not the human-facing quote number). |
cwsell_get_quote_version parameters
| Param |
Type |
Required |
Default |
Description |
quoteNumber |
integer |
yes |
|
The human-facing quote number. |
quoteVersion |
integer |
yes |
|
The version number to retrieve. |
cwsell_list_quote_versions parameters
| Param |
Type |
Required |
Default |
Description |
quoteNumber |
integer |
yes |
|
The human-facing quote number. |
cwsell_list_quotes parameters
| Param |
Type |
Required |
Default |
Description |
conditions |
string |
no |
null |
CW Sell filter expression, e.g. 'lastModified > [2024-01-01]' or 'accountName like "%acme%"'. Passed through verbatim. |
includeFields |
string |
no |
null |
Pass includeFields='id,description,quantity,price' to request only specific fields and reduce response size. Particularly useful for quoteItems which have ~200 fields. |
page |
integer |
no |
1 |
Page number (1-indexed). Default 1. |
pageSize |
integer |
no |
50 |
Results per page (default 50, max 200). |
showAllVersions |
boolean |
no |
null |
When true, returns all versions of each quote; otherwise only the latest. Default false. |
cwsell_update_quote parameters
| Param |
Type |
Required |
Default |
Description |
id |
integer |
yes |
|
The internal CW Sell quote ID. |
operationsJson |
string |
yes |
|
JSON Patch operations array (RFC 6902). Example: [{"op":"replace","path":"/name","value":"New name"}, {"op":"add","path":"/expectedCloseDate","value":"2026-06-01"}] |
Quote Items
| Tool |
Plan |
Access |
Description |
cwsell_create_quote_item |
Free |
Write |
[CWSell] Create a new quote line item. Requires a JSON object matching the CW Sell QuoteItem shape (quoteTabId, description, quantity, price, etc). Returns the created item. |
cwsell_delete_quote_item |
Free |
Destructive |
[CWSell] Permanently delete a quote line item by its internal ID. This cannot be undone. |
cwsell_get_quote_item |
Free |
Read-only |
[CWSell] Retrieve a single quote line item by its internal ID. |
cwsell_list_quote_items |
Free |
Read-only |
[CWSell] List quote line items across all quotes with optional filtering and pagination. Quote items have ~200 fields — strongly recommend narrowing with includeFields. |
cwsell_update_quote_item |
Free |
Write |
[CWSell] Update a quote line item using an RFC 6902 JSON Patch operations array. Returns the updated item. |
cwsell_create_quote_item parameters
| Param |
Type |
Required |
Default |
Description |
bodyJson |
string |
yes |
|
JSON object for the quote item body. Example: {"quoteTabId":123,"description":"Firewall appliance","quantity":1,"price":499.00}. |
cwsell_delete_quote_item parameters
| Param |
Type |
Required |
Default |
Description |
id |
integer |
yes |
|
The internal CW Sell quote item ID to delete. |
cwsell_get_quote_item parameters
| Param |
Type |
Required |
Default |
Description |
id |
integer |
yes |
|
The internal CW Sell quote item ID. |
cwsell_list_quote_items parameters
| Param |
Type |
Required |
Default |
Description |
conditions |
string |
no |
null |
CW Sell filter expression, e.g. 'lastModified > [2024-01-01]' or 'accountName like "%acme%"'. Passed through verbatim. |
includeFields |
string |
no |
null |
Pass includeFields='id,description,quantity,price' to request only specific fields and reduce response size. Particularly useful for quoteItems which have ~200 fields. |
page |
integer |
no |
1 |
Page number (1-indexed). Default 1. |
pageSize |
integer |
no |
50 |
Results per page (default 50, max 200). |
showAllVersions |
boolean |
no |
null |
When true, returns items across all versions of each parent quote; otherwise only the latest version. Default false. |
cwsell_update_quote_item parameters
| Param |
Type |
Required |
Default |
Description |
id |
integer |
yes |
|
The internal CW Sell quote item ID. |
operationsJson |
string |
yes |
|
JSON Patch operations array (RFC 6902). Example: [{"op":"replace","path":"/price","value":599.00}, {"op":"replace","path":"/quantity","value":2}] |
Quote Tabs
| Tool |
Plan |
Access |
Description |
cwsell_list_quote_items_by_tab |
Free |
Read-only |
[CWSell] List all quote line items belonging to a specific quote tab. Useful for reading a grouped set of line items without pulling an entire quote. |
cwsell_list_quote_tabs |
Free |
Read-only |
[CWSell] List quote tabs (the section/grouping rows that organise line items within a quote) with optional filtering and pagination. |
cwsell_list_quote_items_by_tab parameters
| Param |
Type |
Required |
Default |
Description |
conditions |
string |
no |
null |
CW Sell filter expression, e.g. 'lastModified > [2024-01-01]' or 'accountName like "%acme%"'. Passed through verbatim. |
id |
integer |
yes |
|
The internal CW Sell quote tab ID. |
includeFields |
string |
no |
null |
Pass includeFields='id,description,quantity,price' to request only specific fields and reduce response size. Particularly useful for quoteItems which have ~200 fields. |
page |
integer |
no |
1 |
Page number (1-indexed). Default 1. |
pageSize |
integer |
no |
50 |
Results per page (default 50, max 200). |
cwsell_list_quote_tabs parameters
| Param |
Type |
Required |
Default |
Description |
conditions |
string |
no |
null |
CW Sell filter expression, e.g. 'lastModified > [2024-01-01]' or 'accountName like "%acme%"'. Passed through verbatim. |
includeFields |
string |
no |
null |
Pass includeFields='id,description,quantity,price' to request only specific fields and reduce response size. Particularly useful for quoteItems which have ~200 fields. |
page |
integer |
no |
1 |
Page number (1-indexed). Default 1. |
pageSize |
integer |
no |
50 |
Results per page (default 50, max 200). |
showAllVersions |
boolean |
no |
null |
When true, returns tabs across all versions of each parent quote; otherwise only the latest version. Default false. |
Quote Customers
| Tool |
Plan |
Access |
Description |
cwsell_delete_quote_customer |
Free |
Destructive |
[CWSell] Remove a customer from a quote. This cannot be undone. |
cwsell_list_quote_customers |
Free |
Read-only |
[CWSell] List the customers attached to a given quote. |
cwsell_replace_quote_customer |
Free |
Write |
[CWSell] Replace a quote customer record with a full body (PUT). Provide the complete customer object; fields not present will be cleared. For partial updates, use cwsell_update_quote_customer. |
cwsell_update_quote_customer |
Free |
Write |
[CWSell] Partially update a quote customer using an RFC 6902 JSON Patch operations array. Returns the updated customer. |
cwsell_delete_quote_customer parameters
| Param |
Type |
Required |
Default |
Description |
id |
integer |
yes |
|
The internal CW Sell customer ID within the quote. |
quoteId |
integer |
yes |
|
The internal CW Sell quote ID. |
cwsell_list_quote_customers parameters
| Param |
Type |
Required |
Default |
Description |
quoteId |
integer |
yes |
|
The internal CW Sell quote ID. |
cwsell_replace_quote_customer parameters
| Param |
Type |
Required |
Default |
Description |
bodyJson |
string |
yes |
|
Full customer JSON body. Example: {"firstName":"Jane","lastName":"Doe","email":"jane@acme.com"}. |
id |
integer |
yes |
|
The internal CW Sell customer ID within the quote. |
quoteId |
integer |
yes |
|
The internal CW Sell quote ID. |
cwsell_update_quote_customer parameters
| Param |
Type |
Required |
Default |
Description |
id |
integer |
yes |
|
The internal CW Sell customer ID within the quote. |
operationsJson |
string |
yes |
|
JSON Patch operations array (RFC 6902). Example: [{"op":"replace","path":"/email","value":"new@acme.com"}] |
quoteId |
integer |
yes |
|
The internal CW Sell quote ID. |
Quote Terms
| Tool |
Plan |
Access |
Description |
cwsell_create_quote_term |
Free |
Write |
[CWSell] Create a new term/condition on a quote. Provide a JSON body matching the QuoteTerm shape. |
cwsell_delete_quote_term |
Free |
Destructive |
[CWSell] Permanently delete a term/condition from a quote. This cannot be undone. |
cwsell_list_quote_terms |
Free |
Read-only |
[CWSell] List terms and conditions entries attached to a given quote. |
cwsell_update_quote_term |
Free |
Write |
[CWSell] Partially update a quote term using an RFC 6902 JSON Patch operations array. Returns the updated term. |
cwsell_create_quote_term parameters
| Param |
Type |
Required |
Default |
Description |
bodyJson |
string |
yes |
|
JSON object for the quote term body. Example: {"name":"Payment","body":"Net 30"}. |
quoteId |
integer |
yes |
|
The internal CW Sell quote ID. |
cwsell_delete_quote_term parameters
| Param |
Type |
Required |
Default |
Description |
id |
integer |
yes |
|
The internal CW Sell quote term ID to delete. |
quoteId |
integer |
yes |
|
The internal CW Sell quote ID. |
cwsell_list_quote_terms parameters
| Param |
Type |
Required |
Default |
Description |
quoteId |
integer |
yes |
|
The internal CW Sell quote ID. |
cwsell_update_quote_term parameters
| Param |
Type |
Required |
Default |
Description |
id |
integer |
yes |
|
The internal CW Sell quote term ID within the quote. |
operationsJson |
string |
yes |
|
JSON Patch operations array (RFC 6902). Example: [{"op":"replace","path":"/body","value":"Net 45"}] |
quoteId |
integer |
yes |
|
The internal CW Sell quote ID. |
Recurring Revenue
| Tool |
Plan |
Access |
Description |
cwsell_list_recurring_revenues |
Free |
Read-only |
[CWSell] List recurring revenue entries (MRR/ARR subscription items) across quotes with optional filtering and pagination. |
cwsell_list_recurring_revenues parameters
| Param |
Type |
Required |
Default |
Description |
conditions |
string |
no |
null |
CW Sell filter expression, e.g. 'lastModified > [2024-01-01]' or 'accountName like "%acme%"'. Passed through verbatim. |
includeFields |
string |
no |
null |
Pass includeFields='id,description,quantity,price' to request only specific fields and reduce response size. Particularly useful for quoteItems which have ~200 fields. |
page |
integer |
no |
1 |
Page number (1-indexed). Default 1. |
pageSize |
integer |
no |
50 |
Results per page (default 50, max 200). |
Reference Data
| Tool |
Plan |
Access |
Description |
cwsell_list_tax_codes |
Free |
Read-only |
[CWSell] List configured tax codes. Useful reference data when constructing or updating quote items and terms. |
cwsell_list_templates |
Free |
Read-only |
[CWSell] List configured quote templates. Useful reference data when seeding new quotes from a branded layout. |
cwsell_list_tax_codes parameters
| Param |
Type |
Required |
Default |
Description |
conditions |
string |
no |
null |
CW Sell filter expression, e.g. 'lastModified > [2024-01-01]' or 'accountName like "%acme%"'. Passed through verbatim. |
includeFields |
string |
no |
null |
Pass includeFields='id,description,quantity,price' to request only specific fields and reduce response size. Particularly useful for quoteItems which have ~200 fields. |
page |
integer |
no |
1 |
Page number (1-indexed). Default 1. |
pageSize |
integer |
no |
50 |
Results per page (default 50, max 200). |
cwsell_list_templates parameters
| Param |
Type |
Required |
Default |
Description |
conditions |
string |
no |
null |
CW Sell filter expression, e.g. 'lastModified > [2024-01-01]' or 'accountName like "%acme%"'. Passed through verbatim. |
includeFields |
string |
no |
null |
Pass includeFields='id,description,quantity,price' to request only specific fields and reduce response size. Particularly useful for quoteItems which have ~200 fields. |
page |
integer |
no |
1 |
Page number (1-indexed). Default 1. |
pageSize |
integer |
no |
50 |
Results per page (default 50, max 200). |
Users
| Tool |
Plan |
Access |
Description |
cwsell_list_users |
Free |
Read-only |
[CWSell] List user accounts configured in ConnectWise Sell with optional filtering and pagination. |
cwsell_update_user |
Free |
Write |
[CWSell] Partially update a user account using an RFC 6902 JSON Patch operations array. Returns the updated user. |
cwsell_list_users parameters
| Param |
Type |
Required |
Default |
Description |
conditions |
string |
no |
null |
CW Sell filter expression, e.g. 'lastModified > [2024-01-01]' or 'accountName like "%acme%"'. Passed through verbatim. |
includeFields |
string |
no |
null |
Pass includeFields='id,description,quantity,price' to request only specific fields and reduce response size. Particularly useful for quoteItems which have ~200 fields. |
page |
integer |
no |
1 |
Page number (1-indexed). Default 1. |
pageSize |
integer |
no |
50 |
Results per page (default 50, max 200). |
cwsell_update_user parameters
| Param |
Type |
Required |
Default |
Description |
id |
integer |
yes |
|
The internal CW Sell user ID. |
operationsJson |
string |
yes |
|
JSON Patch operations array (RFC 6902). Example: [{"op":"replace","path":"/email","value":"new@acme.com"}] |