# Formularios de Carrd: envía los envíos a un backend de formularios

> El formulario de contacto de Carrd solo te avisa por email y los formularios personalizados necesitan Pro Plus, así que usa Send to URL en Plus o un embed HTML en Standard para guardar cada envío.

Publicado el 2026-10-25 · https://ikiform.com/es/guides/website-builder-forms/carrd-forms

Los formularios de Carrd necesitan un plan Pro: Pro Standard tiene formularios de contacto y de suscripción, y Pro Plus añade formularios personalizados que pueden enviar a cualquier URL. En Pro Plus, configura un formulario personalizado con **Send to URL** y tu endpoint de Ikiform, y Carrd mantendrá su propio mensaje de éxito. En Pro Standard, pega un formulario HTML en un elemento **Embed**, lo que te da campos personalizados sin mejorar el plan.

## Qué cambia en Carrd

Carrd no limita los envíos. Restringe las funciones de formulario según el plan, y cada plan es un precio anual para un número determinado de sitios. A octubre de 2026, los precios y la documentación de Carrd marcan las líneas aquí:

| Plan | Formularios que tienes | Qué significa |
| --- | --- | --- |
| Free y Pro Lite | Ninguna | Sin elemento de formulario y sin embeds. Enlaza a un formulario en otro sitio, o mejora el plan |
| Pro Standard, desde 19 $ al año | Formularios **Contact** que envían email a hasta cinco destinatarios, formularios **Signup** que añaden gente a una herramienta de email, y elementos **Embed** | Los formularios de contacto tienen campos fijos. Los embeds aceptan cualquier HTML, incluido tu propio formulario |
| Pro Plus, desde 49 $ al año | Todo lo anterior, más formularios **Custom**: enviar email, o enviar a Airtable, Make, n8n, Zapier, una URL o tu propio código | Cualquier campo, y **Send to URL** los envía adonde quieras |

Un formulario de contacto de Carrd entrega cada mensaje por email desde `@mail.carrd.site`, así que tu bandeja de entrada es el registro y es fácil pasar por alto un mensaje que acaba en correo no deseado. Ese es el motivo habitual para moverse: quieres una lista guardada y consultable, una exportación y avisos para todo el equipo, no un solo buzón.

Si lo único que necesitas es añadir suscriptores nuevos a Mailchimp, Kit u otra herramienta de email, el formulario **Signup** de Carrd ya lo hace en Pro Standard y es mejor opción. Ikiform no tiene integraciones de un clic con herramientas de email.

Diagrama: El plan de Carrd en el que estés decide cómo llega el formulario a Ikiform

1. En el plan gratuito o en Pro Lite no hay elemento de formulario ni embed, así que no hay nada que conectar. Mejora el plan, o enlaza a un formulario alojado en otro sitio.
2. En Pro Standard, pega un formulario HTML en un elemento Embed. El navegador del visitante lo envía a Ikiform.
3. En Pro Plus, crea un formulario Custom en el editor de Carrd y configúralo con Send to URL y el método AJAX. El formulario de Carrd envía a Ikiform y muestra su propio mensaje de éxito.

Los dos caminos envían el post desde el navegador del visitante, así que los dominios permitidos, los límites de frecuencia y la puntuación de spam funcionan igual que en cualquier sitio.

## Pro Plus: con Send to URL

Esto conserva el editor de formularios y los estilos de Carrd, sin código. Los campos de abajo son para la consulta de reserva de un fotógrafo; usa los tuyos.

1. Haz clic en **Add Element** > **Form**, pon **Type** en **Custom** y luego **Send to URL**.
2. Pega tu endpoint como **URL**.
3. Pon **Method** en **AJAX** y **Format** en **Default**. Carrd interpreta cualquier respuesta `2xx` como éxito, e Ikiform responde `201` cuando guarda el envío.
4. Añade los campos: Text `name`, Email `email`, Select `service`, Date `preferred_date`, Text Area `details`. Define el **ID** de cada campo; si no, Carrd genera uno a partir de la etiqueta.
5. En **On Success**, elige un mensaje o una sección que mostrar. En **On Failure**, deja un texto genérico. Carrd no muestra el mensaje de error de Ikiform.
6. Publica. Los formularios solo envían desde el sitio publicado.

