You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/channels/slack.md
+28-12Lines changed: 28 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1215,6 +1215,17 @@ Notes:
1215
1215
- Slack expects shortcodes (for example `"hourglass_flowing_sand"`).
1216
1216
- The reaction is best-effort and cleanup is attempted automatically after the reply or failure path completes.
1217
1217
1218
+
## Voice input
1219
+
1220
+
To speak to OpenClaw in Slack today, send a Slack audio clip to the OpenClaw app. Slackbot's dictation microphone is a separate Slack-owned feature, not an app API.
1221
+
1222
+
-**[Slackbot voice dictation](https://slack.com/help/articles/202026038-How-to-use-Slackbot)** lives inside the user's private Slackbot conversation. Slack turns the recording into a Slackbot prompt but does not emit an audio file, dictation event, prompt, or input-source marker to third-party Slack apps through the Events API. The OpenClaw Slack plugin cannot enable or receive it.
1223
+
-**[Slack audio clips](https://slack.com/help/articles/4406235165587-Record-audio-and-video-clips-in-Slack)** are stored Slack files that can be posted in an OpenClaw DM, channel, or thread. OpenClaw downloads an accessible clip with the bot token, normalizes Slack's clip MIME metadata, and sends it through the shared [audio transcription pipeline](/nodes/audio). The recommended app manifest includes the required `files:read` scope.
1224
+
1225
+
Audio clips and Slackbot dictation have different privacy semantics: clips follow Slack file-retention policy and OpenClaw downloads them for transcription, while Slack says dictation audio is not stored.
1226
+
1227
+
In a channel with `requireMention: true`, include a typed mention of the bot with a captionless audio clip, or send the clip in a DM. Slack clip transcription currently happens after the channel mention gate.
1228
+
1218
1229
## Media, chunking, and delivery
1219
1230
1220
1231
<AccordionGroup>
@@ -1570,19 +1581,20 @@ openclaw pairing list slack
1570
1581
</Accordion>
1571
1582
</AccordionGroup>
1572
1583
1573
-
## Attachment vision reference
1584
+
## Attachment media reference
1574
1585
1575
-
Slack can attach downloaded media to the agent turn when Slack file downloads succeed and size limits permit. Image files can be passed through the mediaunderstanding path or directly to a vision-capable reply model; other files are retained as downloadable file context rather than treated as image input.
1586
+
Slack can attach downloaded media to the agent turn when Slack file downloads succeed and size limits permit. Audio clips can be transcribed, image files can pass through the media-understanding path or directly to a vision-capable reply model, and other files remain available as downloadable file context.
1576
1587
1577
1588
### Supported media types
1578
1589
1579
1590
| Media type | Source | Current behavior | Notes |
| Slack audio clips | Slack file URL | Downloaded and routed through shared audio transcription | Requires `files:read` and a working `tools.media.audio` model or CLI |
1581
1593
| JPEG / PNG / GIF / WebP images | Slack file URL | Downloaded and attached to the turn for vision-capable handling | Per-file cap: `channels.slack.mediaMaxMb` (default 20 MB) |
1582
1594
| PDF files | Slack file URL | Downloaded and exposed as file context for tools such as `download-file` or `pdf`| Slack inbound does not convert PDFs into image-vision input automatically |
1583
1595
| Other files | Slack file URL | Downloaded when possible and exposed as file context | Binary files are not treated as image input |
1584
1596
| Thread replies | Thread starter files | Root-message files can be hydrated as context when the reply has no direct media | File-only starters use an attachment placeholder |
1585
-
| Multi-image messages | Multiple Slack files | Each file is evaluated independently | Slack processing is capped at eight files per message |
1597
+
| Multi-file messages| Multiple Slack files | Each file is evaluated independently | Slack processing is capped at eight files per message |
1586
1598
1587
1599
### Inbound pipeline
1588
1600
@@ -1591,8 +1603,8 @@ When a Slack message with file attachments arrives:
1591
1603
1. OpenClaw downloads the file from Slack's private URL using the bot token.
1592
1604
2. The file is written to the media store on success.
1593
1605
3. Downloaded media paths and content types are added to the inbound context.
1594
-
4.Image-capable model/tool paths can use image attachments from that context.
1595
-
5.Non-image files remain available as file metadata or media references for tools that can handle them.
1606
+
4.Audio clips are routed to the shared transcription pipeline; image-capable model/tool paths can use image attachments from the same context.
1607
+
5.Other files remain available as file metadata or media references for tools that can handle them.
1596
1608
1597
1609
### Thread-root attachment inheritance
1598
1610
@@ -1615,22 +1627,26 @@ When a single Slack message contains multiple file attachments:
1615
1627
### Size, download, and model limits
1616
1628
1617
1629
-**Size cap**: Default 20 MB per file. Configurable via `channels.slack.mediaMaxMb`.
1630
+
-**Audio transcription cap**: `tools.media.audio.maxBytes` also applies when the downloaded file is sent to a transcription provider or CLI.
1618
1631
-**Download failures**: Files that Slack cannot serve, expired URLs, inaccessible files, oversize files, and Slack auth/login HTML responses are skipped instead of being reported as unsupported formats.
1619
1632
-**Vision model**: Image analysis uses the active reply model when it supports vision, or the image model configured at `agents.defaults.imageModel`.
| Expired Slack file URL | File skipped; no error shown | Re-upload the file in Slack |
1626
-
| Vision model not configured | Image attachments are stored as media references, but not analyzed as images | Configure `agents.defaults.imageModel` or use a vision-capable reply model |
1627
-
| Very large images (> 20 MB by default) | Skipped per size cap | Increase `channels.slack.mediaMaxMb` if Slack allows |
1628
-
| Forwarded/shared attachments | Text and Slack-hosted image/file media are best-effort | Re-share directly in the OpenClaw thread |
1629
-
| PDF attachments | Stored as file/media context, not automatically routed through image vision | Use `download-file` for file metadata or the `pdf` tool for PDF analysis |
| Expired Slack file URL | File skipped; no error shown | Re-upload the file in Slack |
1639
+
| Audio transcription unavailable | Clip remains attached but no transcript is produced | Configure `tools.media.audio` or install a supported local transcription CLI |
1640
+
| Captionless clip in a mention-gated channel | Dropped before clip transcription | Add a typed bot mention or send the clip in a DM |
1641
+
| Vision model not configured | Image attachments are stored as media references, but not analyzed as images | Configure `agents.defaults.imageModel` or use a vision-capable reply model |
1642
+
| Very large images (> 20 MB by default) | Skipped per size cap | Increase `channels.slack.mediaMaxMb` if Slack allows |
1643
+
| Forwarded/shared attachments | Text and Slack-hosted image/file media are best-effort | Re-share directly in the OpenClaw thread |
1644
+
| PDF attachments | Stored as file/media context, not automatically routed through image vision | Use `download-file` for file metadata or the `pdf` tool for PDF analysis |
Copy file name to clipboardExpand all lines: docs/nodes/audio.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -174,7 +174,7 @@ Lowercase variables take precedence over uppercase; `NO_PROXY`/`no_proxy` entrie
174
174
175
175
## Mention detection in groups
176
176
177
-
When `requireMention: true` is set for a group chat, OpenClaw transcribes audio **before** checking for mentions. This lets voice notes pass the mention gate even when the message has no text body.
177
+
On channels that support audio preflight, OpenClaw transcribes audio **before** checking for mentions when `requireMention: true` is set for a group chat. This lets a captionless voice note pass the mention gate when its transcript contains a configured mention pattern. Channel-specific docs describe transports that require a typed mention instead.
0 commit comments