Skip to content

feat(data-warehouse): add 30 warehouse sources to the self-driving inbox#3597

Open
Gilbert09 wants to merge 1 commit into
mainfrom
tom/inbox-tier1-sources
Open

feat(data-warehouse): add 30 warehouse sources to the self-driving inbox#3597
Gilbert09 wants to merge 1 commit into
mainfrom
tom/inbox-tier1-sources

Conversation

@Gilbert09

Copy link
Copy Markdown
Member

Problem

The Self-driving Inbox let users connect only 5 warehouse sources (GitHub, Linear, Jira,
Zendesk, pganalyze) even though PostHog supports ~500. The backend signals scout now emits
from 30 more sources, but there was no way to toggle or connect them in the app.

Changes

Wires 30 new warehouse sources into the Self-driving sources UI — support desks
(Freshdesk, Freshservice, Front, Gorgias, Kustomer, Dixa, Plain), issue trackers (GitLab,
Gitea, Shortcut), error tracking (Sentry, Rollbar, Bugsnag, Honeybadger, Raygun), security
scanners (Snyk, SonarQube, Semgrep, Rapid7 InsightVM), and product feedback / reviews
(Featurebase, Frill, Aha, UserVoice, Productboard, Canny, AskNicely, Retently, Appfigures,
AppFollow, Judge.me).

The inbox source wiring was hand-coded per source across ~8 files, which doesn't scale. This
PR refactors it to be data-driven:

  • A single EXTERNAL_INBOX_SOURCES registry in packages/shared/src/inbox-types.ts is the
    source of truth (product, label, description, DWH type, tables, record kind, setup flow).
  • The toggle grid, DataSourceSetup switch, source-type map, DWH connection map, icons, and
    filter options all derive from it. Adding a source is now one registry entry.
  • The "External connections" column renders from the registry (with a memoized per-source
    card) instead of hand-coded <SignalSourceToggleCard>s.
  • Credential sources route through the existing generic DynamicSourceSetupno per-source
    form code
    . The legacy GitHub repo-picker / Zendesk / pganalyze flows are unchanged.
  • Adds two record kinds (feedback, review), expands the SignalSourceConfig +
    analytics-event source_product unions, and forces full-refresh sync for issue-like records
    (issues, findings, feedback, reviews) while tickets stay append-only.

The core SignalSourceService mirror and the mobile SourceProduct type were kept consistent.

Deploy ordering: the backend PostHog PR (PostHog/posthog#72378) — new SignalSourceProduct
enum values + migration — must ship first, since the toggle calls createSignalSourceConfig
with these source_product values and the model rejects unknown ones (400).

How did you test this?

Automated (run by me):

  • turbo typecheck for @posthog/ui, @posthog/core, @posthog/shared, @posthog/api-client,
    and @posthog/mobile — all pass.
  • pnpm --filter @posthog/shared build — the published type builds.
  • biome check on all changed files — clean.

Not done: no manual click-through of the connect flow in a running app (the generic
DynamicSourceSetup path is already exercised by the shipped Linear/Jira sources this reuses).

Wire the 30 new signal sources (support desks, issue trackers, error
tracking, security scanners, product feedback and reviews) into the
Self-driving sources UI so users can toggle and connect them.

Refactors the inbox source wiring to be data-driven: a single shared
EXTERNAL_INBOX_SOURCES registry (packages/shared) is the source of truth,
and the toggle grid, setup switch, source-type map, DWH connection map,
icons, and filter options all derive from it — so adding a source is now
one registry entry rather than edits across ~8 files. The External
connections column renders from the registry instead of hand-coded cards.

Credential sources route through the existing generic DynamicSourceSetup
form (no per-source form code); the legacy GitHub/Zendesk/pganalyze flows
are unchanged. Adds two new record kinds (feedback, review), expands the
SignalSourceConfig/analytics unions, and forces full-refresh sync for
issue-like records (issues, findings, feedback, reviews) while tickets
stay append-only.

Requires the posthog/posthog signals PR (new SignalSourceProduct enum
values + migration) to ship first, since the toggle creates configs with
these source_product values.
@trunk-io

trunk-io Bot commented Jul 20, 2026

Copy link
Copy Markdown

Merging to main in this repository is managed by Trunk.

  • To merge this pull request, check the box to the left or comment /trunk merge below.

After your PR is submitted to the merge queue, this comment will be automatically updated with its status. If the PR fails, failure details will also be posted here

@github-actions

Copy link
Copy Markdown

React Doctor found 2 issues in 1 file · 2 warnings.

2 warnings

src/features/inbox/components/SignalSourceToggles.tsx

Reviewed by React Doctor for commit 313ed86.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant