# Formulários

> O módulo de espaço Formulários. Como criar um espaço de um formulário ou de vários, montar os campos no editor (14 tipos, etapas, obrigatório, bloquear no perfil, pré-visualização), escolher quem preenche, proteger com senha, publicar pelo link, receber cada envio por e-mail, trabalhar a lista de envios com estados, filtros e CSV, guardar quem enviou como membro e levar os envios a webhooks, HubSpot e RD Station.

O **formulário** recolhe dados estruturados de quem é membro e de quem ainda não é: o pedido de demonstração do seu site, a inscrição num programa, a candidatura a uma vaga, o registo de interesse num curso que ainda vai abrir. Cada envio chega por e-mail aos responsáveis e fica numa **lista de envios**, um a um, com estado de atendimento, filtros e CSV, dentro da comunidade, sem Google Forms nem Typeform.

**Formulários** é um [módulo de espaço](/conceitos/modulos), no separador **Comunidade** de **Adicionar Espaço**, com a descrição *"Colete dados de membros e visitantes, com lista de envios"*. Todos os formulários vivem num espaço de Formulários.

## Formulário ou inquérito

| | [Inquérito](/espacos/pesquisas) | Formulário |
|---|---|---|
| Para quê | Medir opinião: NPS, satisfação, clima | Recolher dados de contacto e pedidos |
| Tipos de campo | Escolha, escala, NPS e texto | Nome, e-mail, telefone, empresa, cargo, texto, escolhas, número, data, link e consentimento |
| O que a equipa vê | O resultado consolidado (gráficos, NPS), com anonimato opcional | Cada envio, um a um, com nome e e-mail, e um estado de atendimento |
| Aviso | Convite por e-mail ao abrir | Um e-mail aos responsáveis a cada envio |
| Torna-se membro | Não | Opcional: **Salvar como membro** |

## Criar o espaço

1. Na barra lateral, **Adicionar Espaço**, separador **Comunidade**, **Formulários**.
2. Em **Como o espaço funciona**, escolha:
   - **Um formulário**: *"O espaço é o próprio formulário e abre direto nele."* O passo seguinte da mesma janela pede o **Título do formulário** (e uma **Introdução**, opcional); **Criar formulário** termina no editor dele.
   - **Vários formulários**: *"Uma lista: crie quantos formulários quiser neste espaço."* O espaço abre na lista, com **Novo formulário**.
3. O formulário nasce como **Rascunho**: *"ninguém vê até você publicar"*, nem pelo link.

### Quem cria

Quem o espaço deixa publicar: a opção **Quem pode publicar** do espaço (ver [Espaços](/conceitos/espacos)). O proprietário e o administrador podem sempre. Num espaço de **Vários formulários**, quem não está na seleção não vê **Novo formulário** (e a API responde 403). Num espaço de **Um formulário**, o formulário nasce com o espaço, criado por quem criou o espaço.

Um membro que cria um formulário gere-o como a equipa, com uma diferença: as opções **Qualquer pessoa com o link** e **Salvar como membro** são **só da equipa** (proprietário, administrador, moderador e financeiro). O membro não as vê no editor, e a API recusa com 403 se ele tentar ligá-las.

## O editor

O editor já é o ecrã que quem preenche vê: escreve o título e a introdução no próprio lugar, e cada campo aparece como vai aparecer.

- **Etapas.** O formulário divide-se em etapas (secções), cada uma com título e descrição; quem preenche avança com **Próximo**. **Nova etapa** cria outra; **Remover etapa** retira a etapa e os campos dela (os envios já recebidos continuam com as respostas). Até 20 etapas.
- **Campos.** **Adicionar campo** ou o **+** entre dois campos insere no lugar. Até 100 campos por formulário. Arraste para reordenar, ou use **Subir**, **Descer** e **Mover para a etapa**.
- **Propriedades.** Clique num campo para abrir o painel **Campo**: **Tipo**, **Obrigatório**, **Texto de exemplo no campo** e, no número, **Mínimo** e **Máximo**. O rótulo e o **Texto de ajuda** escrevem-se no próprio campo. **Duplicar** e **Remover** ficam no painel.
- **Guardar.** O topo mostra *Alterações não salvas* ou *Tudo salvo*; **Salvar** grava.
- **Pré-visualização.** **Prévia** mostra o formulário **Como membro** (com nome, e-mail e telefone de exemplo vindos de um perfil) ou **Como visitante**, sem guardar nada; no fim, mostra a mensagem de agradecimento ou para onde a pessoa iria.

