Guías

Guías18 min de lectura

Cuando los formularios de tu creador de sitios se quedan cortos

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.

Preet SutharFundador, Ikiform

Conserva el formulario que dibuja tu creador de sitios y cambia solo adónde envía: un action personalizado en Webflow, Send to URL en Carrd, un destino webhook en Framer o un action normal en una página alojada en Netlify. El envío va entonces a un backend de formularios que valida, filtra, guarda y reenvía cada envío, así que los topes de envíos y las restricciones de plan del creador dejan de aplicarse. Comprueba primero a qué renuncias, como la subida de archivos y la bandeja de entrada propia del creador.

Los creadores de sitios incluyen formularios porque todo sitio necesita uno. Están pensados para el primer formulario de contacto, no para el décimo formulario ni para el envío número mil. En algún momento chocas con un muro: un tope de envíos, una función que exige un plan que no necesitas para nada más, un formulario que solo funciona mientras el sitio siga en un hosting concreto, o una bandeja de entrada que es tu único registro de quién te escribió.

No tienes que reconstruir el formulario para superarlo. Todos los creadores importantes pueden enviar un formulario a otro sitio. Esta guía explica qué cambia cuando lo haces, cómo hacerlo en cada creador sin perder ningún envío, y cuándo es mejor quedarse con los formularios del creador.

Qué cambia cuando el formulario sale del creador

Un formulario de un creador tiene dos mitades: la parte que ves, que dibuja el creador, y la parte que recibe el envío. Pasar a un backend de formularios sustituye solo la segunda mitad. Tu diseño, tus fuentes y tus estilos se quedan donde están.

Un formulario de un creador antes y después de enviar a un backend de formulariosAntes: el creador gestiona el envíoDespués: el creador solo dibuja el formulariotu formulariodiseñado en elcreadorgestor deformularios delcreadorsuma al tope delplanbandeja delcreador o emailexportar a manoel mismoformulariomismo diseño yestilosIkiformvalida, filtra spam,guardaemail, webhooks,CSVtu equipo y tusherramientasenvíoURL del actionUn formulario de un creador antes y después de enviar a un backend de formulariosAntes: el creador gestiona el envíoDespués: el creador solo dibuja el formulariotu formulariodiseñado en el creadorgestor de formularios delcreadorsuma al tope del planbandeja del creador oemailexportar a manoel mismo formulariomismo diseño y estilosIkiformvalida, filtra spam, guardaemail, webhooks, CSVtu equipo y tus herramientasenvíoURL del action
  1. Antes: un visitante envía el formulario, y el gestor de formularios propio del creador recibe el envío.
  2. El creador lo suma al tope de envíos del plan y lo guarda en su bandeja o lo envía por email.
  3. Después: el mismo formulario, con el mismo diseño, envía al endpoint de Ikiform.
  4. Ikiform valida los campos, puntúa el envío por spam y lo guarda.
  5. Ikiform avisa por email a tu equipo, envía webhooks firmados y mantiene cada envío consultable y exportable como CSV.
Solo cambia el destino. El creador nunca ve el envío, así que su contador de envíos y sus funciones de formulario dejan de aplicarse a ese formulario.

Los límites con los que choca la gente

Cada creador pone el límite en un sitio distinto. La tabla resume lo que dice cada uno en sus propias páginas de precios y de ayuda a octubre de 2026. Los planes cambian, así que consulta la página de cada variante para el detalle y el sitio del creador antes de decidir.

