Slack
Hierarch pushes real-time notifications into Slack channels. Design phase changes, feedback requests, and project milestones surface in the channels where your team already communicates.
Capabilities
- Phase change notifications (e.g. "Task moved to Review")
- Review request routing to specific channels or users
- Project milestone alerts (all tasks in Handoff phase)
- Daily or weekly digest of design progress
- Interactive messages with action buttons (approve, request changes)
Authentication
The Slack integration uses OAuth 2.0 (V2). When registering Hierarch as a Slack app:
App Configuration
| App Name | Hierarch |
| Redirect URI (prod) | https://hierarch.vercel.app/api/auth/callback/slack |
| Redirect URI (dev) | http://localhost:3000/api/auth/callback/slack |
| OAuth Grant Type | Authorization Code (V2) |
| Bot Token Prefix | xoxb- |
| User Token Prefix | xoxp- |
Required Bot Token Scopes
| chat:write | Post messages to channels the bot is added to |
| chat:write.customize | Post messages with a custom username and avatar |
| channels:read | List public channels for the channel picker |
| groups:read | List private channels the bot is a member of |
| users:read | Look up user profiles for @mention routing |
| users:read.email | Match Slack users to Hierarch users by email |
Optional Scopes
| reactions:write | Add emoji reactions to messages (e.g. checkmark on approval) |
| files:write | Upload screenshot artifacts as Slack file attachments |
| commands | Register slash commands (/hierarch status, /hierarch tasks) |
OAuth Flow
The Slack OAuth flow follows the standard V2 pattern:
1. User clicks "Connect Slack" in Hierarch settings
2. Redirect to:
https://slack.com/oauth/v2/authorize
?client_id=YOUR_CLIENT_ID
&scope=chat:write,channels:read,groups:read,users:read,users:read.email
&redirect_uri=https://hierarch.vercel.app/api/auth/callback/slack
&state=[random_state_token]
3. User authorizes the Hierarch app in their workspace
4. Slack redirects to the callback URL with an authorization code
5. Hierarch's serverless function exchanges the code:
POST https://slack.com/api/oauth.v2.access
client_id, client_secret, code, redirect_uri
6. Response includes bot_token (xoxb-) and team info
7. Token stored server-side in Supabase, associated with the userData Hierarch Reads
- Channel list (public and private the bot can see) for the notification channel picker
- User list for @mention routing on feedback requests
- User email addresses to match Slack identities with Hierarch accounts
Hierarch does not read message history, files, or any channel content. The integration is outbound-only: Hierarch pushes to Slack and does not pull from it.
Data Hierarch Writes
- Notification messages in designated channels
- Direct messages for feedback requests (if user opts in)
- Interactive message attachments with action buttons
All messages are posted by the Hierarch bot. The bot only posts to channels it has been explicitly added to. Users control which events trigger notifications through the Hierarch settings panel.
Notification Events
Users configure which events send Slack notifications in the settings panel:
| Event | Default | Description |
|---|---|---|
| Phase Change | On | Task moves between design phases |
| Review Requested | On | Task enters the Review phase, with optional @mention of reviewer |
| Handoff Complete | On | Task reaches Handoff phase (ready for development) |
| Project Complete | On | All tasks in a project reach Handoff |
| Task Overdue | Off | Task passes its due date without reaching Handoff |
| Daily Digest | Off | Summary of yesterday's phase changes and today's due tasks |
Message Format
Slack messages use Block Kit for rich formatting. Example notification for a phase change:
{
"channel": "C0123DESIGN",
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*Homepage Redesign* moved to *Review*\nProject: Marketing Site Refresh"
}
},
{
"type": "context",
"elements": [
{
"type": "mrkdwn",
"text": "Phase: Iterate → Review · <https://hierarch.vercel.app|Open in Hierarch>"
}
]
}
]
}Slack API Methods
Hierarch uses these Slack Web API methods:
| Method | Purpose |
|---|---|
| chat.postMessage | Post notification messages to channels |
| conversations.list | List channels for the notification channel picker |
| users.list | List workspace users for @mention routing |
| users.lookupByEmail | Match Hierarch users to Slack users |
| oauth.v2.access | Exchange authorization code for bot token |