Пресет «Форма с капчей»
Пресет «Форма с капчей» добавляет форме сайта защиту от роботов: сценарий проверяет токен капчи до того, как примет данные. Разбираем выбор провайдера, цепочку узлов, куда кладутся ключи и что видеть в журнале при отказе. Токен проверяется на стороне сервиса капчи, секретные ключи хранятся в «Секретах» — статья показывает каждый шаг.
Капча — тот случай, когда «просто повесить виджет» мало: токен, который присылает виджет, надо проверить на стороне сервиса. Пресет собирает всю проверку: нет токена или проверка не прошла — заявка не сохраняется.
Где найти пресет
Админка → «Сайт» → сценарий, который обрабатывает вашу форму → тулбар → «Пресеты» → карточка «Форма с капчей». Пресет также доступен при создании сценария — в окне создания есть поле «Начать с пресета».

Выбор провайдера
Окно параметров спрашивает одно: провайдера капчи.
- Cloudflare Turnstile — часто невидим для посетителя, самый щадящий вариант.
- Яндекс SmartCaptcha — привычна в рунете.
- reCAPTCHA — сервис Google.
Смена провайдера потом означает перегенерацию пресета: условия и адреса проверки у сервисов разные.
Что собирает пресет
| Узел | Роль в сценарии |
|---|---|
| Начало | Данные формы приходят на маршрут сценария вместе с токеном капчи |
| Условие | Токен вообще прислан? |
| HTTP POST | Отправить токен сервису капчи на проверку (siteverify) |
| Условие | Сервис подтвердил токен? |
| JSON-ответ | Отказ: 403 CAPTCHA_FAILED |
| (далее — ваши узлы) | Проверка прошла — сценарий продолжается: письмо, сохранение… |
| Редирект | Ветка успеха замыкается возвратом на /?sent=1 |
Обе ветви отказа ведут к ответу 403 CAPTCHA_FAILED — форма сайта показывает посетителю сообщение об ошибке отправки.

Шаг за шагом
1. Выберите провайдера в окне параметров и нажмите «Сгенерировать». Пресет не спрашивает ключи — они вводятся на вашей стороне (см. ниже).
2. Встройте виджет провайдера в форму. У каждого сервиса есть HTML-сниппет для формы (у Turnstile — тег виджета с sitekey). Без виджета токен не появится, и сценарий честно ответит 403 на каждую отправку.
3. Положите SECRET-ключ в «Секреты». Вкладка «Секреты» живёт в
разделе «Сайт». Ключ вида turnstile_secret (имя подсказывает окно параметров)
вписывается туда один раз, а узел проверки подставляет его по имени —
значения секретов не попадают в журнал запусков и экспорт сценария.
4. Проверьте узлы проверки. Узел HTTP POST обращается к siteverify вашего провайдера и передаёт токен из формы.

Узел JSON-ответ на ветке отказа отвечает кодом 403 — это «вежливый» отказ без подробностей для подглядывающих.

5. Сохраните и опубликуйте сценарий («Черновик, превью и публикация»).
Что проверить после генерации
- Отправьте форму без прохождения капчи (или с испорченным токеном) — ответ 403, заявка в «Отправках» не появилась.
- Пройдите капчу честно — заявка сохранилась, сценарий продолжился.
- В журнале запусков отказ капчи виден как обычный запуск с ответом 403 — это штатная работа защиты.
Тонкости
- Если сервис капчи недоступен, проверка считается непройденной: ответ снова 403. Сомнительные заявки не пропускаются молча — выбирая провайдера, вы выбираете и его доступность.
- Капча защищает конкретный сценарий. Если форм на сайте несколько, пресет ставится в сценарий каждой формы (или одна общая проверка выносится в начало цепочки — для одинаковых провайдеров).
- Токен капчи одноразовый: повторная отправка того же токена не пройдёт.
Частые вопросы
| Вопрос | Ответ |
|---|---|
| Все отправки дают 403, даже с пройденной капчей | Чаще всего не совпадает sitekey/secret-пара или секрет не попал в «Секреты». Сверьте имена: подсказка окна параметров пишет ожидаемое. |
| Куда ставить галочку «невидимая капча»? | Это настройка виджета в разметке формы (у провайдера), сценарий не меняется. |
| Роботы всё равно долбят форму | Тогда 403 они и получают. Для настойчивых ботов смотрите журнал — там видно, что rejection работает. |
| Можно капчу на форму входа? | Технически да, но пресеты авторизации уже содержат свои проверки; капчу обычно вешают на публичные формы заявок и регистрации. |
См. также: Узлы-действия: что умеет каждый · Черновик, превью и публикация