# Formulários do Carrd: envie as respostas para um backend de formulários

> O formulário de contato do Carrd só manda e-mail e formulários personalizados exigem o Pro Plus: use Send to URL no Plus ou um embed HTML no Standard para guardar cada envio.

Publicado em 2026-10-25 · https://ikiform.com/pt-br/guides/website-builder-forms/carrd-forms

Os formulários do Carrd exigem um plano Pro: o Pro Standard tem formulários de contato e de inscrição, e o Pro Plus acrescenta formulários personalizados que podem enviar para qualquer URL. No Pro Plus, configure um formulário personalizado com **Send to URL** apontando para o seu endpoint do Ikiform, e o Carrd mantém a própria mensagem de sucesso. No Pro Standard, cole um formulário HTML num elemento **Embed**, o que dá campos personalizados sem fazer upgrade.

## O que muda no Carrd

O Carrd não limita envios. Ele libera recursos de formulário por plano, e cada plano tem um preço anual para um certo número de sites. Em outubro de 2026, os preços e a documentação do Carrd traçam as linhas assim:

| Plano | Formulários incluídos | O que isso significa |
| --- | --- | --- |
| Free e Pro Lite | Nenhuma | Sem elemento de formulário e sem embeds. Coloque um link para um formulário em outro lugar ou faça upgrade |
| Pro Standard, a partir de US$ 19 por ano | Formulários **Contact** que mandam e-mail para até cinco destinatários, formulários **Signup** que adicionam pessoas a uma ferramenta de e-mail e elementos **Embed** | Formulários de contato têm campos fixos. Embeds aceitam qualquer HTML, inclusive o seu próprio formulário |
| Pro Plus, a partir de US$ 49 por ano | Tudo acima, mais formulários **Custom**: enviam e-mail, ou mandam para Airtable, Make, n8n, Zapier, uma URL ou o seu próprio código | Quaisquer campos, e **Send to URL** os envia para onde você quiser |

Um formulário de contato do Carrd entrega cada mensagem por e-mail a partir de `@mail.carrd.site`, então a sua caixa de entrada é o registro, e uma mensagem que cai no lixo eletrônico passa despercebida fácil. Esse é o motivo mais comum para migrar: você quer uma lista armazenada e pesquisável, uma exportação e alertas para a equipe toda, não uma única caixa de e-mail.

Se tudo o que você precisa é de novos inscritos no Mailchimp, no Kit ou em outra ferramenta de e-mail, o formulário **Signup** do Carrd já faz isso no Pro Standard e é a melhor escolha. O Ikiform não tem integrações de um clique com ferramentas de e-mail.

Diagrama: O plano do Carrd em que você está decide como o formulário chega ao Ikiform

1. No plano gratuito ou no Pro Lite não há elemento de formulário nem embed, então não há nada para conectar. Faça upgrade ou coloque um link para um formulário hospedado em outro lugar.
2. No Pro Standard, cole um formulário HTML num elemento Embed. O navegador do visitante o envia ao Ikiform.
3. No Pro Plus, monte um formulário Custom no editor do Carrd e configure Send to URL com o método AJAX. O formulário do Carrd envia ao Ikiform e mostra a própria mensagem de sucesso.

Os dois caminhos enviam a partir do navegador do visitante, então domínios permitidos, limites de taxa e pontuação de spam funcionam como em qualquer site.

## No Pro Plus: Send to URL

Assim você mantém o editor e o estilo de formulários do Carrd, sem código. Os campos abaixo são de um pedido de agendamento para um fotógrafo; use os seus.

1. Clique em **Add Element** > **Form**, defina **Type** como **Custom** e depois **Send to URL**.
2. Cole o seu endpoint como **URL**.
3. Defina **Method** como **AJAX** e **Format** como **Default**. O Carrd trata qualquer resposta `2xx` como sucesso, e o Ikiform responde `201` quando armazena o envio.
4. Adicione os campos: Text `name`, Email `email`, Select `service`, Date `preferred_date`, Text Area `details`. Defina o **ID** de cada campo; senão o Carrd gera um a partir do rótulo.
5. Em **On Success**, escolha uma mensagem ou uma seção para mostrar. Em **On Failure**, deixe um texto genérico. O Carrd não mostra a mensagem de erro do Ikiform.
6. Publique. Os formulários só enviam a partir do site publicado.

`URL`:

```text
https://ikiform.com/f/frm_xxxxxxxxxxxxxxxx
```

