Anleitungen

Anleitungen13 Min. Lesezeit

Eventanmeldungen und RSVP-Formulare auf deiner eigenen Website

Nimm Zusagen auf deiner eigenen Eventseite entgegen: Formular, Begleitpersonen-Limit, ehrliche Teilnehmerzahl, Schließen bei voller Kapazität und Check-in-Liste, ohne Ticketing-App.

Preet SutharGründer, Ikiform

Setze ein RSVP-Formular auf deine Eventseite, das an ein Formular-Backend sendet, mit einer Ja-oder-Nein-Antwort, einer serverseitig begrenzten Zahl an Begleitpersonen und den Angaben, die du für die Planung brauchst. Zähle die Teilnehmer anhand der neuesten Antwort pro E-Mail-Adresse, per CSV-Export oder mit einem kurzen Skript, und pausiere das Formular, wenn du voll bist. Ikiform speichert und leitet jede Zusage weiter, hat aber kein Ticketing, keine Zahlungen und keine automatische Kapazitätsgrenze; nutze eine Ticketing-Plattform, wenn du das brauchst.

Die meisten Events brauchen keine Ticketing-Plattform. Ein Meetup, ein Workshop, eine Launch-Party, ein Lesekreis oder ein kostenloser Konferenztag braucht drei Dinge: eine Seite, die sagt, was und wann, ein Formular, das sammelt, wer kommt, und eine Zahl, auf die du dich am Tag davor verlassen kannst. Diese Anleitung baut genau das auf deiner eigenen Site und sagt klar, was ein Formular nicht kann.

Der Weg einer Zusage

Das Formular liegt auf deiner Eventseite. Jede Zusage wird an Ikiform gesendet, das sie gegen deine Feldregeln prüft, Spam filtert, sie speichert und dich benachrichtigt. Von dort gelangt sie zu dem, womit du planst: ins Dashboard, in eine Tabelle oder in ein Skript, das die Teilnehmer zählt.

Wie eine Zusage von deiner Eventseite zu deiner Teilnehmerzahl gelangtEventseitedeinRSVP-FormularIkiformprüft dasGäste-Limit,filtert SpamDashboardjede Zusage,CSV-ExportE-Mail anOrganisatorenAntwort geht anden GastsignierterWebhooksubmission.createdTabelle oderSkriptneueste Antwortpro E-MailRSVPzählenWie eine Zusage von deiner Eventseite zu deiner Teilnehmerzahl gelangtEventseitedeinRSVP-FormularIkiformprüft dasGäste-Limit,filtert SpamDashboardjede Zusage,CSV-ExportE-Mail anOrganisatorenAntwort geht an denGastsignierterWebhooksubmission.createdTabelle oderSkriptneueste Antwort proE-MailRSVPzählen
  1. Ein Gast füllt das RSVP-Formular auf deiner Eventseite aus, und es wird an deinen Ikiform-Endpunkt gesendet.
  2. Ikiform prüft die Felder, einschließlich des Begleitpersonen-Limits, und bewertet den Post auf Spam, bevor er gespeichert wird.
  3. Jede Zusage erscheint im Dashboard, wo du sie filtern und als CSV exportieren kannst.
  4. Die Organisatoren bekommen für jede Zusage eine E-Mail, und eine Antwort darauf geht direkt an den Gast.
  5. Ikiform sendet einen signierten submission.created-Webhook.
  6. Eine Tabelle oder ein kurzes Skript macht aus den Zusagen eine Teilnehmerzahl, anhand der neuesten Antwort jeder Person.
Ikiform speichert Antworten; die Teilnehmerzahl ist eine Summe, die du darüber bildest. Diesen Schritt würde dir eine Ticketing-App abnehmen.

Was Ikiform bei Events nicht macht

