Slack
Slack publishing turns connector outputs into short team-visible updates. It is used for feedback submissions, no-new-feedback status messages, and product-usage summaries.
The connector layer does not replace Slack as the discussion space. It moves the most useful Typeform and PostHog information into the channel where the team already works.
CDP Index mention app
The custom Slack app is named CDP Index. When a user writes @CDP Index <question>, Slack sends an app_mention event to /slack/events. The Pages Function verifies Slack's signing secret, acknowledges immediately, calls the shared CDP Index service with the same search_index tool used by MCP, and replies in a thread with linked results.
Deploy and connect
- Create a Slack app from the repository's
manifest.json, or apply the manifest to the existing app. - Add
SLACK_BOT_TOKENandSLACK_SIGNING_SECRETas encrypted variables on thecdp-indexCloudflare Pages project. - Deploy the existing Pages project with
npm run deploy. The Events API URL ishttps://cdp-index.pages.dev/slack/events. - Install or reinstall the app in the workspace after scope changes, invite it to a channel, and test
@CDP Index what is the latest Adapt Action Explorer feedback?.
Only app_mentions:read and chat:write are required. The bot does not need channel-history scopes because Slack sends the mentioned message in the event payload. Keep the signing secret and bot token out of Git.
The HTTP Events API on the existing Cloudflare deployment is the preferred production shape. Socket Mode is useful for local development, but requires a continuously running WebSocket process and an additional app-level token.
Both /mcp and /slack/events are transport adapters over src/services/cdp-index.ts. Keeping search in-process means the Slack handler uses the same generated data, tool definitions, environment-resolved configuration, and result shape as MCP without calling back through the public network.
Operating Notes
- Keep messages compact and readable.
- Update existing posts when the source record is already represented in Slack.
- Do not include secret tokens, raw credentials, or unnecessary private context in published messages.