> ## Documentation Index
> Fetch the complete documentation index at: https://enterprise-docs.dify.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# 開始

> Workflow と Chatflow アプリケーションを開始するためのユーザー入力を収集します

開始ノードでは、アプリケーションへの入力としてエンドユーザーから収集する内容を定義できます。

アプリケーションは **オンデマンド** で実行され、直接的なユーザー操作または API 呼び出しによって開始できます。

これらのアプリケーションをスタンドアロンの Web アプリとして公開したり、バックエンドサービス API を介して公開したり、他の Dify アプリケーションでツールとして使用したりすることもできます。

<Info>
  各アプリケーションキャンバスには、開始ノードを 1 つだけ含めることができます。
</Info>

## 入力変数

### プリセット

プリセット入力変数はシステム定義であり、デフォルトで利用可能です。

* `sys.files`：エンドユーザーがアプリケーションを実行するときにアップロードするファイル。

  <Note>
    Workflow アプリケーションの場合、このプリセット変数は **レガシー** と見なされており、後方互換性のためにのみ維持されています。

    代わりに [カスタムファイル入力フィールド](#ファイル入力) を使用してユーザーファイルを収集することをお勧めします。
  </Note>

* `sys.query`（Chatflow のみ）：ユーザーの最新のチャットターンから自動的にキャプチャされたテキストメッセージ。

### カスタム

開始ノードでカスタム入力フィールドを設定して、さまざまな種類のユーザー入力を収集できます。各フィールドは、下流のノードから参照できる変数になります。

<Info>
  **ラベル名** はエンドユーザーに表示されます。
</Info>

<Tip>
  フィールドの値が既知のもの（製品識別子やテナント ID など）で、エンドユーザーから取得する必要がない場合、そのフィールドを **非表示** に設定し、自分で値を提供できます。詳細は [入力フィールドの非表示・事前入力](#入力フィールドの非表示事前入力) を参照してください。
</Tip>

#### テキスト入力

<Tabs>
  <Tab title="短いテキスト">
    最大 256 文字を受け付けます。名前、メールアドレス、タイトル、または 1 行に収まる短いテキスト入力に使用します。
  </Tab>

  <Tab title="段落">
    長さ制限なしの長文テキストを許可します。詳細な応答や説明のために、ユーザーに複数行のテキストエリアを提供します。
  </Tab>
</Tabs>

#### 構造化入力

<Tabs>
  <Tab title="選択">
    事前定義されたオプションを含むドロップダウンメニューを表示します。ユーザーはリストされたオプションからのみ選択でき、データの一貫性を確保し、無効な入力を防ぎます。
  </Tab>

  <Tab title="数値">
    数値のみに入力を制限します。数量、評価、ID、または数学的処理を必要とするデータに最適です。
  </Tab>
</Tabs>

#### ファイル入力

<Tabs>
  <Tab title="単一ファイル">
    ユーザーはデバイスまたはファイル URL を介して、サポートされている任意のタイプの 1 つのファイルをアップロードできます。アップロードされたファイルは、ファイルメタデータ（名前、サイズ、タイプなど）を含む変数として利用できます。
  </Tab>

  <Tab title="ファイルリスト">
    一度に複数のファイルのアップロードをサポートします。ドキュメント、画像、その他のファイルのバッチを一緒に処理する場合に便利です。

    <Tip>
      リスト処理ノードを使用して、アップロードされたファイルリストから特定のファイルをフィルタリング、並べ替え、または抽出して、さらに処理することができます。
    </Tip>
  </Tab>
</Tabs>

**ファイル処理**

開始ノードはファイルを収集するだけで、コンテンツを読み取ったり解析したりしないため、アップロードされたファイルは後続のノードによって適切に処理される必要があります。例えば：

* ドキュメントファイルは、LLM がそのコンテンツを理解できるように、テキスト抽出ノードにルーティングできます。

* 画像は、ビジョン機能を持つ LLM ノードまたは専用の画像処理ツールノードに送信できます。

* CSV や JSON などの構造化データファイルは、コード実行ノードを使用して解析および変換できます。

<Tip>
  ユーザーが混在タイプの複数のファイル（画像とドキュメントなど）をアップロードする場合、リスト処理ノードを使用してファイルタイプ別に分離してから、異なる処理ブランチにルーティングできます。
</Tip>

## 入力フィールドの非表示・事前入力

ワークフローには、すでに分かっている入力が必要な場合があります。エンドユーザーに入力させるのは煩わしいでしょう。そのフィールドを **非表示** に設定すると、値は自分で提供し、エンドユーザーには見えませんが、ワークフローには値が渡ります。

たとえば、複数の異なる製品ごとにランディングページを運営し、それぞれに AI チャットボットを掲載する企業を想像してください。すべてのチャットボットの背後にあるワークフローはほぼ同じで、製品識別子だけが異なります。

製品ごとに別々のワークフローを保守する代わりに、`productName` という非表示フィールドを持つ 1 つのワークフローを用意し、各ランディングページに対応する値を事前入力します。エンドユーザーから見ると、各ページにその製品専用のチャットボットがあるように感じられますが、実際にはすべてのページが同じワークフローに異なる `productName` を渡しているだけです。

<Warning>
  非表示フィールドは **秘匿情報ではありません**。値は URL クエリ文字列に含まれて送られ、ブラウザのアドレスバー、履歴、ネットワーク通信から見えます。認証情報や API キーには [環境変数](/ja/3.1.x/learn/key-concepts#変数) を使用してください。
</Warning>

<Info>
  単一ファイルおよびファイルリストのフィールドは、この機能をサポートしていません。
</Info>

<Steps>
  <Step title="機能の有効化">
    1. **入力フィールドを編集** ウィンドウで、**必須** がチェックされている場合は外します。この 2 つのオプションは併用できません。
    2. **非表示** をチェックします。

    非表示フィールドは **プレビュー** パネルには表示されません。公開前にテストする場合は、一時的に **非表示** のチェックを外してください。
  </Step>

  <Step title="値の提供">
    1. アプリを公開します。
    2. エンドユーザーがアプリにアクセスする方法に合わせて、いずれかの方法を選択します。

           <Tabs>
             <Tab title="共有可能なリンク">
               エンドユーザーがリンクから直接 WebApp を開く場合に使用します。

               非表示フィールドを URL クエリパラメーターとして WebApp の URL に追加します。自分で作成することも、システムに値を自動的に入力させることもできます。

               ```text wrap theme={null}
               {WEBAPP_URL}?{VARIABLE_NAME}={VALUE}&{VARIABLE_NAME}={VALUE}

               # 例：{WEBAPP_URL}/chat/abc123?productName=Acme&region=us-east
               ```

               <Note>
                 スペースや特殊文字を含む値は URL エンコードしてください（例：`Acme Corp` は `Acme%20Corp` になります）。
               </Note>

               <Accordion title="例：CRM が顧客 ID を自動入力">
                 CRM を使用しているサポートチームは、チケット返信テンプレートで WebApp URL の末尾に `?customerId={{customer.id}}` を追加できます。

                 担当者がリンクを送信する際、CRM が実際の顧客 ID に置き換えるため、チャットボットはどの顧客との会話か尋ねずに把握できます。
               </Accordion>
             </Tab>

             <Tab title="サイトへの埋め込み">
               アプリを iframe またはスクリプトとしてサイトに埋め込む場合に使用します。

               サイトの埋め込みスニペットで、各非表示フィールドを `window.difyChatbotConfig` の `inputs` オブジェクトのキーとして設定します。固定値を設定すればすべての訪問者が同じ値を受け取り、サイトのコンテキストからレンダリング時に計算すれば訪問者ごとに固有の値を渡せます。

               ```html theme={null}
               <script>
                 window.difyChatbotConfig = {
                   token: 'YOUR_TOKEN',
                   inputs: {
                     productName: getCurrentProduct(),    // 現在のページから
                     tenantId: getCurrentTenant(),        // 認証システムから
                   },
                 };
               </script>
               ```
             </Tab>
           </Tabs>
  </Step>
</Steps>