Sei dir darüber im Klaren, bevor du dich entscheidest. Ein Formular-Backend sammelt Antworten. Es ist kein Ticketing-System:

  • Keine Kapazitätsgrenze. Es gibt keine Einstellung, die das Formular nach einer bestimmten Zahl an Zusagen oder Gästen schließt. Du behältst die Zahl im Blick und pausierst das Formular selbst.
  • Keine Tickets oder Zahlungen. Keine QR-Codes, keine Check-in-App, keine kostenpflichtigen Stufen, keine Erstattungen.
  • Keine E-Mail an den Gast. Ikiform schickt der Person, die das Formular ausfüllt, keine E-Mail. Benachrichtigungs-E-Mails gehen nur an dich und dein Team, es gibt also keinen Autoresponder, keine Bestätigungs-E-Mail und kein Double-Opt-in. Verschicke sie aus deinem E-Mail-Tool, ausgelöst durch einen Webhook.
  • Keine Warteliste. Wenn du das Formular pausierst, werden neue Posts abgelehnt. Eine Warteliste wäre ein zweites Formular, das du an seine Stelle setzt.
  • Keine Deduplizierung. Ikiform führt wiederholte Einsendungen per E-Mail-Adresse weder zusammen noch lehnt es sie ab. Eine identische Wiederholung innerhalb von 24 Stunden erhöht nur den Spam-Score. Dedupliziere dort, wo die Liste liegt, oder beim Export.

Für jeden dieser Punkte gibt es unten eine praktikable Lösung. Wenn mehrere davon K.-o.-Kriterien sind, ist eine Ticketing-Plattform das bessere Werkzeug.

Wege, Zusagen zu sammeln

AnsatzStark beiNachteile
Ticketing-Plattform wie Eventbrite oder LumaTickets, Zahlungen, Kapazitätsgrenzen, Wartelisten, Bestätigungs-E-Mails und Check-in, alles inklusiveEventseite und Teilnehmerliste liegen auf ihrer Plattform, mit ihrem Branding. Bezahlte Tickets kosten Gebühren; sieh auf ihren Preisseiten nach
Google FormsKostenlos und schnell. Ein Schalter, um keine Antworten mehr anzunehmenSieht nach Google aus, nicht nach deinem Event. Eine separate Seite und kein serverseitiges Gäste-Limit
Kalendereinladung oder GruppenchatReicht für zwanzig FreundeKeine verlässlichen Zahlen, keine Ernährungswünsche und keine Liste am Tag selbst
Dein eigenes Formular und ein Formular-Backend wie IkiformDeine Seite, dein Design, beliebige Felder. Gäste-Limits serverseitig geprüft, Spam gefiltert, Organisatoren per E-Mail informiert, CSV und WebhooksTeilnehmer zählen, Anmeldung schließen und Bestätigungen senden machst du selbst oder per Webhook an ein E-Mail-Tool

Für ein kostenpflichtiges Event nimm eine Ticketing-Plattform. Für ein kostenloses Event, bei dem Seite und Liste dir gehören sollen, ist der Rest dieser Anleitung die Einrichtung. Die Eventbrite-Seite vergleicht beides ausführlicher.

Felder, die Planung möglich machen

Frag nur, worauf du auch reagierst. Jede Frage hier ändert etwas, das du bestellst, buchst oder organisierst. Probier es aus: Die Vorschau führt den Validator von Ikiform in deinem Browser aus, so siehst du den 422, den ein vierter Gast bekäme.

Vorschau

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

Bist du dabei?

Ohne dich. Bis zu 3.

Füge diese Definition im Tab Fields des Formulars ein, und Ikiform setzt sie bei jedem Post durch, egal von welcher Seite. Die Event-RSVP-Vorlage hat eine kürzere Version mit generiertem Code.
FeldWarumBeachte
attendingAuch ein Nein ist eine Information: Du musst niemandem hinterherlaufenEin radio mit yes und no, damit die Zählung ein Filter ist
guestsDie Zahl, für die du Essen und Stühle bestellstEin number mit min: 0, max: 3, integer: true. Ikiform lehnt 5 und 1.5 serverseitig ab
dietaryZahlen fürs CateringEin select lässt sich sauber summieren. Freitext nicht
access_needsStufenloser Zugang, Sitzplätze, ein ruhiger RaumOptional. Lies jede Angabe vor dem Event
emailUm über Änderungen zu informieren und geänderte Antworten zuzuordnenAußerdem die Reply-To-Adresse jeder Benachrichtigungs-E-Mail
Frag nur, was das Event wirklich braucht. Angaben zu Ernährung und Barrierefreiheit können Gesundheitsdaten sein; schreib im Formular, warum du fragst, bewahre den Export an einem privaten Ort auf und lösche die Einsendungen, sobald das Event vorbei ist.

Das RSVP-Formular

Wähle deinen Stack. Jede Version bedankt sich für ein Ja anders als für ein Nein, blendet die Fragen zu Begleitpersonen bei einem Nein aus und sendet guests als 0, wenn jemand nicht kommt, damit deine Summen stimmen.

