Skip to main content
Tools Reference

ConnectWise Sell Tools

Written By Christopher Scaminaci

Last updated 7 days ago

ConnectWise Sell Tools

cwsell_ · 29 tools · Free 29 ConnectWise Sell (Quosal) API; raw JSON passthrough.

All connector tools · ConnectWise Sell setup guide

ConnectWise Sell tool groups

Quotes

ToolPlanAccessSummary
cwsell_copy_quoteFreeWriteCopy an existing quote OR a quote template by internal ID to create a new draft.
cwsell_delete_quoteFreeDestructivePermanently hard-delete a quote and its associated data by internal ID.
cwsell_delete_quote_versionFreeDestructivePermanently hard-delete a single version of a quote identified by quote number + version number.
cwsell_get_latest_quote_versionFreeRead-onlyConvenience: retrieve the latest version of a quote by quote number only.
cwsell_get_quoteFreeRead-onlyRetrieve a quote by its stable internal ID.
cwsell_get_quote_versionFreeRead-onlyRetrieve a specific version of a quote by human-facing quote number + version number.
cwsell_list_quote_versionsFreeRead-onlyList all versions for a given quote number.
cwsell_list_quotesFreeRead-onlyList quotes with optional filtering and pagination.
cwsell_update_quoteFreeWriteUpdate a quote by its internal ID using an RFC 6902 JSON Patch operations array.

[CWSell] Copy an existing quote OR a quote template by internal ID to create a new draft. Templates are quote records, so a template id from cwsell_list_templates works here exactly like a quote id from cwsell_list_quotes — this is the way to seed a new quote from a branded template. This is a side-effecting operation that duplicates the source's tabs, items, and customers onto a fresh quote record; it is not idempotent. Returns the new quote.

ParamTypeRequiredDefaultDescription
idstringyesThe internal CW Sell ID of the quote or template to copy — the opaque GUID string 'id' field from cwsell_list_quotes or cwsell_list_templates, e.g. '06098b1d-89b4-4f94-bb7f-24a94aafc0ef'. Both surfaces return the same id form. This is NOT the integer quoteNumber.

