Make

Пользовательское приложение claritos для Make: instant-триггеры для каждого события, модули для каждой конечной точки — всё дерево приложения генерируется из спецификации.

Что это за приложение

Пользовательское приложение Make в виде дерева файлов (репозиторий: integrations/make/app): база (URL из подключения, bearer-заголовок, отображение ошибок), подключение, вебхук, один instant-триггер на тип события и модули action/search/get/delete на каждую конечную точку. Всё записывает scripts/integrations-generate.mjs из OpenAPI-спецификации и каталога событий и следует за каждой версией API; загрузка выполняется скриптом через Make Apps SDK API.

Подключение

Подключение «claritos (API key)»: API-ключ (capi_…) и среда (production/staging). Make проверяет через GET /me и называет подключение по организации. Scopes ключа определяют, какие модули работают; 403 insufficient-scope показывается как ошибка модуля с заголовком и деталями.

Instant-триггеры

По одному модулю на тип события («New Lead», «Invoice Paid» …). При сохранении сценария Make создаёт подписку именно на этот тип на webhook-URL Make через POST /webhooks (видна во вкладке организации «API» → Webhooks); при удалении она снимается. Вывод — конверт события {id, type, createdAt, data} с интерфейсом и примером из каталога. Make сам подписи не проверяет — webhook-URL секретен; для дополнительной защиты добавьте фильтр по заголовку webhook-signature.

Модули

Actions соответствуют конечным точкам записи (POST-вызовы автоматически отправляют Idempotency-Key из {{uuid}}, чтобы повторы сценария ничего не создавали дважды), searches — спискам (курсорная пагинация через nextCursor, лимит как параметр), get/delete — одиночным точкам. Параметры пути обязательны, поля query/body маппируемы; вложенные поля (позиции, значения) как collection/array. Точки клиентских данных (clients.*) и управление вебхуками не включены.

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}}" } } }

Генерация и загрузка

pnpm api:openapi в основном репозитории записывает дерево приложения; pnpm api:check требует, чтобы оно было закоммичено. npm test проверяет структуру без сети. scripts/upload.mjs создаёт или обновляет подключение, вебхук и модули через Apps SDK API (MAKE_API_TOKEN, MAKE_ZONE, MAKE_APP_NAME). При первом запуске сверьте формы конечных точек SDK API с актуальной документацией Make — скрипт сообщает о каждом ответе не 2xx.

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>

Для операторов: публикация

Один раз в Make: создать пользовательское приложение «claritos», создать API-токен со scopes sdk-apps → секрет GitHub MAKE_API_TOKEN (+ переменные MAKE_ZONE, MAKE_APP_NAME). Тег make-v<version> запускает workflow publish-make (тесты + загрузка). Для публичного размещения Make проводит проверку; до этого приложение доступно в вашей организации Make (возможна пригласительная ссылка).