mcpField
N
n8n-pto-pipeline

n8n-pto-pipeline

github.com/datadrivenconstruction生产力375103 次安装1 周前更新
代码仓库

关于 n8n-pto-pipeline

面向建筑团队的 n8n 工作流,通过 Telegram 将 Google Sheets 中的任务分发给工长,并收集状态回复。工作流可定时发送任务,并将更新写回任务表。

主要功能

  1. 01定时分发任务
  2. 02从 Google Sheets 读取任务
  3. 03通过 Telegram 发送任务
  4. 04收集工长状态回复
  5. 05在 Sheets 中更新任务状态

适用场景

  1. 01向工长发送每日任务
  2. 02收集现场完成情况
  3. 03在 Google Sheets 跟踪任务状态

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/datadrivenconstruction/ddc_skills_for_ai_agents_in_construction --skill n8n-pto-pipeline

安装后在 Claude Code 中输入/n8n-pto-pipeline确认已加载。

附带文件claw.jsoninstructions.md

详细介绍

n8n PTO-Foreman 工作流

商业案例

问题陈述

建筑行业的日常工作规划涉及:

  • 手动将 PTO(工程部门)的任务分配给现场施工队
  • 通过纸质方式或电话分配任务
  • 缺乏系统化的任务完成情况跟踪
  • 报告和状态更新延迟
解决方案

通过自动化 n8n 工作流,将 Google Sheets 任务列表与 Telegram 机器人连接起来,实现任务实时分配和状态收集。

业务价值
  • 实时分配 - 每天上午 8:00 自动发送任务
  • 数字化跟踪 - 所有分配和状态都集中在一个表格中
  • 移动优先 - 工头使用熟悉的 Telegram 界面
  • 无需安装应用 - 任何装有 Telegram 的手机都能使用

技术实现

架构
┌─────────────────┐    ┌─────────────┐    ┌─────────────────┐
│  Google Sheets  │───>│  n8n        │───>│  Telegram Bot   │
│  (Task List)    │    │  Pipeline   │    │  (To Foreman)   │
└─────────────────┘    └─────────────┘    └─────────────────┘
        ▲                     │                    │
        │                     │                    ▼
        │              ┌──────┴──────┐      ┌───────────┐
        └──────────────│   Status    │<─────│  Foreman  │
                       │   Update    │      │  Response │
                       └─────────────┘      └───────────┘
n8n 工作流组件
1. 早间触发器(上午 8:00)
{
  "nodes": [
    {
      "name": "Schedule Trigger",
      "type": "n8n-nodes-base.scheduleTrigger",
      "parameters": {
        "rule": {
          "interval": [
            {"field": "hours", "hoursInterval": 24}
          ]
        },
        "triggerTimes": {"item": [{"hour": 8, "minute": 0}]}
      }
    }
  ]
}
2. 从 Google Sheets 获取任务
{
  "name": "Get Today Tasks",
  "type": "n8n-nodes-base.googleSheets",
  "parameters": {
    "operation": "read",
    "sheetId": "YOUR_SHEET_ID",
    "range": "Tasks!A:F",
    "options": {}
  }
}
3. 按工头筛选任务
// Filter tasks for specific foreman based on chat_id
const chatId = $node["Telegram Trigger"].json["message"]["chat"]["id"];
const tasks = $input.all();

return tasks.filter(task =>
  task.json.foreman_chat_id === chatId.toString()
);
4. 格式化并通过 Telegram 发送
// Format task message
const tasks = $input.all();
let message = "📋 *Задачи на сегодня:*\n\n";

tasks.forEach((task, index) => {
  message += `*${index + 1}. ${task.json.task_name}*\n`;
  message += `   📍 Участок: ${task.json.location}\n`;
  message += `   ⏰ Срок: ${task.json.deadline}\n`;
  message += `   📝 ${task.json.description}\n\n`;
});

message += "\n_Ответьте на это сообщение статусом:_\n";
message += "✅ выполнил\n❌ не выполнил + причина";

return [{json: {message}}];
5. 状态更新处理器
// Parse foreman response and update status
const message = $node["Telegram Trigger"].json["message"]["text"];
const replyTo = $node["Telegram Trigger"].json["message"]["reply_to_message"];

let status = "в работе";
let comment = "";

if (message.toLowerCase().includes("выполнил")) {
  status = "выполнено";
} else if (message.toLowerCase().includes("не выполнил")) {
  status = "не выполнено";
  comment = message.replace(/не выполнил/i, "").trim();
}

return [{
  json: {
    task_id: replyTo.message_id,
    status: status,
    comment: comment,
    updated_at: new Date().toISOString()
  }
}];
Google Sheets 结构

任务工作表:

列说明
task_id唯一任务标识符
task_name任务标题
description详细说明
location工作地点
deadline截止日期/时间
foreman_chat_id已分配工头的 Telegram 聊天 ID
status当前状态
comment工头备注

工头工作表:

列说明
name工头姓名
chat_idTelegram 聊天 ID
registered_at注册时间戳
Telegram 机器人设置
  1. 通过 @BotFather 创建机器人
  2. 获取机器人令牌
  3. 在 n8n 中配置 webhook
  4. 如需本地测试,使用 n8n 隧道:
npx n8n --tunnel

使用流程

PTO 工程师:
  1. 打开 Google Sheets 任务列表
  2. 添加任务并分配工头
  3. 系统会在上午 8:00 自动发送任务
工头:
  1. 通过 Telegram 机器人接收任务
  2. 回复任务消息并附上状态
  3. 系统会自动更新 Google Sheets
经理:
  1. 在 Google Sheets 中查看实时状态
  2. 根据历史数据生成报告
  3. 按工头/地点分析完成率

部署选项

本地(测试)
npx n8n --tunnel
云 VPS(生产环境)
  • Hostinger n8n:约 $5/月
  • Amvera Cloud:约 170 RUB/月
  • timeweb:约 590 RUB/月

扩展

  • 为已完成的工作添加照片附件
  • 集成 PostgreSQL 以支持复杂查询
  • 添加提醒通知
  • 生成每日报告/每周报告
  • 连接到项目管理系统

资源

  • 来源:DDC Telegram 社区讨论
  • 模板:可在 DDC GitHub 代码库中获取

评论

支持 Markdown