Блог
Владейте своими данными: экспорт каждой собранной отправки формы
· 4 мин чтения
Передавать отправки форм стороннему сервису - значит доверять ему данные, которые однажды могут понадобиться обратно целиком: не скриншот, не частичный CSV, а всё, включая файл, приложенный кем-то к заявке на работу полтора года назад. Это опасение обоснованно. Бэкенд форм, позволяющий читать собственные данные только через собственный интерфейс, - это бэкенд, который вы арендуете, а не которым пользуетесь.
Ответ Formhook - полный экспорт аккаунта в один клик: каждая форма, каждая отправка, каждый загруженный файл, упакованные в единый ZIP-архив, который вы скачиваете и храните у себя. Вот что именно в нём содержится и почему формат выбран не случайно.
Что на самом деле находится в архиве
На странице аккаунта запуск экспорта транслирует потоком ZIP-файл с именем formhook-export-YYYY-MM-DD.zip. Внутри - две вещи:
- Манифест
export.json- структурированный документ с данными вашего аккаунта, каждой принадлежащей вам формой и каждой отправкой по этим формам, причём каждая отправка несёт полные данные своих полей плюс метаданные вроде времени поступления и того, какой форме она принадлежит. - Оригинальные загруженные файлы - каждое вложение, когда-либо отправленное через ваши формы, хранится по собственному пути и указано в соответствующей записи отправки внутри манифеста, побайтово идентично тому, что было загружено.
Ничего не сокращается, не выбирается выборочно и не остаётся за бортом. Экспорт транслирует архив потоком по мере его сборки, поэтому масштабируется одинаково хорошо и при сотне отправок, и при сотне тысяч - вам не приходится ждать отчётную задачу, которая может упасть по таймауту.
Почему JSON, а не таблица
Легко предположить, что «настоящий» экспорт - это CSV, открываемый в электронной таблице, и многие инструменты для форм действительно выбирают это по умолчанию. Именно для данных форм это неверный выбор по умолчанию. Плоский CSV ломается по двум причинам:
- У разных форм разные поля. Ваша контактная форма может собирать имя, email и сообщение; форма отклика на вакансию собирает загрузку резюме и три произвольных вопроса. Заставьте обе уместиться в одну плоскую таблицу - и вы получите либо разреженный беспорядок из пустых столбцов, либо потеряете поля, не вписавшиеся в изначально выбранную схему.
- Отправки могут нести файловые вложения. Ячейка CSV способна хранить в лучшем случае имя файла - не сам файл. Понадобилось бы отдельное, вручную поддерживаемое сопоставление строк таблицы с папкой файлов, а именно такое сопоставление рано или поздно рассинхронизируется.
У JSON такого потолка нет. Каждая отправка сохраняет собственную форму, вложенная структура остаётся вложенной, а массив files в каждой отправке указывает прямо на путь вложения внутри того же архива. Ничего не нужно сплющивать или угадывать, чтобы сохранить с полной точностью.
Если вам действительно нужна таблица
Ничто из этого не означает тупик, если для конкретной задачи нужна именно электронная таблица - скажем, отфильтровать лиды прошлого квартала в Excel. export.json - это обычный, документированный, структурированный JSON, а не проприетарный блок данных, для расшифровки которого нужен интерфейс Formhook. Короткий скрипт или любой готовый конвертер JSON-в-CSV превращает массив отправок в таблицу за пару строк, выбирая именно те поля, которые нужны вам в качестве столбцов. Смысл экспорта не в том, чтобы избегать CSV навсегда, - а в том, чтобы держать исходные данные в формате, который заранее ничего не отбросил, так что решать, что с ними делать, будете вы, а не Formhook за вас заранее.
Как его запустить
Экспорт находится на странице аккаунта в панели управления: одна кнопка, один аутентифицированный запрос, одна загрузка ZIP. Не нужно заводить тикет в поддержку и ждать, пока кто-то выполнит запрос от вашего имени - это одно и то же действие, доступное каждому аккаунту, на любом тарифе.
Переносимость данных - не просто приятный бонус
Если вы собираете отправки форм от людей из ЕС, это тоже не просто удобство - право на переносимость данных по GDPR означает, что люди, отправившие ваши формы, могут запросить свои данные в структурированном, широко используемом, машиночитаемом формате, и вы должны быть в состоянии его предоставить. export.json - именно такой формат, будь то для вашего собственного аккаунта или как исходный источник данных при ответе на запрос о переносимости. Более полную картину того, что требует соответствие GDPR помимо экспорта, см. в нашем руководстве по GDPR-совместимой контактной форме.
Бэкенд форм никогда не должен быть местом, где застревают ваши данные. Подробнее в документации или сравните, что включено на каждом тарифе, на странице тарифов - экспорт доступен на любом плане, включая бесплатный.
Рабочая форма в одну строку
Размещение в ЕС, отправки хранятся вечно, push-уведомления на любом тарифе.
Начать бесплатноБез банковской карты · читайте документацию
Читать дальше
- Формы обратной связи, соответствующие GDPR: практический чек-листЧто GDPR требует от формы обратной связи: правовое основание, место и сроки хранения, политика конфиденциальности. Чек-лист для разработчиков.
- Что такое бэкенд форм? (И когда он вам нужен)Бэкенд форм принимает, хранит и пересылает отправки форм вашего сайта, чтобы вам не пришлось запускать сервер. Вот как это работает и когда он вам нужен.
- Миграция с Formspree на Formhook: руководство на десять минутСмена бэкенда для форм - правка одной строки. Миграция с Formspree на Formhook за десять минут: экспорт данных, эндпоинт, защита от спама, тестирование.