⌘I

Il file formspree.json

Updated July 14, 2023

Il file formspree.json è dove puoi creare e configurare i moduli per un sito web. Ad esempio, puoi creare moduli di iscrizione per una lista Mailchimp, o moduli di contatto che ti inviano un’email quando vengono inviati. Il file formspree.json viene usato dalla Formspree CLI durante il deployment dei tuoi moduli sui server di Formspree.

Configurazione del modulo

I moduli accettano i seguenti parametri di configurazione:

ProprietàTipoPredefinitoDescrizione
nameStringIl nome del modulo (obbligatorio)
actionsArray[]Un Array di azioni da eseguire dopo l’invio
fieldsObject{}Metadati opzionali sui campi del modulo
captchaObject{}Impostazioni captcha opzionali.

L’oggetto Captcha dovrebbe seguire questo formato:

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

Esempio Ecco un esempio di file 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" }
      ]
    }
  }
}

Azioni post-invio

I moduli accettano un array di azioni da eseguire dopo l’invio. Abbiamo alcune azioni integrate e un elenco crescente di integrazioni con altre app:

AppTipoDescrizione
emailInvia un’email di notifica. Leggi di più
autoresponseInvia una risposta a chi ha effettuato l’invio. Leggi di più
webhookInvia un webhook a un determinato url. Leggi di più
mailchimpaddOrUpdateContactCrea abbonati in Mailchimp. Leggi di più
mailerliteaddSubscriberAggiungi abbonati a MailerLite. Leggi di più
convertkitapplyTagsCrea abbonati e applica tag in ConvertKit. Leggi di più
hubspotcreateContactCrea contatti in Hubspot. Leggi di più
freshdeskcreateSupportTicketCrea ticket in Freshdesk. Leggi di più
zendeskcreateSupportTicketCrea ticket in Zendesk. Leggi di più
airtablesendToTableAggiungi righe in Airtable. Leggi di più
trellocreateCardCrea schede in Trello. Leggi di più
discordsendMessageInvia messaggi a Discord. Leggi di più
gorgiascreateSupportTicketCrea ticket in Gorgias. Leggi di più

Ecco un esempio di file formspree.json con un’azione Mailchimp:

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

Regole dei campi

Puoi facoltativamente configurare quali campi sono consentiti, il tipo che dovrebbero avere e varie regole di validazione per essi.

Nota: Per impostazione predefinita, Formspree accetterà qualsiasi campo tu passi dal lato client. Tuttavia, definire qui i tuoi campi ti consente di aggiungere validazioni (come contrassegnare un campo come obbligatorio) e dare loro nomi facili da comprendere.

Gli oggetti campo possono contenere le seguenti proprietà:

ChiaveTipoDescrizione
requiredBooleanSpecifica se il campo è obbligatorio
typeStringIl tipo del campo. Uno tra text, email, numeric, datetime-local, url o file.
minNumber or StringSpecifica il valore minimo. Può essere usato con i tipi numeric, datetime-local o file. Tieni presente che dovresti specificare il tipo del campo, altrimenti questa regola non verrà applicata.
maxNumber or StringSpecifica il valore massimo. Può essere usato con i tipi numeric, datetime-local o file. Tieni presente che dovresti specificare il tipo del campo, altrimenti questa regola non verrà applicata.
minlengthNumberSpecifica il valore minimo. Può essere usato con i tipi text, url o email. Tieni presente che dovresti specificare il tipo del campo, altrimenti questa regola non verrà applicata.
maxlengthNumberSpecifica il valore massimo. Può essere usato con i tipi text, url o email. Tieni presente che dovresti specificare il tipo del campo, altrimenti questa regola non verrà applicata.
acceptString listSpecifica i tipi di contenuto file validi. Il valore dovrebbe essere un elenco di stringhe con tipi MIME validi. Tieni presente che dovresti impostare la chiave type come file, altrimenti questa regola non verrà applicata.

**Note:
**Il tipo datetime-local accetta formati ISO. Il formato predefinito è yyyy-mm-dd hh:mm:ss. Questo tipo accetta anche solo date, ad esempio yyyy-mm-dd. Per maggiori informazioni, consulta questo.

I valori min e max per i tipi file sono le dimensioni minima e massima del file in MiB.

Esempio

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