[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.

ParamTypeRequiredDefaultDescription
idstringyesThe internal CW Sell quote ID to delete — the opaque GUID string 'id' field from cwsell_list_quotes, e.g. '06098b1d-89b4-4f94-bb7f-24a94aafc0ef'. This is NOT the integer quoteNumber.

[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.

ParamTypeRequiredDefaultDescription
quoteNumberintegeryesThe human-facing quote number — the INTEGER 'quoteNumber' field from cwsell_list_quotes, not the GUID 'id'. Passing a GUID here will fail.
quoteVersionintegeryesThe version number to delete — the INTEGER 'quoteVersion' field. List them with cwsell_list_quote_versions.
ParamTypeRequiredDefaultDescription
quoteNumberintegeryesThe human-facing quote number — the INTEGER 'quoteNumber' field from cwsell_list_quotes, not the GUID 'id'. Passing a GUID here will fail.

[CWSell] Retrieve a quote by its stable internal ID. Use this when you have an id from a prior cwsell_list_quotes call. For human-facing quote numbers, use cwsell_get_quote_version or cwsell_get_latest_quote_version instead.

ParamTypeRequiredDefaultDescription
idstringyesThe internal CW Sell quote ID — the opaque GUID string 'id' field from cwsell_list_quotes, e.g. '06098b1d-89b4-4f94-bb7f-24a94aafc0ef'. This is NOT the integer quoteNumber.

[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.

ParamTypeRequiredDefaultDescription
quoteNumberintegeryesThe human-facing quote number — the INTEGER 'quoteNumber' field from cwsell_list_quotes, not the GUID 'id'. Passing a GUID here will fail.
quoteVersionintegeryesThe version number to retrieve — the INTEGER 'quoteVersion' field. List them with cwsell_list_quote_versions.

[CWSell] List all versions for a given quote number. Useful for auditing revision history before selecting a specific version.

ParamTypeRequiredDefaultDescription
quoteNumberintegeryesThe human-facing quote number — the INTEGER 'quoteNumber' field from cwsell_list_quotes, not the GUID 'id'. Passing a GUID here will fail.

[CWSell] List quotes with optional filtering and pagination. Returns quote summaries. Use includeFields to reduce response size when you only need specific fields.

ParamTypeRequiredDefaultDescription
conditionsstringnonullCW Sell filter expression, e.g. 'lastModified > [2024-01-01]' or 'accountName like "%acme%"'. Passed through verbatim.
includeFieldsstringnonullPass includeFields='id,description,quantity,price' to request only specific fields and reduce response size. Particularly useful for quoteItems which have ~200 fields.
pageintegerno1Page number (1-indexed). Default 1.
pageSizeintegerno50Results per page (default 50, max 200).
showAllVersionsbooleannonullWhen true, returns all versions of each quote; otherwise only the latest. Default false.

[CWSell] Update a quote by its internal ID using an RFC 6902 JSON Patch operations array. Returns the updated quote.

ParamTypeRequiredDefaultDescription
idstringyesThe internal CW Sell quote ID — the opaque GUID string 'id' field from cwsell_list_quotes, e.g. '06098b1d-89b4-4f94-bb7f-24a94aafc0ef'. This is NOT the integer quoteNumber.
operationsJsonstringyesJSON Patch operations array (RFC 6902). Example: [{"op":"replace","path":"/name","value":"New name"}, {"op":"add","path":"/expectedCloseDate","value":"2026-06-01"}]

Quote Items

ToolPlanAccessSummary
cwsell_create_quote_itemFreeWriteCreate a new quote line item.
cwsell_delete_quote_itemFreeDestructivePermanently delete a quote line item by its internal ID.
cwsell_get_quote_itemFreeRead-onlyRetrieve a single quote line item by its internal ID.
cwsell_list_quote_itemsFreeRead-onlyList quote line items across all quotes with optional filtering and pagination.
cwsell_update_quote_itemFreeWriteUpdate a quote line item using an RFC 6902 JSON Patch operations array.

[CWSell] Create a new quote line item. Requires a JSON object matching the CW Sell QuoteItem shape (idQuote, idQuoteTabs, description, quantity, price, etc). Returns the created item.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object for the quote item body. The parent references idQuote and idQuoteTabs are opaque GUID strings taken from cwsell_list_quotes and cwsell_list_quote_tabs, not integers. Example: {"idQuote":"06098b1d-89b4-4f94-bb7f-24a94aafc0ef","idQuoteTabs":"3f2a91c4-7d10-4e55-9a02-b7e8c1d4f6aa","description":"Firewall appliance","quantity":1,"price":499.00}.

[CWSell] Permanently delete a quote line item by its internal ID. This cannot be undone.

ParamTypeRequiredDefaultDescription
idstringyesThe internal CW Sell quote item ID to delete — the opaque GUID string 'id' field from cwsell_list_quote_items or cwsell_list_quote_items_by_tab, e.g. '06098b1d-89b4-4f94-bb7f-24a94aafc0ef'.
ParamTypeRequiredDefaultDescription
idstringyesThe internal CW Sell quote item ID — the opaque GUID string 'id' field from cwsell_list_quote_items or cwsell_list_quote_items_by_tab, e.g. '06098b1d-89b4-4f94-bb7f-24a94aafc0ef'.

[CWSell] List quote line items across all quotes with optional filtering and pagination. Quote items have ~200 fields — strongly recommend narrowing with includeFields.

ParamTypeRequiredDefaultDescription
conditionsstringnonullCW Sell filter expression, e.g. 'lastModified > [2024-01-01]' or 'accountName like "%acme%"'. Passed through verbatim.
includeFieldsstringnonullPass includeFields='id,description,quantity,price' to request only specific fields and reduce response size. Particularly useful for quoteItems which have ~200 fields.
pageintegerno1Page number (1-indexed). Default 1.
pageSizeintegerno50Results per page (default 50, max 200).
showAllVersionsbooleannonullWhen true, returns items across all versions of each parent quote; otherwise only the latest version. Default false.

[CWSell] Update a quote line item using an RFC 6902 JSON Patch operations array. Returns the updated item.

ParamTypeRequiredDefaultDescription
idstringyesThe internal CW Sell quote item ID — the opaque GUID string 'id' field from cwsell_list_quote_items or cwsell_list_quote_items_by_tab, e.g. '06098b1d-89b4-4f94-bb7f-24a94aafc0ef'.
operationsJsonstringyesJSON Patch operations array (RFC 6902). Example: [{"op":"replace","path":"/price","value":599.00}, {"op":"replace","path":"/quantity","value":2}]

Quote Tabs

ToolPlanAccessSummary
cwsell_list_quote_items_by_tabFreeRead-onlyList all quote line items belonging to a specific quote tab.
cwsell_list_quote_tabsFreeRead-onlyList quote tabs (the section/grouping rows that organise line items within a quote) with optional filtering and pagination.

[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.

ParamTypeRequiredDefaultDescription
conditionsstringnonullCW Sell filter expression, e.g. 'lastModified > [2024-01-01]' or 'accountName like "%acme%"'. Passed through verbatim.
idstringyesThe internal CW Sell quote tab ID — the opaque GUID string 'id' field from cwsell_list_quote_tabs, e.g. '06098b1d-89b4-4f94-bb7f-24a94aafc0ef'. This is NOT the integer tabNumber.
includeFieldsstringnonullPass includeFields='id,description,quantity,price' to request only specific fields and reduce response size. Particularly useful for quoteItems which have ~200 fields.
pageintegerno1Page number (1-indexed). Default 1.
pageSizeintegerno50Results per page (default 50, max 200).
ParamTypeRequiredDefaultDescription
conditionsstringnonullCW Sell filter expression, e.g. 'lastModified > [2024-01-01]' or 'accountName like "%acme%"'. Passed through verbatim.
includeFieldsstringnonullPass includeFields='id,description,quantity,price' to request only specific fields and reduce response size. Particularly useful for quoteItems which have ~200 fields.
pageintegerno1Page number (1-indexed). Default 1.
pageSizeintegerno50Results per page (default 50, max 200).
showAllVersionsbooleannonullWhen true, returns tabs across all versions of each parent quote; otherwise only the latest version. Default false.

Quote Customers

ToolPlanAccessSummary
cwsell_delete_quote_customerFreeDestructiveRemove a customer from a quote.
cwsell_list_quote_customersFreeRead-onlyList the customers attached to a given quote.
cwsell_replace_quote_customerFreeDestructiveReplace a quote customer record with a full body (PUT).
cwsell_update_quote_customerFreeWritePartially update a quote customer using an RFC 6902 JSON Patch operations array.

[CWSell] Remove a customer from a quote. This cannot be undone.

ParamTypeRequiredDefaultDescription
idstringyesThe internal CW Sell customer ID within the quote — the opaque GUID string 'id' field from cwsell_list_quote_customers.
quoteIdstringyesThe internal CW Sell quote ID — the opaque GUID string 'id' field from cwsell_list_quotes, e.g. '06098b1d-89b4-4f94-bb7f-24a94aafc0ef'. This is NOT the integer quoteNumber.
ParamTypeRequiredDefaultDescription
quoteIdstringyesThe internal CW Sell quote ID — the opaque GUID string 'id' field from cwsell_list_quotes, e.g. '06098b1d-89b4-4f94-bb7f-24a94aafc0ef'. This is NOT the integer quoteNumber.

[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.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesFull customer JSON body. Example: {"firstName":"Jane","lastName":"Doe","email":"jane@acme.com"}.
idstringyesThe internal CW Sell customer ID within the quote — the opaque GUID string 'id' field from cwsell_list_quote_customers.
quoteIdstringyesThe internal CW Sell quote ID — the opaque GUID string 'id' field from cwsell_list_quotes, e.g. '06098b1d-89b4-4f94-bb7f-24a94aafc0ef'. This is NOT the integer quoteNumber.

[CWSell] Partially update a quote customer using an RFC 6902 JSON Patch operations array. Returns the updated customer.

ParamTypeRequiredDefaultDescription
idstringyesThe internal CW Sell customer ID within the quote — the opaque GUID string 'id' field from cwsell_list_quote_customers.
operationsJsonstringyesJSON Patch operations array (RFC 6902). Example: [{"op":"replace","path":"/email","value":"new@acme.com"}]
quoteIdstringyesThe internal CW Sell quote ID — the opaque GUID string 'id' field from cwsell_list_quotes, e.g. '06098b1d-89b4-4f94-bb7f-24a94aafc0ef'. This is NOT the integer quoteNumber.

Quote Terms

ToolPlanAccessSummary
cwsell_create_quote_termFreeWriteCreate a new term/condition on a quote.
cwsell_delete_quote_termFreeDestructivePermanently delete a term/condition from a quote.
cwsell_list_quote_termsFreeRead-onlyList terms and conditions entries attached to a given quote.
cwsell_update_quote_termFreeWritePartially update a quote term using an RFC 6902 JSON Patch operations array.

[CWSell] Create a new term/condition on a quote. Provide a JSON body matching the QuoteTerm shape.

ParamTypeRequiredDefaultDescription
bodyJsonstringyesJSON object for the quote term body. Example: {"name":"Payment","body":"Net 30"}.
quoteIdstringyesThe internal CW Sell quote ID — the opaque GUID string 'id' field from cwsell_list_quotes, e.g. '06098b1d-89b4-4f94-bb7f-24a94aafc0ef'. This is NOT the integer quoteNumber.

[CWSell] Permanently delete a term/condition from a quote. This cannot be undone.

ParamTypeRequiredDefaultDescription
idstringyesThe internal CW Sell quote term ID to delete — the opaque GUID string 'id' field from cwsell_list_quote_terms.
quoteIdstringyesThe internal CW Sell quote ID — the opaque GUID string 'id' field from cwsell_list_quotes, e.g. '06098b1d-89b4-4f94-bb7f-24a94aafc0ef'. This is NOT the integer quoteNumber.
ParamTypeRequiredDefaultDescription
quoteIdstringyesThe internal CW Sell quote ID — the opaque GUID string 'id' field from cwsell_list_quotes, e.g. '06098b1d-89b4-4f94-bb7f-24a94aafc0ef'. This is NOT the integer quoteNumber.

[CWSell] Partially update a quote term using an RFC 6902 JSON Patch operations array. Returns the updated term.

ParamTypeRequiredDefaultDescription
idstringyesThe internal CW Sell quote term ID within the quote — the opaque GUID string 'id' field from cwsell_list_quote_terms.
operationsJsonstringyesJSON Patch operations array (RFC 6902). Example: [{"op":"replace","path":"/body","value":"Net 45"}]
quoteIdstringyesThe internal CW Sell quote ID — the opaque GUID string 'id' field from cwsell_list_quotes, e.g. '06098b1d-89b4-4f94-bb7f-24a94aafc0ef'. This is NOT the integer quoteNumber.

Recurring Revenue

ToolPlanAccessSummary
cwsell_list_recurring_revenuesFreeRead-onlyList recurring revenue entries (MRR/ARR subscription items) across quotes with optional filtering and pagination.
ParamTypeRequiredDefaultDescription
conditionsstringnonullCW Sell filter expression, e.g. 'lastModified > [2024-01-01]' or 'accountName like "%acme%"'. Passed through verbatim.
includeFieldsstringnonullPass includeFields='id,description,quantity,price' to request only specific fields and reduce response size. Particularly useful for quoteItems which have ~200 fields.
pageintegerno1Page number (1-indexed). Default 1.
pageSizeintegerno50Results per page (default 50, max 200).

Reference Data

ToolPlanAccessSummary
cwsell_list_tax_codesFreeRead-onlyList configured tax codes.
cwsell_list_templatesFreeRead-onlyList configured quote templates.

[CWSell] List configured tax codes. Useful reference data when constructing or updating quote items and terms.

ParamTypeRequiredDefaultDescription
conditionsstringnonullCW Sell filter expression, e.g. 'lastModified > [2024-01-01]' or 'accountName like "%acme%"'. Passed through verbatim.
includeFieldsstringnonullPass includeFields='id,description,quantity,price' to request only specific fields and reduce response size. Particularly useful for quoteItems which have ~200 fields.
pageintegerno1Page number (1-indexed). Default 1.
pageSizeintegerno50Results per page (default 50, max 200).

[CWSell] List configured quote templates. Templates are quote records, so each carries the same opaque GUID string 'id' as an ordinary quote — pass it to cwsell_copy_quote to seed a new quote from a branded layout.

ParamTypeRequiredDefaultDescription
conditionsstringnonullCW Sell filter expression, e.g. 'lastModified > [2024-01-01]' or 'accountName like "%acme%"'. Passed through verbatim.
includeFieldsstringnonullPass includeFields='id,description,quantity,price' to request only specific fields and reduce response size. Particularly useful for quoteItems which have ~200 fields.
pageintegerno1Page number (1-indexed). Default 1.
pageSizeintegerno50Results per page (default 50, max 200).

Users

ToolPlanAccessSummary
cwsell_list_usersFreeRead-onlyList user accounts configured in ConnectWise Sell with optional filtering and pagination.
cwsell_update_userFreeWritePartially update a user account using an RFC 6902 JSON Patch operations array.
ParamTypeRequiredDefaultDescription
conditionsstringnonullCW Sell filter expression, e.g. 'lastModified > [2024-01-01]' or 'accountName like "%acme%"'. Passed through verbatim.
includeFieldsstringnonullPass includeFields='id,description,quantity,price' to request only specific fields and reduce response size. Particularly useful for quoteItems which have ~200 fields.
pageintegerno1Page number (1-indexed). Default 1.
pageSizeintegerno50Results per page (default 50, max 200).

[CWSell] Partially update a user account using an RFC 6902 JSON Patch operations array. Returns the updated user.

ParamTypeRequiredDefaultDescription
idstringyesThe internal CW Sell user ID — the opaque GUID string 'id' field from cwsell_list_users, e.g. '06098b1d-89b4-4f94-bb7f-24a94aafc0ef'.
operationsJsonstringyesJSON Patch operations array (RFC 6902). Example: [{"op":"replace","path":"/email","value":"new@acme.com"}]