### Os 14 tipos de campo

| Tipo | O que verifica |
|---|---|
| **Nome** | Texto; vem do perfil para o membro com sessão iniciada |
| **E-mail** | Um endereço válido; vem do perfil |
| **Telefone** | Com o país, no formato internacional; vem do perfil |
| **Empresa** | Texto |
| **Cargo** | Texto |
| **Texto curto** | Até 200 caracteres |
| **Texto longo** | Até 5.000 caracteres |
| **Escolha única** | Uma das opções (de 2 a 50) |
| **Múltipla escolha** | Uma ou mais opções (de 2 a 50) |
| **Número** | Um número, dentro do mínimo e do máximo, se existirem |
| **Data** | Uma data válida |
| **Link (URL)** | Um endereço que começa com `http://` ou `https://` |
| **Documento (CPF ou passaporte)** | CPF com os dígitos de controlo, ou passaporte e outro documento como texto (de 3 a 40 caracteres); a equipa vê o número inteiro |
| **Consentimento (LGPD)** | A caixa de concordância, sempre obrigatória |

Nome, e-mail, telefone, empresa e cargo entram uma vez cada por formulário: são eles que formam o contacto (na lista, na pesquisa, nos e-mails e no **Salvar como membro**).

### Travar no perfil

Nos campos **Nome**, **E-mail** e **Telefone**, o membro com sessão iniciada já encontra o valor do perfil preenchido. Com **Travar no perfil** ligado (*"Para membro com sessão iniciada, o valor vem do perfil e não se edita"*), ele não pode alterar o valor no formulário, e o campo mostra *"Vem do seu perfil."* Desligado, o valor vem preenchido e a pessoa pode trocá-lo. Para o visitante, o campo é comum.

## Configurações

**Configurações**, no topo do editor, abre quatro separadores. Valem quando guarda o formulário.

### Quem preenche

| Opção | O que faz |
|---|---|
| **Membros com acesso ao espaço** | *"Preenchem no app ou pelo link, com sessão iniciada."* O envio fica ligado ao membro |
| **Qualquer pessoa com o link** | *"Sem sessão, com verificação anti-robô e consentimento obrigatório."* Só a equipa liga |
| **Salvar como membro** | Cada envio convida a pessoa para a comunidade, com uma tag com o nome do formulário (ver abaixo). Pede um campo de e-mail obrigatório. Só a equipa liga |
| **Senha de acesso** | *"Quem abre o link escreve a senha antes de ver o formulário. Não é senha de conta."* Mínimo de 6 caracteres; para a trocar, escreva a nova (em branco, mantém a atual) |
| **Política de privacidade (link)** | Aparece no consentimento. Sem ela, valem os [termos de utilização da Memberfy](/conceitos/termos-de-uso) |

Marque pelo menos uma das duas primeiras. Um formulário aberto a visitantes tem sempre o campo **Consentimento (LGPD)**: o editor coloca-o automaticamente e não deixa removê-lo.

### Depois do envio

- **Mostrar uma mensagem**: a **Mensagem de agradecimento** no próprio ecrã. Sem nenhuma escrita, aparece *"Recebemos seu envio. Obrigado! Suas respostas chegaram à equipa."*
- **Levar para um site**: a pessoa vai para o **Link de destino**, que tem de começar com `https://`.

### Prazo e limite

- **Encerrar em**: a data e a hora em que o formulário fecha sozinho, no fuso horário da comunidade (a sigla aparece ao lado). Sem data, fica aberto até o encerrar. **Tirar o prazo** limpa.
- **Limite de envios**: *"Ao chegar no limite, o formulário encerra sozinho."* O limite é verificado no próprio envio: dois envios ao mesmo tempo nunca o ultrapassam. Sem número, **Sem limite**.

### Avisos

- **Responsáveis**: quem recebe um e-mail a cada envio e vê a lista de envios, até 20 pessoas (pesquise pelo nome). Quem cria o formulário entra como responsável.
- **Confirmação a quem enviou**: ligada por predefinição, envia o e-mail *"Recebemos o seu envio"* para o endereço do campo de e-mail (para o membro com sessão iniciada, o e-mail da conta). O texto é fixo: diz apenas que a comunidade recebeu o envio, com a cor da comunidade, sem repetir as respostas.

