Skip to content

feat(adapter): Implement Slack Channel Adapter #27

@Shanvit7

Description

@Shanvit7

Description

Implement the Slack channel adapter to enable bidirectional communication between Slack workspaces and the OpenZosma orchestrator. This involves:

  • Define and implement the ChannelAdapter interface as the common contract for all channel adapters
  • Build the Slack adapter supporting both Socket Mode and Events API ingress
  • Map Slack threads (channel + thread_ts) to orchestrator sessions
  • Resolve Slack users to OpenZosma identities via the integrations table
  • Stream agent responses back to Slack threads as threaded replies
  • Handle Slack-specific concerns: rate limits, retry headers, message formatting (mrkdwn → plain text), and webhook verification
  • Register and initialize adapters at gateway startup

Motivation

Currently, users can only interact with agents through the REST API, WebSocket, or A2A protocol — all of which require direct integration. Slack is the most common workspace communication tool for teams and enterprises. Adding a Slack adapter allows users to interact with agents directly from their existing Slack channels without leaving their workflow. This is a high-value integration that:

Lowers the barrier to adoption — no separate UI needed
Enables team-wide access to agents in shared channels
Supports enterprise use cases where Slack is the primary collaboration surface
Establishes the ChannelAdapter pattern that WhatsApp and future adapters will follow

Affected package(s)

grpc, gateway, adapters/slack, orchestrator, db

Alternatives considered

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions