Part of #68. Asked by Michael on 2026-09-22.
What to build
On the workflows Channels page, every configured email sender shows its integration id with a copy button, so a person writing a workflow in code can paste it into from: { integrationIds: [<id>] } without opening the browser's developer tools or the API.
- The id sits beside the sender in the list row, as plain text with a copy control (
CopyToClipboardInline from lib/components/CopyToClipboard), never as an editable field.
- The tooltip or helper text says what the id is for in one short line, sentence case, no jargon: for example "Integration id. Use it as
integrationIds in a workflow defined in code."
- Same treatment for the other channel types on that page only if they share one row component and it costs nothing; otherwise email only.
- Nothing else on the page changes.
Start at products/workflows/frontend/Channels/MessageChannels.tsx and follow it to the component that renders the rows (it may be a shared integrations list under frontend/src/scenes/settings/; if so, add the id there behind a prop so other settings pages do not change).
Write scope
products/workflows/frontend/Channels/**
- The shared row component the page uses, if the id has to live there, behind a prop
- One story for the row with the id, in the same directory
Proof gate
Blocked by
Nothing.
Stack base and ship target
- Branch
feat/workflows-channel-integration-id cut from upstream/master.
- A draft PR against upstream
PostHog/posthog, --head Silthus:feat/workflows-channel-integration-id. It stays a draft until Michael says otherwise. Nothing merges into the fork's master.
- Invoke
writing-ui-components, writing-user-facing-copy, writing-tests, reviewing-with-coderabbit and writing-pr-descriptions.
Part of #68. Asked by Michael on 2026-09-22.
What to build
On the workflows Channels page, every configured email sender shows its integration id with a copy button, so a person writing a workflow in code can paste it into
from: { integrationIds: [<id>] }without opening the browser's developer tools or the API.CopyToClipboardInlinefromlib/components/CopyToClipboard), never as an editable field.integrationIdsin a workflow defined in code."Start at
products/workflows/frontend/Channels/MessageChannels.tsxand follow it to the component that renders the rows (it may be a shared integrations list underfrontend/src/scenes/settings/; if so, add the id there behind a prop so other settings pages do not change).Write scope
products/workflows/frontend/Channels/**Proof gate
pnpm --filter=@posthog/frontend typescript:checkpasseshogli ci:preflight --stricton pushBlocked by
Nothing.
Stack base and ship target
feat/workflows-channel-integration-idcut fromupstream/master.PostHog/posthog,--head Silthus:feat/workflows-channel-integration-id. It stays a draft until Michael says otherwise. Nothing merges into the fork'smaster.writing-ui-components,writing-user-facing-copy,writing-tests,reviewing-with-coderabbitandwriting-pr-descriptions.