Перейти к содержимому

Формы

Готовые формы для контакта, расчёта стоимости, бронирования и регистрации. ИИ размещает их одним компонентом — без написания обработчиков отправки — и каждая заявка попадает во входящие вашего приложения.

Формы в Proyecta — это встроенная возможность, а не то, что ИИ пишет вручную. Когда вашему приложению нужен способ получить обращение от посетителя — контактная форма, запрос на расчёт стоимости, запись на приём, регистрация на мероприятие — Proyecta создаёт готовое определение формы и отображает его через специальный блок шаблона. Валидация, состояние успешной отправки, хранение заявок и уведомление владельца предоставляются автоматически.

Каждая форма основана на одном из пяти встроенных пресетов. Опишите нужную форму, и Proyecta подберёт (и адаптирует) подходящий вариант — создавать поля с нуля не нужно.

Пресет api id формы (form) Для чего Сочетается с
Contact contactForm Общая форма «связаться с нами»: имя, email, телефон (опционально), сообщение Информация о компании
Quote quoteForm Запрос расчёта стоимости: контактные данные + услуга + детали задачи Услуги
Booking bookingForm Запись на приём: услуга, предпочтительные дата и время, контактные данные Услуги
Registration registrationForm Регистрация на мероприятие или курс (RSVP): данные участника + примечание Мероприятия
Order orderForm Приём заказа: что хочет клиент, контактные данные, примечания Меню, каталог

В одном приложении можно использовать несколько форм (например, контактную форму и форму бронирования), а ИИ может добавлять, переименовывать или изменять поля в любой из них.

ИИ никогда не создаёт форму или обработчик отправки вручную. Он добавляет шаблонный компонент <FormBlock/> и указывает на нужную форму по id или api id:

import { FormBlock } from '@/components/blocks/FormBlock';
// Где угодно на публичной странице — секция контактов, панель «запросить расчёт» и т.д.
<FormBlock form="contactForm" />;

<FormBlock/> делает всё самостоятельно:

  • Отображает поля по типу — текст / email / телефон как обычные поля ввода, длинный текст как textarea, выбор вариантов как выпадающий список, согласие как чекбокс, даты и время как нативные пикеры, файловые поля как кнопку «прикрепить файл».
  • Валидирует в браузере — обязательные поля проверяются перед отправкой.
  • Валидирует на сервере — если сервер отклоняет значение, конкретная ошибка отображается рядом с соответствующим полем (заявки не теряются, сбои не остаются незамеченными).
  • Показывает состояние успеха — после отправки форма заменяется дружелюбным подтверждением (с текстом подтверждения самой формы) и возможностью отправить ещё один ответ.
  • Безопасно обрабатывает ошибки — если форма не существует или деактивирована, блок не отображает ничего, поэтому публичная страница никогда не сломается.

Поскольку блок является частью шаблона, задача ИИ — только разместить его и оформить окружающую секцию. Вся внутренняя логика уже встроена и работает корректно.

Формы могут принимать загруженный файл (чек, фото для примера, бриф). Файловые поля отображают кнопку «прикрепить файл», загружают файл в хранилище и сохраняют его публичный URL в заявке. Ограничения применяются автоматически:

  • Только изображения и PDF, размером до 5 МБ (большие изображения масштабируются в браузере перед загрузкой).
  • Кнопка отправки заблокирована, пока файл загружается, — заявка никогда не уйдёт незавершённой.

Каждая заявка сохраняется и отображается во входящих вашего приложения — в разделе панели администратора, который отображается компонентом шаблона <SubmissionsInbox/>. Там вы (владелец) можете:

  • Просматривать заявки на вкладках New / Read / Archived с индикатором непрочитанных на New.
  • Открывать любую заявку, чтобы увидеть значения отправленных полей, страницу, с которой она пришла, и дату.
  • Отмечать заявку как прочитанную read, возвращать её в new или архивировать.
  • Фильтровать входящие по конкретной форме или просматривать заявки всех форм в одном списке.

Входящие доступны только администраторам — читатель должен быть авторизован под учётной записью администратора (проверяется на сервере).

Получение уведомлений на почту о каждой заявке

Заголовок раздела «Получение уведомлений на почту о каждой заявке»

Формы могут отправлять вам уведомления по email при каждой новой заявке — включите уведомления для владельца и укажите адрес для их получения. Заявка попадёт в вашу почту без необходимости открывать приложение. Письмо отправляется через возможность email в Proyecta, поэтому никакой дополнительной настройки не требуется.

Распространённые сценарии (пусть ИИ сделает всё сам)

Заголовок раздела «Распространённые сценарии (пусть ИИ сделает всё сам)»
  • "Add a contact form to the footer with name, email, and message, and email me at hello@mybiz.com whenever someone submits."
  • "Put a 'Request a quote' form on each service page that asks which service they need and the job details."
  • "Add a booking form so clients can request an appointment with a preferred date and time."
  • "Create an event registration form for the workshop page and let attendees attach a PDF."
  • "Show me the submissions inbox and only the ones I haven't read yet."