Skip to content
Skillv1.0.0

make

Use when operating Make.com (formerly Integromat) programmatically — driving its REST API v2 or the Make MCP server from code or an agent to create, read, update, activate, run, clone or delete scenar

by ericrisco(0) 0 installs
Free
Sign in to install

Free account. Installing gives you the manifest plus copy-paste snippets.

See reviews

About

Imported from ericrisco/rsc-harness (skills/make/SKILL.md). Install upstream with npx skills add ericrisco/rsc-harness --skill make. Copyright stays with the author.

Make (Integromat) — operate scenarios by REST API and MCP

Drive a live Make.com account from code or an agent: create scenarios from a blueprint, activate/run/stop/clone/delete them, and manage the connections, hooks, data stores, and teams around them. This skill owns the operate half — the API v2 calls and the MCP wiring. It does not design the flow; what a scenario should do (trigger, routes, mapping, dedup, error handler) lives in automation-flows, and the Make-vs-n8n-vs-Zapier billing call lives in automation-strategy. Bring the design here, and this skill turns it into API payloads and MCP tool calls.

Reality up top (verify at author time — Make ships fast):

  • REST API v2 is GA. Base URL is zoned: https://{zone}.make.com/api/v2.
  • The Make MCP server is GA and free on every plan — you only pay the scenario credits a run consumes. Cloud MCP has two tool tiers: run tools (all plans) and management tools (paid).

Connect first — API token vs MCP

Two ways in, chosen by who is driving:

  • REST API v2 — deterministic CRUD from your own scripts/CI. Full control of the blueprint. Use for provisioning, bulk edits, activate/stop pipelines.
  • Make MCP server — lets an MCP client (Claude, Cursor, ChatGPT) call your scenarios and (on paid plans) manage them as tools, no glue code. Use when an agent is the operator.

.env (never inline secrets — read from the environment):

MAKE_ZONE=eu2.make.com        # your org's zone — eu1|eu2|us1|us2 (+ celonis). WRONG ZONE = AUTH ERROR.
MAKE_API_TOKEN=xxxxxxxx        # Profile → API/SDK → API token. Scopes are FIXED at creation.
MAKE_TEAM_ID=123456            # teamId a scenario is created under (integer)
MAKE_MCP_TOKEN=yyyyyyyy        # separate MCP token, for the token-URL MCP transport

Auth header (API): Authorization: Token {MAKE_API_TOKEN} — the literal word Token, a space, then the token. OAuth2 is the alternative for multi-user apps. Scopes are chosen when the token is minted and cannot be widened later — mint with scenarios:read scenarios:write (and connections, hooks, datastores, teams as needed) up front; a too-narrow token means re-minting, not patching.

The scenario model (just enough to build the payload)