Füge das Formular in die Eventseite ein. Es sendet auf klassischem Weg und leitet auf deine Bestätigungsseite weiter, funktioniert also ohne JavaScript. Das kurze Skript blendet die Fragen zu Begleitpersonen aus, wenn jemand mit Nein antwortet, und setzt die Zahl der Begleitpersonen auf 0 zurück.

event.html
<form id="rsvp" action="https://ikiform.com/f/frm_xxxxxxxxxxxxxxxx" method="post">
  <label for="name">Name</label>
  <input id="name" name="name" autocomplete="name" required maxlength="120">
  <label for="email">Email</label>
  <input id="email" name="email" type="email" autocomplete="email" required>
  <fieldset>
    <legend>Can you make it?</legend>
    <label><input type="radio" name="attending" value="yes" required> Yes</label>
    <label><input type="radio" name="attending" value="no"> No</label>
  </fieldset>
  <div id="if-going">
    <label for="guests">Guests you're bringing</label>
    <input id="guests" name="guests" type="number" min="0" max="3" step="1" value="0">
    <label for="dietary">Dietary needs</label>
    <select id="dietary" name="dietary">
      <option value="none">None</option>
      <option value="vegetarian">Vegetarian</option>
      <option value="vegan">Vegan</option>
      <option value="gluten_free">Gluten free</option>
      <option value="other">Other, tell us below</option>
    </select>
    <label for="access_needs">Access needs or anything else</label>
    <textarea id="access_needs" name="access_needs" rows="3" maxlength="1000"></textarea>
  </div>
  <input type="hidden" name="_redirect" value="https://example.com/meetup/registered">
  <input name="_gotcha" type="text" tabindex="-1" autocomplete="off" hidden>
  <button type="submit">Send RSVP</button>
</form>
<script>
  const rsvp = document.getElementById("rsvp");
  const extra = document.getElementById("if-going");
  rsvp.addEventListener("change", () => {
    const no = rsvp.elements.attending.value === "no";
    extra.hidden = no;
    if (no) rsvp.elements.guests.value = "0";
  });
</script>
Die serverseitigen Versionen senden mit einem Secret Key, daher überspringt Ikiform Allowed domains und seine Menschlichkeitsprüfung. Jeder Post kommt dann von der IP deines Servers, und das Standard-Limit von 5 pro Minute und Besucher zählt alle deine Besucher zusammen. Wähle für ein Formular, das du über einen Server sendest, das Rate-Limit Relaxed oder Custom, und halte IKIFORM_SECRET_KEY in reinen Server-Umgebungsvariablen. Die Server-Versionen reichen außerdem den Origin-Header des Browsers weiter, falls vorhanden, weil das eigene fetch eines Servers keinen sendet und Ikiform kostenlose localhost-Testeinsendungen daran erkennt.

Die Framework-Anleitungen in der Dokumentation gehen tiefer: Next.js, Astro, SvelteKit, Nuxt, React, Vue und einfaches HTML. In einem Website-Baukasten fügst du die HTML-Version in einen Embed-Block ein.

Teilnehmer anhand der neuesten Antwort zählen

Menschen ändern ihre Meinung. Jemand sagt am Montag Ja mit zwei Begleitpersonen und am Donnerstag Nein; das sind zwei Einsendungen, und die zweite gilt. Die Regel lautet also: eine Antwort pro E-Mail-Adresse, die neueste, und dann eins für die Person plus ihre Begleitpersonen.

Warum die Teilnehmerzahl die neueste Zusage jeder Person verwendetAda: ja2 GästeBen: ja0 GästeAda: neinhat es sichandersüberlegt1 Personnur Benneueste giltMontagMittwochDonnerstagTeilnehmerzahlWarum die Teilnehmerzahl die neueste Zusage jeder Person verwendetAda:ja2GästeBen:ja0GästeAda:neinhatessichandersüberlegt1PersonnurBenneueste giltMontagMittwochDonnerstagTeilnehmerzahl
  1. Montag: Ada sagt zu, mit 2 Begleitpersonen. Würde man jede Einsendung addieren, kämen 3 Personen heraus.
  2. Mittwoch: Ben sagt zu, ohne Begleitpersonen.
  3. Donnerstag: Ada sendet das Formular erneut und sagt ab. Ikiform speichert das als zweite Einsendung von ihr.
  4. Nimmt man nur die neueste Einsendung jeder E-Mail-Adresse, hat Ada abgesagt, die Teilnehmerzahl ist also 1: Ben.
