Asana Slack n8n
Asana + Slack + n8n 自动化:完整实战
分享我搭建的项目管理自动化方案:项目启动时自动创建工序任务,前置完成后自动通知下一步负责人。
整体架构
┌──────────────┐ ┌─────────────────┐ ┌────────────────┐
│ 知识库 Git │────▶│ 工作流 A │────▶│ Asana │
│ 工序表文件 │ │ 项目启动 │ │ 创建工序任务 │
└──────────────┘ └────────┬────────┘ └────────────────┘
│ Asana Webhook
▼
┌─────────────────┐ ┌────────────────┐
│ 工作流 B │────▶│ Slack │
│ 工序完成提醒 │ │ 项目专用频道 │
└─────────────────┘ └────────────────┘ 核心组件
Asana
任务管理、负责人分配、依赖关系
Slack
实时通知、项目频道沟通
n8n
工作流引擎、自动化编排
工序表设计
工序表存储在知识库中(CSV 格式),包含:
序号,工序名称,负责人邮箱,持续时间(天),前置工序序号,Slack频道
1,需求确认,lysander@janusd.com,1,,#proj-alpha
2,UI设计,andrey@janusd.com,3,1,#proj-alpha
3,前端开发,wissame@janusd.com,5,2,#proj-alpha
4,后端开发,michaelb@janusd.com,5,2,#proj-alpha
5,系统集成,lysander@janusd.com,2,"3,4",#proj-alpha
6,测试验收,andrey@janusd.com,3,5,#proj-alpha
7,部署上线,lysander@janusd.com,1,6,#proj-alpha 工作流 A:项目启动
触发时机:Asana 中「项目启动」任务被创建
Asana Trigger
→ 解析任务信息
→ 读取工序表(HTTP Request)
→ 解析CSV
→ 批量查询用户ID(转换为 Asana User ID)
→ 循环创建任务(executeOnce: false)
→ 批量设置依赖(Code 节点 + HTTP Request)
→ 创建Slack频道 工作流 B:工序完成提醒
触发时机:Asana 任务 completed 字段变为 true
Asana Trigger(监听任务更新)
→ IF(完成 && 是工序任务)
→ 获取任务详情
→ 查询下游依赖任务
→ 获取负责人
→ 发送 Slack 通知(Block Kit 格式) 关键配置要点
1. executeOnce 的使用
循环创建任务时,executeOnce 必须设为 false。
而查询 Lysander 的 User ID 时,executeOnce 设为 true。
2. 依赖设置
通过 Code 节点构建依赖映射,然后调用 Asana API:
POST /tasks/{gid}/addDependencies
3. Slack 频道命名
格式:#proj-{项目标识}
在 Asana 任务的 notes 字段存储 SLACK_CHANNEL 映射
效果
- 项目启动只需在 Asana 创建一个任务
- 所有工序自动创建、分配负责人
- 工序完成自动通知下一步负责人
- Slack 频道记录完整项目沟通历史