A scenario = exactly one trigger module, then a chain of action modules, optionally split by routers into branches. Data flows by mapping: a downstream field references an upstream output as {{2.email}} (module 2's email). The whole thing serializes to a blueprint — the JSON you GET, edit, and POST back. That is the entire operate-side model you need here.

Do not design the flow in this skill. Trigger choice (webhook vs polling), branch logic, idempotency/dedup on a data store, and the error handler (Break → Incomplete Executions, etc.) are all automation-flows. Take its build sheet, then encode it as a blueprint below.

API v2 surface

Group Endpoints (case-sensitive!) Use
Scenarios GET/POST /scenarios, GET/PATCH/DELETE /scenarios/{id}, .../start, .../stop, .../run, .../clone, .../blueprint the core
Connections GET/POST /connections, .../{id}/test app auth the modules use
Hooks GET/POST /hooks, .../{id}/ping, .../learn-start inbound webhooks/mailhooks
Data stores GET/POST /data-stores, .../{id}/data dedup keys, state
Templates GET /templates, .../{id}/blueprint starting-point blueprints
Teams / Orgs GET /teams, GET /organizations/{id} scoping + rate limit

Two rules that bite: endpoints and query keys are case-sensitive, and every call is zoned — the same token against the wrong {zone} returns an auth error, not a 404, which sends people chasing a token problem that does not exist.

Rate limits are per plan (req/min): Core 60 · Pro 120 · Teams 240 · Enterprise 1000. Read your own real ceiling rather than guessing:

curl -s -H "Authorization: Token $MAKE_API_TOKEN" \
  "https://$MAKE_ZONE/api/v2/organizations/$ORG_ID" | jq '.organization.license.apiLimit'

Dynamic lifecycle — the blueprint round-trip

The core technique: you rarely hand-write a blueprint. You GET one from a template or an existing scenario, mutate the JSON, and POST/PATCH it back as a string. blueprint and scheduling are sent as JSON strings, not objects.

1. Get a starting blueprint

# From an existing scenario (or a template: GET /templates/{id}/blueprint)
curl -s -H "Authorization: Token $MAKE_API_TOKEN" \
  "https://$MAKE_ZONE/api/v2/scenarios/$TEMPLATE_ID/blueprint" \
  | jq '.response.blueprint' > bp.json   # wrapper key: verify .response.blueprint at author time

Mutate bp.json with your design — module parameters, the {{n.field}} mappings, router filters. Keep secrets out; wire credentials via a connection id, never a literal key in the blueprint.

2. Create the scenario (blueprint + scheduling as STRINGS)

curl -s -X POST -H "Authorization: Token $MAKE_API_TOKEN" \
  -H "Content-Type: application/json" \
  "https://$MAKE_ZONE/api/v2/scenarios" \
  -d "$(jq -n --argjson team "$MAKE_TEAM_ID" \
        --arg bp "$(jq -c . bp.json)" \
        --arg sched '{"type":"on-demand"}' \
        '{teamId:$team, blueprint:$bp, scheduling:$sched}')"
# scheduling e.g. {"type":"indefinitely","interval":900} (interval seconds) — verify fields at author time.
# optional: folderId, basedon (template id)

3. Validate

The create call itself is the validator — a malformed blueprint returns a 400 naming the offending module/field. Fix the JSON and re-POST. There is no separate schema-lint endpoint; a clean create is the pass.

4. Dry-run / test before you schedule

Run it once, watching one execution, while still on-demand (inactive):

curl -s -X POST -H "Authorization: Token $MAKE_API_TOKEN" \
  "https://$MAKE_ZONE/api/v2/scenarios/$ID/run" \
  -H "Content-Type: application/json" -d '{"responsive":true}'
# inspect the returned execution/bundle output before trusting the flow

5. Activate

# switch scheduling off on-demand first (PATCH), then start
curl -s -X POST -H "Authorization: Token $MAKE_API_TOKEN" \
  "https://$MAKE_ZONE/api/v2/scenarios/$ID/start"

6. Manage — patch, stop, clone

# Update: same round-trip — GET blueprint, mutate, PATCH back as a string
curl -s -X PATCH -H "Authorization: Token $MAKE_API_TOKEN" \
  -H "Content-Type: application/json" \
  "https://$MAKE_ZONE/api/v2/scenarios/$ID" \
  -d "$(jq -n --arg bp "$(jq -c . bp.json)" '{blueprint:$bp}')"

curl -s -X POST -H "Authorization: Token $MAKE_API_TOKEN" ".../scenarios/$ID/stop"
curl -s -X POST -H "Authorization: Token $MAKE_API_TOKEN" \
  -H "Content-Type: application/json" ".../scenarios/$ID/clone" \
  -d '{"teamId": 999, "name": "copy"}'   # clone into another team

7. Delete — export first (irreversible)

DELETE /scenarios/{id} is permanent; there is no undo and no trash. Never delete a live scenario without exporting its blueprint first.

curl -s -H "Authorization: Token $MAKE_API_TOKEN" \
  ".../scenarios/$ID/blueprint" | jq '.response.blueprint' > backup-$ID.json  # export
curl -s -X DELETE -H "Authorization: Token $MAKE_API_TOKEN" ".../scenarios/$ID"

Make MCP — run and manage scenarios as tools

The Make MCP server hands an MCP client your scenarios as callable tools. Two transports:

  • OAuth (remote): point the client at https://mcp.make.com (or the /stream, /sse variants). Scopes granted at consent decide which tools appear.
  • MCP token (per-zone): https://{zone}.make.com/mcp/u/{MCP_TOKEN}/stateless (also /stream, /sse). /stateless times out at ~60 s; /stream and /sse allow ~5 min — a long scenario needs /stream or /sse.

Tool tiers (exact names move — confirm in the client's tool list at author time):

  • Run tools — all plans. Enumerate on-demand scenarios and execute one with inputs, returning its output. This is what lets an agent use your automation.
  • Management tools — paid plans. View/modify scenarios, connections, hooks, data stores, teams, organizations — the CRUD above, surfaced as tools.

Client config sketch (token transport):

{ "mcpServers": { "make": {
  "url": "https://eu2.make.com/mcp/u/${MAKE_MCP_TOKEN}/stream"
} } }

MCP calls consume the scenario's normal credits — the server is free, the runs are not. Legacy note: the local stdio server integromat/make-mcp-server predates the cloud one and exposes on-demand scenarios as tools over stdio; prefer the cloud server unless you specifically need a local process.

Honesty / gotchas

  • Zone trap. Wrong {zone} → auth error with a perfectly valid token. Check the zone before you suspect the token.
  • Case-sensitive paths. /scenarios works, /Scenarios does not.
  • blueprint and scheduling are strings, not objects — stringify them or the create/update fails.
  • Token scopes are frozen at creation. Can't widen later; re-mint instead.
  • Delete is irreversible — export the blueprint first, always.
  • Credits, not operations. Make's billing unit became credits (was "operations"); API-triggered and MCP-triggered runs both burn them.
  • .run on an inactive scenario is your dry run; scheduled execution needs .start — don't confuse the two.
  • Don't hand-author blueprints from scratch — round-trip a template; the format is large and undocumented in full.

Related skills

  • automation-flowsdesign the flow (trigger, routes, mapping, dedup, error path). Build it there, encode the blueprint here. Design ↔ operate is the boundary.
  • automation-strategy — choose Make vs n8n vs Zapier by billing model before committing to this skill.
  • webhooks — building the inbound endpoint that receives events in your own app (vs Make's hooks API here).
  • api-connector-builder — a generic typed REST client with auth/pagination/backoff, when you outgrow curl.
  • Other platforms: n8n, zapier, power-automate (their own skills).

Checklist

  • MAKE_ZONE matches the org's actual zone (ruled out the zone trap).
  • API token minted with all scopes needed (scenarios + connections/hooks/ datastores as required) — scopes can't be widened later.
  • Blueprint obtained by round-trip (template/existing), not hand-written.
  • blueprint and scheduling sent as JSON strings; teamId set.
  • Credentials referenced by connection id — no secrets in the blueprint.
  • Dry-ran with /run and inspected output before /start.
  • Blueprint exported to a file before any DELETE.
  • For MCP: right transport for run length (/stream|/sse if >60 s), and manager tools confirmed present only if the plan is paid.

References

  • references/api-v2-cheatsheet.md — endpoints, auth, scopes, rate limits, the common response envelope, and error codes.
  • references/blueprint-round-trip.md — the GET→mutate→POST recipe in depth, blueprint anatomy, and the stringify gotcha.
  • references/make-mcp-and-auth.md — MCP transports, tool tiers, client configs, and the token-vs-OAuth decision.

Use it

Copy one of these into your project. Installing also returns the manifest and these snippets.

yaml
targets:
  - https://api.opensmartroute.ai/api/v1/registry/ericrisco-rsc-harness-make/manifest   # or paste the manifest below

Manifest

An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.

ericrisco-rsc-harness-make.ocm.jsonjson
{
  "ocm": "1",
  "id": "ericrisco-rsc-harness-make",
  "kind": "skill",
  "name": "make",
  "description": "Use when operating Make.com (formerly Integromat) programmatically — driving its REST API v2 or the Make MCP server from code or an agent to create, read, update, activate, run, clone or delete scenarios, connections, hooks and data stores. NOT designing what the flow should do (that is `automation-flows`), NOT choosing between Make, n8n and Zapier by billing model (that is `automation-strategy`), NOT a generic typed REST client (that is `api-connector-builder`), NOT receiving inbound webhooks in your own app (that is `webhooks`).",
  "publisher": "ericrisco",
  "version": "1.0.0",
  "capabilities": {
    "domains": [
      "coding"
    ],
    "tags": [
      "skill-md",
      "make",
      "integromat",
      "automation",
      "scenarios",
      "blueprint",
      "mcp",
      "no-code",
      "api",
      "workflows"
    ],
    "languages": [
      "en"
    ]
  },
  "quality_prior": 0.6,
  "examples": [
    "Use when operating Make.com (formerly Integromat) programmatically — driving its REST API v2 or the Make MCP server from code or an agent to create, read, update, activate, run, clone or delete scenarios, connections, hooks and data stores. NOT designing what the flow should do (that is `automation-flows`), NOT choosing between Make, n8n and Zapier by billing model (that is `automation-strategy`), NOT a generic typed REST client (that is `api-connector-builder`), NOT receiving inbound webhooks in your own app (that is `webhooks`)."
  ],
  "primary": false,
  "metadata": {
    "source": {
      "provider": "github",
      "repository": "https://github.com/ericrisco/rsc-harness",
      "path": "skills/make/SKILL.md",
      "ref": "8cc4716ea549275ade1590ad270da01bdf837ab5",
      "url": "https://github.com/ericrisco/rsc-harness/blob/8cc4716ea549275ade1590ad270da01bdf837ab5/skills/make/SKILL.md",
      "key": "ericrisco/rsc-harness/skills/make/SKILL.md"
    }
  },
  "instructions": "# Make (Integromat) — operate scenarios by REST API and MCP\n\nDrive a live Make.com account from code or an agent: create scenarios from a\nblueprint, activate/run/stop/clone/delete them, and manage the connections,\nhooks, data stores, and teams around them. This skill owns the **operate**\nhalf — the API v2 calls and the MCP wiring. It does **not** design the flow;\nwhat a scenario *should do* (trigger, routes, mapping, dedup, error handler)\nlives in [`automation-flows`](../automation-flows/SKILL.md), and the\nMake-vs-n8n-vs-Zapier billing call lives in\n[`automation-strategy`](../automation-strate",
  "cost": {
    "context_tokens": 2874
  }
}

Fetch it by URL: GET /api/v1/registry/ericrisco-rsc-harness-make/manifest?version=1.0.0

Reviews

Star ratings from people who tried it. One review per account; edit yours any time.

No reviews yet. Install it, try it, and be the first to rate it.