Contents
PR Summary
What problems was I solving
The Integrations page showed Slack as a "coming soon" placeholder and could not accurately reflect the live WorkOS connection state because Pipes-backed connections were not synced into the integrations table. There was also no backend service to send tenant notifications to Slack, so users could not pick a channel or subscribe to scheduled digests.
What user-facing changes did I ship
Slack is now a real integration on the Integrations page, with connection-health indicators and a channel-setup section. A new "Slack notifications" section in Notification preferences lets users choose daily/weekly cadence, select analytics and/or digest content, and send a test message. Scheduled digests are posted to the configured Slack channel.
How I implemented it
A new modular slackbot-service (api/core/ports/repositories/adapters/app/impl/workflows/migrations) is registered in the service registry, exposed via web-service tRPC and management gateway GraphQL, and scheduled through a new Temporal task queue. Slack is configured as a WorkOS Pipes provider with web and Slackbot bindings; Pipes connections are synced when the widget token loads. Tenant channel, cadence, and content preferences are stored in a new slackbot_service Postgres table, and a daily/weekly workflow aggregates page analytics before posting a formatted Slack message.
Description for the changelog
Added a Slackbot service that sends daily and weekly tenant digests to a configurable Slack channel. Slack is now available on the Integrations page with connection-health indicators, and users can enable cadence and content preferences from Notification settings. Pipes-backed integration connections are now synced on widget token load so the UI reflects the real WorkOS state.