Würde man jede Zeile addieren, zählte Adas Gruppe von drei Personen mit. Mit der neuesten Zeile pro E-Mail-Adresse stimmt es.

In einer Tabelle

  1. Wähle unter Submissions das RSVP-Formular, setze den Status auf Received und den Zeitraum auf All time, dann Export CSV.
  2. Importiere die Datei in Google Sheets und sortiere nach created_at, neueste zuerst.
  3. Markiere die Daten und nutze Data > Data cleanup > Remove duplicates auf der Spalte email. Sheets behält die erste Zeile, die es sieht, und das ist jetzt die neueste.
  4. Zähle, mit attending in Spalte G und guests in Spalte H. Passe die Buchstaben an deinen Export an:
Google Sheets
=COUNTIF(G2:G, "yes") + SUMIF(G2:G, "yes", H2:H)

Der Export enthält zuerst id, created_at, form und status, danach eine Spalte pro Feld. Eine Datei fasst bis zu 100.000 Zeilen.

Mit einem Skript

Für eine Zahl, die du jederzeit neu berechnen kannst, lies die Zusagen über die REST API. Listen kommen neueste zuerst, also ist die erste Einsendung, die du pro E-Mail-Adresse siehst, die aktuellste. Führe das mit Node und einem geheimen API-Schlüssel aus:

headcount.ts
import { createClient } from "@ikiform/sdk";

const ikiform = createClient({ apiKey: process.env.IKIFORM_SECRET_KEY! });
const latest = new Map<string, Record<string, unknown>>();

for await (const submission of ikiform.submissions.iterate({
  formId: "frm_xxxxxxxxxxxxxxxx",
  status: "received",
  limit: 100,
})) {
  const email = String(submission.fields.email ?? "").trim().toLowerCase();
  if (email && !latest.has(email)) latest.set(email, submission.fields);
}

let people = 0;
const meals = new Map<string, number>();
for (const fields of latest.values()) {
  if (fields.attending !== "yes") continue;
  people += 1 + Number(fields.guests ?? 0);
  const meal = String(fields.dietary ?? "none");
  meals.set(meal, (meals.get(meal) ?? 0) + 1);
}

console.log(`${latest.size} people replied. ${people} are coming, guests included.`);
console.table(Object.fromEntries(meals));

Die Essens-Tabelle zählt Zusagen, nicht Personen, weil ein Formular nicht sagen kann, welcher Gast was isst. Wenn das Essen der Gäste wichtig ist, etwa bei einer Hochzeit, frag pro Person; die Seite zu Hochzeits-RSVPs zeigt, wie.

Anmeldung schließen, wenn du voll bist

Ikiform stoppt das Formular nicht bei einer bestimmten Zahl, also richte zwei Dinge ein: eine Warnung, bevor du voll bist, und eine Möglichkeit zu schließen. Schließe an zwei Stellen, im Formular und auf der Seite:

  1. Wähle in den Einstellungen des Formulars Pause form. Ab dann werden Posts mit 403 form_paused abgelehnt, sodass ein alter Tab oder ein Bot nichts mehr hinzufügen kann.
  2. Ersetze das Formular auf deiner Eventseite durch eine Zeile wie Registration is closed. Email us to join the waitlist. Besucher sollten den Fehler nie zu sehen bekommen.
  3. Wenn du wieder öffnest, wähle Resume form und setze das Formular zurück auf die Seite.

Die Warnung kann ein Webhook-Handler sein, der bei jedem Ja neu zählt und an einen Chat-Webhook postet, etwa den von Slack, sobald du 90 % der Kapazität überschreitest. Das hier ist ein Next.js-Route-Handler; dieselbe Logik läuft auf jedem Server:

app/api/rsvp-alert/route.ts
import { createClient } from "@ikiform/sdk";
import { verifyWebhook, WebhookVerificationError } from "@ikiform/sdk/webhooks";

const CAPACITY = 80;
const ikiform = createClient({ apiKey: process.env.IKIFORM_SECRET_KEY! });

async function peopleComing(formId: string) {
  const seen = new Set<string>();
  let people = 0;
  for await (const submission of ikiform.submissions.iterate({ formId, status: "received", limit: 100 })) {
    const email = String(submission.fields.email ?? "").trim().toLowerCase();
    if (!email || seen.has(email)) continue;
    seen.add(email);
    if (submission.fields.attending === "yes") people += 1 + Number(submission.fields.guests ?? 0);
  }
  return people;
}

