Grenzen von Baukasten-Formularen

Grenzen von Baukasten-Formularen7 Min. Lesezeit

Carrd-Formulare: Einsendungen an ein Formular-Backend senden

Das Kontaktformular von Carrd schickt dir nur E-Mails, und eigene Formulare brauchen Pro Plus. Nutze deshalb Send to URL in Plus oder ein HTML-Embed in Standard, um jede Einsendung zu speichern.

Preet SutharGründer, Ikiform

Die Formulare von Carrd brauchen einen Pro-Tarif: Pro Standard bekommt Kontakt- und Anmeldeformulare, und Pro Plus ergänzt eigene Formulare, die an jede URL senden können. Setze in Pro Plus ein eigenes Formular auf Send to URL mit deinem Ikiform-Endpunkt, und Carrd behält seine eigene Erfolgsmeldung. In Pro Standard fügst du ein HTML-Formular in ein Embed-Element ein, was dir eigene Felder ohne Upgrade gibt.

Was auf Carrd anders ist

Carrd begrenzt keine Einsendungen. Es schaltet Formularfunktionen nach Tarif frei, und jeder Tarif ist ein Jahrespreis für eine feste Anzahl Sites. Stand Oktober 2026 ziehen die Preise und die Doku von Carrd die Grenzen so:

TarifFormulare, die du bekommstWas es bedeutet
Free und Pro LiteKeineKein Formularelement und keine Embeds. Verlinke auf ein Formular woanders oder upgrade
Pro Standard, ab $19 pro JahrContact-Formulare, die an bis zu fünf Empfänger mailen, Signup-Formulare, die Leute zu einem E-Mail-Tool hinzufügen, und Embed-ElementeKontaktformulare haben feste Felder. Embeds nehmen beliebiges HTML an, auch dein eigenes Formular
Pro Plus, ab $49 pro JahrAlles oben, plus Custom-Formulare: E-Mail senden oder an Airtable, Make, n8n, Zapier, eine URL oder deinen eigenen Code sendenBeliebige Felder, und Send to URL sendet sie, wohin du willst

Ein Carrd-Kontaktformular liefert jede Nachricht per E-Mail von @mail.carrd.site, also ist dein Posteingang das Archiv, und eine als Junk abgelegte Nachricht übersieht man leicht. Das ist der übliche Grund für den Wechsel: Du willst eine gespeicherte, durchsuchbare Liste, einen Export und Benachrichtigungen für das ganze Team, nicht ein einzelnes Postfach.

Brauchst du nur neue Abonnenten in Mailchimp, Kit oder einem anderen E-Mail-Tool, erledigt das Carrds Signup-Formular in Pro Standard bereits und ist die bessere Wahl. Ikiform hat keine Ein-Klick-Integrationen für E-Mail-Tools.

Dein Carrd-Tarif entscheidet, wie das Formular Ikiform erreichtPro Lite oderkostenloskeine Formulare,keine Embedsupgraden oderverlinkenPro StandardEmbed-Elementdein eigenesHTML-FormularIkiformBrowser sendetPro PlusCustom-FormularSend to URL mit AJAXIkiformCarrds Formular sendetDein Carrd-Tarif entscheidet, wie das Formular Ikiform erreichtPro Lite oder kostenloskeine Formulare, keineEmbedsupgraden oder verlinkenPro StandardEmbed-Elementdein eigenes HTML-FormularIkiformBrowser sendetPro PlusCustom-FormularSend to URL mit AJAXIkiformCarrds Formular sendet
  1. Im kostenlosen Tarif oder Pro Lite gibt es kein Formularelement und kein Embed, also gibt es nichts zu verbinden. Upgrade oder verlinke auf ein anderswo gehostetes Formular.
  2. In Pro Standard fügst du ein HTML-Formular in ein Embed-Element ein. Der Browser des Besuchers sendet es an Ikiform.
  3. In Pro Plus baust du im Editor von Carrd ein Custom-Formular und stellst es auf Send to URL mit der Methode AJAX. Das Formular von Carrd sendet an Ikiform und zeigt seine eigene Erfolgsmeldung.
Beide Wege senden den Post aus dem Browser des Besuchers, also funktionieren erlaubte Domains, Rate-Limits und Spam-Score wie auf jeder anderen Site.

Pro Plus: Senden mit Send to URL

So behältst du den Formulareditor und das Styling von Carrd, ganz ohne Code. Die Felder unten sind für eine Buchungsanfrage bei einem Fotografen; nutze deine eigenen.

  1. Klicke auf Add Element > Form, setze Type auf Custom und dann auf Send to URL.
  2. Füge deinen Endpunkt als URL ein.
  3. Setze Method auf AJAX und Format auf Default. Carrd wertet jede 2xx-Antwort als Erfolg, und Ikiform antwortet mit 201, wenn es den Post speichert.
  4. Füge die Felder hinzu: Text name, Email email, Select service, Date preferred_date, Text Area details. Setze die ID jedes Feldes; sonst erzeugt Carrd eine aus dem Label.
  5. Wähle unter On Success eine Meldung oder einen Abschnitt, der angezeigt wird. Halte den Text unter On Failure allgemein. Carrd zeigt die Fehlermeldung von Ikiform nicht an.
  6. Veröffentliche. Formulare senden nur von der veröffentlichten Site.
