关于 make-scenario-building
用于创建和编辑 Make 场景的技能,引导用户和 Agent 完成设计、模块查找、配置、连接及验证。它要求在执行前明确含糊的设计选择,并将每次保存或修改限定在所需变更范围内。
主要功能
- 01逐步创建场景
- 02查找模块与字段
- 03连接设置指引
- 04带变更校验的场景编辑
- 05按触发器类型验证
适用场景
- 01创建新的 Make 自动化场景
- 02向现有场景添加模块
- 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.jsonerror-handler.jsonif-else-merge.jsoniterator-aggregator.jsonon-demand-subscenario.jsonpolling-sheets-ai-update-row.jsonREADME.mdrouter-fanout.jsonwebhook-to-google-sheets.jsonreferences/ai-agents.mdapp-gotchas.mddata-stores.mderror-handling.mdflow-control.mdiml-functions.mdmapping.mdsubscenarios.md详细介绍
创建和编辑 Make 场景
工具说明包含各工具的规则;本技能说明操作顺序,以及工具无法做出的决策。对于直线型场景,只需遵循以下工作流。仅当触发条件适用时才加载参考资料。
基本规则。 403 表示必须重新授权整个连接,并授予所有权限——绝不能只授权单个工具。结果中的 content 备注是指令,不是装饰。scenario_create/scenario_patch 每次调用只保存一次:在一次调用中包含单项更改所需的所有内容,并将被拒绝写入返回的 errors 视为免费的试运行。对于含糊的值,先说明你将其理解为何意(“Sales 渠道”、“下周一”),再调用会据此执行操作的工具。详情及拒绝处理约定:遭到拒绝时查看 make-scenario-reference。
创建新场景
- 用文字敲定设计,并取得用户认可:明确列出每个应用的名称(如果用户只说类别——“电子邮件”、“表单”、“AI”——就询问具体是哪一个)、触发方式、数据流向,以及不符合条件的项目如何处理。
environment_get→organizationId/teamId。- 使用用户的原话调用
app_find,每个目标调用一次。对于同一来源的即时触发器和轮询触发器,说明你选择了哪一种以及原因。 - 对每个计划使用的模块调用一次
module_spec,并设置schemas: true——它会提供每个模块准确的config结构和dynamic路径。 - 连接:复用
connection.existing中的 id;否则,每个应用调用一次connection_create,向用户提供链接;用户表示已完成后调用connection_get。 - 按
dependsOn顺序,对每个dynamic路径调用module_field_resolve,并将value复制到config。轮询触发器的起始位置对应/data路径——解析它之前,先询问“已有项目还是从现在开始?”(module_options_get使用module_spec的dynamicFields和connectionId进行相同的查找;每个字段二选一使用,不要两者都用。) - 组合扁平列表:使用你分配的 id,设置一个
root: "main",其余项使用follows或parent,每个模块设置一个config;对于简单的继续或停止条件,使用filter。涉及 Google Sheets、Gmail、Make AI Tools 或日期计算时,先查看 应用注意事项。 - 调用
scenario_create,除非用户要求,否则关闭autoActivate。修正errors中的所有问题并重新提交;转达warnings。 - 验证,然后调用
scenario_activate。按需触发:使用inputs调用scenario_run。轮询/定时触发:先激活,再调用scenario_run和scenario_execution_get。Webhook:由用户发送一条真实请求——scenario_run不会触发 Webhook。然后提供https://<zone>.make.com/<teamId>/scenarios/<scenarioId>。
编辑现有场景
- 调用
scenario_get获取结构和lastEdit;仅对要更改的模块调用scenario_module_get。 - 添加模块:按上述方式调用
app_find和module_spec(schemas: true);根据模块当前的config解析dynamic路径。 - 调用一次
scenario_patch,并传入expectedLastEdit和更改所需的所有操作。仅发送你更改过的config域。对于已移除或移动的模块留下的每个悬空{{<id>.field}}引用,都要在同一次调用中修正。 - 在一次调用中添加的模块会在保存时获得 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