npx skills add ...
npx skills add integromat/make-skills --skill make-scenario-building
Use when creating a new Make scenario or editing an existing one — finding modules, connections and account-dependent values, wiring the flow, saving through scenario_create or scenario_patch. Not for explaining, running or debugging a scenario, or for API-call shells.
npx skills add integromat/make-skills --skill make-scenario-building
The tool descriptions carry each tool's rules; this skill carries the order of operations and the decisions the tools cannot make. A straight-line scenario needs nothing beyond the workflow below. Load a reference only when its trigger applies.
Ground rules. A 403 means the whole connection must be re-authorized with every permission — never one
tool. A content remark on a result is an instruction, not decoration. scenario_create/scenario_patch
make one save each: put everything one change needs in one call, and read a refused write's errors as a
free dry run. Say what you resolved an ambiguous value to ("the Sales channel", "next Monday") before the
call that acts on it. Details and the refusal contract: make-scenario-reference, when something is refused.
environment_get → organizationId/teamId.app_find with the user's words, once per goal. Given an instant and a polling trigger for the same
source, say which you chose and why.module_spec for every planned module in one call, schemas: true — it gives each module's exact
config shape and its dynamic paths.connection.existing; otherwise one connection_create for every app,
hand over the link, connection_get when the user says they are done.module_field_resolve every dynamic path in dependsOn order, copying value into config. A polling
trigger's start point is the /data path — ask "existing items or from now?" before resolving it.
(module_options_get is the same lookup keyed by module_spec's dynamicFields and a connectionId;
use one or the other per field, not both.)root: "main", everything else follows or parent, one config
per module, filter for a plain continue-or-stop gate. Google Sheets, Gmail, Make AI Tools or date math
involved → App gotchas first.scenario_create, autoActivate off unless asked. Fix everything in errors and resubmit; relay
warnings.scenario_activate. On-demand: scenario_run with inputs. Polling/scheduled: activate,
scenario_run, scenario_execution_get. Webhook: the user sends one real request — scenario_run
does not exercise a webhook. Then give https://<zone>.make.com/<teamId>/scenarios/<scenarioId>.scenario_get for structure and lastEdit; scenario_module_get only for the modules you will change.app_find and module_spec(schemas: true) as above; resolve dynamic paths against the
module's current config.scenario_patch with expectedLastEdit and every operation the change needs. Send only the config
domains you changed. Fix every {{<id>.field}} reference a removed or moved module leaves dangling in the
same call.lastEdit. Verify from the response's modules echo.payloadShape: "learned" in module_spec, or a bare gateway:CustomWebHook: create with the trigger alone →
the user sends one real request (or scenario_trigger_learn first) → scenario_trigger_inspect →
scenario_patch the rest. Do not activate a webhook scenario whose fields nobody has seen.
filter. Non-matching items
need their own action → builtin:BasicIfElse (+ builtin:BasicMerge to rejoin). Several arms that may all
fire → builtin:BasicRouter.| Trigger | Reference |
|---|---|
| Mapping a trigger's or on-demand input, a whole bundle or an array element; a mapped field came back empty | Mapping |
| A value must be transformed (dates, text, arrays, conditionals) | IML functions |
| More than a straight line: routers, if-else + merge, multi-condition filters, iterating, aggregating | Flow control |
| The scenario is on-demand, calls another scenario, or is called by one or by an agent | Subscenarios |
| Placing a Make AI Agent module with tools | AI agents |
| A run must remember earlier runs (dedup, counters), or a payload needs a fixed schema | Data stores |
| The user asks for retries or fallbacks, or failure/data loss is unacceptable — most scenarios need none | Error handling |
| Finalizing a Google Sheets, Gmail or Make AI Tools config, or a date expression | App gotchas |
A complete scenario_create call to pattern from | Examples |