# Carrd

> Apunta un formulario personalizado de Carrd a Ikiform con Send to URL en Pro Plus, o pega un formulario HTML en un elemento Embed en Pro Standard.

Los formularios de contacto y de registro de Carrd envían los datos a los destinos propios de Carrd. Los formularios personalizados de Pro Plus pueden enviar a cualquier URL, que es todo lo que Ikiform necesita, y Pro Standard puede incrustar tu propio HTML.

| Plan de Carrd | Cómo conectar Ikiform |
| --- | --- |
| Pro Plus o superior | Un elemento **Form** de tipo **Custom** > **Send to URL**. Sin código. |
| Pro Standard | Un elemento **Embed** con tu propio formulario HTML |
| Pro Lite y gratuito | Ninguna. Estos planes no tienen embeds ni formularios personalizados. |

## Formulario personalizado con Send to URL

### Paso 1: Crea el formulario

Haz clic en **Add Element** > **Form** y pon **Type** en **Custom**, luego **Send to URL**.

### Paso 2: Define la URL, el método y el formato

`URL`:

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

| Ajuste | Valor | Por qué |
| --- | --- | --- |
| **Method** | AJAX | Mantiene a los visitantes en la página. Carrd interpreta cualquier `2xx` como éxito, e Ikiform responde `201` cuando guarda el envío. |
| **Format** | Por defecto | Hace un envío de formulario estándar. JSON también funciona. |
| **Headers** | Ninguno | Ikiform no necesita cabeceras desde un navegador. |

Con **POST** en lugar de AJAX, el navegador sale de tu sitio de Carrd hacia la página de agradecimiento de Ikiform o tu URL de **Redirect after submit**, y el ajuste On Success de Carrd no se aplica. No elijas **XML**: Ikiform lo rechaza con `415 unsupported_media_type`.

### Paso 3: Define los IDs de los campos

El **Submitted ID** de cada campo, o su **ID** cuando está vacío, se convierte en el nombre del campo en Ikiform. Carrd genera los IDs a partir de las etiquetas, así que defínelos tú: `email`, `name`, `message`. Con **Format** en JSON, un Submitted ID como `fields.firstname` se envía como un objeto anidado, que Ikiform guarda tal cual.

- No añadas un campo **File**. Ikiform aún no acepta archivos y rechaza el envío con `422 files_not_supported`.
- **Collect UTM parameters** añade `utm_source`, `utm_medium`, `utm_campaign`, `utm_term` y `utm_content`. Si defines [campos](https://ikiform.com/es/docs/fields.md) en Ikiform, añade también estos, o el envío fallará con un error de campo desconocido.
- Un campo **Hidden** siempre tiene su valor predefinido, así que no puede hacer de honeypot. La puntuación de spam sigue funcionando en cada envío.

### Paso 4: Elige On Success y On Failure

Elige qué muestra Carrd después de la petición. On Failure cubre cualquier error de Ikiform, como `422 validation_failed` o `429 rate_limited`; Carrd no muestra el mensaje de Ikiform, así que usa un texto de error general.

> Deja desactivada la verificación antispam del formulario. Los envíos AJAX no pueden mostrar la página de verificación de Ikiform, así que un formulario con la verificación activa responde `403 challenge_required` y Carrd muestra On Failure cada vez.

## Elemento Embed en Pro Standard

Haz clic en **Add Element** > **Embed**, pon **Type** en **Code** y **Style** en **Inline**, y pega un formulario. Los embeds no se renderizan en el editor, así que publica para verlo.

`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>
```

Se envía como un formulario normal, así que la [verificación humana](https://ikiform.com/es/docs/spam.md#human-check) funciona si la activas. Dale estilo con un bloque `<style>`, o parte del [embed para creadores de sitios](https://ikiform.com/es/docs/guides/site-builders.md#embed), más completo.

## Dominios permitidos

Con cualquiera de las dos opciones, el navegador envía desde tu página de Carrd, así que los dominios permitidos funcionan como siempre.

| Dónde funciona el formulario | Añadir a Allowed domains |
| --- | --- |
| URL gratuita o predeterminada | `your-site.carrd.co` |
| URL de Pro sin marca | `your-site.crd.co` |
| Dominio propio | `example.com`, que también cubre `www.example.com` |

- Nunca añadas `carrd.co` ni `crd.co` solos. Coincidiría cualquier sitio de ese host, incluidos los de otras personas.

## Lista de pruebas

1. Publica el sitio. Los formularios y los embeds solo funcionan en el sitio publicado.
2. Envía el formulario y confirma que Carrd muestra tu mensaje On Success, o que el embed llega a la página de agradecimiento.
3. Abre el envío en Ikiform y comprueba que los nombres de campo son los IDs que definiste, no los generados.
4. Envía con un email no válido mientras el formulario tiene campos definidos y confirma que Carrd muestra On Failure.

## Solución de problemas

| Qué ves | Por qué | Solución |
| --- | --- | --- |
| Carrd muestra On Failure en cada envío | Ikiform rechazó el envío: `415` por XML, `422` por un campo desconocido o un archivo, `403 challenge_required` con la verificación activa, o `403 origin_not_allowed` con **Reject** | Usa el formato Default, haz coincidir los IDs de los campos, quita los campos File, desactiva la verificación y añade tu dominio. |
| Los nombres de campo en Ikiform son como las etiquetas, no como tus IDs | **Submitted ID** e **ID** se dejaron vacíos | Define los IDs y vuelve a publicar. |
| Los envíos llegan al filtro de spam con `origin_mismatch` | La página que envió no está entre los dominios permitidos del formulario | Añade el host de la tabla de arriba. Si eliges **Reject**, esos mismos envíos reciben `403 origin_not_allowed`. |
| El embed aparece en blanco en el editor | Carrd no ejecuta el código de los embeds en el editor | Publica y revisa el sitio en producción. |

## Relacionado

- [Creadores de sitios](https://ikiform.com/es/docs/guides/site-builders.md): El embed que funciona en cualquier creador.
- [Formularios HTML](https://ikiform.com/es/docs/html.md): Redirecciones, campos reservados y el honeypot.
- [Errores](https://ikiform.com/es/docs/errors.md): Cada código de error, con su causa y su solución.
- [Dominios permitidos](https://ikiform.com/es/docs/spam.md#allowed-domains): Cómo se comparan los orígenes y qué pasa cuando no coinciden.
