DOCS
Guia de configuração
O Formchan funciona como o destino para onde seu formulário envia. Aqui está tudo o que você precisa para conectá-lo.
BUILD WITH AI
Desenvolve com IA? Entregue a URL e a especificação.
Entregue à sua IA de desenvolvimento a URL do painel e esta especificação Markdown em inglês. Ela pode conectar seu formulário ou criar um novo.
Ver instruções para a IA
Conecte o formulário de contato deste site ao Formchan. URL de envio: [cole a URL do painel] Especificação: https://formchan.app/lp/integration-en.md Leia a especificação e implemente a integração mantendo o design atual. Crie um formulário se não existir. Inclua validação, estados de envio, sucesso e erro, prevenção de envios duplicados e instruções para um teste.
Primeiros passos
Ao se cadastrar, seu primeiro formulário é criado. Copie o URL que aparece no seu painel e coloque no action do formulário. Use POST como method.

<form action="https://formchan.app/f/YOUR_FORM_KEY" method="POST"> <input name="name"> <input name="email" type="email"> <textarea name="message"></textarea> <button>Enviar</button> </form>
Depois de enviar o formulário, a pessoa vê uma página de confirmação. A mensagem chega na sua caixa de entrada, e a IA adiciona ★ e tags.
Nomes dos campos
Você pode dar o nome que quiser aos campos. Cada campo enviado aparece do jeito que veio na caixa de entrada e nos emails de notificação.
O endereço de email usado nas respostas é lido de um campo chamado email. mail e _replyto também funcionam. O nome de quem enviou é lido de name ou fullname.
Cada envio pode ter até 64 KB, com até 50 campos e 5.000 caracteres por campo.
Depois do envio
Se você não configurar nada, o Formchan mostra a própria página de confirmação, com um link para voltar à página anterior.

Para levar as pessoas a uma página sua, coloque o URL dela em um campo oculto chamado _next.
<input type="hidden" name="_next" value="https://example.com/thanks">
Envio por JavaScript
Envie com o cabeçalho Accept: application/json e o Formchan responde em JSON em vez de mostrar uma página. O visitante continua na sua página.
const res = await fetch('https://formchan.app/f/YOUR_FORM_KEY', { method: 'POST', headers: { Accept: 'application/json' }, body: new FormData(form), }); const data = await res.json(); // { ok: true }
Se der certo, você recebe ok: true. Se falhar, recebe ok: false e um destes códigos de erro.
| Código | HTTP | Significado |
|---|---|---|
not_found | 404 | O formulário não existe |
origin | 403 | Enviado de um site que o formulário não aceita |
rate | 429 | Mensagens demais em pouco tempo |
body | 400 | Não foi possível ler o conteúdo |
empty | 400 | Todos os campos estavam vazios |
Proteção contra spam
Adicione ao formulário um campo oculto chamado _gotcha. As pessoas não o veem, mas os bots o preenchem. Esses envios parecem aceitos, mas são descartados.
<input name="_gotcha" style="display:none" tabindex="-1" autocomplete="off">
Mensagens enviadas muitas vezes do mesmo lugar em pouco tempo são recusadas.
Nas configurações do formulário, você pode listar os sites que podem enviar para ele. Envios de outros sites são recusados.
WordPress, Webflow e mais
- HTML
- Use o código do formulário acima do jeito que está.
- WordPress
- Cole o código do formulário em um bloco HTML personalizado.
- Webflow
- Nas configurações do formulário, coloque o URL em Action e escolha POST em Method.
- React / Next.js
- Envie com fetch, como mostrado em “Envio por JavaScript”.
Notificações
Mensagens ★3 são enviadas para seus emails de notificação assim que chegam. Quando você adiciona um endereço, enviamos um email de confirmação para ele; as notificações começam depois que alguém clica no link desse email.

★1 e ★2 chegam juntas em um email por dia. Você pode mudar o horário, e nos dias sem nada novo nenhum email é enviado.



A partir do plano Pro, você também pode enviar as mensagens para o Slack, Chatwork, Microsoft Teams, Google Chat e Discord.

Webhooks
No plano Business, o Formchan envia um POST com JSON para o seu URL depois que cada mensagem chega e a IA a lê.

O cabeçalho X-Formchan-Signature traz um HMAC-SHA256 do corpo da requisição, assinado com o segredo do seu webhook, no formato sha256=…. Calcule o mesmo valor do seu lado para confirmar que a requisição veio mesmo do Formchan.
Exemplo de corpo
{
"event": "submission.created",
"at": "2026-10-12T09:29:41.000Z",
"workspace": { "id": "w_…", "name": "Harbor Design Studio" },
"submission": {
"id": "sb_…",
"number": 1,
"form": { "id": "fm_…", "name": "Contact" },
"received_at": "2026-10-12T09:29:38.000Z",
"name": "Emily Parker",
"email": "emily@example.com",
"fields": { "name": "Emily Parker", "email": "emily@example.com", "message": "…" },
"stars": 3,
"tags": [{ "id": "tg_…", "name": "Inquiry", "by": "ai" }],
"summary": "Wants a consultation on adding a second floor.",
"reason": "Concrete request with budget and timeline.",
"done": false
}
}Verificando a assinatura (Node.js)
import crypto from 'node:crypto'; // rawBody: the request body as a string, before JSON.parse function isFromFormchan(rawBody, signature, secret) { const expected = 'sha256=' + crypto.createHmac('sha256', secret).update(rawBody).digest('hex'); const a = Buffer.from(expected), b = Buffer.from(signature || ''); return a.length === b.length && crypto.timingSafeEqual(a, b); }
Se as mensagens não chegarem, confira o URL do action e a opção “Aceitar envios somente destes sites” nas configurações do formulário.
Dê atenção às mensagens importantes.
Grátis até 100 mensagens por mês. Você só precisa de um email. Sem cartão de crédito.
Começar grátis