Slack 工作流自动化
Slack 是全球最流行的团队沟通工具,除了聊天还能做工作流自动化:审批流程、自动通知、表单收集、定时提醒,用零代码的 Workflow Builder 就能搭建,连接 2600+ 应用,让重复工作自动化。
核心知识点
| 知识点 | 说明 |
|---|
| 工具定位 | 企业团队沟通 + 工作流自动化平台 |
| 核心优势 | 频道组织、2600+ 集成、Workflow Builder、Slack AI |
| 自动化工具 | Workflow Builder(零代码)+ Slack API(代码) |
| 最新特性 | Canvas(内置文档)、Slack AI、工作流增强 |
| 定价 | Free / Pro $8.75/人/月 / Business+ $15/人/月 |
| 竞品 | Microsoft Teams、Discord |
安装配置
=== 使用方式 ===
Web 版:https://slack.com
桌面版:Windows / Mac / Linux
移动版:iOS / Android
=== 团队设置 ===
1. 访问 slack.com → 创建 Workspace
2. 输入公司/团队名称
3. 邀请成员(邮箱)
4. 创建频道(Channel)
=== 频道规划建议 ===
#general 全体通知
#random 闲聊
#dev 开发团队
#data-analysis 数据分析
#paper-discussion 论文讨论
#standup 每日站会
#alerts 自动化告警
基本使用
1. 频道和消息
=== 频道类型 ===
Public Channel (#) 所有人可加入
Private Channel (🔒) 仅邀请可加入
Direct Message 私聊(1对1或小组)
Thread 消息回复线程(保持频道整洁)
=== 消息格式 ===
*加粗* 加粗文本
_斜体_ 斜体文本
~删除线~ 删除线
`代码` 行内代码
```代码块``` 多行代码
> 引用 引用文本
:emoji: 表情符号
=== 提及 ===
@username 提及个人
@here 提及频道中当前在线的人
@channel 提及频道中所有人(慎用)
=== 实用功能 ===
/remind 设置提醒
/poll 创建投票(需安装 Polly)
📌 Pin 置顶消息
⭐ Save 收藏消息
2. Workflow Builder(零代码自动化)
=== 创建工作流 ===
路径:Tools → Workflow Builder → Create
=== 示例 1:新成员欢迎流程 ===
触发器:When someone joins #general
步骤 1:发送欢迎消息
"欢迎 {{person}} 加入团队!"
步骤 2:发送私信
"以下是入职指南:[链接]"
=== 示例 2:每日站会收集 ===
触发器:每天早上 9:00(定时触发)
步骤 1:在 #standup 频道发送表单
- 昨天完成了什么?
- 今天计划做什么?
- 有什么阻碍?
步骤 2:收集回复并汇总
=== 示例 3:审批流程 ===
触发器:提交表单
步骤 1:发送审批请求给 @manager
步骤 2:等待审批(同意/拒绝按钮)
步骤 3:通知申请人结果
步骤 4:记录到 Google Sheets
3. 集成应用
=== 常用集成 ===
开发:
- GitHub: PR 通知、Issue 创建
- GitLab: 合并请求通知
- Sentry: 错误报警到频道
- CircleCI: 构建状态通知
项目管理:
- Jira: 创建和更新 Issue
- Linear: 任务状态同步
- Asana: 任务提醒
- Notion: 页面更新通知
文档:
- Google Drive: 文件分享和编辑通知
- Dropbox: 文件共享
- Confluence: 页面更新
监控:
- PagerDuty: 事件告警
- Datadog: 性能监控
- Grafana: 仪表盘告警
=== 安装集成 ===
左侧 Apps → Add apps → 搜索 → Install
高级用法
1. Slack Bot(代码自动化)
# 用 Python 创建 Slack Bot
# pip install slack_bolt
from slack_bolt import App # 导入 Slack Bolt
from slack_bolt.adapter.socket_mode import SocketModeHandler # Socket 模式
# 初始化 App
app = App(token="xoxb-your-bot-token") # Bot Token
# 监听消息
@app.message("hello") # 当有人说 hello
def handle_hello(message, say):
say(f"你好 <@{message['user']}>! 有什么可以帮你的?") # 回复
# 斜杠命令
@app.command("/分析") # /分析 命令
def handle_analysis(ack, command, say):
ack() # 确认收到
say(f"正在分析: {command['text']}") # 执行逻辑
# 启动
handler = SocketModeHandler(app, "xapp-your-app-token")
handler.start() # 启动 Bot
2. Webhook 通知
# 用 Incoming Webhook 发送通知到 Slack
import requests # HTTP 请求
webhook_url = "https://hooks.slack.com/services/YOUR/WEBHOOK/URL"
# 发送简单消息
requests.post(webhook_url, json={
"text": "✅ 分析流程完成!" # 消息内容
})
# 发送格式化消息
requests.post(webhook_url, json={
"blocks": [
{
"type": "header",
"text": {"type": "plain_text", "text": "📊 分析报告"}
},
{
"type": "section",
"fields": [
{"type": "mrkdwn", "text": "*样本数:* 100"},
{"type": "mrkdwn", "text": "*物种数:* 500"},
{"type": "mrkdwn", "text": "*Shannon:* 3.45"},
{"type": "mrkdwn", "text": "*状态:* ✅ 完成"}
]
}
]
})
3. 生信流程集成
# Snakemake/Nextflow 完成后通知 Slack
# 在流程最后添加
curl -X POST -H 'Content-type: application/json' \
--data '{"text":"🧬 宏基因组分析流程完成!样本: 50个,耗时: 3h"}' \
https://hooks.slack.com/services/YOUR/WEBHOOK/URL
# Python 脚本完成后通知
import requests
def notify_slack(message):
"""发送 Slack 通知"""
webhook = "https://hooks.slack.com/services/YOUR/WEBHOOK/URL"
requests.post(webhook, json={"text": message})
# 在分析脚本最后调用
notify_slack("✅ 差异分析完成,发现 150 个显著差异物种")
4. Canvas(内置文档)
=== Canvas = Slack 中的轻量文档 ===
1. 在频道中点击 + → Canvas
2. 创建富文本文档
3. 支持:
- 标题和段落
- 列表和待办事项
- 代码块
- 表格
- 嵌入文件和链接
4. 团队成员可以实时协作编辑
5. 替代"在频道中发长消息"的场景
常见报错与解决
| 报错信息 | 原因 | 解决方法 |
|---|
| Webhook 403 | URL 过期或错误 | 重新生成 Webhook URL |
| Bot 无响应 | Token 错误或权限不足 | 检查 OAuth Scopes |
| 消息历史丢失 | Free 版 90 天限制 | 升级到 Pro 版 |
| 通知太多 | 频道太杂 | 设置频道通知偏好(Mute/All/Mentions) |
速查表
===== Slack 速查表 =====
# 快捷键
Ctrl+K 跳转频道/私信
Ctrl+Shift+K 私信列表
Ctrl+F 搜索
Ctrl+N 新消息
Ctrl+Shift+M 活动日志
Ctrl+. 侧边栏开关
# 消息格式
*加粗* _斜体_ ~删除~ `代码`
# 斜杠命令
/remind @user 明天 提交报告
/status 忙碌中
/mute 静音频道
/invite @user 邀请到频道
/topic 新主题 设置频道话题
# Workflow Builder
Tools → Workflow Builder → Create
触发器 → 步骤 → 变量 → 发布
# Bot 开发
pip install slack_bolt
使用 Bot Token + Socket Mode
# Webhook 通知
curl -X POST -H 'Content-type: application/json' \
--data '{"text":"消息"}' WEBHOOK_URL
# 定价
Free: 90 天消息历史,10 个集成
Pro: $8.75/人/月,无限历史
Business+: $15/人/月,含 Slack AI
Enterprise Grid: 定制
# Slack vs Discord vs Teams
# Slack: 企业协作标准,集成最丰富
# Discord: 社区运营,语音频道强
# Teams: 微软生态,Office 集成