# Carrd

> Aponte um formulário personalizado do Carrd para o Ikiform com Send to URL no Pro Plus, ou cole um formulário HTML em um elemento Embed no Pro Standard.

Os formulários de contato e de inscrição do Carrd mandam os envios para os destinos do próprio Carrd. Formulários personalizados no Pro Plus podem enviar para qualquer URL, que é tudo de que o Ikiform precisa, e o Pro Standard pode incorporar o seu próprio HTML.

| Plano do Carrd | Como conectar o Ikiform |
| --- | --- |
| Pro Plus ou superior | Um elemento **Form** do tipo **Custom** > **Send to URL**. Sem código. |
| Pro Standard | Um elemento **Embed** com o seu próprio formulário HTML |
| Pro Lite e gratuito | Nenhum dos dois. Esses planos não têm embeds nem formulários personalizados. |

## Formulário personalizado com Send to URL

### Passo 1: Crie o formulário

Clique em **Add Element** > **Form** e defina **Type** como **Custom**, depois **Send to URL**.

### Passo 2: Defina a URL, o método e o formato

`URL`:

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

| Configuração | Valor | Por quê |
| --- | --- | --- |
| **Method** | AJAX | Mantém os visitantes na página. O Carrd entende qualquer `2xx` como sucesso, e o Ikiform responde `201` quando armazena o envio. |
| **Format** | Default | Faz um POST de formulário padrão. JSON também funciona. |
| **Headers** | Nenhum | O Ikiform não precisa de headers vindos de um navegador. |

Com **POST** em vez de AJAX, o navegador sai do seu site Carrd para a página de agradecimento do Ikiform ou para a sua URL de **Redirect after submit**, e a configuração On Success do Carrd não se aplica. Não escolha **XML**: o Ikiform o recusa com `415 unsupported_media_type`.

### Passo 3: Defina os IDs dos campos

O **Submitted ID** de cada campo, ou o **ID** quando ele está vazio, vira o nome do campo no Ikiform. O Carrd gera IDs a partir dos rótulos, então defina-os você mesmo: `email`, `name`, `message`. Com **Format** definido como JSON, um Submitted ID como `fields.firstname` é enviado como objeto aninhado, que o Ikiform armazena como está.

- Não adicione um campo **File**. O Ikiform ainda não aceita arquivos e recusa o envio com `422 files_not_supported`.
- **Collect UTM parameters** adiciona `utm_source`, `utm_medium`, `utm_campaign`, `utm_term` e `utm_content`. Se você definir [campos](https://ikiform.com/pt-br/docs/fields.md) no Ikiform, adicione esses também, ou o envio falha com um erro de campo desconhecido.
- Um campo **Hidden** sempre tem o valor predefinido, então não serve como honeypot. A pontuação de spam continua rodando em todo envio.

### Passo 4: Escolha On Success e On Failure

Escolha o que o Carrd mostra depois da requisição. On Failure cobre todos os erros do Ikiform, como `422 validation_failed` ou `429 rate_limited`; o Carrd não exibe a mensagem do Ikiform, então mantenha seu texto de falha genérico.

> Deixe a verificação de spam do formulário desativada. Envios AJAX não conseguem mostrar a página de verificação do Ikiform, então um formulário com a verificação ativa responde `403 challenge_required` e o Carrd mostra On Failure toda vez.

## Elemento Embed no Pro Standard

Clique em **Add Element** > **Embed**, defina **Type** como **Code** e **Style** como **Inline**, e cole um formulário. Embeds não são renderizados no construtor, então publique para vê-lo.

`Embed`:

```html
<form action="https://ikiform.com/f/frm_xxxxxxxxxxxxxxxx" method="post" target="_top">
  <input name="email" type="email" placeholder="Email" autocomplete="email" required>
  <input name="_gotcha" type="text" tabindex="-1" autocomplete="off" hidden>
  <button type="submit">Join the waitlist</button>
</form>
```

Isto envia como um formulário normal, então a [verificação humana](https://ikiform.com/pt-br/docs/spam.md#human-check) funciona se você ativá-la. Estilize com um bloco `<style>`, ou comece pelo [embed para criadores de sites](https://ikiform.com/pt-br/docs/guides/site-builders.md#embed), mais completo.

## Domínios permitidos

Nas duas opções, o navegador envia a partir da sua página do Carrd, então os domínios permitidos funcionam normalmente.

| Onde o formulário roda | Adicione em Allowed domains |
| --- | --- |
| URL gratuita ou padrão | `your-site.carrd.co` |
| URL sem marca do Pro | `your-site.crd.co` |
| Domínio próprio | `example.com`, que também cobre `www.example.com` |

- Nunca adicione `carrd.co` ou `crd.co` sozinhos. Todo site naquele host corresponderia, inclusive os de outras pessoas.

## Checklist de teste

1. Publique o site. Formulários e embeds só funcionam no site publicado.
2. Envie o formulário e confirme que o Carrd mostra a sua mensagem de On Success, ou que o embed leva à página de agradecimento.
3. Abra o envio no Ikiform e confira se os nomes dos campos são os IDs que você definiu, e não os gerados.
4. Envie com um e-mail inválido enquanto o formulário tem campos definidos e confirme que o Carrd mostra On Failure.

## Solução de problemas

| O que você vê | Por quê | Correção |
| --- | --- | --- |
| O Carrd mostra On Failure em todo envio | O Ikiform recusou o envio: `415` para XML, `422` para um campo desconhecido ou um arquivo, `403 challenge_required` com a verificação ativa, ou `403 origin_not_allowed` com **Reject** | Use o formato Default, faça os IDs dos campos corresponderem, remova campos File, desative a verificação e adicione o seu domínio. |
| Os nomes dos campos no Ikiform parecem os rótulos, não os seus IDs | **Submitted ID** e **ID** ficaram vazios | Defina os IDs e publique de novo. |
| Os envios chegam no filtro de spam com `origin_mismatch` | A página que enviou não está nos domínios permitidos do formulário | Adicione o host da tabela acima. Com **Reject** escolhido, os mesmos envios recebem `403 origin_not_allowed`. |
| O embed fica em branco no construtor | O Carrd não roda o código de embeds no construtor | Publique e confira o site no ar. |

## Relacionados

- [Criadores de sites](https://ikiform.com/pt-br/docs/guides/site-builders.md): O embed que funciona em qualquer criador.
- [Formulários HTML](https://ikiform.com/pt-br/docs/html.md): Redirecionamentos, campos reservados e o honeypot.
- [Erros](https://ikiform.com/pt-br/docs/errors.md): Todos os códigos de erro, com causa e correção.
- [Domínios permitidos](https://ikiform.com/pt-br/docs/spam.md#allowed-domains): Como as origens são comparadas e o que acontece quando não correspondem.
