Integrations

Connect Project Feed with Slack, Discord, and other tools so your team stays in the loop where they already work.

Supported Platforms

Slack

Send Project Feed notifications to Slack, create posts with /projectfeed post, and link Slack accounts for attribution.

  • Published and updated post notifications
  • Channel-to-project mapping for notifications and digests
  • Scheduled digests for mapped channels
  • User account linking for attribution
  • Bot commands for post creation and help

Discord

Send Project Feed notifications to Discord, create posts with /feed post, and link Discord accounts for attribution.

  • Published and updated post notifications
  • Channel-to-project mapping for notifications and digests
  • Scheduled digests for mapped channels
  • User account linking for attribution
  • Bot commands for post creation and help

Setup Guide

  1. 1.

    Go to Settings

    Open your workspace settings and select the Integrations tab.

  2. 2.

    Pick a Platform

    Click Install on the platform you want to connect. You’ll be redirected to authorize the connection.

  3. 3.

    Authorize Access

    Grant Project Feed permission to post to your Slack or Discord workspace. OAuth tokens are encrypted at rest.

  4. 4.

    Map Channels

    Map Project Feed projects to specific channels for notifications and optional digests.

  5. 5.

    Set Up Digests (Optional)

    Turn on scheduled digests to bundle updates into periodic summaries instead of sending individual messages.

Provider Configuration

Configure provider dashboards against your Convex site URL. Store these secrets in Convex runtime environment variables as well as your app secret manager when they are read by Convex handlers.

Slack

Required scopes: chat:write, chat:write.public, channels:read, groups:read, commands, im:write

App URLs

  • OAuth redirect: /api/integrations/slack/callback
  • OpenID redirect: /api/integrations/slack/link/callback
  • Events request URL: /api/integrations/slack/events
  • Slash command URL: /api/integrations/slack/commands
  • Interactivity request URL: /api/integrations/slack/interactions

Environment

  • SLACK_CLIENT_ID
  • SLACK_CLIENT_SECRET
  • SLACK_SIGNING_SECRET

Discord

Required scopes: bot, applications.commands with permission integer 2147601408

App URLs

  • OAuth redirect: /api/integrations/discord/callback
  • Account-link redirect: /api/integrations/discord/link/callback
  • Interactions endpoint: /api/integrations/discord/events

Environment

  • DISCORD_CLIENT_ID
  • DISCORD_CLIENT_SECRET
  • DISCORD_PUBLIC_KEY
  • DISCORD_BOT_TOKEN

Channel Mapping

Channel mappings route Project Feed updates into a connected Slack or Discord channel. Each mapping links a project to a specific destination for published or updated post notifications and optional digests. Plain Slack and Discord messages are not imported.

Notifications

Published and updated project posts are routed to the mapped channel.

Digests

Daily or weekly summaries can be delivered to the mapped channel.

Commands & Linking

Connected users can create posts and link their accounts from the chat platform.

Security & Limits

Token Encryption

OAuth tokens are encrypted at rest. Tokens are never exposed in the UI after the initial authorization.

OAuth 2.0 Flow

Authorization uses the standard OAuth 2.0 code flow with encrypted state parameters to prevent CSRF attacks.

Signed Requests

Slack requests are verified with a signing secret. Discord interactions are verified with Ed25519 signatures.

Access Controls

Only workspace admins and owners can install integrations, and linked accounts map chat identities back to Project Feed users.