# Workflow をはじめる

> Formspree Docs · フォームの作成 · 2026年2月4日

#### **すべてのプランで利用可能**

Workflow を使用すると、フォームデータをすばやく検証してサードパーティサービスに送信できます。[Formshield](/articles/advanced-features/advanced-spam-filtering/) と自動リトライ機能と組み合わせることで、Workflow はフォームデータが送信時に正しいことを確認しやすくすることで、スパムのないデータを確実に配信するための、メンテナンスしやすいソリューションを提供します。

Workflow は以下の機能を提供します：

-   人気サービス向けのフォームアクション
-   シンプルなビジュアルワークフロービルダー
-   フォームフィールドとサードパーティ統合の自動マッピング
-   自動リトライによるサードパーティ統合への確実な配信

デフォルトでは、Workflow はフォームダッシュボードで有効になっています。フォームダッシュボードの Workflow セクションにアクセスすると、基本的な Workflow 設定が表示されます。最初に、メールフィールドの **Validation** ノードとメール通知の **Actions** ノードがあります。

![Workflow_DefualtView.png](/images/zendesk/4871c79aa5edf9e4.png)

## バリデーションルールの追加

新しいバリデーションルールは、Workflow の Validation セクションで **+Add new** リンクをクリックすることで作成できます。バリデーションルールは以下のタイプに対して作成できます：

-   Text（テキスト）
-   Number（数値）
-   Email（メール）
-   URL
-   DateTime（日時）
-   File（ファイル）

