# Wenn die Formulare deines Website-Baukastens nicht mehr reichen

> Wenn Formulare in Webflow, Netlify, Carrd oder Framer an ein Limit oder eine fehlende Funktion stoßen, behalte dein Formular und richte es auf ein Formular-Backend aus.

Veröffentlicht am 2026-10-25 · https://ikiform.com/de/guides/website-builder-forms

Behalte das Formular, das dein Baukasten zeichnet, und ändere nur, wohin es sendet: eine eigene Action in Webflow, **Send to URL** in Carrd, ein Webhook-Ziel in Framer oder eine einfache `action` auf einer bei Netlify gehosteten Seite. Der Post geht dann an ein Formular-Backend, das jede Einsendung validiert, filtert, speichert und weiterleitet, sodass die Einsendungs-Limits und Tarifgrenzen des Baukastens dafür nicht mehr gelten. Prüfe vorher, was du aufgibst, etwa Datei-Uploads und das eigene Postfach des Baukastens.

Website-Baukästen liefern Formulare mit, weil jede Site eines braucht. Gebaut sind sie für das erste Kontaktformular, nicht für das zehnte Formular oder die tausendste Einsendung. Irgendwann stößt du an eine Grenze: ein Einsendungs-Limit, eine Funktion, die einen Tarif verlangt, den du sonst nicht brauchst, ein Formular, das nur funktioniert, solange die Site bei einem bestimmten Host bleibt, oder ein Postfach, das dein einziger Nachweis dafür ist, wer dir geschrieben hat.

Du musst das Formular nicht neu bauen, um darüber hinwegzukommen. Jeder große Baukasten kann ein Formular woandershin senden. Diese Anleitung erklärt, was sich dabei ändert, wie du es in jedem Baukasten umstellst, ohne eine Einsendung zu verlieren, und wann die Formulare des Baukastens die bessere Wahl bleiben.

## Was sich ändert, wenn das Formular den Baukasten verlässt

Ein Baukasten-Formular hat zwei Hälften: den sichtbaren Teil, den der Baukasten zeichnet, und den Teil, der den Post empfängt. Der Umstieg auf ein Formular-Backend ersetzt nur die zweite Hälfte. Layout, Schriften und Styles bleiben, wo sie sind.

Diagramm: Ein Baukasten-Formular, bevor und nachdem es an ein Formular-Backend sendet

1. Vorher: Ein Besucher sendet das Formular ab, und der eigene Formular-Handler des Baukastens empfängt den Post.
2. Der Baukasten zählt ihn auf das Einsendungs-Limit des Tarifs an und behält ihn in seinem Postfach oder schickt ihn per E-Mail.
3. Nachher: Dasselbe Formular mit demselben Design sendet stattdessen an den Ikiform-Endpunkt.
4. Ikiform validiert die Felder, bewertet den Post auf Spam und speichert ihn.
5. Ikiform benachrichtigt dein Team per E-Mail, sendet signierte Webhooks und hält jede Einsendung durchsuchbar und als CSV exportierbar.

Nur das Ziel ändert sich. Der Baukasten sieht den Post nie, also gelten sein Einsendungszähler und seine Formularfunktionen für dieses Formular nicht mehr.

## Die Limits, an die man stößt

Jeder Baukasten zieht die Grenze an einer anderen Stelle. Die Tabelle fasst zusammen, was jeder auf seinen eigenen Preis- und Hilfeseiten mit Stand Oktober 2026 sagt. Tarife ändern sich, also prüfe die verlinkte Unterseite für Details und die Website des Baukastens, bevor du entscheidest.

