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.
Os presets
Seção intitulada “Os presets”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.
Como a IA conecta tudo
Seção intitulada “Como a IA conecta tudo”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.
Anexos de arquivos
Seção intitulada “Anexos de arquivos”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.
Onde ficam as submissões
Seção intitulada “Onde ficam as submissões”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).
Recebendo um e-mail a cada submissão
Seção intitulada “Recebendo um e-mail a cada submissão”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.
Padrões comuns (deixe a IA cuidar disso)
Seção intitulada “Padrões comuns (deixe a IA cuidar disso)”"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."
Relacionados
Seção intitulada “Relacionados”- 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.