| Configuração do Carrd | Use | Evite |
| --- | --- | --- |
| **Method** | AJAX: os visitantes ficam na página | POST: o navegador sai para a página de agradecimento do Ikiform, e o On Success nunca roda |
| **Format** | Default, ou JSON | XML: o Ikiform recusa com `415 unsupported_media_type` |
| **Collect UTM parameters** | Tudo bem, mas adicione os cinco campos `utm_` a qualquer definição de campos | Ativar depois de definir os campos: todo envio vindo de um link com tags UTM falha com Unknown field |
| Campo **File** | De jeito nenhum | Upload de arquivos ainda não é suportado. Um envio com arquivo recebe `422 files_not_supported`. |
| **Spam Protection** | Nenhum neste formulário | Um provedor de captcha: a documentação do Carrd não diz que ele verifica o token num formulário Send to URL, e o Ikiform só confere um token do Turnstile com as suas próprias chaves salvas no Ikiform |

Um campo **Hidden** sempre envia o valor predefinido, então não funciona como honeypot aqui. A pontuação de spam, os limites de taxa e os domínios permitidos do Ikiform continuam rodando em todo envio. Deixe o **Spam check** do Ikiform desligado neste formulário: um envio AJAX não consegue mostrar a verificação e falharia com `403 challenge_required`.

## Pro Standard: um elemento Embed

No Pro Standard você não consegue montar um formulário personalizado no Carrd, mas pode colar um. Clique em **Add Element** > **Embed**, defina **Type** como **Code** e **Style** como **Inline**, e cole isto. Ele traz os próprios estilos, porque os estilos de formulário do Carrd não chegam ao código incorporado.

`Embed`:

```html
<form id="booking" action="https://ikiform.com/f/frm_xxxxxxxxxxxxxxxx" method="post" target="_top">
  <input name="name" placeholder="Name" autocomplete="name" required>
  <input name="email" type="email" placeholder="Email" autocomplete="email" required>
  <select name="service" required>
    <option value="" disabled selected>What do you need?</option>
    <option value="portrait">Portrait session</option>
    <option value="event">Event coverage</option>
    <option value="product">Product photos</option>
  </select>
  <input name="preferred_date" type="date" aria-label="Preferred date">
  <textarea name="details" rows="4" placeholder="Anything else?" maxlength="2000"></textarea>
  <input name="_gotcha" type="text" tabindex="-1" autocomplete="off" hidden>
  <button type="submit">Request a booking</button>
  <p id="booking-note" role="status"></p>
</form>
<style>
  #booking { display: grid; gap: 0.75rem; font: inherit; }
  #booking input, #booking select, #booking textarea { font: inherit; padding: 0.75rem; border: 1px solid #ccc; border-radius: 0.5rem; }
  #booking button { font: inherit; padding: 0.75rem; border: 0; border-radius: 0.5rem; background: #111; color: #fff; }
</style>
<script>
  const booking = document.getElementById("booking");
  booking.addEventListener("submit", async (event) => {
    event.preventDefault();
    const note = document.getElementById("booking-note");
    note.textContent = "Sending";
    try {
      const response = await fetch(booking.action, {
        method: "POST",
        headers: { Accept: "application/json" },
        body: new FormData(booking),
      });
      const result = await response.json();
      if (result.ok) {
        booking.replaceChildren("Thanks. I'll reply with availability.");
        return;
      }
      const fields = result.error.fields ?? {};
      note.textContent = fields.preferred_date?.[0] ?? fields.email?.[0] ?? result.error.message;
    } catch {
      note.textContent = "Couldn't send. Try again, or email me directly.";
    }
  });
</script>
```

- O script envia com `fetch` e troca o formulário pela frase de agradecimento, então a página não muda.
- O input oculto `_gotcha` é um honeypot de verdade aqui, ao contrário de um campo Hidden do Carrd.
- Se o script não carregar, o formulário ainda envia normalmente. `target="_top"` impede que o resultado abra dentro de um frame.
- Embeds não rodam no editor do Carrd. Publique para ver o formulário.

As duas versões enviam os mesmos campos. Defina-os no Ikiform assim que um teste chegar:

Formulário: Booking enquiry

- **Nome** (`name`, text, obrigatório)
- **E-mail** (`email`, email, obrigatório)
- **Do que você precisa?** (`service`, select, obrigatório)
- **Data preferida** (`preferred_date`, date)
- **Algo mais?** (`details`, textarea)

`preferred_date` é um campo `date`, então o Ikiform aceita `YYYY-MM-DD`, que é o que o campo Date do Carrd e um input de data do navegador enviam.

## Domínios permitidos no Carrd

