Автоматизация Open Badges с помощью Zapier, Make и n8n (no-code рецепты)

Запускайте выдачу значков по завершении формы Typeform, покупке через Stripe или тегу Mailchimp — три рабочих no-code рецепта, каждый из которых занимает менее 10 минут.

Nacho Coll Автор Обновлено 9 мин чтения
Запускайте выдачу значков по завершении формы Typeform, покупке через Stripe или тегу Mailchimp — три рабочих no-code рецепта, каждый из которых занимает менее 10 минут.

Если вы ведёте учебную программу, платный курс или email-рассылку с уровнями, момент, когда кто-то завершает обучение, совершает покупку или проходит проверку, обычно уже где-то фиксируется — в ответе на форму, в платеже Stripe, в теге Mailchimp. Значок должен выдаваться автоматически по этому событию. На практике так бывает редко, потому что «выдать credential» — не встроенное действие в большинстве инструментов, а создавать собственный webhook-приёмник ради разовой автоматизации — это явный перебор.

Именно для этого и существуют Zapier, Make и n8n. Все три платформы могут напрямую обращаться к API Badges Ninja — без плагинов, без промежуточного сервера, без развёртывания кода. Ниже — три рабочих рецепта, которые можно скопировать прямо сейчас, а также то, как правильно обращаться с API-ключом и настраивать повторные попытки при ошибках, чтобы значки не переставали выдаваться незаметно для вас.

Что вы, по сути, связываете

Каждый рецепт устроен одинаково: триггер → (опционально) поиск получателя → HTTP POST на /awards. Именно эндпоинт /awards фактически выдаёт значок получателю — вы указываете существующий badgeId, и создаётся уникальная, проверяемая награда со своим URL для верификации, QR-кодом и PDF-сертификатом. Если вы ещё не создали значок, посмотрите быстрый старт по API — его ID понадобится вам до того, как заработает любая из этих автоматизаций.

Аутентификация одинакова для всех трёх платформ: заголовок X-Api-Key с ключом, сгенерированным в вашей панели управления. Платформы автоматизации плохо справляются с OAuth-потоками для произвольных REST API, поэтому API-ключи здесь — правильный выбор: они долгоживущие, привязаны к вашему аккаунту и отзываются в один клик, если Zap когда-нибудь начнёт работать некорректно.

Сначала создайте API-ключ

API-ключи — пустое состояние

В своей панели управления откройте Settings → API Keys, нажмите Create Key и дайте ключу имя, соответствующее его задаче — zapier-course-completions, а не key1. Это важнее, чем кажется: если через полгода какая-то автоматизация начнёт вести себя неправильно, вы захотите отозвать именно этот ключ, не сломав при этом три другие интеграции, которые случайно используют тот же самый.

Создание ключа — форма имени

Ключ показывается один раз, полностью, сразу после создания. Сразу скопируйте его в защищённое хранилище учётных данных вашей платформы автоматизации — «Connection» в Zapier, «Connection» в Make или credential в n8n — никогда не вставляйте его в текстовое поле внутри самого Zap/сценария/воркфлоу.

Рецепт 1: Typeform → Badges Ninja (форма завершения потока)

Сценарий использования: поток учащихся завершает курс и заполняет короткую форму «Я это прошёл» (или вы отправляете форму как финальный шаг курса в свободном темпе).

В Zapier:

  1. Триггер: Typeform — New Entry, привязанный к вашей форме завершения.
  2. Действие: Webhooks by Zapier — POST.
  3. URL: https://api.badges.ninja/awards
  4. Заголовки: X-Api-Key: bws_<ваш ключ>, Content-Type: application/json
  5. Данные (сопоставьте с полями Typeform):
{
  "badgeId": "bdg_9f2a1c",
  "recipient": {
    "name": "{{typeform_name}}",
    "email": "{{typeform_email}}"
  },
  "issuedOn": "2026-08-27"
}

Вот и весь Zap. Шаг фильтрации не нужен, если форма срабатывает только при реальных завершениях — но если это универсальная контактная форма, добавьте шаг Filter by Zapier, который проверяет скрытое поле или значение ответа до срабатывания webhook, чтобы не выдавать значки за спам или тестовые отправки.

Рецепт 2: Stripe → Badges Ninja (покупка = credential)

Сценарий использования: платный сертификационный экзамен, премиум-уровень курса или план участия, в который значок входит как часть того, что покупают люди.

В Zapier:

  1. Триггер: Stripe — New Charge (или New Invoice Payment Succeeded для подписок).
  2. Фильтр: сумма платежа равна точной цене продукта, за который выдаётся credential — это важно, если ваш аккаунт Stripe обрабатывает несколько продуктов через один webhook.
  3. Действие: Webhooks by Zapier — POST на https://api.badges.ninja/awards, с теми же заголовками, что и выше.
  4. Данные: сопоставьте charge.billing_details.email и charge.billing_details.name с recipient.email / recipient.name.