| Baukasten | Was seine Formulare können | Wo man an die Grenze stößt | Der Ausweg |
| --- | --- | --- | --- |
| Webflow | Speichert Einsendungen, verschickt Benachrichtigungen per E-Mail und exportiert CSV | Der kostenlose Starter-Tarif erlaubt insgesamt 50 Formulareinsendungen pro Site, und der Zähler wird nicht zurückgesetzt. Exportierte Sites bekommen gar keine Formularverarbeitung | Eine eigene Action in den Einstellungen des Form Block. Funktioniert auch mit Starter |
| Netlify | Erkennt `data-netlify`-Formulare beim Deployment und speichert Posts | Legacy-Tarife zählen Einsendungen pro Site und Monat und stufen die Site auf ein kostenpflichtiges Forms-Level hoch, sobald sie das Limit überschreitet. Formulare funktionieren nur auf Sites, die Netlify baut | Entferne die Netlify-Attribute und setze die `action` des Formulars |
| Carrd | Kontaktformulare schicken dir eine E-Mail; Anmeldeformulare tragen Leute in ein E-Mail-Tool ein | Jedes Formular braucht Pro Standard. Eigene Formulare, einschließlich **Send to URL**, brauchen Pro Plus | **Send to URL** mit Pro Plus oder ein **Embed** mit Pro Standard |
| Framer | Sendet jede Einsendung per E-Mail, an Google Sheets oder an einen Webhook | Kein nennenswertes Limit. Teams wollen einen gespeicherten Nachweis mit Spam-Status, Validierung, Benachrichtigungen und mehr als einem Ziel | Füge den Endpunkt als Webhook-Ziel hinzu oder nutze eine Code-Komponente |