CreadorQué hacen sus formulariosDónde choca la gente con el muroLa salida
WebflowGuarda los envíos, avisa por email y exporta CSVEl plan gratuito Starter permite 50 envíos de formulario por sitio en total, y el contador no se reinicia. Los sitios exportados no tienen ninguna gestión de formulariosUn action personalizado en los ajustes del Form Block. También funciona en Starter
NetlifyDetecta los formularios data-netlify al desplegar y guarda los envíosLos planes antiguos miden los envíos por sitio y mes, y suben el sitio a un nivel de Forms de pago cuando supera el límite. Los formularios solo funcionan en sitios que genera NetlifyQuita los atributos de Netlify y pon el action del formulario
CarrdLos formularios de contacto te envían un email; los de suscripción añaden gente a una herramienta de emailCualquier formulario necesita Pro Standard. Los formularios personalizados, incluido Send to URL, necesitan Pro PlusSend to URL en Pro Plus, o un Embed en Pro Standard
FramerEnvía cada envío a email, Google Sheets o un webhookPrácticamente sin tope. Los equipos quieren un registro guardado con estado de spam, validación, notificaciones y más de un destinoAñade el endpoint como destino webhook, o usa un code component

Fíjate en la fila de Framer. Framer ya tiene webhooks, así que dejar sus formularios es una decisión sobre lo que pasa después del envío, no un rodeo para evitar un tope. La página de Framer dice con franqueza cuándo no necesitas Ikiform en absoluto.

Cuatro formas de superar el límite

Un backend de formularios no es la única respuesta, y a veces no es la mejor.

EnfoquePunto fuerteInconvenientes
Mejorar el plan del creadorNinguna migración. Los planes de sitio de pago de Webflow incluyen envíos ilimitados; los planes por créditos de Netlify hacen gratis los formulariosPagas todo el plan para quitar un límite. El formulario sigue atado a ese creador y a ese hosting
Incrustar un creador de formularios, como Tally o TypeformTipos de pregunta avanzados, lógica y subida de archivos sin códigoUn iframe con su propio aspecto y sus scripts. El diseño que hiciste en el creador desaparece, y los límites pasan a los planes de ese producto
Escribir tu propio gestor, como una función serverlessControl total, la lógica que quierasAhora te encargas tú del filtrado de spam, los límites de frecuencia, el almacenamiento, las notificaciones y los reintentos, en un sitio para el que elegiste un creador precisamente para no mantener código
Apuntar el formulario a un backend de formularios, como IkiformConserva tu diseño. Filtrado de spam, almacenamiento, email al equipo, webhooks firmados y exportación CSV, igual en todos los creadoresTodavía sin subida de archivos, sin bandeja del creador y sin integraciones montadas con clics dentro del creador. Algunos creadores necesitan un plan de pago para enviar a otro sitio

Mejora el plan cuando los formularios del creador ya hacen todo lo que necesitas y el plan te compensa también por otros motivos. Pasa a un backend de formularios cuando el límite tiene que ver con el propio formulario: quieres un único sitio para los envíos de varios sitios, puede que cambies de creador, o los envíos tienen que llegar de forma fiable a otras herramientas. La comparativa con Netlify Forms analiza ese equilibrio en detalle para un hosting.

A qué renuncias

Cuando un formulario envía a otro sitio, el creador lo trata como un formulario HTML normal. Sus funciones de formulario dejan de aplicarse a ese formulario. Conoce la lista antes de cambiar:

  • La bandeja del creador. Los envíos nuevos aparecen en el panel de Ikiform, no en el del creador. Los antiguos se quedan donde estaban.
  • El mensaje de éxito del creador, a veces. Los bloques de éxito y de error de Webflow solo funcionan cuando Webflow gestiona el envío. El modo AJAX de Carrd y el destino webhook de Framer conservan los suyos.
  • Subida de archivos. La subida de archivos todavía no está disponible. Un envío con un archivo recibe 422 files_not_supported. Los formularios personalizados de Webflow, Netlify y Carrd aceptan archivos, así que comprueba esto primero.
  • Integraciones montadas con clics. No hay integraciones de un clic. Cada herramienta se conecta mediante un webhook firmado, directamente o a través de una herramienta de automatización como Zapier o n8n.
  • El filtro de spam del creador. El honeypot, la puntuación de spam, los límites de frecuencia y la verificación humana opcional de Ikiform toman el relevo. Un elemento reCAPTCHA añadido en el creador no hace nada con un destino personalizado; quítalo.
