Skip to content

Slack

Slack is the primary participation surface for non-owner members of a matic org. The Slack channel normalizes messages, mentions, file uploads, and interactive events into canonical Signal objects at the boundary, so the core runtime never sees Slack-native payloads.

This section covers the full Slack integration lifecycle, from app registration and channel declaration through ingestion, routing, thread mapping, rendering, and notification delivery. It also explains how outbound replies, HITL approval requests, and policy-driven notifications return to the correct Slack workspace and thread.

App Setup

App Setup - Register a Slack app, configure OAuth scopes and tokens, and declare the channel in your org's channels.yaml.

Event Ingestion

Event Ingestion - Receive messages, file uploads, reactions, and interactive payloads through the Slack Bolt listener, then normalize them into SignalPayload objects with staged files and channel metadata.

Mention Routing

Mention Routing - Parse @agent, @group, and scope mentions from Slack messages into routing hints that target a specific agent, a group, or Auto Matic for triage.

Thread Context

Thread Context - Map Slack threads to matic sessions so conversation history persists across turns and can resume across channels.

Slash Command Binding

Slash Command Binding - Bind slash commands such as /matic status to the signal pipeline so they follow the same interpret-and-resolve flow as regular messages.

Block Kit Renderer

Block Kit Renderer - Format outbound Slack messages as Block Kit blocks for HITL approval buttons, structured data tables, code blocks, and other rich interactive content.

Notification Delivery

Notification Delivery - Route policy-driven notifications such as budget warnings, run failures, and HITL escalations to Slack channels and threads based on notification-policy.yaml rules.