Beachte die Framer-Zeile. Framer hat bereits Webhooks, der Abschied von seinen Formularen ist also eine Entscheidung darüber, was nach dem Post passiert, kein Umweg um ein Limit. Die [Framer-Seite](https://ikiform.com/de/guides/website-builder-forms/framer-forms.md) sagt offen, wann du Ikiform gar nicht brauchst.

## Vier Wege über das Limit hinaus

Ein Formular-Backend ist nicht die einzige Antwort und manchmal nicht die beste.

| Ansatz | Stark bei | Nachteile |
| --- | --- | --- |
| Den Tarif des Baukastens upgraden | Keine Migration. Die bezahlten Site-Tarife von Webflow bieten unbegrenzte Einsendungen; die Credit-Tarife von Netlify machen Formulare kostenlos | Du zahlst für den ganzen Tarif, um ein einziges Limit aufzuheben. Das Formular bleibt an diesen Baukasten und Host gebunden |
| Einen Formular-Baukasten einbetten, etwa [Tally](https://ikiform.com/alternatives/tally) oder [Typeform](https://ikiform.com/alternatives/typeform) | Vielfältige Fragetypen, Logik und Datei-Uploads ganz ohne Code | Ein iframe mit eigenem Look und eigenen Skripten. Das Design, das du im Baukasten gebaut hast, ist weg, und die Limits wandern zu den Tarifen dieses Produkts |
| Einen eigenen Handler schreiben, etwa eine Serverless-Funktion | Volle Kontrolle, beliebige Logik | Spamfilter, Rate-Limits, Speicherung, Benachrichtigungen und Wiederholungen gehören jetzt dir, auf einer Site, für die du einen Baukasten gewählt hast, um keinen Code zu betreiben |
| Das Formular auf ein Formular-Backend wie Ikiform ausrichten | Dein Design bleibt. Spamfilter, Speicherung, Team-E-Mails, signierte Webhooks und CSV-Export, auf jedem Baukasten gleich | Noch keine Datei-Uploads, kein Postfach im Baukasten und keine im Baukasten zusammengeklickten Integrationen. Manche Baukästen verlangen einen bezahlten Tarif, um überhaupt woandershin zu senden |

Upgrade, wenn die Formulare des Baukastens schon alles können, was du brauchst, und sich der Tarif auch aus anderen Gründen lohnt. Wechsle zu einem Formular-Backend, wenn das Limit das Formular selbst betrifft: Du willst einen Ort für Einsendungen von mehreren Sites, wechselst vielleicht den Baukasten, oder die Einsendungen müssen zuverlässig bei anderen Tools ankommen. Der [Vergleich mit Netlify Forms](https://ikiform.com/alternatives/netlify-forms) geht diese Abwägung für einen Host im Detail durch.

## Was du aufgibst

Sendet ein Formular woandershin, behandelt der Baukasten es als einfaches HTML-Formular. Seine Formularfunktionen gelten dafür nicht mehr. Kenne die Liste, bevor du wechselst:

- **Das Postfach des Baukastens.** Neue Einsendungen erscheinen im Ikiform-Dashboard, nicht im Baukasten. Alte bleiben, wo sie sind.
- **Die Erfolgsmeldung des Baukastens, manchmal.** Die Erfolgs- und Fehlerblöcke von Webflow laufen nur, wenn Webflow den Post verarbeitet. Der AJAX-Modus von Carrd und das Webhook-Ziel von Framer behalten ihre.
- **Datei-Uploads.** Datei-Uploads werden noch nicht unterstützt. Ein Post mit Datei bekommt `422 files_not_supported`. Eigene Formulare in Webflow, Netlify und Carrd nehmen alle Dateien an, also prüfe das zuerst.
- **Zusammengeklickte Integrationen.** Es gibt keine Ein-Klick-Integrationen. Jedes Tool erreichst du über einen signierten [Webhook](https://ikiform.com/de/docs/webhooks.md), direkt oder über ein Automatisierungstool wie [Zapier](https://ikiform.com/blog/form-submissions-to-zapier.md) oder [n8n](https://ikiform.com/blog/form-submissions-to-n8n.md).
- **Der Spamfilter des Baukastens.** Honeypot, Spam-Bewertung, Rate-Limits und die optionale Menschlichkeitsprüfung von Ikiform übernehmen. Ein im Baukasten hinzugefügtes reCAPTCHA-Element bewirkt bei einem eigenen Ziel nichts; entferne es.

> Braucht ein Formular Datei-Uploads, lass genau dieses Formular im Baukasten und zieh die übrigen um. Nichts zwingt alle Formulare einer Site, dasselbe Backend zu nutzen.

## Jeden Baukasten auf Ikiform ausrichten

Erstelle ein Formular im Ikiform-Dashboard und kopiere seinen Endpunkt. Nutze dann die Einstellung des Baukastens für ein externes Ziel. Die Docs-Anleitungen für [Webflow](https://ikiform.com/de/docs/guides/webflow.md), [Carrd](https://ikiform.com/de/docs/guides/carrd.md) und [Framer](https://ikiform.com/de/docs/guides/framer.md) zeigen jeden Klick; hier steht, was du ändern musst, und das eine, was die meisten übersehen.

### Webflow

1. Wähle das Formular im Form Block aus und öffne **Settings**.
2. Wähle unter **Send to** eine eigene Action, füge den Endpunkt in **Action** ein und setze **Method** auf **POST**.
3. Benenne den **Name** jedes Eingabefelds in eine kleingeschriebene ID wie `email` um. Webflow übernimmt Namen aus den Labels, sonst bekämst du `Email` und `Field 2`.
4. Veröffentliche und sende von der `webflow.io`-Domain ab. Eigene Actions laufen nicht im Designer.

Leicht zu übersehen: Der Erfolgsblock von Webflow erscheint nicht mehr, weil Webflow das Ergebnis nicht mehr sieht. Setze **Redirect after submit** in Ikiform oder füge das Skript aus den [Webflow-Docs](https://ikiform.com/de/docs/guides/webflow.md#keep-success-state) hinzu. Details und das Starter-Limit stehen auf der [Seite zum Webflow-Limit](https://ikiform.com/de/guides/website-builder-forms/webflow-submission-limit.md).

### Netlify

1. Entferne `data-netlify` oder `netlify`, `netlify-honeypot` und jedes versteckte `form-name`-Eingabefeld.
2. Setze die `action` des Formulars auf den Endpunkt und `method` auf `post`.
3. Übertrage den alten Pfad der Dankeseite als vollständige `https:`-URL in **Redirect after submit**.
4. Lösche bei JavaScript-Formularen die versteckte statische Kopie, die du für den Netlify-Build behalten hast, und sende an den Endpunkt statt an deine eigene Site.

Leicht zu übersehen: Deploy-Previews laufen auf eigenen `netlify.app`-Subdomains, deine Produktivdomain unter **Allowed domains** deckt sie also nicht ab. Die [Netlify-Seite](https://ikiform.com/de/guides/website-builder-forms/netlify-forms-limit.md) hat den Code für jedes Framework.

### Carrd

1. Füge mit Pro Plus ein **Form** hinzu, setze **Type** auf **Custom**, dann **Send to URL**, und füge den Endpunkt ein.
2. Setze **Method** auf **AJAX** und **Format** auf **Default**, damit Carrd sein Verhalten bei On Success und On Failure behält.
3. Gib jedem Feld eine **ID** oder **Submitted ID**: `name`, `email`, `message`.
4. Füge mit Pro Standard stattdessen ein HTML-Formular in ein **Embed**-Element ein.

Leicht zu übersehen: Das Format **XML** scheitert mit `415`, und ein **File**-Feld scheitert mit `422 files_not_supported`. Siehe die [Carrd-Seite](https://ikiform.com/de/guides/website-builder-forms/carrd-forms.md).

### Framer

1. Gib jedem Eingabefeld einen kleingeschriebenen Namen. Framer sendet die Namen als JSON-Keys.
2. Wähle das Formular aus, wähle neben **Send To** **Add…** > **Webhook** und füge dann den Endpunkt ein.
3. Lass in Ikiform **Allowed domains** leer und den **Spam check** aus, und wähle das Rate-Limit **Relaxed**.

Leicht zu übersehen: Framer sendet von seinen Servern, nicht aus dem Browser des Besuchers, daher funktionieren Origin-Prüfungen und Rate-Limits pro Besucher nicht wie gewohnt. Die [Framer-Seite](https://ikiform.com/de/guides/website-builder-forms/framer-forms.md) erklärt die Abwägung und ein signiertes Relay, das das behebt.

### Squarespace, Wix, WordPress und der Rest

Baukästen ohne Einstellung für ein externes Ziel akzeptieren meist ein HTML-Embed. Füge ein Formular wie das unten in einen Code- oder Embed-Block ein. Es sendet mit `fetch`, damit Besucher auf der Seite bleiben, zeigt den ersten Feldfehler von Ikiform an und fällt auf einen normalen Post zurück, wenn das Skript nicht läuft.

`Embed- oder Code-Block`:

```html
<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"` ist wichtig, wenn der Baukasten Embeds in ein iframe packt. Ohne das würde ein normaler Post die Dankeseite im Frame laden.
- Das versteckte `_gotcha`-Eingabefeld ist der Honeypot. Menschen sehen es nicht; Bots, die jedes Feld ausfüllen, markieren sich selbst als Spam.
- Das versteckte `source`-Eingabefeld hält fest, von welchem Baukasten oder welcher Seite die Anfrage kam. Das hilft, wenn mehrere Sites an ein Formular senden.
- Das Skript sendet mit `fetch`, also lass den **Spam check** für dieses Formular aus, oder entferne das Skript und lass den Browser normal senden. Dann läuft die Prüfung ohne zusätzlichen Code.

Die Anleitungen zu [Squarespace](https://ikiform.com/de/docs/guides/squarespace.md), [Wix](https://ikiform.com/de/docs/guides/wix.md) und [WordPress](https://ikiform.com/de/docs/guides/wordpress.md) zeigen, wo jeder Baukasten dich Code einfügen lässt, und das [Embed für Website-Baukästen](https://ikiform.com/de/docs/guides/site-builders.md#embed) hat eine gestylte Version.

Diagramm: Wer bei welchem Baukasten den Post sendet und was das für erlaubte Domains bedeutet

1. Mit der eigenen Action von Webflow sendet der Browser des Besuchers an Ikiform, also trag deine Domains unter Allowed domains ein.
2. Send to URL und Embed in Carrd senden ebenfalls aus dem Browser, erlaubte Domains funktionieren also wie gewohnt.
3. Ein bei Netlify gehostetes Formular mit einfacher action sendet aus dem Browser. Trag die Produktivdomain und alle Preview-Domains ein, auf denen du testest.
4. Das Webhook-Ziel von Framer sendet von den Servern von Framer ohne Origin-Header, also lass Allowed domains leer, sonst gilt jeder Post als von der falschen Site kommend.

Drei Baukästen senden den Post aus dem Browser des Besuchers. Der Webhook von Framer sendet ihn von Framer aus, was ändert, wie Spam-Prüfungen und Rate-Limits ihn sehen.

## Die eigentliche Migration sind die Feldnamen

Die meiste Arbeit beim Umzug eines Baukasten-Formulars ist das Benennen. Ikiform speichert die Namen, die das Formular sendet, und jeder Baukasten erzeugt Namen auf seine eigene Art:

| Baukasten | Woher der Name kommt | Was du bekommst, wenn du ihn nicht setzt |
| --- | --- | --- |
| Webflow | Die Einstellung **Name** jedes Eingabefelds | Das Label, etwa `Name`, `Email` oder `Field 2` |
| Carrd | **Submitted ID**, dann **ID** | Eine aus dem Label erzeugte ID |
| Framer | Der Name jedes Eingabefelds | Wie auch immer das Feld hieß, als du es hinzugefügt hast |
| Netlify | Das `name`-Attribut in deinem HTML | Deine eigenen Namen, meist schon in Ordnung |

Benenne vor dem Livegang alles in kurze, kleingeschriebene IDs um: `name`, `email`, `budget`, `message`. Benachrichtigungs-E-Mails und CSV-Spalten lesen sich besser, und ein `email`-Feld wird zur Reply-To-Adresse jeder Benachrichtigung. Sobald eine echte Einsendung angekommen ist, füge dem Ikiform-Formular [Felder](https://ikiform.com/de/docs/fields.md) hinzu, damit der Server Typen und Längen prüft. Probier das Anfrageformular oben mit seiner Definition aus:

Formular: Project enquiry

- **Name** (`name`, text, Pflichtfeld)
- **E-Mail** (`email`, email, Pflichtfeld)
- **Budget** (`budget`, select)
- **Was hast du vor?** (`message`, textarea, Pflichtfeld)

Dieselben Felder wie im Embed oben. Füge die Definition im Tab **Fields** des Formulars ein, und Ikiform prüft jeden Post dagegen, egal wie der Baukasten ihn gesendet hat.

> Definiere Felder, nachdem du eine echte Einsendung gesehen hast, nicht vorher. Baukästen fügen Felder hinzu, um die du nicht gebeten hast, etwa die UTM-Felder von Carrd, und eine Definition, die sie nicht auflistet, macht aus jedem Post ein `422` mit dem Fehler Unknown field.

## Staging-Domains und erlaubte Domains

Baukästen veröffentlichen auf einer Staging-Adresse, bevor deine eigene Domain dran ist. Posts von einer Domain, die nicht unter **Allowed domains** des Formulars steht, werden als Spam gespeichert oder mit **Reject** abgelehnt. Trag jede Adresse ein, von der aus du testest:

| Baukasten | Staging-Adresse | Hinzufügen |
| --- | --- | --- |
| Webflow | `your-site.webflow.io` | Dieser Host plus deine Domain |
| Carrd | `your-site.carrd.co` oder mit Pro `crd.co` | Dieser Host plus deine Domain |
| Netlify | `your-site.netlify.app` und Previews wie `deploy-preview-42--your-site.netlify.app` | Jeden Host, auf dem du testest. Eine Preview ist keine Subdomain von `your-site.netlify.app` |
| Framer, Webhook | Nicht zutreffend | Nichts. Lass die Liste leer |

Trag keinen ganzen geteilten Host wie `webflow.io` oder `netlify.app` ein. Damit dürfte jede Site auf diesem Host an dein Formular senden. Subdomains einer eingetragenen Domain sind bereits erlaubt, `example.com` deckt also `www.example.com` ab.

## Alte Einsendungen mitnehmen

Ikiform hat keinen Import, alte Einsendungen bleiben also, wo sie sind. Exportiere sie vor dem Wechsel und bevor ein Tarifwechsel sie entfernen könnte:

- **Webflow:** Lade die Einsendungen jedes Formulars als CSV in den **Forms**-Einstellungen der Site herunter.
- **Netlify:** Lade die Einsendungen jedes Formulars als CSV im Bereich Forms der Site herunter.
- **Carrd:** Kontakt- und eigene E-Mail-Formulare liefern jede Nachricht per E-Mail, dein Postfach ist also der Nachweis.
- **Framer:** Das E-Mail-Postfach oder Google Sheet, an das du Einsendungen geschickt hast, ist der Nachweis.

Für eine gemeinsame Historie legst du den alten Export und einen CSV-Export aus Ikiform auf zwei Tabs eines Google Sheets und stapelst sie. Diese Formel nimmt aus beiden die Spalten für Datum, Name, E-Mail und Nachricht, die neuesten zuerst. Passe die Spaltenbuchstaben an deine Dateien an:

`Google Sheets`:

```text
=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)
```

Ein Ikiform-Export beginnt mit `id`, `created_at`, `form` und `status`, dann folgt eine Spalte pro Feld, und er fasst bis zu 100.000 Zeilen pro Datei.

## Wechseln, ohne eine Einsendung zu verlieren

1. Erstelle das Ikiform-Formular, füge deine Benachrichtigungsempfänger hinzu und trag deine Staging- und Live-Domains unter **Allowed domains** ein.
2. Ändere das Ziel auf der Staging-Site und sende einen echten Test vom Handy und vom Laptop ab.
3. Prüfe die Feldnamen der Einsendung im Dashboard. Benenne alles Generierte um, veröffentliche Staging erneut und teste noch einmal.
4. Veröffentliche zu einer ruhigen Stunde auf deiner Live-Domain und sende noch einen Test.
5. Lass die Benachrichtigung des Baukastens eine Woche lang an, falls dort noch etwas ankommt, etwa ein zweites Formular, das du nicht umgezogen hast, und schalte sie dann ab.
6. Exportiere die alten Einsendungen des Baukastens und bewahre die Datei bei der neuen Historie auf.

Prüfe in der ersten Woche alle ein, zwei Tage den Filter **Spam** im Ikiform-Dashboard. Eine echte Anfrage, die als Spam gespeichert wird, bekommt dieselbe Erfolgsantwort wie eine echte, der Besucher merkt also nichts. Markiere sie als kein Spam, dann gehen ihre E-Mail und ihre Webhooks raus. Benachrichtigungs-E-Mails gehen an bis zu 10 bestätigte Empfänger.

## Wähle deinen Fall

Jeder Baukasten hat sein eigenes Limit, seine eigene Einstellung für ein externes Ziel und seine eigenen Stolperfallen. Diese Seiten gehen einen Baukasten nach dem anderen durch.

- [Webflow-Einsendungslimit](https://ikiform.com/de/guides/website-builder-forms/webflow-submission-limit.md): Der kostenlose Starter-Tarif von Webflow hört nach 50 Formulareinsendungen pro Site auf zu sammeln, und exportierte Sites bekommen gar keine. Richte den Form Block deshalb auf Ikiform aus.
- [Netlify-Forms-Limit](https://ikiform.com/de/guides/website-builder-forms/netlify-forms-limit.md): Legacy-Tarife von Netlify messen Formulareinsendungen pro Site und stufen dich automatisch hoch, und Credit-Tarife können die Site pausieren. Verlege das Formular deshalb auf ein Backend.
- [Carrd-Formulare](https://ikiform.com/de/guides/website-builder-forms/carrd-forms.md): 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.
- [Framer-Formulare](https://ikiform.com/de/guides/website-builder-forms/framer-forms.md): Framer-Formulare senden bereits an E-Mail, Sheets oder einen Webhook; ergänze Ikiform als Webhook für gespeicherte, gefilterte Einsendungen, Team-Benachrichtigungen und weitere Ziele.

## Prüfen, ob es funktioniert

Führe das zuerst auf Staging aus, dann einmal auf der Live-Site. Ikiform hat keinen kostenlosen Tarif. Testen ist kostenlos: Ein Workspace ohne Tarif nimmt 50 Test-Einsendungen pro Monat von `localhost` an. Für den Livegang wählst du Pro ab 6 $/Monat für 500 Einsendungen oder zahlst einmalig: 10.000 Einsendungen für 49 $ oder 50.000 Einsendungen für 149 $, mit Credits, die nie verfallen. Siehe [Preise](https://ikiform.com/de/pricing).

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 auf der Staging-Domain des Baukastens. Eigene Ziele laufen nicht im Editor oder Designer.
3. Füll das Formular auf deiner Seite aus und sende es ab. Du landest auf deiner Dankeseite oder der gehosteten von Ikiform.
4. Öffne **Submissions** im Dashboard. Die neue Einsendung ist da, mit jedem Feld, das du gesendet hast.
5. Lies die Feldnamen dieser Einsendung. Es sollten deine kleingeschriebenen IDs sein, keine Labels oder generierten Namen.
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.
7. Sende einen Post mit ausgefülltem Honeypot, `_gotcha=bot`. Er bekommt trotzdem eine Erfolgsantwort, aber die Einsendung wird als Spam gespeichert und löst weder E-Mail noch Webhook aus.
8. Nichts angekommen? Stell den Statusfilter im Dashboard auf **Spam**. Spam bekommt dieselbe Erfolgsantwort wie eine echte Einsendung.
9. Sende noch einmal von deiner Live-Domain ab, nachdem du dort veröffentlicht hast.

## Fehlerbehebung

| Problem | Was zu tun ist |
| --- | --- |
| Eine `404 not_found`-Antwort nach dem Absenden eines Webflow-Formulars | **Method** steht auf GET, also hat der Browser den Endpunkt wie einen Link geöffnet. Setze sie auf **POST** und veröffentliche erneut. |
| Carrd zeigt bei jedem Absenden On Failure | **Format** ist XML (`415`), ein **File**-Feld ist vorhanden (`422`), oder die Feld-IDs passen nicht zu einer Felddefinition. Nutze Default, entferne das Dateifeld und gleiche die IDs an. |
| Framer meldet fehlgeschlagene Webhook-Zustellungen | Ikiform hat den Post abgelehnt. Leere **Allowed domains**, schalte den **Spam check** für dieses Formular aus und gleiche die Namen der Eingabefelder an deine Felder an. |
| Netlify zeigt das Formular noch im Tab Forms | Ein altes Deployment oder eine statische Kopie des Formulars hat noch `data-netlify`. Entferne es überall und deploye erneut. |
| `403 origin_not_allowed`, oder jeder Post landet im Spam | Die 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. |
| `422 validation_failed` | Der Post passt nicht zur Felddefinition des Formulars. `error.fields` nennt jedes Feld und den Grund. Gleiche den `name` des Eingabefelds an die Feld-ID an. |
| `422 files_not_supported` | Das Formular hat ein `<input type="file">` mit ausgewählter Datei. Datei-Uploads werden noch nicht unterstützt; entferne das Eingabefeld oder bitte stattdessen um einen Link. |
| Die Einsendung ist im Dashboard, aber keine E-Mail und kein Webhook kam an | Sie wurde als Spam gespeichert. Spam löst nichts aus. Öffne sie unter dem Filter **Spam**, um die Gründe zu sehen, und markiere sie als kein Spam, um ihre E-Mail und Webhooks zu senden. |

## Fragen

### Zählen Webflow-Formulare mit eigener Action auf das Limit von 50 Einsendungen?

Ein Formular mit eigener Action sendet direkt an die URL, die du angibst, also verarbeitet Webflow es nie und es taucht nicht unter den Formulareinsendungen von Webflow auf. Das Starter-Limit betrifft Formulare, die Webflow selbst verarbeitet.

### Kann ich das Design meines Baukastens behalten und trotzdem ein Formular-Backend nutzen?

Ja. Jeder Baukasten in dieser Anleitung zeichnet das Formular weiterhin. Du änderst nur das Ziel: eine eigene Action in Webflow, Send to URL in Carrd, ein Webhook in Framer oder das action-Attribut auf einer bei Netlify gehosteten Seite.

### Kann ich einige Formulare umziehen und andere im Baukasten lassen?

Ja. Jedes Formular hat sein eigenes Ziel. Eine übliche Aufteilung: Das Formular mit Datei-Upload bleibt im Baukasten, Kontakt-, Anfrage- und Anmeldeformulare ziehen zu Ikiform.

### Kann ich meine alten Einsendungen aus Webflow oder Netlify in Ikiform importieren?

Nein, Ikiform hat keinen Import. Exportiere die alten Einsendungen als CSV aus dem Baukasten und bewahre sie neben dem CSV-Export von Ikiform auf, oder stapel beide in einer Tabelle.

### Sehen Besucher weiterhin eine Erfolgsmeldung?

Bei Carrd mit AJAX und beim Webhook von Framer ja. Bei Webflow erscheint der Erfolgsblock nicht mehr, außer du fügst ein kurzes Skript hinzu; sonst setzt du Redirect after submit auf deine eigene Dankeseite. Ein einfaches HTML-Formular landet auf der Dankeseite von Ikiform oder deiner Weiterleitung.

### Kann das Formular Datei-Uploads annehmen?

Noch nicht. Ein Post mit einer Datei wird mit 422 files_not_supported abgelehnt. Bitte stattdessen um einen Link zur Datei, etwa die URL eines geteilten Laufwerks.

### Ist Ikiform kostenlos?

Nein, es gibt keinen kostenlosen Tarif. Testen ist kostenlos: Du kannst 50 Testeinsendungen pro Monat von localhost senden, bevor du zahlst. Für den Livebetrieb startet Pro bei $6/Monat für 500 Einsendungen, oder du zahlst einmalig 10.000 Einsendungen für $49 oder 50.000 Einsendungen für $149, mit Guthaben, das nie verfällt.

## Weitere Anleitungen

- [Webflow-Einsendungslimit](https://ikiform.com/de/guides/website-builder-forms/webflow-submission-limit.md): Der kostenlose Starter-Tarif von Webflow hört nach 50 Formulareinsendungen pro Site auf zu sammeln, und exportierte Sites bekommen gar keine. Richte den Form Block deshalb auf Ikiform aus.
- [Netlify-Forms-Limit](https://ikiform.com/de/guides/website-builder-forms/netlify-forms-limit.md): Legacy-Tarife von Netlify messen Formulareinsendungen pro Site und stufen dich automatisch hoch, und Credit-Tarife können die Site pausieren. Verlege das Formular deshalb auf ein Backend.
- [Carrd-Formulare](https://ikiform.com/de/guides/website-builder-forms/carrd-forms.md): 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.
- [Framer-Formulare](https://ikiform.com/de/guides/website-builder-forms/framer-forms.md): Framer-Formulare senden bereits an E-Mail, Sheets oder einen Webhook; ergänze Ikiform als Webhook für gespeicherte, gefilterte Einsendungen, Team-Benachrichtigungen und weitere Ziele.
- [Feedback-Formular für eine Website oder App](https://ikiform.com/de/guides/feedback-form.md): Setze ein Feedback-Formular auf jede Seite oder in deine App: eine Bewertung, ein Kommentar, die Herkunftsseite, Spamfilter und Alerts bei niedrigen Werten.
- [Formular zur Lead-Erfassung](https://ikiform.com/de/guides/lead-capture.md): Ein Lead-Formular auf deiner eigenen Site, das dich per E-Mail mit Reply-To benachrichtigt, den Team-Chat anpingt und dein CRM füttert, damit du antwortest, solange der Lead noch da ist.
- [Newsletter-Anmeldeformular](https://ikiform.com/de/guides/newsletter-signup.md): Baue ein Newsletter-Anmeldeformular mit eigenem Markup, speichere die Einwilligung, blocke Bot-Anmeldungen und gib jeden Abonnenten an Kit, MailerLite, beehiiv oder ein anderes Tool weiter.