Si un formulario necesita subida de archivos, deja ese formulario en el creador y mueve el resto. Nada obliga a que todos los formularios de un sitio usen el mismo backend.

Apunta cada creador a Ikiform

Crea un formulario en el panel de Ikiform y copia su endpoint. Luego usa el ajuste propio del creador para un destino externo. Las guías de la documentación para Webflow, Carrd y Framer tienen el recorrido completo de clics; aquí tienes qué cambiar y lo único que casi todo el mundo pasa por alto.

Webflow

  1. Selecciona el formulario dentro del Form Block y abre Settings.
  2. En Send to, elige un action personalizado, pega el endpoint en Action y pon Method en POST.
  3. Cambia el Name de cada input por un id en minúsculas, como email. Webflow rellena los nombres a partir de las etiquetas, así que si no tendrías Email y Field 2.
  4. Publica y envía desde el dominio webflow.io. Los actions personalizados no se ejecutan en el Designer.

Fácil de pasar por alto: el bloque de éxito de Webflow deja de mostrarse, porque Webflow ya no ve el resultado. Configura Redirect after submit en Ikiform, o añade el script de la documentación de Webflow. El detalle y el tope de Starter están en la página del límite de Webflow.

Netlify

  1. Quita data-netlify o netlify, netlify-honeypot y cualquier input oculto form-name.
  2. Pon el endpoint en el action del formulario y post en method.
  3. Pasa la antigua ruta de agradecimiento a Redirect after submit, como URL https: completa.
  4. En los formularios con JavaScript, borra la copia estática oculta que mantenías para el build de Netlify y envía al endpoint en lugar de a tu propio sitio.

Fácil de pasar por alto: las previews de despliegue viven en sus propios subdominios netlify.app, así que tu dominio de producción en Allowed domains no las cubre. La página de Netlify tiene el código para cada framework.

Carrd

  1. En Pro Plus, añade un Form, pon Type en Custom, luego Send to URL, y pega el endpoint.
  2. Pon Method en AJAX y Format en Default, para que Carrd mantenga su comportamiento On Success y On Failure.
  3. Dale a cada campo un ID o Submitted ID: name, email, message.
  4. En Pro Standard, pega en su lugar un formulario HTML en un elemento Embed.

Fácil de pasar por alto: el formato XML falla con 415, y un campo File falla con 422 files_not_supported. Consulta la página de Carrd.

Framer

  1. Dale a cada input un nombre en minúsculas. Framer envía los nombres como claves JSON.
  2. Selecciona el formulario y, junto a Send To, elige Add… > Webhook, y pega el endpoint.
  3. En Ikiform, deja Allowed domains vacío y el Spam check desactivado, y elige el límite de frecuencia Relaxed.

Fácil de pasar por alto: Framer envía desde sus servidores, no desde el navegador del visitante, así que las comprobaciones de origen y los límites de frecuencia por visitante no funcionan como siempre. La página de Framer explica el equilibrio y un relay firmado que lo soluciona.

Squarespace, Wix, WordPress y el resto

Los creadores sin ajuste para un destino externo suelen aceptar un embed HTML. Pega un formulario como el de abajo en un bloque de código o embed. Envía con fetch para que los visitantes se queden en la página, muestra el primer error de campo de Ikiform y recurre a un envío normal si el script no se ejecuta.

