Вы сверстали в Cursor красивую форму заявки, залили сайт на Vercel — и при нажатии «Отправить» браузер выдаёт «405 Not Allowed» или пустую страницу. Статический хостинг не умеет принимать заявки сам: ему нужен внешний «приёмник». За один вечер вы соберёте лендинг с полями «имя + телефон», подключите Formspree или Make, увидите новую строку в Google Таблице и уведомление в Telegram — без PHP, VPS и своего сервера.
Форма на Vercel или GitHub Pages не обрабатывает POST на ваш домен — action должен вести на Formspree, Tally или webhook Make. Обычный HTML-тег form с method POST на URL Make работает без CORS, а fetch из JavaScript на тот же адрес часто ломается. Цепочка для проверки: сайт → приёмник → Make → Google Таблица → Telegram за 1-2 минуты.
Анна открыла салон и попросила Cursor сделать лендинг с записью. Сайт выглядел идеально, но она вставила action=»sendmail.php», как в старом туториале — и получила ошибку. Потом попробовала URL Make в fetch — в консоли красный CORS. Только когда поставила action на Formspree и настроила Make на webhook Tally, заявки стали падать в таблицу, а она перестала переписывать номера из почты вручную.
Честно говоря, обзор «15 конструкторов форм» вам не нужен. Нужен один рабочий вечер: лендинг в Cursor, три понятные схемы без backend и Make как «труба» в таблицу и мессенджер. По Wordstat запрос «как сделать форму заявки на сайте» даёт 29 показов в месяц, а более широкий «форма заявки на сайте» — 685; ниша живая, а готовых гайдов именно под Cursor + Make почти нет.
Выберите схему приёма заявок без backend

Webhook — это просто специальный URL-адрес, куда форма «скидывает» данные после отправки. Backend (свой сервер) вам не нужен: приёмник живёт у Formspree, Tally или Make.
| Критерий | Formspree | Tally + Make | Make webhook в action |
|---|---|---|---|
| Кому проще | Есть готовый HTML в Cursor | Удобен визуальный конструктор полей | Минимум сервисов, всё в одном сценарии |
| Free-лимит | 50 заявок/мес, 2 email | Tally free + Make 1 000 credits/мес | 1 000 credits Make, 2 активных сценария |
| Связка с таблицей | Через Make по webhook Formspree | Нативная интеграция Tally → Make (OAuth) | Прямо: Custom Webhook → Google Sheets |
| Типичная ошибка | Забыли name у input — поле пустое | Не включили сценарий ON в Make | Пытались слать через fetch — CORS |
Итоговый вердикт: если форма уже в index.html — начните с Formspree (action на их endpoint). Если поля ещё не придумали — Tally с embed на сайт и Watch Responses в Make. Прямой webhook в action — когда хотите одну цепочку без лишних кабинетов.
Сверстайте лендинг с формой в Cursor Agent

Cursor Agent — это режим, где ИИ-редактор собирает страницу по вашему описанию на обычном языке. Вам не нужно знать программирование: вы говорите, какие блоки и поля нужны, агент пишет разметку.
- Откройте Cursor, создайте папку проекта и попросите Agent: «Одностраничник: hero, услуги, форма имя + телефон + комментарий, mobile-first».
- Проверьте, что у каждого поля есть атрибут name (name=»phone», name=»message») — без него данные не доедут.
- Добавьте скрытое honeypot-поле (display:none) — боты заполнят его, люди нет; спам-фильтры Formspree это учитывают.
- Вставьте чекбокс согласия на обработку данных — для рекламы и мессенджеров это must-have.
- Сохраните index.html локально и откройте в браузере: форма должна выглядеть нормально на ширине 375 px (телефон).
На практике в промпте укажите: «add contact form using Formspree» — так Cursor сразу подставит правильные action и method POST. Типичная ошибка: красивые поля без name — в таблице приходят пустые ячейки.
Подключите приёмник и уберите ошибку 405

