From ae3f23437b1c0b309348330351de57f1f264aef4 Mon Sep 17 00:00:00 2001 From: Cobalt0s Date: Sat, 27 Jun 2026 02:34:19 +0300 Subject: [PATCH 1/5] [CON-3246] feat(connectwise): Subsribe --- src/provider-guides/connectWise.mdx | 1 + 1 file changed, 1 insertion(+) diff --git a/src/provider-guides/connectWise.mdx b/src/provider-guides/connectWise.mdx index e0365f50..64f47b94 100644 --- a/src/provider-guides/connectWise.mdx +++ b/src/provider-guides/connectWise.mdx @@ -7,6 +7,7 @@ title: ConnectWise This connector supports: - [Read Actions](/read-actions), including full historic backfill and incremental read. Please note that incremental read is unreliable due to ConnectWise API limitations. You may get more data than what is within the time range. +- [Subscribe Actions](/subscribe-actions). - [Write Actions](/write-actions). - [Proxy Actions](/proxy-actions), using the base URL `https://{{.region}}.myconnectwise.net`. From 2ec33a69e19a28f48e48a0241aa499d73c355f3b Mon Sep 17 00:00:00 2001 From: Cobalt0s Date: Sat, 27 Jun 2026 18:24:26 +0300 Subject: [PATCH 2/5] table as rows with for-loop --- src/provider-guides/connectWise.mdx | 258 +++++++++++++++++++++------- 1 file changed, 194 insertions(+), 64 deletions(-) diff --git a/src/provider-guides/connectWise.mdx b/src/provider-guides/connectWise.mdx index 64f47b94..4f581238 100644 --- a/src/provider-guides/connectWise.mdx +++ b/src/provider-guides/connectWise.mdx @@ -13,74 +13,204 @@ This connector supports: The ConnectWise connector supports reading from all standard objects and writing to most standard objects, including the following: +export const rows = [ + { + label: "activities", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Activities" + }, { + label: "agreements", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Agreements", + }, { + label: "attachments", read: true, write: false, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/WorkflowAttachments", + }, { + label: "companies", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Companies", + }, { + label: "configurations", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Configurations", + }, { + label: "contacts", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Contacts", + }, { + label: "countries", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Countries", + }, { + label: "currencies", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Currencies", + }, { + label: "customFieldInfos", read: true, write: false, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/CustomFieldInfos", + }, { + label: "customReports", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/CustomReports", + }, { + label: "emailTemplates", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/ServiceEmailTemplates", + }, { + label: "entityTypes", read: true, write: false, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/EntityTypes", + }, { + label: "expense/entries", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/ExpenseEntries", + }, { + label: "finance/agreements/types", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/AgreementTypes", + }, { + label: "finance/billingCycles/info", read: true, write: false, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/BillingCycleInfos", + }, { + label: "finance/billingTerms/info", read: true, write: false, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/BillingTermInfos", + }, { + label: "glAccounts", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/GLAccounts", + }, { + label: "groups", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Groups", + }, { + label: "invoices", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Invoices", + }, { + label: "knowledgeBaseArticles", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/KnowledgeBaseArticles", + }, { + label: "knowledgeBaseCategories", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/KnowledgeBaseCategories", + }, { + label: "kpis", read: true, write: false, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/KPIs", + }, { + label: "management", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Managements", + }, { + label: "noteTypes", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/CompanyNoteTypes", + }, { + label: "sales/opportunities", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Opportunities", + }, { + label: "orders", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Orders", + }, { + label: "priorities", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Priorities", + }, { + label: "products", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/ProductsItem", + }, { + label: "project/projectTemplates", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/ProjectTemplates", + }, { + label: "projects", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Projects", + }, { + label: "purchaseorders", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/PurchaseOrders", + }, { + label: "quotas", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/SalesQuotas", + }, { + label: "ratings", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/OpportunityRatings", + }, { + label: "reports", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/ExpenseReports", + }, { + label: "rmaActions", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/RMAActions", + }, { + label: "rmaStatuses", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/RmaStatuses", + }, { + label: "schedule/entries", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/ScheduleEntries", + }, { + label: "securityRoles", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/ProjectSecurityRoles", + }, { + label: "service/boards", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Boards", + }, { + label: "service/slas/info", read: true, write: false, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/SLAInfos", + }, { + label: "service/tickets", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Tickets", + }, { + label: "sources", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Sources", + }, { + label: "states", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/States", + }, { + label: "system/departments", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Departments", + }, { + label: "system/documents", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Documents", + }, { + label: "system/locations", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Locations", + }, { + label: "system/members", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Members", + }, { + label: "system/securityroles/info", read: true, write: false, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/SecurityRoleInfos", + }, { + label: "system/workflows/events/actions", read: true, write: false, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/WorkflowActions", + }, { + label: "ticketLinks", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/ServiceTicketLinks", + }, { + label: "time/entries", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/TimeEntries", + }, { + label: "warehouses", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Warehouses", + }, { + label: "workflows", read: true, write: true, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Workflows", + }, +] + export const Check = () => export const Cross = () => 🚫 -
- - - - - - +
+
ObjectReadWrite
+ + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ObjectReadWriteSubscribe
activities
agreements
attachments
companies
configurations
contacts
countries
currencies
customFieldInfos
customReports
emailTemplates
entityTypes
expense/entries
finance/agreements/types
finance/billingCycles/info
finance/billingTerms/info
glAccounts
groups
invoices
knowledgeBaseArticles
knowledgeBaseCategories
kpis
management
noteTypes
sales/opportunities
orders
priorities
products
project/projectTemplates
projects
purchaseorders
quotas
ratings
reports
rmaActions
rmaStatuses
schedule/entries
securityRoles
service/boards
service/slas/info
service/tickets
sources
states
system/departments
system/documents
system/locations
system/members
system/securityroles/info
system/workflows/events/actions
ticketLinks
time/entries
warehouses
workflows
+ + + {[...rows] + .sort((a, b) => a.label.localeCompare(b.label)) + .map((row) => ( + + + {row.label} + + {row.read ? : } + {row.write ? : } + {row.subscribe ? : } + + ))} + +
From 812779903a991f89462fee5c29cc7ee89d8895fe Mon Sep 17 00:00:00 2001 From: Cobalt0s Date: Sat, 27 Jun 2026 18:54:41 +0300 Subject: [PATCH 3/5] Subscribe --- src/provider-guides/connectWise.mdx | 57 +++++++++++++++++++---------- 1 file changed, 38 insertions(+), 19 deletions(-) diff --git a/src/provider-guides/connectWise.mdx b/src/provider-guides/connectWise.mdx index 4f581238..e4577580 100644 --- a/src/provider-guides/connectWise.mdx +++ b/src/provider-guides/connectWise.mdx @@ -15,22 +15,25 @@ The ConnectWise connector supports reading from all standard objects and writing export const rows = [ { - label: "activities", read: true, write: true, subscribe: false, + label: "activities", read: true, write: true, subscribe: true, href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Activities" }, { - label: "agreements", read: true, write: true, subscribe: false, - href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Agreements", + label: "activities", read: true, write: true, subscribe: true, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Activities" }, { label: "attachments", read: true, write: false, subscribe: false, href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/WorkflowAttachments", }, { - label: "companies", read: true, write: true, subscribe: false, + label: "companies", read: true, write: true, subscribe: true, href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Companies", }, { - label: "configurations", read: true, write: true, subscribe: false, + label: "catalog", read: true, write: true, subscribe: true, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/CatalogsItem", + }, { + label: "configurations", read: true, write: true, subscribe: true, href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Configurations", }, { - label: "contacts", read: true, write: true, subscribe: false, + label: "contacts", read: true, write: true, subscribe: true, href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Contacts", }, { label: "countries", read: true, write: true, subscribe: false, @@ -51,7 +54,7 @@ export const rows = [ label: "entityTypes", read: true, write: false, subscribe: false, href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/EntityTypes", }, { - label: "expense/entries", read: true, write: true, subscribe: false, + label: "expense/entries", read: true, write: true, subscribe: true, href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/ExpenseEntries", }, { label: "finance/agreements/types", read: true, write: true, subscribe: false, @@ -69,7 +72,7 @@ export const rows = [ label: "groups", read: true, write: true, subscribe: false, href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Groups", }, { - label: "invoices", read: true, write: true, subscribe: false, + label: "invoices", read: true, write: true, subscribe: true, href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Invoices", }, { label: "knowledgeBaseArticles", read: true, write: true, subscribe: false, @@ -87,7 +90,7 @@ export const rows = [ label: "noteTypes", read: true, write: true, subscribe: false, href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/CompanyNoteTypes", }, { - label: "sales/opportunities", read: true, write: true, subscribe: false, + label: "sales/opportunities", read: true, write: true, subscribe: true, href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Opportunities", }, { label: "orders", read: true, write: true, subscribe: false, @@ -102,10 +105,13 @@ export const rows = [ label: "project/projectTemplates", read: true, write: true, subscribe: false, href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/ProjectTemplates", }, { - label: "projects", read: true, write: true, subscribe: false, + label: "project/tickets", read: true, write: true, subscribe: true, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/ProjectTickets", + }, { + label: "projects", read: true, write: true, subscribe: true, href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Projects", }, { - label: "purchaseorders", read: true, write: true, subscribe: false, + label: "purchaseorders", read: true, write: true, subscribe: true, href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/PurchaseOrders", }, { label: "quotas", read: true, write: true, subscribe: false, @@ -123,7 +129,7 @@ export const rows = [ label: "rmaStatuses", read: true, write: true, subscribe: false, href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/RmaStatuses", }, { - label: "schedule/entries", read: true, write: true, subscribe: false, + label: "schedule/entries", read: true, write: true, subscribe: true, href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/ScheduleEntries", }, { label: "securityRoles", read: true, write: true, subscribe: false, @@ -135,7 +141,8 @@ export const rows = [ label: "service/slas/info", read: true, write: false, subscribe: false, href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/SLAInfos", }, { - label: "service/tickets", read: true, write: true, subscribe: false, + label: "service/tickets", read: true, write: true, + subscribe: Use project/tickets, href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Tickets", }, { label: "sources", read: true, write: true, subscribe: false, @@ -153,7 +160,7 @@ export const rows = [ label: "system/locations", read: true, write: true, subscribe: false, href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Locations", }, { - label: "system/members", read: true, write: true, subscribe: false, + label: "system/members", read: true, write: true, subscribe: true, href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Members", }, { label: "system/securityroles/info", read: true, write: false, subscribe: false, @@ -165,7 +172,7 @@ export const rows = [ label: "ticketLinks", read: true, write: true, subscribe: false, href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/ServiceTicketLinks", }, { - label: "time/entries", read: true, write: true, subscribe: false, + label: "time/entries", read: true, write: true, subscribe: true, href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/TimeEntries", }, { label: "warehouses", read: true, write: true, subscribe: false, @@ -179,6 +186,18 @@ export const rows = [ export const Check = () => export const Cross = () => 🚫 +export function renderCellValue(value) { + if (typeof value === "boolean") { + return value ? : ; + } + + if (typeof value === "string" && value.startsWith("<")) { + return ; + } + + return value; +} +
🚫 {[...rows] .sort((a, b) => a.label.localeCompare(b.label)) .map((row) => ( - + - - - + + + ))} From add7af1f0c312671a52dbb24fc4e78da1a09a957 Mon Sep 17 00:00:00 2001 From: Cobalt0s Date: Sat, 27 Jun 2026 19:07:36 +0300 Subject: [PATCH 4/5] remove duplicate --- src/provider-guides/connectWise.mdx | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/provider-guides/connectWise.mdx b/src/provider-guides/connectWise.mdx index e4577580..d2e74e11 100644 --- a/src/provider-guides/connectWise.mdx +++ b/src/provider-guides/connectWise.mdx @@ -17,9 +17,6 @@ export const rows = [ { label: "activities", read: true, write: true, subscribe: true, href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Activities" - }, { - label: "activities", read: true, write: true, subscribe: true, - href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Activities" }, { label: "attachments", read: true, write: false, subscribe: false, href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/WorkflowAttachments", From 4d58bce2fd40fdab2461a8cd2f32b5cae1d4a871 Mon Sep 17 00:00:00 2001 From: Cobalt0s Date: Mon, 29 Jun 2026 20:08:45 +0300 Subject: [PATCH 5/5] add agreements --- src/provider-guides/connectWise.mdx | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/provider-guides/connectWise.mdx b/src/provider-guides/connectWise.mdx index d2e74e11..80f092ae 100644 --- a/src/provider-guides/connectWise.mdx +++ b/src/provider-guides/connectWise.mdx @@ -17,6 +17,9 @@ export const rows = [ { label: "activities", read: true, write: true, subscribe: true, href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Activities" + }, { + label: "agreements", read: true, write: false, subscribe: false, + href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/Agreements", }, { label: "attachments", read: true, write: false, subscribe: false, href: "https://developer.connectwise.com/Products/ConnectWise_PSA/REST#/WorkflowAttachments",
{row.label} {row.read ? : }{row.write ? : }{row.subscribe ? : }{renderCellValue(row.read)}{renderCellValue(row.write)}{renderCellValue(row.subscribe)}