Bloque de embed o de código
<form id="enquiry" action="https://ikiform.com/f/frm_xxxxxxxxxxxxxxxx" method="post" target="_top">
  <label>Name <input name="name" autocomplete="name" required maxlength="120"></label>
  <label>Email <input name="email" type="email" autocomplete="email" required></label>
  <label>Budget
    <select name="budget">
      <option value="">Not sure yet</option>
      <option value="under_5k">Under $5k</option>
      <option value="5k_20k">$5k to $20k</option>
      <option value="over_20k">Over $20k</option>
    </select>
  </label>
  <label>What are you planning? <textarea name="message" rows="5" required minlength="20"></textarea></label>
  <input type="hidden" name="source" value="builder-embed">
  <input name="_gotcha" type="text" tabindex="-1" autocomplete="off" hidden>
  <p id="enquiry-status" role="status" hidden></p>
  <button type="submit">Send enquiry</button>
</form>
<script>
  document.getElementById("enquiry").addEventListener("submit", async (event) => {
    event.preventDefault();
    const form = event.currentTarget;
    const status = document.getElementById("enquiry-status");
    const button = form.querySelector("button");
    button.disabled = true;
    try {
      const response = await fetch(form.action, {
        method: "POST",
        headers: { Accept: "application/json" },
        body: new FormData(form),
      });
      const result = await response.json();
      if (result.ok) {
        form.replaceChildren(Object.assign(document.createElement("p"), {
          textContent: "Thanks. We reply within two working days.",
        }));
        return;
      }
      const fields = result.error.fields ?? {};
      const first = Object.keys(fields)[0];
      status.textContent = first ? `${first}: ${fields[first][0]}` : result.error.message;
    } catch {
      status.textContent = "Couldn't send. Check your connection and try again.";
    }
    status.hidden = false;
    button.disabled = false;
  });
</script>
  • target="_top" importa cuando el creador envuelve los embeds en un iframe. Sin él, un envío normal cargaría la página de agradecimiento dentro del marco.
  • El input oculto _gotcha es el honeypot. Las personas no lo ven; los bots que rellenan todos los inputs se marcan solos como spam.
  • El input oculto source registra de qué creador o página vino la consulta, lo que ayuda cuando varios sitios envían a un mismo formulario.
  • El script envía con fetch, así que deja el Spam check desactivado para este formulario, o quita el script y deja que el navegador envíe de forma normal, lo que ejecuta la comprobación sin código extra.

Las guías de Squarespace, Wix y WordPress explican dónde te deja pegar código cada creador, y el embed para creadores de sitios tiene una versión con estilos.

Quién envía el post en cada creador, y qué significa para los dominios permitidosWebflowactionpersonalizadonavegadordelvisitantelista tusdominiosCarrdSend to URLo Embednavegadordelvisitantelista tusdominiosNetlifyactionnormalnavegadordelvisitantedominios máspreviewsFramerdestinowebhookservidoresde Framerdejar vacíocreadorajustequién envíadominiospermitidosQuién envía el post en cada creador, y qué significa para los dominios permitidosWebflowactionpersonalizadonavegadordelvisitantelistatusdominiosCarrdSendtoURLoEmbednavegadordelvisitantelistatusdominiosNetlifyactionnormalnavegadordelvisitantedominiosmáspreviewsFramerdestinowebhookservidoresdeFramerdejarvacíocreadorajustequiénenvíadominiospermitidos
  1. El action personalizado de Webflow hace que el navegador del visitante envíe a Ikiform, así que lista tus dominios en Allowed domains.
  2. Send to URL y Embed de Carrd también envían desde el navegador, así que los dominios permitidos funcionan como siempre.
  3. Un formulario alojado en Netlify con un action normal envía desde el navegador. Lista el dominio de producción y los dominios de preview en los que pruebes.
  4. El destino webhook de Framer envía desde los servidores de Framer sin cabecera Origin, así que deja Allowed domains vacío, o cada envío se tratará como si viniera del sitio equivocado.
Tres creadores envían el post desde el navegador del visitante. El webhook de Framer lo envía desde Framer, lo que cambia cómo lo ven las comprobaciones de spam y los límites de frecuencia.

Los nombres de campo son la verdadera migración