URL
https://ikiform.com/f/frm_xxxxxxxxxxxxxxxx
Carrd-EinstellungNutzenVermeiden
MethodAJAX: Besucher bleiben auf der SeitePOST: Der Browser wechselt zur Dankeseite von Ikiform, und On Success läuft nie
FormatDefault oder JSONXML: Ikiform lehnt es mit 415 unsupported_media_type ab
Collect UTM parametersIn Ordnung, aber füge die fünf utm_-Felder zu jeder Felddefinition hinzuDas Einschalten, nachdem du Felder definiert hast: Jeder Post über einen Link mit UTM-Tags scheitert mit einem Unknown field
Feld vom Typ FileGar nichtDatei-Uploads werden noch nicht unterstützt. Ein Post mit einer Datei bekommt 422 files_not_supported.
Spam ProtectionKeine bei diesem FormularEin Captcha-Anbieter: Die Doku von Carrd sagt nicht, dass es das Token bei einem Send-to-URL-Formular prüft, und Ikiform prüft ein Turnstile-Token nur mit deinen eigenen, in Ikiform gespeicherten Keys

Ein Hidden-Feld sendet immer seinen voreingestellten Wert, kann hier also nicht als Honeypot dienen. Ikiforms Spam-Score, Rate-Limits und erlaubte Domains laufen trotzdem bei jedem Post. Lass Ikiforms Spam check für dieses Formular aus: Ein AJAX-Post kann die Prüfung nicht zeigen und würde mit 403 challenge_required scheitern.

Pro Standard: ein Embed-Element

In Pro Standard kannst du in Carrd kein eigenes Formular bauen, aber eines einfügen. Klicke auf Add Element > Embed, setze Type auf Code und Style auf Inline und füge dies ein. Es bringt eigene Styles mit, weil die Formular-Styles von Carrd eingebetteten Code nicht erreichen.

Embed
<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>
  • Das Skript sendet mit fetch und ersetzt das Formular durch die Dankeszeile, sodass die Seite gleich bleibt.
  • Der versteckte _gotcha-Input ist hier ein echter Honeypot, anders als ein Hidden-Feld in Carrd.
  • Lädt das Skript nicht, sendet das Formular trotzdem ganz normal. target="_top" verhindert, dass sich das Ergebnis in einem Frame öffnet.
  • Embeds laufen nicht im Editor von Carrd. Veröffentliche, um das Formular zu sehen.

Beide Versionen senden dieselben Felder. Definiere sie in Ikiform, sobald ein Test angekommen ist:

Vorschau

Führt den Validator von Ikiform in deinem Browser aus. Es wird nichts gesendet.

Leer lassen, wenn du flexibel bist.

preferred_date ist ein date-Feld, also akzeptiert Ikiform YYYY-MM-DD, genau das, was das Date-Feld von Carrd und ein Datums-Input im Browser senden.

Allowed domains bei Carrd

Füge your-site.carrd.co, oder your-site.crd.co bei Pro, und deine eigene Domain hinzu. Füge nicht carrd.co allein hinzu; dann dürfte jede Carrd-Site senden. Die Carrd-Anleitung der Doku listet jede Einstellung mit ihrem Grund auf.

Ein Formular umzuziehen zieht die anderen nicht mit. Ein Signup-Formular, das dein E-Mail-Tool füttert, kann bleiben, wie es ist, neben einem Custom-Formular oder Embed, das an Ikiform sendet.

Prüfen, dass es auf Carrd funktioniert

  1. Füge unter Allowed domains des Formulars die Domain deiner Site hinzu, plus localhost, während du entwickelst. Lass das Feld leer, um Posts von überall anzunehmen.
  2. Veröffentliche und sende das Formular dann auf der veröffentlichten Site ab.
  3. Prüfe, dass Carrd On Success zeigt oder das Embed seine Dankeszeile.
  4. Öffne Submissions im Dashboard. Die neue Einsendung ist da, mit jedem Feld, das du gesendet hast.
  5. Prüfe, dass die Namen deine IDs sind, preferred_date etwa 2026-11-14 lautet und keine utm_-Felder ankamen, sofern du sie nicht erwartet hast.
  6. Prüfe das Postfach jedes Benachrichtigungsempfängers. Jeder bekommt eine E-Mail mit den Feldern, und Reply geht an den Absender, wenn das Formular ein email-Feld hat.

Stolperfallen

ProblemWas zu tun ist
Carrd zeigt jedes Mal On FailureXML-Format (415), ein File-Feld (422), ein Unknown field durch die UTM-Erfassung oder eingeschalteter Spam check von Ikiform (403). Behebe, was zutrifft.
Feldnamen sehen aus wie LabelsID und Submitted ID waren leer. Setze sie und veröffentliche erneut.
Das Embed ist im Editor leerCarrd führt Embed-Code im Editor nicht aus. Veröffentliche und prüfe die Live-Site.
403 origin_not_allowed, oder jeder Post landet im SpamDie Domain der Seite steht nicht unter Allowed domains des Formulars. Füge sie hinzu, plus localhost für lokale Tests. Subdomains einer eingetragenen Domain sind erlaubt.
403 challenge_requiredDie Spamprüfung des Formulars steht auf Ikiform, und ein fetch-Post hatte kein Token. Hol dir vor jedem Absenden eins mit challenge(formId) aus @ikiform/sdk oder schalte die Prüfung aus.

Fragen

Hängst du bei einem Schritt fest oder willst eine Anleitung für deinen Fall? Schreib an hello@ikiform.com.