# Formulário gerado por IA que não envia nada: como resolver

Geradores de IA criam formulários que só mostram agradecimento. Compare as três rotas que funcionam, conecte um backend hospedado com um único prompt e teste a entrega antes de publicar.

Author: Formgong team
Published: 2026-10-06
Updated: 2026-10-06
Language: pt
Canonical: https://formgong.com/pt/blog/form-backend-for-ai-website-builders/

Ferramentas como Lovable, Bolt, v0 e Cursor geram formulários que exibem sucesso sem enviar dados. Há três rotas viáveis: o backend do próprio gerador, um backend hospedado de formulários ou uma função serverless sua. Para contato simples, o hospedado é o mais rápido — um prompt liga o POST ao /submit com chave pública, e a entrega precisa ser conferida na caixa, no email e no Telegram antes do lançamento.

## Por que o formulário gerado não envia nada

Lovable, Bolt, v0 e Cursor geram ótimas interfaces: campos, validação, botão e a mensagem de agradecimento. Só que, por padrão, esse botão muitas vezes não faz nada útil — o handler mostra o sucesso na hora, sem nenhuma requisição de rede. Os dados não são salvos em lugar nenhum.

O outro padrão: a IA conecta Supabase ou Lovable Cloud por conta própria. Funciona, mas para um formulário de contato simples arrasta junto um banco de dados, configuração de acessos e, em geral, um serviço de email separado como Resend. A verificação leva um minuto: abra as ferramentas do desenvolvedor, aba Network, e envie o formulário. Sem POST, o formulário é decorativo — exatamente o que acontece na maioria dos sites gerados.

## Três rotas que funcionam de verdade

**1. O backend do próprio gerador.** Lovable Cloud ou Supabase mais um conector de email. Faz sentido quando o aplicativo já usa autenticação, tabelas ou outros fluxos de servidor; para um formulário de contato isolado, é infraestrutura demais.

**2. Um backend hospedado de formulários.** A página faz um POST para um único endpoint com chave pública; o serviço guarda as mensagens e notifica por email e Telegram. É a rota mais rápida para landings e sites institucionais: sem schemas, edge functions ou servidores.

**3. Sua própria função serverless.** Controle total e responsabilidade total: código, segredos, filtro de spam e novas tentativas de entrega ficam com você. Justifica-se quando o formulário já faz parte de uma lógica maior. Este artigo segue a segunda rota: ela funciona igual em Lovable, Bolt, v0, Cursor e qualquer gerador que produza HTML ou React.

## Critérios para escolher o backend do formulário

**Prova de entrega.** O "obrigado" na página não prova nada. Você precisa de um armazenamento de envios com estados: aceito, entregue, spam. No Formgong, é a caixa de entrada com o detalhe de entrega por canal.

**Proteção contra spam.** Um honeypot no mínimo; melhor com Turnstile/captcha opcional e pontuação de spam que não consuma sua cota mensal. **Canais de notificação.** Email como base, Telegram para reação rápida da equipe e webhooks assinados para integrações.

**Localização dos dados.** Com clientes na UE, confira onde as mensagens ficam fisicamente: o Formgong mantém tudo na Cloudflare sob jurisdição europeia — D1, fila e arquivos. **Mudanças sem reconstruir o site.** Destinatários, redirecionamentos e resposta automática devem mudar no painel, não em código que a IA teria de regerar.

## Um prompt que serve para qualquer gerador

Abra o chat do seu projeto e peça para conectar o formulário existente mantendo o design. O prompt abaixo serve a Lovable, Bolt, v0 e Cursor; substitua `fk_your_access_key` pela chave da seção de conexão do site daquele formulário, no painel do Formgong.

O exemplo trata de texto: nada de upload de arquivos, segredo de serviço de email ou token de bot no frontend. A chave de envio é pública e pode ficar no código.

```text
Connect this form to Formgong. Keep its design and field names.
1. Send a POST request to https://formgong.com/submit (FormData or JSON with access_key).
2. access_key: fk_your_access_key (a public key; it can stay in the code).
3. Show success only after a response with success: true.
4. On error, keep the entered field values and show an error message.
5. Add a hidden botcheck field (honeypot) with no visible UI change.
6. Do not add tokens, secrets, or file inputs.
```

### Exemplo de requisição à API

```javascript
async function onSubmit(event) {
  event.preventDefault();
  const fields = Object.fromEntries(new FormData(event.currentTarget));
  const response = await fetch("https://formgong.com/submit", {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      Accept: "application/json",
    },
    // _lang: language of Formgong messages and the autoreply (multilingual site: document.documentElement.lang).
    body: JSON.stringify({ _lang: "en", ...fields, access_key: "fk_your_access_key" }),
  });
  const result = await response.json();
  if (!result.success) throw new Error(result.message || "Could not send. Please try again.");
  return result.message; // localized "Sent. Thank you!"
}
```

## Teste a entrega, não a mensagem de sucesso

Quando o gerador aplicar as mudanças, envie um teste identificável e percorra todo o caminho:

- **Requisição.** A aba Network mostra o POST para `https://formgong.com/submit` com `success: true` na resposta.

- **Registro.** A mensagem aparece na caixa daquele formulário no Formgong, com todos os campos.

- **Email.** No Free, o email chega no resumo da manhã seguinte às 08:00, no fuso do titular da conta, para um destinatário. No Pro e no Business, cada contato é enviado por email. Confira o spam.

- **Telegram.** O Telegram é imediato em todos os planos, inclusive no Free. Se houver um chat conectado, a mensagem chega nesse chat.

Depois de publicar, repita no domínio real: a prévia do editor pode se comportar diferente. O artigo ["O formulário mostra sucesso, mas o email não chega"](/pt/blog/contact-form-not-sending-email/) detalha cada etapa.

Não use campos de arquivo neste fluxo: o exemplo é para envios de texto. Anexos exigem configurações de formulário e Turnstile específicos.

## Após o lançamento: mude sem regerar

Com o formulário funcionando, a maioria das mudanças não exige voltar ao gerador. No painel do Formgong mudam-se destinatários de email, chats de Telegram conectados, redirecionamentos pós-envio, resposta automática ao visitante e proteções.

Se as mensagens pararem de chegar depois de um redesign, não adivinhe: o diagnóstico de formulários do Formgong carrega sua página e mostra se o snippet está instalado certo — endereço, método, chave e campos obrigatórios. A análise do formulário ainda revela em quais campos os visitantes desistem: mais barato que um teste A/B e sem código novo.

## Erros típicos dos formulários gerados

**Aparece "sucesso", mas nenhuma requisição sai**
O gerador criou um handler decorativo. Peça: "Envie os dados com fetch e mostre sucesso apenas após uma resposta `success: true`".

**O código ainda tem fk_your_access_key**
É um marcador. Pegue a chave real na seção de conexão do site do seu formulário e substitua.

**Os campos se apagam após um erro**
O visitante perde o texto digitado. O handler deve manter os valores e mostrar o erro; acrescente isso ao próximo prompt.

**Ativou o Turnstile e o formulário quebrou**
O widget precisa entrar no código e enviar `cf-turnstile-response`. Atualize o exemplo de conexão no painel após mudar a proteção.

**Há registro, mas nenhum email chega**
Confira a verificação de email do dono e dos destinatários: endereço não verificado não recebe. Veja os detalhes no [diagnóstico de entrega](/pt/blog/contact-form-not-sending-email/).

## Perguntas frequentes

### Um formulário de gerador de IA precisa de Supabase?

Não, se for um contato isolado. O backend hospedado aceita o POST com chave pública e entrega as notificações; Supabase ou Lovable Cloud fazem sentido quando o aplicativo já os usa em outros fluxos.

### É seguro deixar a access_key no código gerado?

Sim. É uma chave pública de envio, sem acesso à caixa de entrada ou às configurações. Segredos, tokens de bot e chaves de email nunca pertencem ao frontend.

### O prompt serve para qualquer gerador?

Sim, para os que geram HTML ou React e executam fetch: Lovable, Bolt, v0, Cursor. A diferença está em como aplicam as mudanças; o que você verifica é o resultado — o POST e o success: true.

### Onde ficam as mensagens dos clientes?

As mensagens e os arquivos ficam na UE, no Cloudflare D1 e no armazenamento de arquivos com jurisdição da UE. Notificações enviadas ao Telegram, Slack ou Discord são processadas por esses serviços, fora desse armazenamento. O site ainda precisa de uma política de privacidade.

## Fontes e documentação

- [Lovable Cloud](https://docs.lovable.dev/features/cloud)
- [MDN: Fetch API](https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch)
- [Documentação do Formgong](https://formgong.com/pt/docs/)

[Obter uma chave](https://formgong.com/pt/#top)