export async function POST(request: Request) {
  const payload = await request.text();
  try {
    const event = await verifyWebhook({
      payload,
      headers: request.headers,
      secret: process.env.IKIFORM_WEBHOOK_SECRET!,
    });
    if (event.type !== "submission.created" || event.data.fields.attending !== "yes") {
      return new Response(null, { status: 204 });
    }
    const people = await peopleComing(event.data.form.id);
    if (people >= CAPACITY * 0.9) {
      await fetch(process.env.ALERT_WEBHOOK_URL!, {
        method: "POST",
        headers: { "content-type": "application/json" },
        body: JSON.stringify({
          text: `${people} of ${CAPACITY} places taken. Pause the RSVP form in Ikiform when you're full.`,
        }),
      });
    }
    return new Response(null, { status: 204 });
  } catch (error) {
    if (error instanceof WebhookVerificationError) return new Response(error.reason, { status: 400 });
    throw error;
  }
}
  • Er zählt jedes Mal über die API neu, sodass eine geänderte Antwort berücksichtigt wird. Jeder Schlüssel kann 100 API-Requests pro Minute stellen, was für mehrere tausend Zusagen pro Zählung reicht.
  • Die Warnung sagt einem Menschen, dass er pausieren soll. Pausieren ist eine Aktion im Dashboard, also schließt nichts überraschend.
  • Füge den Endpunkt unter Webhooks hinzu und kopiere sein Secret in IKIFORM_WEBHOOK_SECRET. Ein Workspace kann 3 Endpunkte haben; die Webhook-Dokumentation behandelt Wiederholungsversuche.
Von offener zu geschlossener Anmeldung, ohne AutomatikoffenFormularauf derSeiteWarnungbei 90 %Webhook-Handlerzählt neuPauseform403form_pausedSeite:geschlossenWartelisteper E-MailZusagendu entscheidestVon offener zu geschlossener Anmeldung, ohne AutomatikoffenFormular auf der SeiteWarnung bei 90 %Webhook-Handler zählt neuPause form403 form_pausedSeite: geschlossenWarteliste per E-MailZusagendu entscheidest
  1. Solange die Anmeldung offen ist, wird jede Zusage an Ikiform gesendet.
  2. Dein Webhook-Handler zählt bei jedem Ja die neuesten Antworten neu und warnt dich bei 90 % der Kapazität.
  3. Du entscheidest, wann du voll bist, und wählst Pause form, das neue Posts mit 403 form_paused ablehnt.
  4. Du ersetzt das Formular auf der Seite durch einen Hinweis, dass die Anmeldung geschlossen ist, und eine Möglichkeit, sich auf die Warteliste zu setzen.
Ein Mensch trifft die Entscheidung zu schließen. Das ist langsamer als die harte Grenze einer Ticketing-App, bedeutet aber, dass eine kurzfristige Planänderung niemanden aussperrt, den du noch reingelassen hättest.

Bestätigungen ohne Bestätigungs-E-Mail

Ikiform schickt dem Gast keine E-Mail, also gib ihm auf der Dankeseite, was er braucht: Datum, Uhrzeit, Adresse und eine Kalenderdatei. Eine statische .ics-Datei neben der Seite funktioniert in jeder Kalender-App. Verlinke sie von der Bestätigungsseite aus als Add to calendar:

meetup.ics
BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Example Meetup//RSVP//EN
BEGIN:VEVENT
UID:meetup-2027-03-14@example.com
DTSTAMP:20261025T090000Z
DTSTART:20270314T183000Z
DTEND:20270314T210000Z
SUMMARY:Example meetup
LOCATION:The Old Library, 12 High Street, London
DESCRIPTION:Doors at 6:30 pm. Reply to the organiser if your plans change.
END:VEVENT
END:VCALENDAR

Zeiten mit Z am Ende sind UTC, daher zeigen Kalender-Apps sie in der Zeitzone des jeweiligen Gastes an. Wenn du eine echte Bestätigungs-E-Mail willst, schick jede Zusage per Webhook an dein E-Mail-Tool, direkt oder über Zapier, Make oder n8n, und versende sie von dort. Dieselbe Liste bekommt dann auch die Erinnerung am Vortag.

