⌘I

formspree.json ファイル

更新日: 2023年7月14日
他の言語でも利用可能:

formspree.json ファイルは、ウェブサイト用のフォームを作成および設定するためのファイルです。たとえば、Mailchimp リストのオプトインフォームや、送信時にメールを送る問い合わせフォームなどを作成できます。formspree.json ファイルは、フォームを Formspree サーバーにデプロイする際に Formspree CLI によって使用されます。

フォーム設定

フォームは以下の設定パラメータを受け付けます:

プロパティ 型 デフォルト 説明
name String フォームの名前(必須)
actions Array [] 送信後に実行するアクションの配列
fields Object {} フォームフィールドに関するオプションのメタデータ
captcha Object {} オプションのcaptcha設定

Captcha オブジェクトは以下の形式に従う必要があります:

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

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

送信後のアクション

フォームは送信後に実行するアクションの配列を受け付けます。組み込みアクションがいくつかあり、他のアプリとの連携も増えています:

アプリ タイプ 説明
email 通知メールを送信します。詳細を読む
autoresponse 送信者に返信を送ります。詳細を読む
webhook 指定のURLにwebhookを送ります。詳細を読む
mailchimp addOrUpdateContact Mailchimpに購読者を作成します。詳細を読む
mailerlite addSubscriber MailerLiteに購読者を追加します。詳細を読む
convertkit applyTags ConvertKitに購読者を作成してタグを適用します。詳細を読む
hubspot createContact Hubspotにコンタクトを作成します。詳細を読む
freshdesk createSupportTicket Freshdeskにチケットを作成します。詳細を読む
zendesk createSupportTicket Zendeskにチケットを作成します。詳細を読む
airtable sendToTable Airtableに行を追加します。詳細を読む
trello createCard Trelloにカードを作成します。詳細を読む
discord sendMessage Discordにメッセージを送信します。詳細を読む
gorgias createSupportTicket Gorgiasにチケットを作成します。詳細を読む

Mailchimp アクションを使用した formspree.json ファイルの例:

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

フィールドルール

許可するフィールド、その型、およびさまざまなバリデーションルールをオプションで設定できます。

注意: デフォルトでは、Formspree はクライアントサイドから渡されたすべてのフィールドを受け入れます。ただし、ここでフィールドを定義することで、バリデーション(フィールドを必須とするなど)を追加したり、人間が読みやすい名前を付けることができます。

フィールドオブジェクトには以下のプロパティを含めることができます:

キー 型 説明
required Boolean フィールドが必須かどうかを指定します
type String フィールドの型。text、email、numeric、datetime-local、url、file のいずれか。
min Number または String 最小値を指定します。numeric、datetime-local、file 型で使用できます。このルールを適用するにはフィールドの型を指定する必要があります。
max Number または String 最大値を指定します。numeric、datetime-local、file 型で使用できます。このルールを適用するにはフィールドの型を指定する必要があります。
minlength Number 最小の長さを指定します。text、url、email 型で使用できます。このルールを適用するにはフィールドの型を指定する必要があります。
maxlength Number 最大の長さを指定します。text、url、email 型で使用できます。このルールを適用するにはフィールドの型を指定する必要があります。
accept String list 有効なファイルのコンテンツタイプを指定します。値は有効なMIMEタイプの文字列リストである必要があります。このルールを適用するにはtypeキーを file に設定する必要があります。

**注意:
**datetime-local 型はISO形式を受け付けます。デフォルト形式は yyyy-mm-dd hh:mm:ss です。この型は日付のみ(例:yyyy-mm-dd)も受け付けます。詳細はこちらをご確認ください。

file 型の min および max の値は、最小・最大ファイルサイズ(MiB単位)です。

例

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

まだ質問がありますか?かことができます。