`URL`:

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

| Ajuste de Carrd | Usar | Evita |
| --- | --- | --- |
| **Method** | AJAX: los visitantes se quedan en la página | POST: el navegador se va a la página de agradecimiento de Ikiform, y On Success nunca se ejecuta |
| **Format** | Default, o JSON | XML: Ikiform lo rechaza con `415 unsupported_media_type` |
| **Collect UTM parameters** | Vale, pero añade los cinco campos `utm_` a cualquier definición de campos | Activarlo después de definir los campos: cada envío desde un enlace con etiquetas UTM falla con un Unknown field |
| Campo **File** | En absoluto | La subida de archivos aún no está disponible. Un envío con un archivo recibe `422 files_not_supported`. |
| **Spam Protection** | Ninguno en este formulario | Un proveedor de captcha: la documentación de Carrd no dice que verifique el token en un formulario Send to URL, e Ikiform solo comprueba un token de Turnstile con tus propias claves guardadas en Ikiform |

Un campo **Hidden** siempre envía su valor predefinido, así que aquí no puede funcionar como honeypot. La puntuación de spam, los límites de frecuencia y los dominios permitidos de Ikiform siguen aplicándose a cada envío. Deja desactivado el **Spam check** de Ikiform para este formulario: un envío AJAX no puede mostrar la comprobación, y fallaría con `403 challenge_required`.

## Pro Standard: un elemento Embed

En Pro Standard no puedes crear un formulario personalizado en Carrd, pero puedes pegar uno. Haz clic en **Add Element** > **Embed**, pon **Type** en **Code** y **Style** en **Inline**, y pega esto. Lleva sus propios estilos porque los estilos de formulario de Carrd no llegan al código incrustado.

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

- El script envía con `fetch` y sustituye el formulario por la línea de agradecimiento, así que la página no cambia.
- El input oculto `_gotcha` aquí sí es un honeypot de verdad, a diferencia de un campo Hidden de Carrd.
- Si el script no carga, el formulario sigue enviando de forma normal. `target="_top"` evita que el resultado se abra dentro de un marco.
- Los embeds no se ejecutan en el editor de Carrd. Publica para ver el formulario.

Las dos versiones envían los mismos campos. Defínelos en Ikiform cuando haya llegado una prueba:

Formulario: Booking enquiry

- **Nombre** (`name`, text, obligatorio)
- **Email** (`email`, email, obligatorio)
- **¿Qué necesitas?** (`service`, select, obligatorio)
- **Fecha preferida** (`preferred_date`, date)
- **¿Algo más?** (`details`, textarea)

`preferred_date` es un campo `date`, así que Ikiform acepta `YYYY-MM-DD`, que es lo que envían tanto el campo Date de Carrd como un input de fecha del navegador.

## Dominios permitidos en Carrd

