首页 / n8n 工作流模板 / 从 Monday.com 获取包含关系和子项的完整项目数据

从 Monday.com 获取包含关系和子项的完整项目数据

MONDAY GET FULL ITEM

此工作流提取 Monday.com 项目的完整详细信息,包括列值、看板关系、关联脉冲和子项,并将其组织成结构化的 JSON 输出,以便于集成或分析。

手动触发17 个节点业务运营MONDAY自动化集成

工作流介绍

MONDAY GET FULL ITEM 工作流分析

此 N8n 工作流模板,标题为 “MONDAY GET FULL ITEM”,旨在从 Monday.com 中的特定项目(也称为“pulse”)提取全面数据,包括其列值、通过板关系关联的项目以及子项目。目标是将所有嵌套和关系数据聚合到一个单一的、结构化的 JSON 输出中,以供下游使用,例如报告、与其他系统的集成或数据同步。

该工作流通过递归提取基础项目以及任何链接的 pulse(通过板关系列)和子项目,然后将它们的数据规范化为易于使用的格式,从而支持 Monday.com 分层结构的深度遍历。


📌 工作流功能

此工作流检索 Monday.com 项目的完整快照,包括:

  • 基本项目元数据(名称、ID)
  • 按 列 ID 和 列名称 索引的所有列值
  • 任何 板关联项目(通过“板关系”列链接),包含这些链接项目的完整详细信息
  • 任何 子项目(子项),包含其完整的列数据
  • 将所有这些信息聚合到一个统一的 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)

  • 使用提供的 pulse ID 获取主要的 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:类似地处理每个链接的 pulse(来自关系)。
  • 使用辅助函数 createColumnValuesArray() 将数组转换为键控对象。

6. PULL SUBITEMS (Code Node)

  • 解析“子项目”列的值(假定存在)。
  • 从列值中的 JSON 字符串中提取子项目 ID 列表。
  • 返回解析后的数组以供进一步处理。

7. SPLIT SUBITEMS1 & SPLIT LINKED PULSES1 (Split Out Nodes)

  • 接受 ID 数组并将其拆分为单个项目。
  • 实现对每个子项目或链接 pulse 的逐个处理。

8. GET EACH SUBITEM1 & PULL LINKEDPULSE1 (Monday.com Get Nodes)

  • 分别检索每个子项目和链接 pulse 的详细数据。
  • 使用动态表达式,如 {{ $json.linkedPulseIds.linkedPulseId }} 来传递 ID。

9. GET ALL COLUMNS1 (Code Node)

  • 将每个子项目的列数据规范化为干净的对象格式。
  • 为聚合做准备。

10. GET ALL RELATIONS (Code Node)

  • 过滤列值以查找类型为 "board_relation" 的列。
  • 仅输出关系类型字段,以便进行处理。

11. GET LINKEDPULSES1 (Code Node)

  • 从关系列的 JSON 值中提取实际的链接 pulse ID。
  • 返回结构化的 { linkedPulseId }、id 和 name。

12. Aggregate & Aggregate1 Nodes

  • 将多个输出(例如,多个子项目或链接 pulse)收集到数组中。
  • 将结果存储在指定的键下:
    • 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 开始该过程。
  2. 设置目标项目 ID

    • Edit Fields 设置 pulse = "4030768878"(可配置)。
  3. 将自身作为子工作流运行

    • Execute Workflow 调用相同的工作流 ID,传递 pulse 值。
  4. 获取主项目

    • GET ITEM 使用 pulse ID 从 Monday.com 检索基础项目。
  5. 处理主项目列

    • 两条并行路径:
      • GET ALL COLUMNS → 按 ID 结构化列
      • GET ALL COLUMNS2 → 按标题结构化列
  6. 提取子项目

    • PULL SUBITEMS 解析“子项目”列以获取子项目 ID。
    • SPLIT SUBITEMS1 将列表拆分为单个项目。
    • GET EACH SUBITEM1 获取每个子项目的完整数据。
    • GET ALL COLUMNS1 转换每个子项目的列。
    • Aggregate1 将所有子项目收集到 subitems 下的数组中。
  7. 处理板关系

    • GET ALL RELATIONS 仅过滤出关系类型的列。
    • GET LINKEDPULSES1 从关系数据中提取链接的 pulse ID。
    • SPLIT LINKED PULSES1 将它们拆分为单独的项目。
    • PULL LINKEDPULSE1 获取每个链接的项目。
    • GET ALL COLUMNS3 格式化其列数据。
    • Aggregate 将它们收集到 boardrelations 中。
  8. 合并数据流

    • Merge4 合并:
      • 关系过滤数据
      • 链接的 pulse 详细信息
    • 结果进入 Aggregate → 成为 boardrelations
    • Merge2 合并:
      • 主项目 + 按 ID 的列值
      • 按名称的列值
    • 中间合并结果
  9. 最终聚合

    • Merge 合并:
      • 聚合的 boardrelations
      • 聚合的 subitems
    • Merge1 将最后一部分与主项目数据合并。
  10. 输出完整的 JSON

    • 最终输出包含:
      {
        "item": { "id": "...", "name": "..." },
        "columnValuesById": { ... },
        "columnValuesByName": { ... },
        "boardrelations": [ ... ],
        "subitems": [ ... ]
      }
      

🛠️ 如何使用此模板

如 Sticky Note3 中所述,以下是如何集成此工作流:

  1. 将这些节点复制到您所需的工作流中。
  2. 更新 Execute Workflow 节点中的 workflowId 以匹配您的实例。
  3. 修改 Edit Fields 节点中的 pulse 值以定位正确的 Monday.com 项目。
  4. 将输出连接到任何下游操作(例如,Webhook、数据库、电子邮件)。

⚠️ 在运行之前,请确保已配置有效的 Monday.com 凭据(mondayComApi)。


🏁 结论

“MONDAY GET FULL ITEM” 工作流是一个强大、可重用的自动化工具,可实现对 Monday.com 项目的深度可见性。通过结合 API 调用、JavaScript 转换、数据拆分和聚合,它提供了完整、结构化的数据集,非常适合集成、报告和高级自动化。

其模块化设计、清晰的注释和自文档化布局使其对技术和非技术用户都易于访问,同时保持足够的灵活性以满足企业级应用程序的需求。

使用方法:下载 JSON 文件,然后在 n8n 中选择“从文件导入”。