La mayor parte del trabajo al mover un formulario de un creador es poner nombres. Ikiform guarda los nombres que envíe el formulario, y cada creador genera los nombres a su manera:

CreadorDe dónde sale el nombreQué obtienes si no lo defines
WebflowEl ajuste Name de cada inputLa etiqueta, como Name, Email o Field 2
CarrdSubmitted ID, luego IDUn ID generado a partir de la etiqueta
FramerEl nombre de cada inputComo se llamara el input cuando lo añadiste
NetlifyEl atributo name de tu HTMLTus propios nombres, normalmente ya están bien

Cámbialos por ids cortos en minúsculas antes de salir a producción: name, email, budget, message. Los emails de notificación y las columnas del CSV se leen mejor, y un campo email se convierte en la dirección de respuesta de cada notificación. Cuando haya llegado un envío real, añade campos al formulario de Ikiform para que el servidor imponga tipos y longitudes. Prueba el formulario de consulta de arriba con su definición:

Vista previa

Ejecuta el validador de Ikiform en tu navegador. No se envía nada.

Los mismos campos que el embed de arriba. Pega la definición en la pestaña Fields del formulario e Ikiform comprobará cada envío con ella, lo envíe como lo envíe el creador.
Define los campos después de ver un envío real, no antes. Los creadores añaden campos que no pediste, como los campos UTM de Carrd, y una definición que no los incluye convierte cada envío en un 422 con un error Unknown field.

Dominios de staging y dominios permitidos

Los creadores publican en una dirección de staging antes que en tu propio dominio. Los envíos desde un dominio que no está en los Allowed domains del formulario se guardan como spam, o se rechazan con Reject. Lista todas las direcciones desde las que vayas a probar:

CreadorDirección de stagingAñade
Webflowyour-site.webflow.ioEse host, más tu dominio
Carrdyour-site.carrd.co, o crd.co en ProEse host, más tu dominio
Netlifyyour-site.netlify.app, y previews como deploy-preview-42--your-site.netlify.appCada host en el que pruebes. Una preview no es un subdominio de your-site.netlify.app
Framer, webhookNo aplicaNada. Deja la lista vacía

No añadas un host compartido entero como webflow.io o netlify.app. Eso permitiría que cualquier sitio de ese host enviara a tu formulario. Los subdominios de un dominio que listes ya están permitidos, así que example.com cubre www.example.com.

Llévate tus envíos antiguos

Ikiform no tiene importación, así que los envíos pasados se quedan donde estaban. Expórtalos antes de cambiar, y antes de que un cambio de plan pueda eliminarlos:

  • Webflow: descarga los envíos de cada formulario como CSV desde los ajustes de Forms del sitio.
  • Netlify: descarga los envíos de cada formulario como CSV desde la sección Forms del sitio.
  • Carrd: los formularios de contacto y los formularios personalizados por email entregan cada mensaje por email, así que tu bandeja de entrada es el registro.
  • Framer: la bandeja de email o la hoja de Google Sheets a la que enviabas los envíos es el registro.

Para tener un único historial, pon la exportación antigua y una exportación CSV de Ikiform en dos pestañas de una hoja de Google Sheets y apílalas. Esta fórmula toma las columnas de fecha, nombre, email y mensaje de cada una, de la más reciente a la más antigua. Ajusta las letras de columna a tus archivos:

Google Sheets
=SORT({
  Webflow!A2:A, Webflow!C2:C, Webflow!D2:D, Webflow!E2:E;
  Ikiform!B2:B, Ikiform!F2:F, Ikiform!G2:G, Ikiform!H2:H
}, 1, FALSE)

Una exportación de Ikiform empieza con id, created_at, form y status, luego una columna por campo, y contiene hasta 100.000 filas por archivo.

