跳转至

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 403URL 过期或错误重新生成 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 集成