Workflow でバリデーションのフィールドを追加するのは、フォームコードに対応する `input` タグが存在する場合のみにしてください。バリデーションルールに記載されるフィールド名は、フォームコード内の `input` タグの `name` 属性と一致している必要があります。各フィールドには、バリデーション動作を制御するさまざまな属性があります。バリデーション属性の完全なリストは[こちら](#h_01HNFVF79H85K0QBMYT26NVWPH)で確認できます。

データがバリデーションルールを満たさない場合、ユーザーにバリデーションエラーが表示されます。または、AJAX で送信している場合はバリデーションエラーのレスポンスが返されます。バリデーションエラーの詳細は[こちら](#h_01HNFT48GE83X5RAX9C0TJ0AKK)で確認できます。

## 新しいアクションの追加

送信データがバリデーションに成功すると、**Actions** に渡されます。アクションとは、フォームの送信が成功した際に開始される動作です。定義されたアクションは並行して実行されます。つまり、すべてのアクションが順番にではなく同時に実行されます。

_注意: [Stripe プラグイン](/articles/plugins/use-stripe-to-accept-payments-with-sca/)は上記のルールの例外です。Stripe は同期プラグインであり、送信前に実行されるため、ユーザーはカードの拒否などのエラーを確認できます。_

新しいアクションを作成するには、Workflow の Actions セクションで **+Add new** リンクをクリックします。メールアドレスへの送信アクションの作成に加えて、Workflow の Actions セクションからさまざまなサードパーティ統合を利用できます。これらのサードパーティユーティリティは、CRM システムやヘルプデスクサービスからデータベースやリポジトリまで多岐にわたります。

![AddAction_ModalOverlay.png](/images/zendesk/5902e24abf52c22b.png)

アクションを有効にしたら、Action ノードの右角にある … をクリックして **Settings** を選択することで、設定を変更できます。また、**Disconnect** アイコンをクリックしてワークフローからアクションを切断することもできます。アクションを接続したまま機能を無効にするには、Action 設定の **Enabled** オプションをオフに切り替えます。  
  
 

## バリデーションルール

以下に 2 つの表があります。最初の表では、さまざまなバリデーションフィールドタイプを定義して説明します。2 番目の表では、フィールドで使用可能なさまざまなバリデーション属性を定義します。この表には、受け入れられる値、サポートされているフィールドタイプ、および各属性の説明も記載されています。  
  
Workflow インターフェースを介して追加できる明示的なバリデーションルールに加えて、アクションが必要とする場合に _暗黙的な_ バリデーションが自動的に追加されます。暗黙的なバリデーションは、フィールドリストの「Used by」アイコンで識別されます。これらの暗黙的なバリデーションは削除できませんが、関連するアクションが必要とする内容よりも厳格になるように編集することができます。たとえば、メールアクションを追加すると、暗黙的なメールバリデーションも追加されます。これは、送信にメールフィールドが含まれる場合に、そのメールフィールドが有効なメールアドレスであることを保証するためです。メールバリデーションには「Used by」ラベルが表示され、メールアクションがこのバリデーションを追加したことを示します。   
  
 

### バリデーションフィールドタイプ

| タイプ | 説明 |
| --- | --- |
| datetime-local | タイムゾーンなしの日付と時刻を入力するためのコントロール。対応ブラウザでアクティブにすると、日付ピッカーまたは数値ホイールが開きます。[MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/HTML/Date_and_time_formats#local_date_and_time_strings) を参照してください。 |
| email | メールアドレスを編集するためのフィールド。テキスト入力のように見えますが、対応ブラウザおよびダイナミックキーボードを持つデバイスではバリデーションパラメーターと関連するキーボードが表示されます。 |
| file | ユーザーがファイルを選択できるコントロール。accept 属性を使用して、コントロールが選択できるファイルの種類を定義します。 |
| number | 数値を入力するためのコントロール。スピナーを表示し、デフォルトのバリデーションを追加します。ダイナミックキーパッドを持つ一部のデバイスでは数値キーパッドを表示します。 |
| tel | 電話番号を入力するためのコントロール。ダイナミックキーパッドを持つ一部のデバイスでは電話キーパッドを表示します。 |
| text | デフォルト値。単一行のテキストフィールド。入力値から改行が自動的に削除されます。 |
| url | URL を入力するためのフィールド。テキスト入力のように見えますが、対応ブラウザおよびダイナミックキーボードを持つデバイスではバリデーションパラメーターと関連するキーボードが表示されます。 |

### バリデーション属性

| バリデーション属性 | 値 | 対応タイプ | 説明 |
| --- | --- | --- | --- |
| Required（必須） | Boolean | すべて | フィールドが必須かどうかを指定します。すべてのフィールドタイプで利用可能です。 |
| Minimum value（最小値） | Number または string | datetime-local、number | 最小値を指定します。Number、DateTime、または File タイプで使用できます。 |
| Maximum value（最大値） | Number または string | datetime-local、number | 最大値を指定します。Number または DateTime タイプで使用できます。 |
| Minimum length（最小長） | Number | text、url、tel、email | 最小値を指定します。Text または URL タイプで使用できます。 |
| Maximum length（最大長） | Number | text、url、tel、email | 最大値を指定します。Text または URL タイプで使用できます。 |
| Accept file types（許可するファイルタイプ） | String list | File | 有効なファイルコンテンツタイプを指定します。値は有効な MIME タイプを含む文字列リストである必要があります。フォームで type キーを file に設定しておく必要があります。そうでない場合、このルールは適用されません。 |

## バリデーションエラー

Workflow で定義されたバリデーションルールに準拠しないフォーム送信をユーザーが行った場合、バリデーションエラーのレスポンスが送信されます。ユーザーはバリデーションエラーページにリダイレクトされることがあり、エラーの詳細情報が提供されます（フォームが [JavaScript with AJAX](/articles/building-your-form/submit-forms-with-javascript-ajax/) で送信されている場合を除き、その場合はエラーはレスポンスボディに含まれます）。  
  
 

以下のエラーコードが、状態オブジェクトの errors 配列に表示される可能性があります：

| コード | フィールドエラー | 説明 |
| --- | --- | --- |
| INACTIVE |   | フォームが無効になっています |
| BLOCKED |   | フォームがブロックされています |
| EMPTY |   | データが送信されませんでした |
| PROJECT_NOT_FOUND |   | フォームの送信に無効なプロジェクトキーが使用されました |
| FORM_NOT_FOUND |   | フォームの送信に無効なフォームハッシュ ID が使用されました |
| NO_FILE_UPLOADS |   | このフォームではファイルアップロードがサポートされていません |
| TOO_MANY_FILES |   | フォームが多すぎるファイル添付とともに送信されました |
| FILES_TOO_BIG |   | アップロードされた 1 つ以上のファイルが最大ファイルサイズを超えています |
| REQUIRED_FIELD_MISSING | ✓ | フィールドは必須ですが、値が指定されていません |
| REQUIRED_FIELD_EMPTY | ✓ | フィールドは必須ですが、空白または空の文字列が指定されました |
| TYPE_EMAIL | ✓ | フィールドにはメールアドレスが必要です |
| TYPE_NUMERIC | ✓ | フィールドには数値が必要です |
| TYPE_TEXT | ✓ | フィールドにはテキストが必要です |
| STRIPE_CLIENT_ERROR | ✓ | Stripe キーが見つかりません |
| STRIPE_SCA_ERROR | ✓ | Stripe SCA エラー。詳細を参照してください |
