# Carrd

> Richte ein eigenes Carrd-Formular mit Send to URL unter Pro Plus auf Ikiform oder füge unter Pro Standard ein HTML-Formular in ein Embed-Element ein.

Die Kontakt- und Anmeldeformulare von Carrd senden Einsendungen an Carrds eigene Ziele. Eigene Formulare unter Pro Plus können an jede URL senden, und mehr braucht Ikiform nicht; Pro Standard kann dein eigenes HTML einbetten.

| Carrd-Tarif | So verbindest du Ikiform |
| --- | --- |
| Pro Plus oder höher | Ein **Form**-Element vom Typ **Custom** > **Send to URL**. Kein Code. |
| Pro Standard | Ein **Embed**-Element mit deinem eigenen HTML-Formular |
| Pro Lite und kostenlos | Keins von beiden. Diese Tarife haben keine Embeds oder eigenen Formulare. |

## Eigenes Formular mit Send to URL

### Schritt 1: Formular erstellen

Klicke auf **Add Element** > **Form** und setze **Type** auf **Custom**, dann auf **Send to URL**.

### Schritt 2: URL, Methode und Format festlegen

`URL`:

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

| Einstellung | Wert | Warum |
| --- | --- | --- |
| **Method** | AJAX | Hält Besucher auf der Seite. Carrd wertet jedes `2xx` als Erfolg, und Ikiform antwortet mit `201`, wenn die Einsendung gespeichert ist. |
| **Format** | Default | Sendet einen normalen Formular-POST. JSON funktioniert auch. |
| **Headers** | Keiner | Ikiform braucht von einem Browser keine Header. |

Mit **POST** statt AJAX verlässt der Browser deine Carrd-Site in Richtung der Danke-Seite von Ikiform oder deiner **Redirect after submit**-URL, und die Einstellung On Success von Carrd greift nicht. Wähle nicht **XML**: Ikiform lehnt es mit `415 unsupported_media_type` ab.

### Schritt 3: Feld-IDs festlegen

Die **Submitted ID** jedes Felds, oder seine **ID**, wenn sie leer ist, wird zum Feldnamen in Ikiform. Carrd erzeugt IDs aus den Labels, also setze sie selbst: `email`, `name`, `message`. Wenn **Format** auf JSON steht, wird eine Submitted ID wie `fields.firstname` als verschachteltes Objekt gesendet, das Ikiform unverändert speichert.

- Füge kein **File**-Feld hinzu. Ikiform nimmt noch keine Dateien an und lehnt den Request mit `422 files_not_supported` ab.
- **Collect UTM parameters** fügt `utm_source`, `utm_medium`, `utm_campaign`, `utm_term` und `utm_content` hinzu. Wenn du in Ikiform [Felder](https://ikiform.com/de/docs/fields.md) definierst, füge diese ebenfalls hinzu, sonst schlägt der Request mit einem Unknown-field-Fehler fehl.
- Ein **Hidden**-Feld hat immer seinen voreingestellten Wert und kann daher nicht als Honeypot dienen. Spam-Scoring läuft trotzdem bei jedem Request.

### Schritt 4: On Success und On Failure festlegen

Wähle, was Carrd nach dem Request anzeigt. On Failure deckt jeden Ikiform-Fehler ab, etwa `422 validation_failed` oder `429 rate_limited`; Carrd zeigt die Meldung von Ikiform nicht an, halte deinen Fehlertext also allgemein.

> Lass die Spamprüfung des Formulars ausgeschaltet. AJAX-Requests können die Prüfseite von Ikiform nicht anzeigen, daher antwortet ein Formular mit eingeschalteter Prüfung mit `403 challenge_required`, und Carrd zeigt jedes Mal On Failure.

## Embed-Element unter Pro Standard

Klicke auf **Add Element** > **Embed**, setze **Type** auf **Code** und **Style** auf **Inline** und füge ein Formular ein. Embeds werden im Builder nicht gerendert, veröffentliche also, um es zu sehen.

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

Das sendet als normales Formular, daher funktioniert die [Menschlichkeitsprüfung](https://ikiform.com/de/docs/spam.md#human-check), wenn du sie einschaltest. Style es mit einem `<style>`-Block oder starte mit dem umfangreicheren [Site-Builder-Embed](https://ikiform.com/de/docs/guides/site-builders.md#embed).

## Erlaubte Domains

Bei beiden Optionen sendet der Browser den Request von deiner Carrd-Seite, daher funktionieren erlaubte Domains wie gewohnt.

| Wo das Formular läuft | Zu Allowed domains hinzufügen |
| --- | --- |
| Kostenlose oder Standard-URL | `your-site.carrd.co` |
| Pro-URL ohne Branding | `your-site.crd.co` |
| Eigene Domain | `example.com`, was auch `www.example.com` abdeckt |

- Füge niemals `carrd.co` oder `crd.co` allein hinzu. Jede Site auf diesem Host würde passen, auch die anderer Leute.

## Test-Checkliste

1. Veröffentliche die Site. Formulare und Embeds funktionieren nur auf der veröffentlichten Site.
2. Sende das Formular ab und prüfe, dass Carrd deine On-Success-Meldung zeigt oder das Embed auf der Danke-Seite landet.
3. Öffne die Einsendung in Ikiform und prüfe, dass die Feldnamen die von dir gesetzten IDs sind, nicht generierte.
4. Sende eine ungültige E-Mail-Adresse ab, während das Formular definierte Felder hat, und prüfe, dass Carrd On Failure zeigt.

## Fehlerbehebung

| Was du siehst | Warum | Lösung |
| --- | --- | --- |
| Carrd zeigt bei jedem Absenden On Failure | Ikiform hat den Request abgelehnt: `415` für XML, `422` für ein Unknown field oder eine Datei, `403 challenge_required` bei eingeschalteter Prüfung oder `403 origin_not_allowed` mit **Reject** | Nutze das Format Default, passe deine Feld-IDs an, entferne File-Felder, schalte die Prüfung aus und füge deine Domain hinzu. |
| Feldnamen in Ikiform sehen aus wie die Labels, nicht wie deine IDs | **Submitted ID** und **ID** wurden leer gelassen | Setze die IDs und veröffentliche erneut. |
| Einsendungen landen im Spamfilter mit `origin_mismatch` | Die sendende Seite steht nicht in den erlaubten Domains des Formulars | Füge den Host aus der Tabelle oben hinzu. Mit **Reject** bekommen dieselben Requests stattdessen `403 origin_not_allowed`. |
| Das Embed ist im Builder leer | Carrd führt Embed-Code im Builder nicht aus | Veröffentliche und prüfe die Live-Site. |

## Verwandte Themen

- [Website-Baukästen](https://ikiform.com/de/docs/guides/site-builders.md): Das Embed, das in jedem Builder funktioniert.
- [HTML-Formulare](https://ikiform.com/de/docs/html.md): Weiterleitungen, reservierte Felder und der Honeypot.
- [Fehler](https://ikiform.com/de/docs/errors.md): Jeder Fehlercode mit Ursache und Lösung.
- [Erlaubte Domains](https://ikiform.com/de/docs/spam.md#allowed-domains): Wie Origins abgeglichen werden und was eine Abweichung bewirkt.
