n8n-pto-pipeline について
建設チーム向けの n8n ワークフローです。Google Sheets の作業割り当てを Telegram で職長に送り、返信で進捗を収集します。定時配信に対応し、更新内容をタスクシートへ反映します。
主な機能
- 01タスクの定時配信
- 02Google Sheets からタスクを取得
- 03Telegram による割り当て送信
- 04職長からの進捗返信の収集
- 05Sheets のタスク状態更新
活用シーン
- 01職長への日次タスク送信
- 02現場からの完了状況の収集
- 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_id | Telegram チャット ID |
| registered_at | 登録日時 |
Telegram ボットのセットアップ
- @BotFather でボットを作成します
- ボットのトークンを取得します
- n8n で Webhook を設定します
- ローカルでテストする場合は、n8n トンネルを使用します。
npx n8n --tunnel
利用の流れ
PTO エンジニアの場合:
- Google Sheets のタスクリストを開きます
- 現場監督を割り当ててタスクを追加します
- システムが毎朝 8:00 に自動送信します
現場監督の場合:
- Telegram ボットでタスクを受け取ります
- タスクのメッセージに状況を返信します
- システムが Google Sheets を自動更新します
マネージャーの場合:
- Google Sheets でリアルタイムの状況を確認します
- 過去のデータからレポートを作成します
- 現場監督や場所ごとの完了率を分析します
デプロイの選択肢
ローカル(テスト)
npx n8n --tunnel
クラウド VPS(本番環境)
- Hostinger n8n:約 5 ドル/月
- Amvera Cloud:約 170 RUB/月
- timeweb:約 590 RUB/月
拡張機能
- 完了した作業に写真を添付する
- 複雑なクエリに対応するため PostgreSQL と連携する
- リマインダー通知を追加する
- 日次・週次レポートを作成する
- プロジェクト管理システムと接続する
リソース
- ソース:DDC Telegram Community のディスカッション
- テンプレート:DDC GitHub リポジトリで利用できます
コメント
Markdown 対応