Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 14 additions & 4 deletions apps/docs/providers/communications/slack.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ Scopes**:

```text
app_mentions:read
assistant:write
channels:read
channels:history
chat:write
Expand Down Expand Up @@ -122,6 +123,8 @@ Turn on **Event Subscriptions** and set **Request URL** to:
Subscribe to these bot events:

```text
app_context_changed
app_home_opened
app_mention
message.im
message.channels
Expand All @@ -143,11 +146,18 @@ Turn on **Interactivity & Shortcuts** and use the same request URL:
Roomote uses this endpoint for button clicks and other interactive Slack
payloads.

## App home and messages
## Agent messaging experience

If you want to start tasks by direct message, make sure the app can receive DMs.
Enable the app surfaces needed for messages to the bot, then keep the
`message.im` event subscription enabled.
Roomote-created apps enable Slack's current **Agent messaging experience**
(`features.agent_view`). This keeps conversations in the app's Messages tab,
opens Fast-mode responses in threads, and allows Slack to render native loading
states and streamed task cards.

For an existing manually configured app, open its Slack app settings, enable
the **Agents** feature, and select the Agent messaging experience. Add the
`assistant:write` scope and the `app_home_opened` and `app_context_changed`
events listed above, then reinstall the app and hard-refresh Slack. Keep
`message.im` enabled so direct messages continue reaching Roomote.

## Local URL changes

Expand Down
13 changes: 13 additions & 0 deletions apps/web/src/lib/slack-app-manifest.client.test.ts

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions apps/web/src/lib/slack-app-manifest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@ import {

export const SLACK_MANIFEST_BOT_SCOPES = [
'app_mentions:read',
'assistant:write',
'channels:read',
'channels:history',
'chat:write',
Expand All @@ -25,6 +26,8 @@ export const SLACK_MANIFEST_BOT_SCOPES = [
] as const;

export const SLACK_MANIFEST_BOT_EVENTS = [
'app_context_changed',
'app_home_opened',
'app_mention',
'entity_details_requested',
'function_executed',
Expand Down Expand Up @@ -64,6 +67,9 @@ export function buildSlackAppManifest({
messages_tab_enabled: true,
messages_tab_read_only_enabled: false,
},
agent_view: {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Enabling agent_view alone does not activate the response loop this PR documents. The current Slack client only posts ordinary messages; it never calls assistant.threads.setStatus (required after message.im to open the Agent thread and show its loading state) or the chat.*Stream methods needed for streamed task cards. Generated apps will therefore be switched to the Agent surface without the native loading/thread behavior claimed here. Please add the Agent response calls before enabling this manifest feature, or limit the change and documentation to the surface migration.

agent_description: SLACK_MANIFEST_DESCRIPTION,
},
bot_user: {
display_name: appName,
always_online: true,
Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading