mcpField
M
make-scenario-building

make-scenario-building

github.com/integromat生产力155428 次安装1 天前更新
代码仓库

关于 make-scenario-building

用于创建和编辑 Make 场景的技能,引导用户和 Agent 完成设计、模块查找、配置、连接及验证。它要求在执行前明确含糊的设计选择,并将每次保存或修改限定在所需变更范围内。

主要功能

  1. 01逐步创建场景
  2. 02查找模块与字段
  3. 03连接设置指引
  4. 04带变更校验的场景编辑
  5. 05按触发器类型验证

适用场景

  1. 01创建新的 Make 自动化场景
  2. 02向现有场景添加模块
  3. 03配置负载字段未知的 Webhook

安装

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

$npx skills add https://github.com/integromat/make-skills --skill make-scenario-building

安装后在 Claude Code 中输入/make-scenario-building确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

examples/
ai-agent-with-tool.json
error-handler.json
if-else-merge.json
iterator-aggregator.json
on-demand-subscenario.json
polling-sheets-ai-update-row.json
README.md
router-fanout.json
webhook-to-google-sheets.json
references/
ai-agents.md
app-gotchas.md
data-stores.md
error-handling.md
flow-control.md
iml-functions.md
mapping.md
subscenarios.md

详细介绍

创建和编辑 Make 场景

工具说明包含各工具的规则;本技能说明操作顺序,以及工具无法做出的决策。对于直线型场景,只需遵循以下工作流。仅当触发条件适用时才加载参考资料。

基本规则。 403 表示必须重新授权整个连接,并授予所有权限——绝不能只授权单个工具。结果中的 content 备注是指令,不是装饰。scenario_create/scenario_patch 每次调用只保存一次:在一次调用中包含单项更改所需的所有内容,并将被拒绝写入返回的 errors 视为免费的试运行。对于含糊的值,先说明你将其理解为何意(“Sales 渠道”、“下周一”),再调用会据此执行操作的工具。详情及拒绝处理约定:遭到拒绝时查看 make-scenario-reference。

创建新场景

  1. 用文字敲定设计,并取得用户认可:明确列出每个应用的名称(如果用户只说类别——“电子邮件”、“表单”、“AI”——就询问具体是哪一个)、触发方式、数据流向,以及不符合条件的项目如何处理。
  2. environment_get → organizationId/teamId。
  3. 使用用户的原话调用 app_find,每个目标调用一次。对于同一来源的即时触发器和轮询触发器,说明你选择了哪一种以及原因。
  4. 对每个计划使用的模块调用一次 module_spec,并设置 schemas: true——它会提供每个模块准确的 config 结构和 dynamic 路径。
  5. 连接:复用 connection.existing 中的 id;否则,每个应用调用一次 connection_create,向用户提供链接;用户表示已完成后调用 connection_get。
  6. 按 dependsOn 顺序,对每个 dynamic 路径调用 module_field_resolve,并将 value 复制到 config。轮询触发器的起始位置对应 /data 路径——解析它之前,先询问“已有项目还是从现在开始?”(module_options_get 使用 module_spec 的 dynamicFields 和 connectionId 进行相同的查找;每个字段二选一使用,不要两者都用。)
  7. 组合扁平列表:使用你分配的 id,设置一个 root: "main",其余项使用 follows 或 parent,每个模块设置一个 config;对于简单的继续或停止条件,使用 filter。涉及 Google Sheets、Gmail、Make AI Tools 或日期计算时,先查看 应用注意事项。
  8. 调用 scenario_create,除非用户要求,否则关闭 autoActivate。修正 errors 中的所有问题并重新提交;转达 warnings。
  9. 验证,然后调用 scenario_activate。按需触发:使用 inputs 调用 scenario_run。轮询/定时触发:先激活,再调用 scenario_run 和 scenario_execution_get。Webhook:由用户发送一条真实请求——scenario_run 不会触发 Webhook。然后提供 https://<zone>.make.com/<teamId>/scenarios/<scenarioId>。

编辑现有场景

  1. 调用 scenario_get 获取结构和 lastEdit;仅对要更改的模块调用 scenario_module_get。
  2. 添加模块:按上述方式调用 app_find 和 module_spec(schemas: true);根据模块当前的 config 解析 dynamic 路径。
  3. 调用一次 scenario_patch,并传入 expectedLastEdit 和更改所需的所有操作。仅发送你更改过的 config 域。对于已移除或移动的模块留下的每个悬空 {{<id>.field}} 引用,都要在同一次调用中修正。
  4. 在一次调用中添加的模块会在保存时获得 id,因此需要使用返回的 lastEdit 进行第二次调用,才能连接到该模块。根据响应中的 modules 回显进行验证。

负载未知的 Webhook

在 module_spec 中设置 payloadShape: "learned",或使用不带参数的 gateway:CustomWebHook:仅使用触发器创建 → 用户发送一条真实请求(或先调用 scenario_trigger_learn)→ 调用 scenario_trigger_inspect → 使用 scenario_patch 添加其余内容。不要激活字段尚未被任何人查看过的 Webhook 场景。

由你决定的事项

  • 使用 filter、if-else 还是 router。 只跳过不匹配的项目,不做其他处理 → filter。不匹配的项目需要执行专属操作 → builtin:BasicIfElse(再用 builtin:BasicMerge 重新汇合)。可能同时触发多个分支 → builtin:BasicRouter。
  • 不要过度构建。 除非设计需要,否则不要添加错误处理程序、聚合器或变量。

参考资料 — 仅在触发时加载

触发条件参考资料
映射触发器或按需输入、整个 bundle 或数组元素;映射的字段返回为空映射
需要转换值(日期、文本、数组、条件)IML 函数
流程不止一条直线:路由器、if-else + merge、多条件筛选、迭代、聚合流程控制
场景是按需运行、调用其他场景,或由其他场景或 Agent 调用子场景
放置带工具的 Make AI Agent 模块AI Agent
一次运行必须记住之前的运行记录(去重、计数器),或负载需要固定架构数据存储
用户要求重试或回退,或不能容忍失败或数据丢失 — 大多数场景不需要这些功能错误处理
完成 Google Sheets、Gmail 或 Make AI Tools 配置,或编写日期表达式应用注意事项
完整的 scenario_create 调用示例示例

评论

支持 Markdown