Приятная особенность привязки выдачи к событию оплаты в том, что это естественным образом близко к идемпотентности. ID платежей Stripe уникальны, поэтому если вы опасаетесь, что Zap повторно сработает при ретрае webhook, добавьте шаг Storage by Zapier, который проверяет, не был ли этот charge ID уже обработан, прежде чем вызывать /awards.

Рецепт 3: тег Mailchimp → Badges Ninja

Сценарий использования: вы вручную (или через другую автоматизацию) присваиваете подписчикам тег, когда они достигают определённой отметки — посетили вебинар, прошли drip-рассылку, привели трёх человек — и хотите, чтобы этот тег запускал выдачу значка без вашего прямого обращения к API.

В Zapier:

  1. Триггер: Mailchimp — New Tag Added to Subscriber, отфильтрованный по конкретному тегу (например, webinar-attended).
  2. Действие: Webhooks by Zapier — POST на https://api.badges.ninja/awards.
  3. Данные: сопоставьте subscriber.email_address и subscriber.merge_fields.FNAME + LNAME с полями получателя.

Этот паттерн популярен для программ признания заслуг — sales-SPIFF-акций, отметок в сообществе, посещений мероприятий, — где кто-то в команде и так уже привык проставлять теги контактам, и вы просто хотите, чтобы выдача значка «бесплатно» вытекала из этой привычки.

Обработка ошибок и повторных попыток

Платформы автоматизации не работают с данными о значках транзакционно, поэтому закладывайте ту же дисциплину, которую вы хотели бы видеть в полноценной интеграции:

  • Проверяйте код ответа. 200 означает, что награда создана; 4xx обычно означает неверный badgeId или некорректный email — это ошибка настройки Zap, а не то, что стоит бездумно повторять. 5xx можно безопасно повторять.
  • Zapier: неудачные запуски Zap попадают в Zap History с полным запросом/ответом. Включите Auto-Replay для временных сбоев, но настройте оповещение по email/Slack при повторяющихся ошибках, чтобы незаметно сломавшийся Zap не обернулся тремя месяцами невыданных значков.
  • Make: сценарии поддерживают встроенный маршрут Error Handler — прикрепите директиву Resume или Rollback к HTTP-модулю и направляйте постоянные сбои в модуль уведомлений, а не просто отбрасывайте их.
  • n8n: поскольку это self-hosted или облачное решение с более гибким контролем, оберните узел HTTP Request в воркфлоу Error Trigger и подумайте о записи неудачных payload’ов в лёгкое резервное хранилище (Airtable, Google Sheets), которое можно будет повторить вручную.

Во всех трёх случаях избегайте ловушки «раз запустилось зелёным — значит сработало». Ответ, похожий на 200, от неправильно настроенного шага webhook (неверный URL, отсутствующий заголовок) всё равно может привести к сбою на стороне Badges Ninja. В первый месяц работы любой новой автоматизации еженедельно выборочно проверяйте список наград в панели управления.

Аналог для Make.com

Визуальный конструктор сценариев Make почти напрямую повторяет описанные выше шаги Zapier:

  1. Модуль-триггер — модуль отслеживания Typeform / Stripe / Mailchimp, аналогичный триггеру в Zapier.
  2. Модуль HTTP → Make a Request — метод POST, URL https://api.badges.ninja/awards, заголовки задаются в таблице Headers (X-Api-Key, Content-Type: application/json), тело — как raw JSON с переменными, сопоставленными из триггера.
  3. Опциональный Filter между модулями для проверки суммы Stripe или защиты «реального завершения» на Typeform.

Преимущество Make здесь — наглядность: редактор сценариев показывает реальный JSON-payload на каждом шаге ещё до включения сценария, что делает отладку неправильного сопоставления полей заметно быстрее, чем более линейный пошаговый тестовый режим Zapier.

Аналог для n8n

n8n подходит лучше всего, если вы хотите развернуть это self-hosted или уже автоматизируете там другие части своего стека:

  1. Узел-триггер — Typeform Trigger / Stripe Trigger / Mailchimp Trigger (все встроенные узлы).
  2. Узел HTTP Request — метод POST, URL https://api.badges.ninja/awards, аутентификация установлена как Header Auth, где ваш X-Api-Key хранится как credential n8n (а не захардкожен в узле), JSON-тело строится из выражения, ссылающегося на вывод узла-триггера.
  3. Узел IF (опционально) — та же защита по завершению/сумме, что и выше, размещённая перед узлом HTTP Request.

Поскольку credentials в n8n зашифрованы и переиспользуемы между воркфлоу, это более аккуратный вариант, если вы планируете больше одной автоматизации Badges Ninja — настройте credential один раз и переиспользуйте его в каждом воркфлоу, которому нужно выдавать значки.