## Publicar, encerrar e apagar

| Estado | O que acontece |
|---|---|
| **Rascunho** | Visível só para quem gere; o link não abre |
| **Aberto** | O link abre e o formulário recebe envios; os membros com acesso ao espaço veem-no na lista |
| **Encerrado** | O link mostra *"Formulário encerrado. Este formulário não aceita mais envios."* |

- **Publicar** pede pelo menos um campo além do consentimento. Se o formulário aceita membros, a publicação feita pela equipa avisa por e-mail quem tem acesso ao espaço, uma vez, 10 minutos depois, na categoria **Formulários** (ver [E-mails desta comunidade](/notificacoes/emails-desta-comunidade)). A publicação feita por um membro não envia e-mail.
- **Encerrar** deixa de aceitar envios; os recebidos continuam na lista. **Reabrir** volta a abri-lo (com o prazo expirado ou o limite atingido, altere-os antes).
- **Apagar** desliga o link e o formulário desaparece da lista. Os envios continuam guardados para o proprietário.
- O formulário pode ser editado em qualquer estado. Cada envio guarda uma cópia do que foi enviado, com o rótulo do campo nesse momento.

## O link público

**Copiar link**, no editor, copia o endereço do formulário, no domínio da comunidade: `clube.memberfy.net/f/…`. O código do link é longo e impossível de adivinhar.

- **O membro com sessão iniciada** preenche pelo link ou pela lista do espaço, sem verificação anti-robô.
- **O visitante** (com **Qualquer pessoa com o link** ligado) preenche sem conta. Antes de enviar, o navegador resolve uma verificação anti-robô, invisível na maioria das vezes; existe também um limite de envios por endereço de internet a cada 10 minutos. Se o ultrapassar, o ecrã pede para esperar.
- Num formulário só para membros, quem não tem sessão iniciada vê *"Inicie sessão para preencher. Este formulário é só para membros da comunidade."*
- **Com senha**, o ecrã pede a **Senha de acesso** antes de mostrar os campos. Errar várias vezes bloqueia novas tentativas durante alguns minutos, e depois de muitas senhas erradas no mesmo formulário em 1 hora, quem abre passa por uma verificação anti-robô antes de tentar de novo; o formulário não fica bloqueado. Se o acesso expirar enquanto a pessoa preenche, ela escreve a senha de novo e as respostas continuam lá.

Os erros aparecem no próprio campo: *"Preencha este campo."*, *"Escreva um e-mail válido."*, *"Marque o consentimento para enviar."*, *"O mínimo é …"*.

### Incorporar no seu site

O botão **Incorporar**, ao lado de **Copiar link**, abre dois códigos para colar no HTML do seu site, onde o formulário deve aparecer:

- **Script (recomendado)**: a altura ajusta-se sozinha, sem barra de deslocamento.
- **iframe**: para sites que não aceitam script; a altura é fixa (ajuste o `height` se precisar).

Os dois usam o domínio do link público do formulário (o domínio próprio da comunidade, quando tem um). Incorporado, o formulário aparece compacto, nas cores da comunidade; os links abrem num novo separador, e o redirecionamento depois do envio leva a página onde está incorporado. Num formulário só para membros, o início de sessão abre num novo separador. O resto funciona como pelo link: verificação anti-robô, senha de acesso, limites e **Salvar como membro**.

O idioma do formulário incorporado segue o `data-lang` do script (por exemplo, `data-lang="pt-PT"`; na ligação, `?lang=`) e, sem ele, o idioma da comunidade, nunca o do navegador de quem visita. A janela **Incorporar** já preenche o `data-lang` com o idioma da comunidade.

## Consentimento (LGPD)

Quando o formulário aceita visitantes, a comunidade passa a recolher dados de quem não é membro e é a responsável pelo tratamento desses dados. Por isso:

- o campo **Consentimento (LGPD)** é obrigatório e não pode ser removido; o texto predefinido é *"Concordo com o uso destes dados para que a equipa entre em contacto comigo."*, e pode reescrevê-lo;
- ao lado aparece o link da **Política de privacidade** que indicou (sem ela, os termos de utilização da Memberfy) e o aviso *"Seus dados vão para a equipa de …"*;
- cada envio guarda a prova do consentimento: o texto aceite, o link da política e a data e a hora. O envio aparece com **Consentimento: Sim**, *"Aceito em …"*.

