Необходимые cookie-файлы нужны для работы сайта. Аналитические cookie (Яндекс Метрика) — только с вашего согласия. Политика cookie-файлов

Тема оформления
Инструкции

Интеграция с Make

Как вызывать Typizer из Make модулем HTTP и обрабатывать результат в сценарии с вебхуком.

Как и в n8n, отдельного модуля (app) Typizer в Make нет — интеграция идёт через встроенный модуль HTTP и модуль «Custom webhook».

Примечание:

Названия и возможности модулей могут отличаться между версиями и тарифами Make — сверяйтесь с актуальной документацией Make, если что-то из описанного ниже называется иначе в вашем аккаунте.

Модуль HTTP: запрос к /v1/extract

Модуль «HTTP > Make a request» с методом POST на https://api.typizer.ru/v1/extract:

  • заголовок Authorization: Bearer <ключ> — ключ стоит хранить в соединении (connection) Make, а не открытым текстом в модуле;
  • заголовок Idempotency-Key — свой на каждый запуск сценария: встроенная функция Make {{uuid}} генерирует новый UUID при каждом выполнении;
  • тип тела — multipart/form-data: файл, schema (JSON-схема строкой) и, при необходимости, webhook_url, указывающий на модуль Custom webhook этого же сценария.

Сценарий с вебхуком

Модуль «Webhooks > Custom webhook» создаёт постоянный адрес для приёма результата — укажите его в webhook_url запроса на извлечение, и сценарий запустится заново, когда Typizer пришлёт событие. Как и в любой другой интеграции, не обрабатывайте тело вебхука без проверки подписи — алгоритм тот же, что в «Приём вебхуков»: HMAC-SHA256 от {webhook-id}.{webhook-timestamp}.{тело} на секрете конечной точки, допуск 5 минут. Проверьте, есть ли в вашем тарифе Make встроенная функция HMAC-SHA256 (с версией и набором функций Make меняется) — если нет, проверку делает либо собственный сервер-валидатор (ещё один HTTP-вызов из сценария), либо модуль Code (доступен на платных планах Make) с тем же алгоритмом, что и в сниппетах на этой странице.

Пример сценария целиком

Готовый экспорт сценария (JSON, импортируется в Make через «Import Blueprint») с модулем HTTP и модулем приёма вебхука:

JSON
{
  "name": "Typizer: extract + webhook",
  "flow": [
    {
      "id": 1,
      "module": "http:ActionSendData",
      "version": 3,
      "metadata": { "designer": { "x": 0, "y": 0 } },
      "parameters": {},
      "mapper": {
        "url": "https://api.typizer.ru/v1/extract",
        "method": "POST",
        "headers": [
          { "name": "Authorization", "value": "Bearer {{connection.apiKey}}" },
          { "name": "Idempotency-Key", "value": "{{uuid}}" }
        ],
        "qs": [],
        "bodyType": "multipart",
        "parseResponse": true,
        "multipart": [
          { "name": "file", "type": "file", "value": "{{1.data}}" },
          {
            "name": "schema",
            "type": "text",
            "value": "{\"type\":\"object\",\"properties\":{\"invoice_number\":{\"type\":\"string\"},\"total\":{\"type\":\"number\"},\"inn\":{\"type\":\"string\",\"x-typizer-check\":\"inn\"}},\"required\":[\"invoice_number\",\"total\"]}"
          },
          { "name": "webhook_url", "type": "text", "value": "{{2.url}}" }
        ]
      },
      "notes": "{{uuid}} — встроенная функция Make, генерирует новый UUID при каждом запуске сценария: свой Idempotency-Key на каждый вызов. {{2.url}} — адрес вебхука из модуля 2 этого же сценария (см. ниже): результат придёт туда."
    },
    {
      "id": 2,
      "module": "gateway:CustomWebHook",
      "version": 1,
      "metadata": { "designer": { "x": 300, "y": 300 } },
      "parameters": {
        "hook": "typizer-webhook",
        "maxResults": 1
      },
      "mapper": {}
    },
    {
      "id": 3,
      "module": "util:ComposeTemplate",
      "version": 1,
      "metadata": { "designer": { "x": 600, "y": 300 } },
      "parameters": {},
      "mapper": {
        "template": "Проверка подписи — тот же алгоритм, что в snippets/webhooks/verify.ts (см. «Приём вебхуков»): HMAC-SHA256 от {{webhook-id}}.{{webhook-timestamp}}.{{тело}} на секрете конечной точки, допуск 5 минут. В Make подпись проверяется модулем «HTTP > Make a request» к собственному серверу-валидатору или функцией в модуле Code (платный план Make); готового встроенного HMAC-модуля в Make нет — сверяйтесь с актуальной документацией Make."
      },
      "notes": "Эта заметка — не исполняемый шаг, а напоминание: без проверки подписи не обрабатывайте тело вебхука как доверенное."
    }
  ],
  "metadata": {
    "instant": true,
    "version": 1,
    "scenario": {
      "roundtrips": 1,
      "maxErrors": 3,
      "autoCommit": true,
      "sequential": false,
      "confidential": false,
      "dataloss": false,
      "dlq": false
    },
    "designer": { "orphans": [] }
  }
}

Что дальше