mcpField
N
n8n-pto-pipeline

n8n-pto-pipeline

github.com/datadrivenconstruction生産性375103 回インストール1 週間前に更新
リポジトリ

n8n-pto-pipeline について

建設チーム向けの n8n ワークフローです。Google Sheets の作業割り当てを Telegram で職長に送り、返信で進捗を収集します。定時配信に対応し、更新内容をタスクシートへ反映します。

主な機能

  1. 01タスクの定時配信
  2. 02Google Sheets からタスクを取得
  3. 03Telegram による割り当て送信
  4. 04職長からの進捗返信の収集
  5. 05Sheets のタスク状態更新

活用シーン

  1. 01職長への日次タスク送信
  2. 02現場からの完了状況の収集
  3. 03Google 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(エンジニアリング)から現場の作業員への手作業によるタスク配分
  • 紙または電話によるタスク割り当て
  • タスクの完了状況を体系的に追跡できない
  • 報告や状況更新の遅れ
解決策

Google Sheets のタスクリストと Telegram ボットを接続し、タスクのリアルタイム配信と状況の収集を実現する n8n パイプラインを自動化します。

ビジネス価値
  • リアルタイム配信 - タスクを毎朝 8:00 に自動配信します
  • デジタル追跡 - すべての割り当てと状況を 1 つのテーブルで管理します
  • モバイルファースト - 現場監督は使い慣れた Telegram のインターフェースを利用できます
  • アプリのインストール不要 - Telegram を使えるスマートフォンならどれでも利用できます

技術的な実装

アーキテクチャ
┌─────────────────┐    ┌─────────────┐    ┌─────────────────┐
│  Google Sheets  │───>│  n8n        │───>│  Telegram Bot   │
│  (Task List)    │    │  Pipeline   │    │  (To Foreman)   │
└─────────────────┘    └─────────────┘    └─────────────────┘
        ▲                     │                    │
        │                     │                    ▼
        │              ┌──────┴──────┐      ┌───────────┐
        └──────────────│   Status    │<─────│  Foreman  │
                       │   Update    │      │  Response │
                       └─────────────┘      └───────────┘
n8n パイプラインのコンポーネント
1. 朝のトリガー(8:00 AM)
{
  "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 Community のディスカッション
  • テンプレート:DDC GitHub リポジトリで利用できます

コメント