Почему обычный шаг webhook лучше нативного приложения

У Zapier, Make и n8n есть магазины приложений, и первым порывом обычно бывает поискать приложение «Badges Ninja», прежде чем взяться за обычный модуль HTTP/webhook. Пропустите этот поиск — для настолько небольшого REST API (создать издателя, создать значок, создать награду — и всё) обычный шаг webhook запускает вас за десять минут без какой-либо зависимости от стороннего разработчика приложения, успевающего за изменениями API. Отдельное приложение добавляет уровень абстракции, который вам не нужен: вы всё равно будете заполнять те же поля badgeId, recipient.email и recipient.name, просто через форму, а не через JSON-тело. Справочник по API достаточно короткий, чтобы прочитать его за пять минут, и как только вы это сделаете, подход с прямыми HTTP-запросами окажется на самом деле менее хрупким — между изменением API Badges Ninja и восстановлением работы вашей автоматизации не стоит никакого цикла одобрения в магазине приложений.

Протестируйте перед тем, как включать в боевом режиме

Каждая из перечисленных платформ позволяет запустить одно тестовое выполнение, не дожидаясь реального события-триггера:

  • Zapier — используйте «Test» на шаге триггера, чтобы получить тестовую запись, затем «Test» на действии webhook, чтобы отправить ровно один реальный запрос. Прежде чем включать Zap, убедитесь, что награда появилась в вашей панели управления.
  • Make — запустите сценарий вручную один раз (кнопка «Run once») с тестовым набором данных и посмотрите на всплывающий вывод HTTP-модуля с реальным телом ответа.
  • n8n — используйте «Execute Node» на узле HTTP Request с тестовыми входными данными, что позволяет увидеть запрос и ответ прямо в редакторе.

На этом первом тестовом запуске стоит проверить две вещи: что захардкоженный вами badgeId действительно принадлежит тому значку, который вы имеете в виду (устаревший ID из продублированного Zap — распространённая ошибка), и что поле email получателя подтягивает реальный адрес, а не неразрешённый плейсхолдер вроде {{email}}, оставшийся из-за опечатки в сопоставлении полей. Обе ошибки невидимы в индикаторе «успеха» платформы автоматизации — HTTP-вызов всё равно вернёт 200 в обоих случаях, — поэтому единственная надёжная проверка — открыть награду в панели управления и убедиться, что получатель именно тот, кого вы ожидаете.

Как избежать дублирования значков

Любой из перечисленных выше источников триггеров в реальных условиях может сработать более одного раза для одного и того же события — Stripe повторяет webhook при таймауте, Typeform может отправить форму дважды при медленном соединении, автоматизации Mailchimp могут сработать повторно, если тег снять и добавить снова. Если выдача значков не идемпотентна, это выливается в то, что получатели получают один и тот же credential дважды, что выглядит неаккуратно и порождает обращения в поддержку.

Самая чистая защита — шаг «поиск перед созданием»: перед POST на /awards добавьте действие Search (в Zapier это «Find Award» через GET-запрос, либо эквивалентный HTTP GET в Make/n8n) по вашим собственным записям о наградах — для этого вполне подойдёт лёгкий журнал в Google Sheets или Airtable, в который тот же Zap записывает данные сразу после успешной награды, если вы не хотите запрашивать это через API. Если запись для комбинации получатель + значок уже существует, направьте ветку в no-op вместо повторной выдачи. Это добавление на пять минут, но именно оно отличает автоматизацию, которой вы доверяете без присмотра, от той, за которой приходится следить.

Когда no-code уже недостаточно

Эти рецепты хорошо подходят для триггеров с одиночными событиями. Но когда вам нужно выдать сотни значков из одного CSV-экспорта — выпуск потока учащихся, список участников конференции, массовое продление CE-кредитов, — пропустите платформу автоматизации и используйте массовую загрузку значков напрямую: она умеет ставить пакет на паузу и возобновлять его посередине, а также переживает закрытие вкладки браузера — с чем no-code webhook-циклы на больших объёмах справляются плохо.


Готовы выдать свой первый проверяемый credential? Начните бесплатно на badges.ninja — визуальный конструктор, публичная страница верификации, PDF-сертификат, вывод в формате Open Badge v2.0. Без банковской карты.

Nacho Coll

Об авторе

Founder & Engineer at Badges Ninja

Nacho founded Badges Ninja to make issuing verifiable digital credentials as simple as a single API call — Open Badge v2.0 badges and certificates, minted, hosted, and verifiable without standing up your own issuer infrastructure. Writes about the Open Badges spec, credential verification, and running a credentialing platform serverless on AWS, from the operator side of the wire.

Назад в блог

Похожие статьи