* docs(hub): align public docs with v0.3 Bring the public workflow, API, authority, activity, and self-hosting guidance in line with the released Hub contracts. Clarify the public HTTPS boundary required by provider events while keeping Hub and PostgreSQL private. * docs(hub): clarify daemon logout scope * docs(hub): restore Compose path and simplify TLS guidance * docs(hub): link the single-repo-team-bot example
1.5 KiB
title, description, nav, order, category
| title | description | nav | order | category |
|---|---|---|---|---|
| Slack triggers | Configure Slack mentions and thread replies in one workflow file. | Slack | 68 | Hub |
Slack triggers
slack.mention fires when the bot is mentioned in a channel where it is present. Direct messages, slash commands, and interactive components do not produce this trigger.
.paseo/workflows/slack-help.yml:
name: slack-help
on: slack.mention
max_runtime: 1h
filters:
workspace: T01234567
channels: [C01234567]
from_users: [U01234567]
steps:
- id: answer
environment: dev
max_runtime: 30m
idle_timeout: 5m
agent: codex
prompt:
- text: |
Answer with hub.reply, then call hub.finish_execution.
${{ paseo.prompt }}
allow_outputs:
- { type: slack.reply, max: 1, required: true }
Slack filters use IDs, not display names. from_users matches the author, workspace the team, and channels the channel. pattern is a required prefix after the mention; contains is its legacy alias and has the same prefix behavior. All filters must pass.
The reply posts in the triggering thread. A root message gets a thread; a threaded message stays there. slack.reply grants hub.reply, but does not add reply instructions to the prompt.
Leading declared inputs follow the mention:
@Paseo repo=project agent=claude investigate the failed sync
Hub consumes consecutive declared headers and exposes the remainder as ${{ paseo.prompt }}. See Workflows.