⌘I

Le fichier formspree.json

Mis à jour le 14 juillet 2023
Également disponible en :

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é Type Par défaut Description
name String Le nom du formulaire (requis)
actions Array [] Un tableau d’actions à effectuer après la soumission
fields Object {} Métadonnées optionnelles sur les champs du formulaire
captcha Object {} 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 :

App Type Description
email Envoie un e-mail de notification. En savoir plus
autoresponse Envoie une réponse automatique à l’expéditeur. En savoir plus
webhook Envoie un webhook à une URL donnée. En savoir plus
mailchimp addOrUpdateContact Crée des abonnés dans Mailchimp. En savoir plus
mailerlite addSubscriber Ajoute des abonnés à MailerLite. En savoir plus
convertkit applyTags Crée des abonnés et applique des tags dans ConvertKit. En savoir plus
hubspot createContact Crée des contacts dans HubSpot. En savoir plus
freshdesk createSupportTicket Crée des tickets dans Freshdesk. En savoir plus
zendesk createSupportTicket Crée des tickets dans Zendesk. En savoir plus
airtable sendToTable Ajoute des lignes dans Airtable. En savoir plus
trello createCard Crée des cartes dans Trello. En savoir plus
discord sendMessage Envoie des messages sur Discord. En savoir plus
gorgias createSupportTicket Cré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é Type Description
required Boolean Indique si le champ est requis
type String Le type du champ. L’un de : text, email, numeric, datetime-local, url ou file.
min Number ou String Spé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.
max Number ou String Spé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.
minlength Number Spé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.
maxlength Number Spé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.
accept Liste de strings Spé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 */
        }
      }
    }
  }
}

Vous avez d'autres questions ? ou.