Geänderte Antworten und Absagen

Sag den Leuten, wie sie ihre Antwort ändern: Plans changed? Send the form again with the same email. Deine Zählung nutzt bereits die neueste Antwort, mehr ist also nicht nötig. Benachrichtigungen zeigen jede Änderung, sobald sie passiert, was in der Woche des Events nützlich ist.

Zwei Personen im selben WLAN teilen sich eine IP-Adresse, und das Rate-Limit zählt pro IP. Das Standard-Preset mit 5 pro Minute und Besucher reicht für eine Eventseite. Setze kein Custom-Limit von einem Post pro Tag, um Wiederholungen zu verhindern: Das blockiert ein zweites Haushaltsmitglied im selben Netz, und die Regel der neuesten Antwort erledigt Wiederholungen ohnehin.

Am Tag selbst

Exportiere die Zusagen, entferne Duplikate wie oben, filtere auf attending = yes, sortiere nach Name und druck die Liste aus. Füge Spalten zum Abhaken und für erschienene Begleitpersonen hinzu. Eine gedruckte Liste funktioniert auch, wenn der Empfang am Veranstaltungsort schlecht ist. Behalte die Spalte zur Barrierefreiheit auf der Kopie für das Einlassteam und die Spalte zur Ernährung auf der für das Catering.

Spam erreicht deine Liste nicht: Honeypot, Spam-Bewertung und Rate-Limits filtern ihn, bevor er zählt, und Spam löst weder E-Mail noch Webhook aus. Schau vor dem Drucken einmal in den Filter Spam, falls eine echte Zusage mit einer ungewöhnlichen Nachricht dort gelandet ist. Wegwerfadressen erhöhen den Spam-Score um 2.

Wähle deinen Fall

Eine Hochzeit, ein kostenloses Community-Event und ein Helfer-Dienstplan zählen jeweils anders. Diese Seiten zeigen, was sich ändert.

Prüfen, ob es funktioniert

Teste den ganzen Ablauf eine Woche, bevor du das Event ankündigst. Ikiform hat keinen kostenlosen Tarif. Testen ist kostenlos: Ein Workspace ohne Tarif nimmt 50 Testeinsendungen pro Monat von localhost an. Für den Livebetrieb wähle Pro ab $6/Monat für 500 Einsendungen oder zahle einmalig: 10.000 Einsendungen für $49 oder 50.000 Einsendungen für $149, mit Guthaben, das nie verfällt. Siehe Preise.

  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. Sende ein Ja mit zwei Begleitpersonen und ein Nein von verschiedenen E-Mail-Adressen. Beide kommen an, und das Nein zeigt guests als 0.
  3. Sende drei Begleitpersonen, dann vier. Die vierte wird mit Must be at most 3 abgelehnt.
  4. 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.
  5. Führe das Zählskript oder die Tabellenformel aus. Das Ergebnis sollte dem entsprechen, was du gesendet hast.
  6. Pausiere das Formular und sende noch einmal. Du bekommst 403 form_paused. Setze es danach fort.
  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.

Fehlerbehebung

ProblemWas zu tun ist
Die Teilnehmerzahl ist zu hochDu addierst jede Einsendung. Behalte nur die neueste pro E-Mail-Adresse und prüfe, ob ein Nein guests als 0 sendet.
403 form_paused auf der Live-SeiteDas Formular ist im Dashboard pausiert. Setze es fort oder ersetze das Formular auf der Seite durch einen Hinweis, dass geschlossen ist.
422 validation_failed mit Bezug auf guestsMehr Begleitpersonen als das max des Felds oder eine Dezimalzahl. Zeig die Meldung von Ikiform neben dem Feld an, wie es die Beispiele tun.
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.
429 rate_limitedEin Besucher hat mehr gesendet, als das Rate-Limit des Formulars erlaubt. Standard erlaubt 5 pro Minute und Besucher. Warte Retry-After ab oder wähle Relaxed oder Custom für Formulare, die von einer gemeinsamen IP aus senden.
Die Einsendung ist im Dashboard, aber keine E-Mail und kein Webhook kam anSie 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.
Der Browser landet auf der Dankeseite von Ikiform statt auf deiner_redirect wird ignoriert, außer seine Domain steht unter Allowed domains und es ist eine https:-URL. Füge die Domain hinzu oder setze stattdessen Redirect after submit in den Einstellungen des Formulars.

Fragen

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