diff --git a/src/content/docs/factories/integrations/slack.mdx b/src/content/docs/factories/integrations/slack.mdx index 816906dc..a5e1fb72 100644 --- a/src/content/docs/factories/integrations/slack.mdx +++ b/src/content/docs/factories/integrations/slack.mdx @@ -1,9 +1,86 @@ --- -title: Slack integration +title: Connect a factory to Slack description: >- - Slack integration documentation for Warp Factories will be added in a follow-up PR. + Connect a factory to Slack so your team can start work with mentions, + direct messages, and automations, and get results back in the same thread. sidebar: label: "Slack" +topic: factories --- -Slack integration documentation for Warp Factories will land in a follow-up PR. +Connect a factory to Slack so your team can send it work without leaving their conversations. Each factory gets its own dedicated Slack app: mention the app in a channel or send it a direct message, and the factory picks up the request with the conversation as context, then posts progress and results back into the same thread. You can also set up automations that start work from Slack events without a mention. + +## Prerequisites and authorization + +You need permission to update the factory and install apps in the target Slack workspace. Workspace policy can require administrator approval. + +Installing the app grants the Slack permissions shown on the authorization screen. Filters on automations only control which events start work; they don't limit what the app can access. For workspace-level installation and removal behavior, see the [Slack platform integration](../../platform/integrations/slack). + +## Connect the factory + +If you select Slack while creating a factory, Warp tries to install the factory's Slack app automatically once the factory is created. If the installation can't complete (for example, because your workspace requires administrator approval), the factory is still created. Click **Add to Slack** to finish connecting. + +1. In factory setup, go to **Add your Factory to your team**. +2. In the **Slack** row, click **Add to Slack**. +3. Choose the target workspace and approve access. If Slack requires administrator approval, finish installation after approval. +4. Return to factory setup and confirm that **Slack** shows **Connected**. +5. Invite the factory's app to each channel where it will receive requests. Private channels require an invitation. + +To try it out, mention the app in a channel or send it a direct message. The app reacts with the eyes emoji (👀) to show it accepted the request. + +The app is the factory's persona in Slack: it carries the factory's name and avatar, and it stays in sync when you rename the factory. If your team runs several factories, each one appears in Slack as its own app, so a channel can host more than one factory and you choose which one to mention. + +## Start and continue work from Slack + +| Slack activity | Context used by the factory | Slack output | +| -------------------------------------- | ----------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| Mention the app in a channel or thread | The triggering message, available thread history, and supported attachments | An acknowledgment, progress updates, a final summary, and links to the run, issue, or pull request when available | +| Send the app a direct message | The direct-message conversation and supported attachments | An acknowledgment, progress updates, and links to results when available | +| Reply in an existing factory thread | The existing work item and your reply | A follow-up on the existing work item instead of new work | +| Slack activity matches an automation | The event details plus the automation's agent and instructions | A factory run, with results posted back to the source conversation when supported | + +A plain reply in a thread continues work only if that thread already has a factory work item; to start new work in a channel, mention the app. You can attach files to a request or a follow-up. The factory includes the files it supports, and a file it can't include doesn't stop the text of your request from going through. + +## Who can start work + +To start work with a mention or direct message, your Slack account must be linked to an active member of the factory's Warp team. If it isn't, the app prompts you to connect an account instead of starting work. + +Automations don't run as a requester: they run as the factory agent selected under **Agents**. An automation's conversation and author filters only decide which events start work; they don't change what the Slack app is authorized to access or the credentials the work runs with. + +## Configure Slack automations + +Use an automation to start work from Slack activity automatically, without anyone mentioning the app. For example, an automation can act on every message posted in a triage channel or on a specific emoji reaction. + +1. In the factory's control room, open **Automations**, then create or edit an automation. +2. Under **Triggers**, click **Add trigger** > **Slack**, then choose an event. +3. Select the conversations and people that the event must match. Click **More filters** to add the event's available content filters. +4. Choose the receiving agent under **Agents**, add any **Additional instructions**, then click **Save**. + +Slack automations support these events: + +- **App mentioned** - Filter by joined conversations, authors, and keywords. +- **Direct message received** - Filter by direct-message conversations, authors, and keywords. +- **Message posted in channel** - Filter by joined conversations, authors, and keywords. +- **Reaction added** - Filter by conversations, reactors, keywords, emoji, and reacted-message authors. +- **Member joined channel** - Filter by conversations and members. + +The **Conversations** picker only shows conversations the factory's app has joined. If a channel is missing, invite the app to it; for direct messages, send the app a DM first. Then refresh the automation editor. + +Avoid pointing **App mentioned** and **Message posted in channel** triggers at the same conversations. A channel message that mentions the app matches both triggers and starts two runs. + +## Follow work and review outputs + +The Slack thread where work started is also where you follow it: the factory posts progress and the final response there. Reply in the thread to add information or attachments while work is active, or to pick the same work item back up later. + +For an overview of your factory tasks, open the app's **Home** tab in Slack. It groups tasks by stage (Triage, Planning, Building, Reviewing, Completed, and Cancelled), offers stage and date filters, and links each task back to its Slack thread, factory run, issue, or pull request when available. + +A factory can create issues, branches, and pull requests, but your repository's review and merge rules still apply. Work that starts in Slack doesn't bypass required human review. + +## Troubleshooting and reconnection + +- **The app doesn't acknowledge a request** - Confirm the **Slack** row in factory setup shows **Connected**, check that you mentioned that factory's app, and invite the app to the channel. +- **A channel is missing from an automation** - Invite the app to that channel, then reload the **Conversations** picker. +- **Installation is pending** - Ask a Slack workspace administrator to approve the app, then finish the installation. +- **Two runs start for one mention** - Remove or narrow overlapping app-mention and channel-message triggers. + +Removing the app from your Slack workspace stops new requests from Slack for that factory; to reconnect it, return to factory setup and click **Add to Slack** again. Deleting the factory also removes its Slack connection. To route work into the factory from other tools, see [Connect your factory](../connect-your-factory).