Añade `your-site.carrd.co`, o `your-site.crd.co` en Pro, y tu dominio propio. No añadas `carrd.co` solo; cualquier sitio de Carrd podría enviar. La [guía de Carrd de la documentación](https://ikiform.com/es/docs/guides/carrd.md) lista cada ajuste con su motivo.

> Mover un formulario no mueve los demás. Un formulario Signup que alimenta tu herramienta de email puede quedarse como está junto a un formulario Custom o un embed que envía a Ikiform.

## Comprueba que funciona en Carrd

1. En **Allowed domains** del formulario, añade el dominio de tu sitio, y `localhost` mientras desarrollas. Déjalo vacío para aceptar envíos desde cualquier lugar.
2. Publica y luego envía el formulario en el sitio publicado.
3. Confirma que Carrd muestra On Success, o que el embed muestra su línea de agradecimiento.
4. Abre **Submissions** en el panel. El nuevo envío está ahí con todos los campos que enviaste.
5. Comprueba que los nombres son tus IDs, que `preferred_date` se ve como `2026-11-14` y que no llegaron campos `utm_` salvo que los esperaras.
6. Revisa la bandeja de entrada de cada destinatario de las notificaciones. Cada uno recibe un email con los campos, y **Reply** va a quien envió el formulario cuando este tiene un campo `email`.

## Errores comunes

| Problema | Qué hacer |
| --- | --- |
| Carrd muestra On Failure siempre | Formato XML (`415`), un campo File (`422`), un Unknown field por la recogida de UTM, o el **Spam check** de Ikiform activado (`403`). Arregla lo que corresponda. |
| Los nombres de campo parecen etiquetas | **ID** y **Submitted ID** estaban vacíos. Defínelos y vuelve a publicar. |
| 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 real. |
| `403 origin_not_allowed`, o todos los envíos acaban en spam | El dominio de la página no está en **Allowed domains** del formulario. Añádelo, y `localhost` para las pruebas locales. Los subdominios de un dominio de la lista están permitidos. |
| `403 challenge_required` | La verificación antispam del formulario está en **Ikiform** y un envío con `fetch` no llevaba token. Consigue uno con `challenge(formId)` de `@ikiform/sdk` antes de cada envío, o desactiva la verificación. |

## Preguntas

### ¿Qué plan de Carrd necesito para un formulario que envía a una URL?

Pro Plus. Los formularios personalizados, incluido Send to URL, son una función de Advanced Forms. En Pro Standard puedes, en cambio, pegar tu propio formulario HTML en un elemento Embed.

### ¿Debo usar AJAX o POST en un formulario Send to URL de Carrd?

AJAX. Mantiene a los visitantes en tu página de Carrd y ejecuta tus ajustes On Success y On Failure. POST lleva el navegador a la página de agradecimiento de Ikiform o a tu redirección.

### ¿Puede ser un honeypot un campo Hidden de Carrd?

No. Un campo Hidden siempre envía su valor predefinido, así que no puede distinguir bots de personas. La puntuación de spam, los límites de frecuencia y los dominios permitidos de Ikiform siguen comprobando cada envío, y la versión con embed puede llevar un honeypot de verdad.

### ¿Puedo mantener el formulario de suscripción de Carrd para mi newsletter?

Sí, y probablemente deberías. Añade a la gente directamente a tu herramienta de email. Usa Ikiform para los formularios de los que quieras un registro guardado, como consultas y reservas.

### ¿Ikiform es gratis?

No, no hay plan gratuito. Probar es gratis: puedes enviar 50 envíos de prueba al mes desde localhost antes de pagar. Para pasar a producción, Pro empieza en 6 $/mes por 500 envíos, o puedes pagar una sola vez 49 $ por 10.000 envíos o 149 $ por 50.000 envíos, con créditos que nunca caducan.

## Más guías

- [Más allá de los formularios del creador](https://ikiform.com/es/guides/website-builder-forms.md): Cuando los formularios de Webflow, Netlify, Carrd o Framer chocan con un tope o les falta algo, conserva el formulario que diseñaste y apúntalo a un backend de formularios.
- [Límite de envíos de Webflow](https://ikiform.com/es/guides/website-builder-forms/webflow-submission-limit.md): El plan gratuito Starter de Webflow deja de recoger envíos tras 50 por sitio y los sitios exportados no tienen ninguno, así que apunta el Form Block a Ikiform.
- [Formularios de Framer](https://ikiform.com/es/guides/website-builder-forms/framer-forms.md): Los formularios de Framer ya envían a email, Sheets o un webhook; añade Ikiform como webhook para tener envíos guardados y filtrados, avisos al equipo y más destinos.
- [Límite de Netlify Forms](https://ikiform.com/es/guides/website-builder-forms/netlify-forms-limit.md): Los planes antiguos de Netlify miden los envíos de formularios por sitio y te suben de nivel automáticamente, y los planes por créditos pueden pausar el sitio, así que lleva el formulario a un backend.
