このワークフローについて
MONDAY GET FULL ITEM ワークフロー分析
**「MONDAY GET FULL ITEM」**と題されたこのN8nワークフローテンプレートは、Monday.comの特定のアイテム(「パルス」とも呼ばれる)から、その列の値、ボードリレーション経由で関連付けられたアイテム、およびサブアイテムを含む包括的なデータを抽出するように設計されています。目標は、レポート作成、他のシステムとの統合、データ同期などの下流での使用のために、ネストされたすべてのリレーショナルデータを単一の構造化されたJSON出力に集約することです。
このワークフローは、ベースアイテムだけでなく、リンクされたパルス(ボードリレーション列経由)やサブアイテムも再帰的にプルし、それらのデータを簡単に利用できる形式に正規化することで、Monday.comの階層構造の深いトラバーサルをサポートします。
📌 ワークフローの機能
このワークフローは、以下の内容を含むMonday.comアイテムの完全なスナップショットを取得します。
- 基本的なアイテムメタデータ(名前、ID)
- 列IDと列名の両方でインデックス化されたすべての列の値
- ボード関連アイテム(「ボードリレーション」列経由でリンクされているもの)、それらのリンクされたアイテムの完全な詳細を含む
- サブアイテム(子アイテム)、それらの完全な列データを含む
- これらすべての情報を1つの統合されたJSONオブジェクトに最終集約
これにより、ユーザーは単一のAPIコール相当で、指定されたMonday.comアイテムとその関連する依存関係およびリレーションシップの360度ビューを取得できます。
✅ 主な機能と能力
| 機能 | 説明 |
|---|---|
| 再帰的データ抽出 | メインアイテムだけでなく、関連アイテムやサブアイテムもプルします。 |
| 柔軟な列インデックス作成 | アクセスを容易にするために、idとtitleキーの下に列値を構造化します。 |
| リレーション処理 | 「ボードリレーション」タイプの列を自動的に識別して処理します。 |
| サブアイテムサポート | 「サブアイテム」列を通じてリンクされた子アイテムを抽出し、処理します。 |
| モジュール式・再利用可能 | 他のワークフローに埋め込むように設計されており、設定可能なpulse変数経由で入力を受け取ります。 |
| 集約とマージ | MergeおよびAggregateノードを使用して、複数のデータストリームを統一された出力に結合します。 |
| 自己完結型実行 | Execute Workflowノードを使用して、定義済みのパラメータで自身を実行します。 |
🔧 主要ノードとその目的
以下は、主要なノードとそのワークフローにおける役割の内訳です。
1. Execute Workflow Trigger
- 開始点として機能します。
- 外部トリガーまたは手動実行を待ちます。
- 次のステップ(ターゲットアイテムIDの設定)に渡されます。
2. Edit Fields (Set Node)
- 静的な値
pulse = "4030768878"(例のアイテムID)を設定します。 - 使用ごとにカスタマイズして、異なるアイテムをプルできます。
- このフィールドを変更するだけで、ワークフロー全体で簡単に再利用できます。
3. Execute Workflow
- 同じワークフロー(
workflowId: ZdGZh4qmOqTQe1oq)を同期的に実行します。 - カプセル化を可能にし、別のワークフローからこのロジックをトリガーできます。
4. GET ITEM (Monday.com Get Operation)
- 提供された
pulseIDを使用して、メインのMonday.comアイテムを取得します。 - 名前、ID、列の値、リレーションを含む生のアイテムデータを出力します。
5. GET ALL COLUMNS / GET ALL COLUMNS2 / GET ALL COLUMNS3 (Code Nodes)
- フラットな
column_values配列を辞書/オブジェクトに変換します。GET ALL COLUMNS: IDで列をマッピング → 内部参照に便利です。GET ALL COLUMNS2: タイトル/名前で列をマッピング → 人間が読みやすいです。GET ALL COLUMNS3: リンクされた各パルス(リレーションから)も同様に処理します。
- ヘルパー関数
createColumnValuesArray()を使用して、配列をキー付きオブジェクトに変換します。
6. PULL SUBITEMS (Code Node)
- 「サブアイテム」列の値(存在すると仮定)を解析します。
- 列の値内のJSON文字列からサブアイテムIDのリストを抽出します。
- さらに処理するために解析された配列を返します。
7. SPLIT SUBITEMS1 & SPLIT LINKED PULSES1 (Split Out Nodes)
- IDの配列を受け取り、個々のアイテムに分割します。
- 各サブアイテムまたはリンクされたパルスの個別処理を可能にします。
8. GET EACH SUBITEM1 & PULL LINKEDPULSE1 (Monday.com Get Nodes)
- それぞれのサブアイテムとリンクされたパルスの詳細データを取得します。
{{ $json.linkedPulseIds.linkedPulseId }}のような動的な式を使用してIDを渡します。
9. GET ALL COLUMNS1 (Code Node)
- 各サブアイテムの列データをクリーンなオブジェクト形式に正規化します。
- 集約のために準備します。
10. GET ALL RELATIONS (Code Node)
- 列の値から
"board_relation"タイプのものをフィルタリングします。 - リレーションタイプのフィールドのみを出力し、処理できるようにします。
11. GET LINKEDPULSES1 (Code Node)
- リレーション列のJSON値から実際のリンクされたパルスIDを抽出します。
- 構造化された
{ linkedPulseId },id,nameを返します。
12. Aggregate & Aggregate1 Nodes
- 複数の出力(例:複数のサブアイテムまたはリンクされたパルス)を配列に収集します。
- 指定されたキーの下に結果を保存します。
boardrelations: 完全解決された関連アイテムの配列。subitems: 完全解決されたサブアイテムの配列。
13. Merge, Merge2, Merge4, Merge1 Nodes
- 異なるデータストリームを結合します。
- メインアイテムデータ
- 列の値(ID別および名前別)
- ボードリレーション
- サブアイテム
mergeByPositionモードを使用して、結合中に対応するアイテムを整列させます。
14. Sticky Notes
- キャンバス内にドキュメントを提供します。
- セクションを説明します(例:「PULL ALL BOARDRELATION COLUMNS」など)。
- 他の場所でワークフローを使用する方法に関する指示を提供します。
💼 ユースケースとメリット
✅ 最適な用途:
- データエクスポートとレポート作成: 監査または分析のために、複雑なプロジェクト/タスクの完全なスナップショットを生成します。
- 統合同期: CRM、ERP、データベース、またはカスタムアプリにリッチなアイテムデータをフィードします。
- 移行ツール: ボード間またはプラットフォーム間で移動する際に構造化データを抽出します。
- カスタムダッシュボード: Monday.comアイテムの完全なコンテキストで強化された外部ダッシュボードを構築します。
- 自動化トリガー: 強化されたデータを使用して、より大きな自動化でインテリジェントな意思決定を行います。
✅ メリット:
- 包括的: 関連データを手動で取得する必要はありません。すべて自動的にプルされます。
- 構造化された出力: データはクリーニング、正規化、整理され、すぐに使用できます。
- 再利用可能な設計: 1つのパラメータを更新するだけで、インポートして迅速に適応できます。
- 拡張可能: より多くのリレーションタイプを追加したり、新しい列タイプを処理したりするのが簡単です。
- 視覚的な明確さ: スティッキーノートは、コード知識がなくてもロジックフローをユーザーにガイドします。
🔄 ステップバイステップのワークフローロジック
以下は、シーケンシャルな実行フローです。
-
トリガー開始
Execute Workflow Triggerがプロセスを開始します。
-
ターゲットアイテムIDの設定
Edit Fieldsがpulse = "4030768878"(設定可能)を設定します。
-
サブワークフローとしての自己実行
Execute Workflowが同じワークフローIDを呼び出し、pulse値を渡します。
-
メインアイテムの取得
GET ITEMがpulseIDを使用して、Monday.comからベースアイテムを取得します。
-
メインアイテムの列の処理
- 2つの並列パス:
GET ALL COLUMNS→ IDで列を構造化GET ALL COLUMNS2→ タイトルで列を構造化
- 2つの並列パス:
-
サブアイテムの抽出
PULL SUBITEMSが「サブアイテム」列を解析して子アイテムIDを取得します。SPLIT SUBITEMS1がリストを個々のアイテムに分割します。GET EACH SUBITEM1が各サブアイテムの完全なデータを取得します。GET ALL COLUMNS1が各サブアイテムの列を変換します。Aggregate1がすべてのサブアイテムをsubitemsの下の配列に収集します。
-
ボードリレーションの処理
GET ALL RELATIONSがリレーションタイプの列のみをフィルタリングします。GET LINKEDPULSES1がリレーションデータからリンクされたパルスIDを抽出します。SPLIT LINKED PULSES1がそれらを個別のアイテムに分割します。PULL LINKEDPULSE1が各リンクされたアイテムを取得します。GET ALL COLUMNS3がそれらの列データをフォーマットします。Aggregateがそれらをboardrelationsに収集します。
-
データストリームのマージ
Merge4が以下を結合します。- リレーションフィルタリングされたデータ
- リンクされたパルスの詳細
- 結果は
Aggregateに →boardrelationsになります。 Merge2が以下を結合します。- メインアイテム + 列の値(ID別)
- 列の値(名前別)
- 中間マージ結果
-
最終集約
Mergeが以下を結合します。- 集約された
boardrelations - 集約された
subitems
- 集約された
Merge1が最終ピースをメインアイテムデータとマージします。
-
完全なJSONの出力
- 最終出力には以下が含まれます。
{ "item": { "id": "...", "name": "..." }, "columnValuesById": { ... }, "columnValuesByName": { ... }, "boardrelations": [ ... ], "subitems": [ ... ] }
- 最終出力には以下が含まれます。
🛠️ このテンプレートの使用方法
Sticky Note3に記載されているように、このワークフローを統合する方法は次のとおりです。
- これらのノードを目的のワークフローにコピーします。
- Execute Workflow ノードの
workflowIdを、ご自身のインスタンスに合わせて更新します。 - Edit Fields ノードの
pulse値を変更して、正しいMonday.comアイテムをターゲットにします。 - 出力を任意の下流アクション(Webhook、データベース、メールなど)に接続します。
⚠️ 実行前に、Monday.comの有効な認証情報(
mondayComApi)が設定されていることを確認してください。
🏁 結論
**「MONDAY GET FULL ITEM」**ワークフローは、Monday.comアイテムへの深い可視性を解き放つ、強力で再利用可能な自動化ツールです。API呼び出し、JavaScript変換、データ分割、集約を組み合わせることで、統合、レポート作成、高度な自動化に最適な、完全で構造化されたデータセットを提供します。
そのモジュール設計、明確な注釈、自己文書化レイアウトは、技術者だけでなく非技術者にもアクセスしやすく、エンタープライズグレードのアプリケーションにも十分な柔軟性を提供します。
使い方:JSON をダウンロードし、n8n で「ファイルからインポート」を選択します。