From b98cefcec8407a6ef5c59e2c93e1cf4c743e69e8 Mon Sep 17 00:00:00 2001 From: Tom Owers Date: Wed, 22 Jul 2026 12:02:26 +0100 Subject: [PATCH] feat(data-warehouse): wire Intercom and HubSpot into the self-driving inbox MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add Intercom and HubSpot as inbox source toggles. Both are OAuth sources, but that needs no bespoke UI: the generic DynamicSourceSetup renders their connect form's oauth field, and the generic integration flow starter (separate PR) launches the OAuth flow by kind. So this is the same one-registry-entry change as any credential source — two entries in EXTERNAL_INBOX_SOURCES plus the SourceProduct/analytics unions and icons. --- packages/shared/src/inbox-types.ts | 18 ++++++++++++++++++ .../components/utils/source-product-icons.tsx | 2 ++ 2 files changed, 20 insertions(+) diff --git a/packages/shared/src/inbox-types.ts b/packages/shared/src/inbox-types.ts index 7a6aae7ef9..f451fbe515 100644 --- a/packages/shared/src/inbox-types.ts +++ b/packages/shared/src/inbox-types.ts @@ -198,6 +198,24 @@ export const EXTERNAL_INBOX_SOURCES = [ recordKind: "ticket", setup: "dynamic", }, + { + product: "hubspot", + label: "HubSpot", + description: TICKET, + dwSourceType: "Hubspot", + requiredTables: ["tickets"], + recordKind: "ticket", + setup: "dynamic", + }, + { + product: "intercom", + label: "Intercom", + description: CONVERSATION, + dwSourceType: "Intercom", + requiredTables: ["conversations"], + recordKind: "ticket", + setup: "dynamic", + }, { product: "kustomer", label: "Kustomer", diff --git a/packages/ui/src/features/inbox/components/utils/source-product-icons.tsx b/packages/ui/src/features/inbox/components/utils/source-product-icons.tsx index 87479d6758..a480c99c3c 100644 --- a/packages/ui/src/features/inbox/components/utils/source-product-icons.tsx +++ b/packages/ui/src/features/inbox/components/utils/source-product-icons.tsx @@ -176,4 +176,6 @@ export const SOURCE_PRODUCT_META: Partial< color: "var(--amber-9)", label: "Judge.me", }, + intercom: { Icon: ChatsIcon, color: "var(--blue-9)", label: "Intercom" }, + hubspot: { Icon: LifebuoyIcon, color: "var(--orange-9)", label: "HubSpot" }, };