Cambia sin perder ningún envío

  1. Crea el formulario en Ikiform, añade los destinatarios de las notificaciones y añade tus dominios de staging y de producción en Allowed domains.
  2. Cambia el destino en el sitio de staging y envía una prueba real desde un móvil y desde un portátil.
  3. Revisa en el panel los nombres de campo del envío. Renombra todo lo generado, vuelve a publicar staging y prueba otra vez.
  4. Publica en tu dominio real a una hora tranquila y envía una prueba más.
  5. Deja activada la notificación del creador durante una semana si aún recibe algo, como un segundo formulario que no moviste, y luego desactívala.
  6. Exporta los envíos antiguos del creador y guarda el archivo junto al nuevo historial.

Durante la primera semana, revisa el filtro Spam del panel de Ikiform cada uno o dos días. Una consulta real guardada como spam recibe la misma respuesta de éxito que una real, así que el visitante nunca lo sabe. Márcala como no spam y su email y sus webhooks saldrán en ese momento. Los emails de notificación van a hasta 10 destinatarios confirmados.

Elige tu caso

Cada creador tiene su propio límite, su propio ajuste para un destino externo y sus propias trampas. Estas páginas van creador por creador.

Comprueba que funciona

Hazlo primero en staging y luego una vez en el sitio real. Ikiform no tiene plan gratuito. Probar es gratis: un espacio de trabajo sin plan acepta 50 envíos de prueba al mes desde localhost. Para salir a producción, elige Pro desde 6 $/mes para 500 envíos, o paga una vez: 10.000 envíos por 49 $ o 50.000 envíos por 149 $, con créditos que nunca caducan. Consulta los precios.

  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 en el dominio de staging del creador. Los destinos personalizados no se ejecutan en el editor ni en el designer.
  3. Rellena el formulario en tu página y envíalo. Llegas a tu página de agradecimiento, o a la alojada de Ikiform.
  4. Abre Submissions en el panel. El nuevo envío está ahí con todos los campos que enviaste.
  5. Lee los nombres de campo de ese envío. Deberían ser tus ids en minúsculas, no etiquetas ni nombres generados.
  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.
  7. Envía con el honeypot relleno, _gotcha=bot. Igualmente recibe una respuesta de éxito, pero el envío se guarda como spam y no envía email ni webhook.
  8. ¿No llegó nada? Cambia el filtro de estado del panel a Spam. El spam recibe la misma respuesta de éxito que un envío real.
  9. Envía una vez más desde tu dominio real después de publicar en él.

Solución de problemas

ProblemaQué hacer
Una respuesta 404 not_found tras enviar un formulario de WebflowMethod es GET, así que el navegador abrió el endpoint como un enlace. Ponlo en POST y vuelve a publicar.
Carrd muestra On Failure en cada envíoFormat es XML (415), hay un campo File (422), o los IDs de los campos no coinciden con una definición de campos. Usa Default, quita el campo de archivo y haz coincidir los IDs.
Framer informa de entregas de webhook fallidasIkiform rechazó el envío. Vacía Allowed domains, desactiva el Spam check para ese formulario y haz coincidir los nombres de los inputs con tus campos.
Netlify sigue mostrando el formulario en su pestaña FormsUn despliegue antiguo o una copia estática del formulario sigue teniendo data-netlify. Quítalo en todas partes y vuelve a desplegar.
403 origin_not_allowed, o todos los envíos acaban en spamEl 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.
422 validation_failedEl envío no coincide con la definición de campos del formulario. error.fields indica cada campo y el motivo. Haz que el name del input coincida con el id del campo.
422 files_not_supportedEl formulario tiene un <input type="file"> con un archivo elegido. La subida de archivos aún no está disponible; quita el input o pide un enlace.
El envío está en el panel pero no llegó ningún email ni webhookSe guardó como spam. El spam no envía nada. Ábrelo en el filtro Spam para ver los motivos y márcalo como no spam para enviar su email y sus webhooks.

Preguntas

¿Te atascaste en un paso o quieres una guía para tu caso? Escribe a hello@ikiform.com.