Pular para o conteúdo

Formulários

Formulários prontos de contato, orçamento, agendamento e cadastro. A IA insere um com um único componente — sem handler de envio para escrever — e cada resposta chega na caixa de entrada de submissões do seu app.

Formulários no Proyecta são uma capacidade, não algo que a IA constrói manualmente. Quando seu app precisa de uma forma de os visitantes entrarem em contato — um formulário de contato, uma solicitação de orçamento, um agendamento, uma inscrição em evento — o Proyecta provisiona uma definição de formulário pronta e a renderiza por meio de um bloco gerenciado pelo template. Validação, estado de sucesso, armazenamento de submissões e notificação ao proprietário já vêm incluídos.

Todo formulário começa a partir de um dos cinco presets integrados. Descreva o formulário que você quer e o Proyecta escolhe (e adapta) o mais adequado — você nunca precisa criar campos do zero.

Preset form api id Para que serve Combina com
Contact contactForm “Fale conosco” geral: nome, e-mail, telefone opcional, mensagem Informações do negócio
Quote quoteForm Solicitação de orçamento: dados de contato + qual serviço + detalhes do trabalho Serviços
Booking bookingForm Agendamento / consulta: serviço, data e horário preferidos, dados de contato Serviços
Registration registrationForm Inscrição em evento ou curso (RSVP): dados do participante + observação Eventos
Order orderForm Recebimento de pedidos: o que o cliente quer, dados de contato, observações Cardápio, catálogo

Você pode ter vários formulários em um único app (ex.: um formulário de contato e um de agendamento), e a IA pode adicionar, renomear ou reformular campos em qualquer um deles.

A IA nunca constrói um formulário ou um handler de envio manualmente. Ela insere o <FormBlock/> gerenciado pelo template e o aponta para um formulário pelo id ou api id:

import { FormBlock } from '@/components/blocks/FormBlock';
// Em qualquer lugar de uma página pública — uma seção de contato, um painel de "solicitar orçamento", etc.
<FormBlock form="contactForm" />;

O <FormBlock/> faz tudo por conta própria:

  • Renderiza os campos por tipo — texto / e-mail / telefone como inputs, texto longo como textarea, escolhas como dropdown, opt-ins como checkbox, datas e horários como seletores nativos, e campos de arquivo como um controle de “anexar arquivo”.
  • Valida no navegador — campos obrigatórios são verificados antes de qualquer envio.
  • Valida no servidor — se o servidor rejeitar um valor, o erro específico é exibido inline ao lado daquele campo (sem submissões perdidas, sem falhas silenciosas).
  • Exibe um estado de sucesso — ao enviar, o formulário é substituído por uma confirmação amigável (a mensagem de confirmação do próprio formulário) com a opção de enviar outra resposta.
  • Falha com segurança — se o formulário não existir ou tiver sido desativado, o bloco não renderiza nada, então nunca pode quebrar uma página pública.

Como o bloco é gerenciado pelo template, o trabalho da IA é apenas posicioná-lo e estilizar a seção ao redor — o funcionamento interno é fixo e correto.

Formulários podem aceitar o upload de um arquivo (um comprovante, uma foto de referência, um briefing). Campos de arquivo renderizam um botão de “anexar arquivo”, fazem o upload do arquivo para o storage e inserem sua URL pública na submissão. Os limites são aplicados automaticamente:

  • Apenas imagens e PDF, até 5 MB (imagens grandes são redimensionadas no navegador primeiro).
  • O botão de envio fica desativado enquanto um arquivo está sendo enviado, então uma submissão nunca sai pela metade.

Cada submissão é armazenada e aparece na caixa de entrada de submissões do seu app — parte do painel admin, renderizada pelo <SubmissionsInbox/> do template. A partir daí, você (o proprietário) pode:

  • Navegar pelas submissões nas abas New / Read / Archived, com um badge de não lidas em New.
  • Abrir qualquer submissão para ver os valores dos campos enviados, a página de origem e a data.
  • Marcar uma submissão como read, movê-la de volta para new ou archive á-la.
  • Filtrar a caixa de entrada por um único formulário ou ver as submissões de todos os formulários em uma lista.

A caixa de entrada é exclusiva para admins — o leitor precisa estar autenticado com uma conta admin (verificado no servidor).

Formulários podem te notificar por e-mail sempre que alguém enviar uma resposta — ative as notificações ao proprietário e defina o endereço que deve recebê-las. Você recebe o lead na sua caixa de entrada sem precisar abrir o app. O e-mail é enviado pela capacidade de e-mail do Proyecta, então funciona sem nenhuma configuração adicional.

  • "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."
  • Gerenciamento de Conteúdo — formulários ficam junto com suas coleções no mesmo modelo de conteúdo.
  • Painel Admin — onde as submissões são revisadas.
  • E-mails — como os e-mails de notificação ao proprietário são enviados.