⌘I

Le fichier formspree.json

Updated July 14, 2023

Le fichier formspree.json vous permet de créer et de configurer des formulaires pour un site web. Par exemple, vous pouvez créer des formulaires d’inscription à une liste Mailchimp, ou des formulaires de contact qui vous envoient un e-mail lors de chaque soumission. Le fichier formspree.json est utilisé par le CLI Formspree lors du déploiement de vos formulaires sur les serveurs Formspree.

Configuration des formulaires

Les formulaires acceptent les paramètres de configuration suivants :

PropriétéTypePar défautDescription
nameStringLe nom du formulaire (requis)
actionsArray[]Un tableau d’actions à effectuer après la soumission
fieldsObject{}Métadonnées optionnelles sur les champs du formulaire
captchaObject{}Paramètres optionnels du captcha

L’objet Captcha doit respecter ce format :

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

Exemple — voici un exemple de fichier formspree.json :

{
  "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" }
      ]
    }
  }
}

Actions post-soumission

Les formulaires acceptent un tableau d’actions à effectuer après la soumission. Nous proposons quelques actions intégrées ainsi qu’une liste croissante d’intégrations avec d’autres applications :

AppTypeDescription
emailEnvoie un e-mail de notification. En savoir plus
autoresponseEnvoie une réponse automatique à l’expéditeur. En savoir plus
webhookEnvoie un webhook à une URL donnée. En savoir plus
mailchimpaddOrUpdateContactCrée des abonnés dans Mailchimp. En savoir plus
mailerliteaddSubscriberAjoute des abonnés à MailerLite. En savoir plus
convertkitapplyTagsCrée des abonnés et applique des tags dans ConvertKit. En savoir plus
hubspotcreateContactCrée des contacts dans HubSpot. En savoir plus
freshdeskcreateSupportTicketCrée des tickets dans Freshdesk. En savoir plus
zendeskcreateSupportTicketCrée des tickets dans Zendesk. En savoir plus
airtablesendToTableAjoute des lignes dans Airtable. En savoir plus
trellocreateCardCrée des cartes dans Trello. En savoir plus
discordsendMessageEnvoie des messages sur Discord. En savoir plus
gorgiascreateSupportTicketCrée des tickets dans Gorgias. En savoir plus

Voici un exemple de fichier formspree.json avec une action Mailchimp :

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

Règles de champs

Vous pouvez éventuellement configurer quels champs sont autorisés, leur type et diverses règles de validation.

Remarque : par défaut, Formspree accepte tous les champs que vous transmettez depuis le côté client. Cependant, définir vos champs ici vous permet d’ajouter des validations (comme marquer un champ comme requis) et de leur donner des noms lisibles.

Les objets de champ peuvent contenir les propriétés suivantes :

CléTypeDescription
requiredBooleanIndique si le champ est requis
typeStringLe type du champ. L’un de : text, email, numeric, datetime-local, url ou file.
minNumber ou StringSpécifie la valeur minimale. Utilisable avec les types numeric, datetime-local ou file. Le type de champ doit être spécifié, sinon cette règle ne sera pas appliquée.
maxNumber ou StringSpécifie la valeur maximale. Utilisable avec les types numeric, datetime-local ou file. Le type de champ doit être spécifié, sinon cette règle ne sera pas appliquée.
minlengthNumberSpécifie la longueur minimale. Utilisable avec les types text, url ou email. Le type de champ doit être spécifié, sinon cette règle ne sera pas appliquée.
maxlengthNumberSpécifie la longueur maximale. Utilisable avec les types text, url ou email. Le type de champ doit être spécifié, sinon cette règle ne sera pas appliquée.
acceptListe de stringsSpécifie les types de contenu de fichier valides. La valeur doit être une liste de chaînes avec des types MIME valides. Le type de champ doit être file, sinon cette règle ne sera pas appliquée.

Remarques :
Le type datetime-local accepte les formats ISO. Le format par défaut est yyyy-mm-dd hh:mm:ss. Ce type accepte également les dates seules, par exemple yyyy-mm-dd. Pour plus d’informations, consultez cette page.

Les valeurs min et max pour les types file correspondent aux tailles minimale et maximale du fichier en Mio.

Exemple

{
  "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 */
        }
      }
    }
  }
}