Make

The claritos custom app for Make: instant triggers for every event, modules for every endpoint — the whole app tree is generated from the spec.

What the app is

A Make custom app as a file tree (repo: integrations/make/app): base (URL from the connection, bearer header, error mapping), connection, webhook, one instant trigger per event type and action/search/get/delete modules per endpoint. Everything is written by scripts/integrations-generate.mjs from the OpenAPI spec and the event catalog and follows every API version; upload happens via script through the Make Apps SDK API.

Connecting

Connection “claritos (API key)”: API key (capi_…) and environment (production/staging). Make verifies via GET /me and names the connection after the organisation. The key's scopes decide which modules work; 403 insufficient-scope shows as a module error with title and detail.

Instant triggers

One module per event type (“New Lead”, “Invoice Paid” …). When the scenario is saved, Make creates a subscription for exactly that type on the Make webhook URL via POST /webhooks (visible in the organisation tab “API” → Webhooks); deleting removes it. The output is the event envelope {id, type, createdAt, data} with interface and sample from the catalog. Make does not verify signatures itself — the webhook URL is secret; to harden further, add a filter module on the webhook-signature header.

Modules

Actions correspond to write endpoints (POST calls automatically send an Idempotency-Key from {{uuid}} so scenario re-runs create nothing twice), searches to lists (cursor pagination via nextCursor, limit as parameter), get/delete modules to single-item endpoints. Path parameters are required, query/body fields mappable; nested fields (items, values) as collection/array. Clients-data endpoints (clients.*) and webhook management are not included.

json
// Modul contacts_create (Ausschnitt, generiert)
{ "type": "action",
  "api": { "url": "/contacts", "method": "POST",
           "body": { "type": "{{parameters.type}}", "displayName": "{{parameters.displayName}}", "email": "{{parameters.email}}", … },
           "headers": { "idempotency-key": "{{uuid}}" },
           "response": { "output": "{{body}}" } } }

Generate and upload

pnpm api:openapi in the main repository writes the app tree; pnpm api:check requires it to be committed. npm test checks the structure without network. scripts/upload.mjs creates or updates connection, webhook and modules via the Apps SDK API (MAKE_API_TOKEN, MAKE_ZONE, MAKE_APP_NAME). Verify the SDK API endpoint shapes against current Make docs on the first run — the script reports every non-2xx response.

bash
cd integrations/make && npm test
MAKE_API_TOKEN=… MAKE_ZONE=eu1.make.com MAKE_APP_NAME=claritos node scripts/upload.mjs   # oder Tag make-v<version>

For operators: publishing

Once in Make: create the custom app “claritos”, create an API token with sdk-apps scopes → GitHub secret MAKE_API_TOKEN (+ variables MAKE_ZONE, MAKE_APP_NAME). Tag make-v<version> starts the publish-make workflow (tests + upload). Public listing requires Make's review; until then the app is usable in your own Make organisation (invite link possible).