Ошибка 405 на Vercel или GitHub Pages — классика: браузер шлёт POST на статический хост, а там некому ответить. Лечение одно — сменить action на внешний endpoint.
- Зарегистрируйтесь в Formspree или создайте Custom Webhook в Make (модуль Webhooks → Custom webhook → Run once, скопируйте URL).
- В index.html задайте method=»POST» и action=»https://formspree.io/f/ВАШ_ID» или URL webhook Make.
- Не используйте sendmail.php, action=»/» и GET вместо POST — так форма «молчит» или отдаёт 405.
- Отправьте тест с телефона (не только с ноутбука): мобильная клавиатура и автозаполнение иногда ломают валидацию.
- Проверьте дашборд Formspree, ответ Tally или историю webhook в Make — там должна появиться заявка.
Контринтуитивный момент из обсуждений Make Community: обычный HTML form POST на hook.make.com работает, а fetch() из браузера на тот же URL часто блокируется политикой CORS. Для новичка правило простое — не трогайте JavaScript для отправки, оставьте нативную форму.
Соберите сценарий Make: таблица и Telegram
Make.com — конструктор автоматизаций: блоки соединяются стрелками, как схема на доске. Webhook — вход; Google Sheets Add a Row — запись; Telegram Bot — уведомление вам в мессенджер.
Схема цепочки:
Форма на сайте → Custom Webhook (или Tally Watch Responses) → Google Sheets «Заявки_тест» → Telegram Send a Message
- Создайте Google Таблицу с листом «Заявки_тест» и колонками: дата, имя, телефон, комментарий, источник.
- В Make: триггер Webhooks (или Tally → Watch New Responses с OAuth) → Google Sheets → Add a Row → выберите только тестовый лист.
- Сопоставьте поля из webhook с колонками (имя, телефон). Нажмите Run once и отправьте тестовую заявку с сайта.
- Добавьте модуль Telegram Bot → Send a Message с текстом «Новая заявка: {{имя}}, {{телефон}}».
- Включите сценарий ON. Без этого live-заявки не пойдут, даже если Run once был зелёным.
Боитесь «сломать» рабочую таблицу? Подключайте только лист «Заявки_тест». Тестовые строки изолированы; основные листы не трогаете. В реальном проекте так отлаживают сценарий, пока не увидят зелёный лог и строку с тестовым именем.
Опубликуйте сайт и проверьте заявку end-to-end
- Залейте проект на Vercel (import из GitHub) или drag-and-drop статики — главное, чтобы index.html открывался по HTTPS.
- Откройте боевой URL с телефона, заполните форму реальными тестовыми данными.
- В течение 1-2 минут проверьте: новая строка в Google Таблице и сообщение в Telegram.
- Если заявка «пропала» — откройте History в Make: красный модуль покажет, где оборвалось (часто несовпадение имён полей).
- Зафиксируйте лимиты: Formspree free — 50 заявок/мес и 20 POST/мин; Make free — 1 000 credits/мес. Перед рекламой оцените поток лидов.
Чек-лист перед запуском рекламы: не вызывайте Make через fetch из браузера; honeypot на месте; согласие отмечено; сценарий ON; тестовый лист отделён от рабочих данных.
Как понять, что всё сработало
Критерий успеха простой и проверяемый с телефона:
- Тестовая заявка с опубликованного сайта доходит до приёмника (Formspree, Tally или зелёный webhook в Make).
- В Google Таблице на листе «Заявки_тест» появляется строка с именем и телефоном в течение 1-2 минут.
- Telegram-бот присылает уведомление с теми же данными.
- В логах Make сценарий зелёный на всех модулях — не только на Run once, но и на живой отправке.
Если хотите углубиться в автоматизацию без кода — в курсе Make.com на kv-ai.ru разбирают webhook, Google Sheets и Telegram на живых примерах; первые занятия подходят новичкам.
Материал проверен: Артур Хорошев (CEO Maya AI, автор курса по Make.com и вайбкодингу).
Достоверность данных: лимиты Formspree и rate limit — help.formspree.io (account-limits, system-limits); тарифы и credits Make — make.com/en/pricing; паттерн form POST и webhook — make.com/how-to-guides/how-to-automate-form-data-collection; ошибка 405 на статике — splitforms.com/blog/form-submission-405-error; CORS и form submit — community.make.com; частотность «форма заявки на сайте» (685), «как сделать форму заявки на сайте» (29) — Яндекс Вордстат, июнь 2026.
Частые вопросы
Как сделать форму заявки на сайте без программиста?
Соберите index.html в Cursor Agent, укажите method POST и action на Formspree или webhook Make, опубликуйте на Vercel. Для таблицы и Telegram добавьте сценарий Make: Webhook → Google Sheets → Telegram. Весь путь — без PHP и своего сервера.
Почему форма на Vercel выдаёт 405 Not Allowed?
Статический хост не обрабатывает POST на ваш домен. Замените action на внешний URL Formspree, Tally или Make. Не оставляйте action=»/» и не подключайте .php без реального сервера.
Почему заявка не доходит до Make?
Проверьте: сценарий включён ON; URL webhook скопирован в action формы; у полей есть name; вы не отправляете через fetch (CORS). Запустите Run once и отправьте форму снова — смотрите History, какой модуль красный.
Formspree или Tally — что выбрать новичку?
Formspree — если форма уже в HTML: вставили action, получили email и до 50 заявок/мес бесплатно. Tally — если удобнее собрать поля в конструкторе и в один клик связать с Make через OAuth. Обе схемы ведут в Google Таблицу через Make.
Можно ли вставить URL Make прямо в JavaScript fetch?
Не стоит: браузер часто блокирует такой запрос из-за CORS. Используйте обычный тег form с method POST и action на webhook — это поддерживают и Make, и документация по автоматизации форм.
Как подключить форму к Google Таблице через Make?
Создайте сценарий с триггером Custom Webhook или Tally Watch Responses, модуль Google Sheets Add a Row, укажите лист и сопоставьте колонки с полями формы. После тестовой отправки строка должна появиться за 1-2 минуты.
Что делать, если кончились бесплатные заявки?
Formspree free — 50/мес; Make free — 1 000 credits/мес и 2 активных сценария. Следите за счётчиком в кабинетах до запуска рекламы или перейдите на платный тариф, иначе форма визуально работает, а данные не сохраняются.