Os envios ficam guardados até alguém da equipa os apagar; não há eliminação automática.

## Os envios

**Envios**, no editor (com o contador de **Envios recebidos** e quantos são novos), abre a lista. Cada linha traz a data, a origem (**Membro** ou **Visitante**), o nome, o e-mail e o estado.

**Quem vê:** quem criou o formulário, a equipa (proprietário, administrador, moderador e financeiro) e os responsáveis. Os outros membros não abrem a lista, o envio nem o CSV (403).

- **Estado**: **Novo** (*"Ninguém falou com esta pessoa ainda."*), **Em contacto** e **Concluído**, por qualquer ordem, em **Gerenciar envio**.
- **Filtros**: estado, origem, período (**De** e **Até**) e a pesquisa *"Buscar por nome, e-mail ou resposta"*.
- **O envio**: todas as respostas, a data, o membro (quando tem sessão iniciada), o resultado do **Salvar como membro** e a prova do consentimento.
- **Exportar CSV**: os envios do filtro atual, uma coluna por campo, com estado, origem e datas no fuso horário da comunidade.
- **Apagar** um envio retira-o da lista e do CSV; os outros não mudam (e o limite de envios não reabre).

## Salvar como membro

Com **Salvar como membro** ligado, cada envio passa a ser um contacto dentro da comunidade:

| Quem enviou | O que acontece | Aparece no envio como |
|---|---|---|
| Alguém que ainda não é membro | Recebe o convite por e-mail para entrar na comunidade, com a tag do formulário | *Convidado como membro* |
| Alguém cujo e-mail já é de um membro | Só recebe a tag; nada mais muda no perfil | *Já era membro: recebeu a tag* |
| Um membro com sessão iniciada | Só recebe a tag | *Já era membro: recebeu a tag* |
| Alguém, com a comunidade no limite de membros do plano | O envio é guardado, sem convite | *Não virou membro (limite do plano)* |
| Alguém, com os limites diários de convites atingidos (100 membros novos por formulário, 3 por quem envia e o limite de e-mails de convite) | O envio é guardado; ninguém é criado e nenhum convite sai | *Não se tornou membro (limite de convites)* |
| Alguém que pediu para não receber convites da comunidade | O envio é guardado, sem convite | *Pediu para não participar* |

- **A tag** tem o nome do formulário e é criada automaticamente no primeiro envio (ver [Tags](/membros/tags)).
- **Sem senha no formulário.** O formulário nunca pede uma senha de conta: a pessoa entra pelo e-mail de convite, como qualquer convidado (ver [Convidar membros](/membros/convidar-membros)).
- Com a opção desligada, o envio fica apenas na lista do formulário.

## E-mails

| E-mail (assunto) | Quando | Quem recebe | Dá para desligar? |
|---|---|---|---|
| *Novo envio em …* | A cada envio, com os campos principais e **Ver o envio** | Os responsáveis | Sim: a categoria **Formulários** |
| *… novos envios em …* | Mais de 20 envios do mesmo formulário numa hora: os seguintes chegam juntos, num só e-mail, uma hora depois | Os responsáveis | Sim: **Formulários** |
| *Recebemos o seu envio: …* | A cada envio, se **Confirmação a quem enviou** está ligada; texto fixo | O e-mail do envio | Não: é a confirmação do que a pessoa fez |
| Convite para entrar | Com **Salvar como membro**, para quem não é membro | O e-mail do envio | Não |
| Formulário novo | A equipa publica um formulário aberto a membros | Quem tem acesso ao espaço | Sim: **Formulários** |

Um mesmo endereço recebe no máximo **um** e-mail (confirmação ou convite) por formulário a cada 24 horas; os envios seguintes são guardados sem novo e-mail. Todos os e-mails saem pela fila, em segundo plano.

## Limites

