Slack

Slack uses a bot token for API access and an app token for Socket Mode. It needs no public callback URL.

Configure the app

  1. Create an app at Slack API Apps and enable Socket Mode.
  2. Add bot scopes chat:write, chat:write.public, app_mentions:read, channels:read, groups:read, and im:history.
  3. Enable Events and subscribe to app_mention and message.im.
  4. Enable Interactivity for approval buttons.
  5. Create an app-level token with connections:write.
  6. Install or reinstall the app and copy the xoxb- bot token.
  7. Invite the bot to every required channel with /invite @WOML.

Store credentials

Terminal
woml secrets set SLACK_BOT_TOKEN
woml secrets set SLACK_APP_TOKEN

Use Slack

Triggers use comma-separated channel names without #. Notification destinations use whitespace-separated #channel aliases or conversation IDs. If events do not arrive, first confirm that Enable Events is on; if channel lookup reports missing_scope, add read scopes and reinstall the app.

Test a Slack trigger

WOML
<slack
  id="agentMessage"
  events="app-mention,direct-message"
  channels="woml-testing"
  bot-token="{{secrets.SLACK_BOT_TOKEN}}"
  app-token="{{secrets.SLACK_APP_TOKEN}}"
/>

Run the workflow, then mention the bot in #woml-testing or send it a direct message. The run receives normalized message data through context.payload.

Channel filters on triggers use comma-separated names without # or exact conversation IDs. The bot must be invited to private or restricted destinations.

Test approval delivery

Place Slack inside an approval's <notify> block. WOML sends interactive Approve and Reject controls through the shared Socket Mode host. Interactivity must be enabled even though no public callback URL is required.

Diagnose permissions

Slack tokens can authenticate successfully while still lacking channel lookup or posting scopes. After changing scopes, reinstall the app so the workspace grants the new set. Verify the app token starts with the expected Socket Mode identity and the bot token belongs to the installed workspace.

WOML redacts tokens and reports actionable scope information such as needed and provided instead of printing credentials.