⌘I

Die formspree.json-Datei

Updated July 14, 2023

In der Datei formspree.json kannst du Formulare für eine Website erstellen und konfigurieren. Du kannst zum Beispiel Opt-in-Formulare für eine Mailchimp-Liste oder Kontaktformulare erstellen, die dir beim Absenden eine E-Mail senden. Die Datei formspree.json wird von der Formspree CLI verwendet, wenn deine Formulare auf den Formspree-Servern bereitgestellt werden.

Formularkonfiguration

Formulare akzeptieren die folgenden Konfigurationsparameter:

EigenschaftTypStandardBeschreibung
nameStringDer Name des Formulars (erforderlich)
actionsArray[]Ein Array von Aktionen, die nach der Übermittlung ausgeführt werden
fieldsObject{}Optionale Metadaten zu Formularfeldern
captchaObject{}Optionale Captcha-Einstellungen.

Das Captcha-Objekt sollte diesem Format folgen:

"captcha": {
    "type": "recaptcha",                  // Required
    "recaptchaSecret": "my-secret"        // Optional
}

Beispiel Hier ist eine beispielhafte formspree.json-Datei:

{
  "forms": {
    "contact": {
      "name": "Contact Form",
      "captcha": {
        "type": "recaptcha",
        "recaptchaSecret": "my-secret"
      },
      "fields": {
        "email": { "type": "email", "required": true },
        "message": { "type": "text", "required": true }
      },
      "actions": [
        { "type": "email", "to": "john@example.com" }
      ]
    }
  }
}

Aktionen nach dem Absenden

Formulare akzeptieren ein Array von Aktionen, die nach der Übermittlung ausgeführt werden. Wir haben einige integrierte Aktionen und eine wachsende Liste von Integrationen mit anderen Apps:

AppTypBeschreibung
emailSendet eine Benachrichtigungs-E-Mail. Mehr erfahren
autoresponseSendet eine Antwort an den Absender. Mehr erfahren
webhookSendet einen Webhook an eine angegebene URL. Mehr erfahren
mailchimpaddOrUpdateContactErstellt Abonnenten in Mailchimp. Mehr erfahren
mailerliteaddSubscriberFügt Abonnenten zu MailerLite hinzu. Mehr erfahren
convertkitapplyTagsErstellt Abonnenten und wendet Tags in ConvertKit an. Mehr erfahren
hubspotcreateContactErstellt Kontakte in Hubspot. Mehr erfahren
freshdeskcreateSupportTicketErstellt Tickets in Freshdesk. Mehr erfahren
zendeskcreateSupportTicketErstellt Tickets in Zendesk. Mehr erfahren
airtablesendToTableFügt Zeilen in Airtable hinzu. Mehr erfahren
trellocreateCardErstellt Karten in Trello. Mehr erfahren
discordsendMessageSendet Nachrichten an Discord. Mehr erfahren
gorgiascreateSupportTicketErstellt Tickets in Gorgias. Mehr erfahren

Hier ist ein Beispiel für eine formspree.json-Datei mit einer Mailchimp-Aktion:

{
  "forms": {
    "contact": {
      "name": "Contact Form",
      "actions": [
        {
          "app": "mailchimp",
          "type": "addOrUpdateContact",
          "audience": "8djs8fg8d",
          "apiKey": "$MAILCHIMP_APIKEY"
        }
      ]
    }
  }
}

Feldregeln

Du kannst optional konfigurieren, welche Felder zulässig sind, welchen Typ sie haben sollen und verschiedene Validierungsregeln für sie.

Hinweis: Standardmäßig akzeptiert Formspree alle Felder, die du von der Client-Seite übergibst. Das Definieren deiner Felder hier ermöglicht es dir jedoch, Validierungen hinzuzufügen (z. B. ein Feld als erforderlich zu markieren) und ihnen benutzerfreundliche Namen zu geben.

Feldobjekte können die folgenden Eigenschaften enthalten:

KeyTypBeschreibung
requiredBooleanGibt an, ob das Feld erforderlich ist
typeStringDer Feldtyp. Einer von text, email, numeric, datetime-local, url oder file.
minNumber oder StringGibt den Mindestwert an. Dies kann mit den Typen numeric, datetime-local oder file verwendet werden. Beachte, dass du den Feldtyp angeben solltest, andernfalls wird diese Regel nicht angewendet.
maxNumber oder StringGibt den Maximalwert an. Dies kann mit den Typen numeric, datetime-local oder file verwendet werden. Beachte, dass du den Feldtyp angeben solltest, andernfalls wird diese Regel nicht angewendet.
minlengthNumberGibt den Mindestwert an. Dies kann mit den Typen text, url oder email verwendet werden. Beachte, dass du den Feldtyp angeben solltest, andernfalls wird diese Regel nicht angewendet.
maxlengthNumberGibt den Maximalwert an. Dies kann mit den Typen text, url oder email verwendet werden. Beachte, dass du den Feldtyp angeben solltest, andernfalls wird diese Regel nicht angewendet.
acceptString-ListeGibt gültige Datei-Inhaltstypen an. Der Wert sollte eine String-Liste mit gültigen MIME-Typen sein. Beachte, dass du den type-Key als file festlegen solltest, andernfalls wird diese Regel nicht angewendet.

**Hinweise:
**Der Typ datetime-local akzeptiert ISO-Formate. Das Standardformat ist yyyy-mm-dd hh:mm:ss. Dieser Typ akzeptiert auch nur Datumsangaben, zum Beispiel yyyy-mm-dd. Weitere Informationen findest du hier.

Die Werte min und max für file-Typen sind die minimale und maximale Dateigröße in MiB.

Beispiel

{
  "forms": {
    "contact": {
      "name": "Contact Form",
      "fields": {
        "email": {
          "type": "email",
          "required": true
        },
        "birthdate": {
          "type": "datetime",
          "required": true,
          "min": "2002-09-21 13:13:00"        /* also accept dates */
        },
        "document": {
          "type": "file",
          "contentType": ["application/pdf"],  /* please use valid MIME Types */
          "min": 10                            /* MiB */
        }
      }
    }
  }
}