Catálogo de tipos de campo
O construtor de formulários vem com 17 tipos de campo. Eles se dividem em três grupos: campos de input que coletam dados do visitante, campos de escolha que limitam o input a uma lista, e campos de exibição que não recebem input mas ajudam a estruturar o formulário.

Quando você clica em + Campo na barra de ferramentas, recebe um menu mostrando todos eles. Escolha o que serve.
Campos de input
Estes aceitam input livre — um nome, um número de telefone, uma redação.
Text
Um input de uma única linha. Melhor para nomes, títulos, respostas curtas ("Qual sua música de adoração favorita?"). O tipo de campo mais usado de longe.
Validação: min_length, max_length. Se você definir ambos, o campo rejeita envios fora do intervalo.
Textarea
Um input multilinha. Melhor para pedidos de oração, comentários, respostas mais longas em estilo de história. Padrão três linhas de altura — cresce automaticamente enquanto o visitante digita.
Validação: o mesmo que Text — min_length, max_length.
Email
Um campo de texto validado contra uma regex de e-mail (qualquercoisa@qualquercoisa.tld). Input com formato errado mostra um erro ao perder o foco.
O fluxo de envio do formulário também usa automaticamente o valor de um campo email como submitter_email na linha de envio resultante — é o que aparece na coluna Email na tabela de envios. Se você tem múltiplos campos de email, o primeiro com um valor ganha.
Phone
Um campo de texto que aceita um número de telefone. Não há formato imposto porque a validação de telefone é bagunçada internacionalmente — mas mostra um teclado estilo telefone no mobile.
Number
Um input numérico com min, max e step opcionais. Melhor para contagens ("Quantas pessoas vêm?"), idades, avaliações em uma escala personalizada.
O valor de step controla a granularidade — step: 1 só permite inteiros, step: 0.5 permite meios.
Date
Um seletor de data. Padrão a data de hoje no placeholder. Armazena como string de data ISO (YYYY-MM-DD).
Time
Um seletor de hora. Armazena como HH:MM (24 horas internamente; a localização do visitante controla como é exibido).
URL
Um campo de texto validado contra https?://.... Útil para "Link para seu vídeo de testemunho" ou "Suas redes sociais."
File upload
Permite ao visitante anexar um único arquivo. Uploads vão para o bucket de armazenamento Supabase form-uploads no caminho {org_id}/submissions/{submission_id}/{field_id}/{filename}.
Configuração:
- Allowed file types — predefinições de caixa de seleção para PDF, Images, Documents, Spreadsheets, mais uma caixa de texto de extensões personalizadas (
.dwg, .ai, .zip). Padrão PDF + formatos de imagem comuns. - Max file size (MB) — limitado a 100MB. Padrão 5MB.
Se o arquivo do visitante falha em qualquer verificação, o formulário mostra um erro inline antes de ele poder enviar.
Rating
Um controle de avaliação por estrelas. Visitantes tocam nas estrelas; o valor armazenado é a contagem selecionada. O número de estrelas é configurável de 1–10 (max_stars), padrão 5.
Melhor para "Como você avalia o culto de hoje?" ou "Avalie a experiência do grupo pequeno."
Campos de escolha
Estes limitam a resposta do visitante a uma lista de opções que você controla. Você adiciona opções na seção Type Options da configuração do campo — clique em + Add option para adicionar linhas.
Select (único)
Um dropdown. O visitante escolhe uma opção. Melhor quando você tem mais de cinco opções e não quer que todas fiquem visíveis.
Multi-select
Um dropdown que permite múltiplas seleções. Valores selecionados são armazenados como um array.
Radio
Como Select, mas renderiza como uma lista vertical de botões de rádio. O visitante escolhe um. Melhor quando você tem de duas a cinco opções e quer que todas fiquem visíveis.
Checkbox
Este tem propósito duplo:
- Nenhuma opção configurada — renderiza como uma única caixa de seleção sim/não. Usado para coisas como "Concordo em ser contatado." Quando marcado como obrigatório, o visitante deve marcar para enviar.
- Opções configuradas — renderiza como uma lista de caixas de seleção; o visitante pode marcar qualquer número. Armazenado como um array de valores selecionados.
Campos de exibição
Estes não coletam nada. Eles estruturam o formulário.
Heading
Um cabeçalho de seção em texto maior dentro de uma seção. Nível configurável: H2, H3 ou H4. Útil quando você tem uma única seção longa mas quer uma quebra visual dentro dela ("Dados pessoais" depois alguns campos, depois "Seu pedido" depois mais campos).
Cabeçalhos não são obrigatórios, não são validados e nunca aparecem em envios. São pura disposição.
Divider
Uma régua horizontal. Útil entre grupos conceitualmente diferentes de campos quando você não quer um cabeçalho. Ainda menos dados que um cabeçalho — sem rótulo, sem configuração.
Hidden
Um campo que não aparece para o visitante mas envia um valor padrão com o envio. default_value configurável na configuração do campo.
Casos de uso:
- Marcar cada envio com a origem — ex.: um campo oculto
source = "youth-camp-flyer"para você saber quais envios vieram de qual flyer - Pré-preencher um valor via query string da URL (avançado — requer um bloco personalizado do construtor de site; ainda não suportado na URL independente do formulário)
- Rastrear um código de campanha sem pedir para o visitante digitar
Tabela de decisão rápida
| Você quer… | Tipo de campo |
|---|---|
| Uma resposta curta | Text |
| Uma resposta em parágrafo | Textarea |
| Um e-mail obrigatório para contato | |
| Um número de telefone | Phone |
| Uma contagem, idade ou quantidade | Number |
| Uma data de agendamento | Date |
| Um horário de início | Time |
| Um link | URL |
| Uma foto assinada / autorização / PDF | File upload |
| Uma pontuação de satisfação 1–5 | Rating |
| Escolher um entre muitos | Select ou Radio |
| Escolher muitos entre muitos | Multi-select ou Checkbox (com opções) |
| Uma caixa de consentimento | Checkbox (sem opções) |
| Quebra de seção | Heading ou Divider |
| Metadados silenciosos | Hidden |
O que não está no catálogo
Alguns tipos de campo que aparecem às vezes mas não são integrados:
- Painel de assinatura — ainda não suportado. Para autorizações, peça ao visitante para digitar seu nome em um campo Text rotulado "Digite seu nome para assinar."
- Lógica condicional ("mostrar este campo só se o anterior for sim") — ainda não suportada. Se você precisa de ramificação, construa dois formulários separados e compartilhe o link certo conforme a situação.
- Grupos repetitivos ("adicionar outro participante") — não suportado. Peça uma contagem em um campo Number em vez disso.
Estes são rastreados no roadmap; o construtor de formulários ainda está amadurecendo.