Adicione `your-site.carrd.co`, ou `your-site.crd.co` no Pro, e o seu domínio próprio. Não adicione `carrd.co` sozinho; isso permitiria que qualquer site do Carrd enviasse. O [guia do Carrd na documentação](https://ikiform.com/pt-br/docs/guides/carrd.md) lista cada configuração com o motivo.

> Migrar um formulário não migra os outros. Um formulário Signup que alimenta a sua ferramenta de e-mail pode ficar como está, ao lado de um formulário Custom ou de um embed que envia ao Ikiform.

## Confira se funciona no Carrd

1. Em **Allowed domains** do formulário, adicione o domínio do seu site, mais `localhost` enquanto desenvolve. Deixe vazio para aceitar envios de qualquer lugar.
2. Publique e envie o formulário no site publicado.
3. Confirme que o Carrd mostra o On Success, ou que o embed mostra a frase de agradecimento.
4. Abra **Submissions** no painel. O novo envio está lá com todos os campos que você enviou.
5. Confira se os nomes são os seus IDs, se `preferred_date` aparece como `2026-11-14` e se nenhum campo `utm_` chegou sem você esperar.
6. Confira a caixa de entrada de cada destinatário das notificações. Cada um recebe um e-mail com os campos, e **Reply** vai para quem enviou quando o formulário tem um campo `email`.

## Pegadinhas

| Problema | O que fazer |
| --- | --- |
| O Carrd mostra On Failure toda vez | Formato XML (`415`), um campo File (`422`), um Unknown field vindo da coleta de UTM, ou o **Spam check** do Ikiform ligado (`403`). Corrija o que se aplicar. |
| Os nomes dos campos parecem rótulos | **ID** e **Submitted ID** estavam vazios. Preencha e publique de novo. |
| O embed aparece em branco no editor | O Carrd não roda código de embed no editor. Publique e confira o site no ar. |
| `403 origin_not_allowed`, ou todo envio cai no spam | O domínio da página não está em **Allowed domains** do formulário. Adicione-o, mais `localhost` para testes locais. Subdomínios de um domínio listado são permitidos. |
| `403 challenge_required` | A verificação de spam do formulário está como **Ikiform** e um envio por `fetch` não tinha token. Obtenha um com `challenge(formId)` de `@ikiform/sdk` antes de cada envio, ou desligue a verificação. |

## Perguntas

### Qual plano do Carrd eu preciso para um formulário que envia para uma URL?

Pro Plus. Formulários personalizados, incluindo Send to URL, são um recurso de Advanced Forms. No Pro Standard, você pode colar o seu próprio formulário HTML num elemento Embed.

### Devo usar AJAX ou POST num formulário Send to URL do Carrd?

AJAX. Ele mantém os visitantes na sua página do Carrd e roda as suas configurações de On Success e On Failure. POST manda o navegador para a página de agradecimento do Ikiform ou para o seu redirecionamento.

### Um campo Hidden do Carrd pode ser um honeypot?

Não. Um campo Hidden sempre envia o valor predefinido, então não distingue bots de pessoas. A pontuação de spam, os limites de taxa e os domínios permitidos do Ikiform continuam conferindo cada envio, e a versão com embed pode ter um honeypot de verdade.

### Posso manter o formulário de inscrição do Carrd para a minha newsletter?

Sim, e provavelmente deveria. Ele adiciona as pessoas direto na sua ferramenta de e-mail. Use o Ikiform nos formulários em que você quer um registro armazenado, como pedidos de orçamento e agendamentos.

### O Ikiform é gratuito?

Não, não há plano gratuito. Testar é grátis: você pode enviar 50 envios de teste por mês a partir de localhost antes de pagar. Para entrar no ar, o Pro começa em US$ 6/mês para 500 envios, ou você pode pagar uma vez 10.000 envios por US$ 49 ou 50.000 envios por US$ 149, com créditos que nunca expiram.

## Mais guias

- [Vá além dos formulários do criador](https://ikiform.com/pt-br/guides/website-builder-forms.md): Quando os formulários do Webflow, Netlify, Carrd ou Framer batem num limite ou não têm um recurso, mantenha o formulário que você desenhou e aponte para um backend de formulários.
- [Limite de envios do Webflow](https://ikiform.com/pt-br/guides/website-builder-forms/webflow-submission-limit.md): O plano gratuito Starter do Webflow para de coletar após 50 envios de formulário por site e sites exportados não coletam nada; aponte o Form Block para o Ikiform.
- [Formulários do Framer](https://ikiform.com/pt-br/guides/website-builder-forms/framer-forms.md): Os formulários do Framer já enviam para e-mail, Sheets ou um webhook; adicione o Ikiform como webhook para envios armazenados e filtrados, alertas à equipe e mais destinos.
- [Limite do Netlify Forms](https://ikiform.com/pt-br/guides/website-builder-forms/netlify-forms-limit.md): Planos legados da Netlify medem envios de formulário por site e fazem upgrade automático, e planos por créditos podem pausar o site; leve o formulário para um backend.
