Блог
Миграция с Formspree на Formhook: руководство на десять минут
· 3 мин чтения
Главное преимущество категории «бэкенд для форм» в том, что переход между провайдерами изначально тривиален: единственная точка интеграции на вашем сайте - это один URL. Вот полная миграция, включая моменты, которые обычно забывают.
(Зачем вообще мигрировать? Честное сравнение - цены, сроки хранения данных, хостинг в ЕС - на странице Formhook против Formspree. Это руководство предполагает, что решение вы уже приняли.)
Шаг 1: экспортируйте существующие отправки
Если вы на платном тарифе Formspree, сначала экспортируйте историю отправок - согласно их странице с тарифами, экспорт входит начиная с плана Personal. Найдите опцию экспорта в разделе отправок вашей формы и скачайте всё, прежде чем что-либо менять. Если вы на бесплатном тарифе, скопируйте нужное вручную; их бесплатный план рассчитан на тестирование, так что в идеале там немного продуктивных данных.
Сохраните этот экспорт независимо от того, куда вы в итоге перейдёте - резервная копия данных о лидах, не привязанная к конкретному провайдеру, - это просто хорошая практика.
Шаг 2: создайте форму в Formhook
Зарегистрируйтесь, создайте форму и скопируйте её ключ. Заодно настройте два параметра:
- Список разрешённых источников CORS - добавьте домен(ы) вашего сайта, включая вариант с
www, если используете оба. - Turnstile - если раньше у вас была защита вроде CAPTCHA, включите Turnstile прямо сейчас, чтобы защита не прерывалась во время перехода. Honeypot и ограничение частоты запросов уже включены.
Шаг 3: правка одной строки
- <form action="https://formspree.io/f/xyzabcde" method="POST">
+ <form action="https://formhook.app/f/fh_your-key" method="POST">Названия полей менять не нужно - оба сервиса принимают стандартные form-encoded POST-запросы, а Formhook дополнительно принимает JSON и multipart. Если вы использовали fetch/AJAX, та же правка одной строки применяется к URL в вашем коде.
Что стоит поискать по всему проекту, чтобы не упустить ни одного места: старый URL в компонентах, переменные окружения вроде FORM_ENDPOINT, и любой захардкоженный эндпоинт в шаблонах отдельных страниц. Для сайтов с несколькими формами: бесплатный тариф Formhook включает несколько форм, поэтому привяжите каждую старую форму к собственному ключу, а не объединяйте их - так уведомления и настройки для каждой формы останутся раздельными и понятными.
Шаг 4: протестируйте с развёрнутого сайта
Разверните изменения, затем отправьте настоящий тест с боевого URL, а не с localhost - только там одновременно проверяются CORS, DNS и TLS. Убедитесь в трёх вещах: в браузере отображается состояние успеха, отправка появляется в вашей панели Formhook, а уведомление приходит на устройство. Заодно пройдите полный чек-лист перед запуском.
Шаг 5: отключите старую форму
Оставьте старую форму Formspree активной ещё на несколько дней как подстраховку, а затем отключите её, убедившись, что отправки исправно идут в Formhook. Храните экспорт в архиве. На этом вся миграция закончена - один атрибут, пара настроек и один тест. Причина, по которой это так просто, та же, по которой уход от любого бэкенда для форм прост: ваш сайт зависит от одного URL, а не от привязки к платформе.
Рабочая форма в одну строку
Размещение в ЕС, отправки хранятся вечно, push-уведомления на любом тарифе.
Начать бесплатноБез банковской карты · читайте документацию
Читать дальше
- Что такое бэкенд форм? (И когда он вам нужен)Бэкенд форм принимает, хранит и пересылает отправки форм вашего сайта, чтобы вам не пришлось запускать сервер. Вот как это работает и когда он вам нужен.
- Тестирование контактной формы: чек-лист перед запускомСломанная контактная форма отказывает молча и стоит вам лидов неделями. Чек-лист перед запуском: сценарий, валидация, спам, мобильность, уведомления.
- Спам в формах: honeypot, ограничение частоты и TurnstileКак работает спам в формах и три слоя защиты: honeypot, ограничение частоты запросов и Cloudflare Turnstile - без вреда для настоящих посетителей.