| O quê | Limite |
|---|---|
| Etapas por formulário | 20 |
| Campos por formulário | 100 |
| Opções por campo de escolha | De 2 a 50 |
| Texto curto · Texto longo | 200 · 5.000 caracteres |
| Responsáveis | 20 |
| Senha de acesso | De 6 a 100 caracteres |
| Senhas erradas no mesmo formulário | Depois de muitas em 1 hora, verificação anti-robô antes de tentar de novo |
| Membros novos pelo **Salvar como membro** | 100 por formulário e 3 por quem envia, por dia, além do limite de e-mails de convite |
| Envios de visitantes por endereço de internet | 20 a cada 10 minutos |
| E-mails a quem enviou | 1 por endereço, por formulário, a cada 24 horas |
| E-mails aos responsáveis | 20 por formulário a cada hora; o resto num resumo |

## Integrações

Cada envio dispara o evento **`form.submitted`** (*"Foi enviado um formulário"*, família **Formulários**): o formulário, o envio, a origem, o membro (quando tem sessão iniciada), cada campo com o rótulo e a resposta e o consentimento. O endereço de internet de quem enviou **nunca** é incluído. Ver [Eventos de webhook](/api/eventos-de-webhook).

- **[Webhooks](/api/webhooks)** e [Zapier, Make e n8n](/integracoes/zapier-make-n8n): subscreva `form.submitted` ou `form.*`.
- **[HubSpot](/integracoes/hubspot)**: cria o contacto com nome, e-mail, telefone, empresa, cargo e o consentimento.
- **[RD Station](/integracoes/rd-station)**: regista a conversão *"Enviou o formulário …"* e, com o consentimento, a base legal.

Duas regras protegem os contactos que já tem:

- **Um visitante nunca altera um contacto existente.** Qualquer pessoa pode escrever o e-mail de outra num formulário aberto. Por isso, só o envio de um membro com sessão iniciada e com o e-mail do próprio perfil mexe num contacto que já está no CRM; o de um visitante passa a ser uma nota no contacto (HubSpot) ou apenas a conversão (RD Station). Ver os detalhes no artigo de cada app.
- **Quem já tinha ligado o HubSpot ou o RD Station tem de marcar o evento.** As instalações existentes não recebem `form.submitted` automaticamente: abra a integração, marque **Foi enviado um formulário** e guarde. Uma instalação nova já vem com ele.

## Pelo assistente

O assistente monta, publica e acompanha formulários com 17 ferramentas, com as mesmas regras da aplicação (quem cria, opções só da equipa, quem vê os envios). Antes de publicar, chama `publish_form` com `dry_run` e mostra quantas pessoas recebem o aviso por e-mail e o que cada envio faz (com **Salvar como membro**, o convite); só publica depois do seu sim. Apagar um formulário ou um envio pede confirmação. O assistente só marca o consentimento ao preencher um formulário depois de ter lido o texto e dito que sim.

No Claude, a receita **Coletar com um formulário** faz o caminho inteiro. Ver [Ferramentas · Membros](/mcp/ferramentas-membros#formularios) e [Receitas](/mcp/receitas).

## Na API

As rotas da equipa ficam em `/api/forms` (com o `X-CommunityId`), e as de quem preenche pelo link em `/api/public/forms/{token}`. A lista completa, com exemplos, está na [Referência da API](/api/referencia), gerada a partir da própria API.

## Perguntas frequentes

**Dá para pôr o formulário no meu site?**
Sim: **Incorporar**, ao lado de **Copiar link**, dá os códigos para colar no seu site. Ver [Incorporar no seu site](#incorporar-no-seu-site). Também pode colocar o endereço `…/f/…` num botão.

**Dá para receber um ficheiro ou cobrar no formulário?**
Não. Para cobrar, use um [produto](/monetizacao/produtos); para receber ficheiros, um espaço de [Suporte](/espacos/suporte) ou de [Chamada de trabalhos](/espacos/chamada-de-trabalhos).

**Quem vê os dados de um visitante?**
Quem criou o formulário, a equipa e os responsáveis. A pessoa que preencheu é avisada disso no ecrã (*"Seus dados vão para a equipa de …"*).

**Apaguei o formulário. Perdi os envios?**
Não: continuam guardados para o proprietário, até ele apagar cada um.

## Relacionados

- [Inquéritos](/espacos/pesquisas)
- [Criar e organizar espaços](/espacos/criar-e-organizar-espacos)
- [Tags](/membros/tags)
- [E-mails desta comunidade](/notificacoes/emails-desta-comunidade)
- [HubSpot](/integracoes/hubspot) · [RD Station](/integracoes/rd-station)
