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

# ワークフローに関するFAQ

> Twenty のワークフローに関するよくある質問。

<AccordionGroup>
  <Accordion title="なぜワークフローを有効化できないのですか？">
    これは権限の問題である可能性が高いです。 ワークフローを作成して有効化するには、ワークフローへのアクセス権が必要です。

    **解決策**：**Settings → Roles** でワークフローへのアクセス権を付与してもらうよう、ワークスペース管理者に連絡してください。

    サイドバーにワークフローセクションがまったく表示されない場合、権限の問題であることが確認できます。
  </Accordion>

  <Accordion title="上部のナビバーに手動ワークフローのボタンが表示されないのはなぜですか？">
    手動ワークフローは、適切に設定されている場合にのみナビバーに表示されます:

    1. ワークフローが**アクティブ**（ドラフトモードではない）である必要があります
    2. ナビバーの配置は**Pinned**に設定する必要があります
    3. Single/Bulk トリガーの場合、正しいオブジェクトのページを表示している必要があります

    **確認方法**：ワークフローを開く → トリガーをクリック → "Navbar placement" が "Pinned" に設定されていることを確認します。

    ナビバーの設定に関係なく、**Cmd + K**（または **Ctrl + K**）で手動ワークフローに常にアクセスできます。
  </Accordion>

  <Accordion title="Single、Global、Bulk の手動トリガーの違いは何ですか？">
    | タイプ | 必要なレコード | ワークフロー実行 |
    | --- | ------- | -------- |

    \| **Global** | なし | 1回、レコード入力なし |
    \| **Single** | 1件以上を選択 | 選択した各レコードごとに1回 |
    \| **Bulk** | 1件以上を選択 | 1回、すべてのレコードを配列として |

    * **Global**：ワークフローがレコードのコンテキストを必要としない場合に使用します（例：レポートの生成）
    * **Single**：選択した各レコードを個別に処理したい場合に使用します（例：個別メールの送信）
    * **Bulk**：レコードをまとめて処理する必要がある場合、またはクレジットの使用を最適化したい場合に使用します（Iterator アクションが必要）

    詳細は[ワークフローのトリガー](/l/ja/user-guide/workflows/capabilities/workflow-triggers)を参照してください。
  </Accordion>

  <Accordion title="If/Else ノードが見つかりません。 どうすればよいですか？">
    明示的な If/Else ノードはまだ利用できませんが、ロードマップに含まれています。

    **現在の回避策**：ステップから複数のブランチを作成し、それぞれを **Filter** アクションで開始します:

    ```
    Step 1
       │
       ├── Branch A: Filter (condition = true) → Actions...
       │
       └── Branch B: Filter (condition = false) → Actions...
    ```

    フィルター条件を満たしたブランチのみが、その後のアクションを実行します。

    手順については[ブランチの使い方](/l/ja/user-guide/workflows/capabilities/workflow-branches)を参照してください。
  </Accordion>

  <Accordion title="ワークフローのブランチは並行実行されますか？">
    **はい**、ブランチは既定で並行実行されます。

    どちらか一方のブランチのみを実行したい場合：

    * 各ブランチの先頭に **Filter** アクションを追加します
    * 互いに排他的な条件を設定します（例：ブランチA：status = "Open"、ブランチB：status ≠ "Open"）

    フィルター条件を満たさないブランチは実行を停止し、他のブランチは継続します。
  </Accordion>

  <Accordion title="ブランチを再び結合できますか？">
    **はい**。 並行ブランチの実行が完了した後、両方のブランチが接続するステップを追加できます。

    ワークフローエディタで:

    1. 分岐したアクションを完了する
    2. ブランチの後に新しいステップを追加する
    3. 各ブランチの終端からこの新しいステップに接続をドラッグする

    すべての接続されたブランチが完了すると、マージされたステップが実行されます。
  </Accordion>

  <Accordion title="Search Records の結果の上限はどれくらいですか？">
    **Search Records は最大 200 件のレコードを返します。**

    より多くを処理する必要がある場合：

    * 結果を絞り込むために、より具体的なフィルターを追加する
    * スケジュールされたワークフローを使用してバッチ処理する
    * 一括処理には API の使用を検討する

    ほとんどのワークフローでは、200 件のレコードで十分です。 この上限に頻繁に達する場合は、自動化の構成を見直すことを検討してください。
  </Accordion>

  <Accordion title="ワークフローのメールで CC を追加できますか？">
    **まだできません。** Send Email アクションでの CC と BCC フィールドはロードマップにあります。

    **現在の回避策**：追加の受信者に送信するために複数の Send Email アクションを追加するか、CC に対応した外部のメールサービス経由で送信するために HTTP Request を使用します。
  </Accordion>

  <Accordion title="前のステップの出力はどのように使用しますか？">
    各アクションは、後続のステップで使用できる出力データを生成します。

    **前のステップのデータを参照するには**：

    * フィールドを設定する際に変数ピッカーを使用する
    * または `{{stepName.fieldName}}` を直接入力する

    **例**:

    * トリガーデータ：`{{trigger.object.email}}`
    * 検索結果：`{{searchRecords[0].name}}`
    * コードの出力：`{{code.calculatedValue}}`

    アクション設定内の任意のフィールドにカーソルを合わせると、前のステップから利用できる変数が表示されます。
  </Accordion>

  <Accordion title="Iterator が失敗するのはなぜですか？">
    **Iterator は配列入力が必要です。** よくある問題：

    1. **入力が配列ではない**：Search Records など配列を返すアクションの結果を渡していることを確認してください
    2. **配列が空**：Iterator の前にフィルターを追加し、`{{searchRecords.length}} > 0` を確認してください
    3. **誤った変数を選択**：単一レコードではなく、配列そのものを選択していることを確認してください

    **正しい設定**：

    1. Search Records（配列を返す）
    2. Filter：length > 0
    3. Iterator：`{{searchRecords}}` を選択
    4. Iterator 内のアクションでは `{{iterator.currentItem.fieldName}}` を使用する
  </Accordion>

  <Accordion title="Code アクションの最大実行時間はどれくらいですか？">
    Code actions (logic functions) have a **default timeout of 5 minutes** (300 seconds).

    設定可能な最大タイムアウトは**15 分**（900 秒）です。

    コードがこの制限を超えると、アクションはタイムアウトエラーで失敗します。

    **タイムアウトを回避するためのヒント**：

    * 大きな処理は Iterator を使用して小さなチャンクに分割する
    * 重い計算は避け、集中的な処理が必要な場合は HTTP Request を介して外部サービスを使用する
    * コードを最適化して実行時間を短縮する
    * より長時間の処理が必要な場合は、データをバッチ処理するスケジュールされたワークフローの使用を検討する
  </Accordion>

  <Accordion title="ワークフロー実行履歴はどのように確認しますか？">
    ワークフローの実行履歴は、実行の経過を表示し、問題のデバッグに役立ちます。

    **アクセス方法**：

    * ワークフローエディタ → 右側の **Runs** パネル
    * またはサイドバーの **Workflow Runs** に移動

    **実行の見方**：

    * **ステータス**：Running、Completed、Failed、Waiting
    * **ステップ**：どのステップが実行され、どのような出力だったかを確認
    * **エラー**：失敗したステップをクリックしてエラーメッセージを確認
    * **データ**：各ステップの入力/出力データを表示

    詳細は[ワークフローの実行](/l/ja/user-guide/workflows/capabilities/workflow-runs)を参照してください。
  </Accordion>

  <Accordion title="ワークフローの実行が表示されないのはなぜですか？">
    ワークフローの実行が、レート制限により即時に失敗している可能性があります。

    **ハードリミット：ワークスペースあたり 1 時間に 5,000 回の実行。**

    この制限を超えると、ワークフローは即座に失敗としてマークされ、実行リストに期待どおり表示されません。

    **この制限に達しがちな一般的なケース**：

    * Single の手動トリガーで 5,000 件を超えるレコードを選択すること
    * ワークスペース全体で同時に複数のワークフローが実行されていること
    * 高頻度の自動トリガー（例：更新頻度の高いオブジェクトでの Record Updated）

    **解決策**:

    * 多数のレコードを 1 回の実行で処理するには、Single ではなく**Bulk** トリガーを使用する
    * 大規模なバッチ処理の間隔を空ける
    * フィルターを使用してトリガーの頻度を下げる
    * 負荷の高いワークフローは閑散時間帯にスケジュールする
  </Accordion>

  <Accordion title="ワークフローのレート制限は何ですか？">
    Twenty では、システムの安定性を確保するため 2 種類のレート制限があります：

    | 制限 | 値 | 動作 |
    | -- | - | -- |

    \| **Soft limit** | 1 分あたり 100 実行 | "Not Started" ステータスでキューに入り、徐々に処理される |
    \| **Hard limit** | 1 時間あたり 5,000 実行 | 実行は即時に失敗する |

    **ソフトリミット（100/分）**：ワークフローは失敗しません。キューで待機し、時間をかけて処理されます。 100 件を超えるレコードをトリガーしても構いませんが、実行は遅くなります。

    **ハードリミット（5,000/時）**：これはワークスペース全体に適用されます。 すべてのワークフローの合計が 1 時間に 5,000 回の実行を超えると、追加の実行は即時に失敗します。

    **制限内に収めるためのヒント**：

    * 大規模バッチには Single トリガーではなく、Iterator と併用した Bulk トリガーを使用する
    * 関連する自動化をまとめて、ワークフローの数を減らす
    * スケジュールされたワークフローを使用して負荷を時間的に分散する
  </Accordion>

  <Accordion title="失敗したワークフロー実行を再試行できますか？">
    **いいえ、現時点では自動再試行機能はありません。**

    ワークフロー実行が失敗した場合は、次を行います：

    1. **Settings → Workflows → \[Your Workflow] → Runs** でエラーを確認する
    2. 問題を修正する（データ、設定、または外部サービス）
    3. 影響を受けたレコードに対して、ワークフローを手動で再度トリガーする

    **失敗を減らすためのヒント**：

    * アクションの前にデータを検証するため、**Filter** ノードを追加する
    * **Search Records** を使用して、関連レコードが存在するか確認する
    * 一括処理の前に、少数のレコードで十分にテストする

    自動再試行機能は、今後のリリースに向けたロードマップに含まれています。
  </Accordion>

  <Accordion title="CSV インポートの前にワークフローを無効化すべきですか？">
    **はい。ワークフローがレコードの作成または更新でトリガーされる場合は無効化してください。**

    CSV でデータをインポートすると、作成または更新された各レコードがワークフローをトリガーする可能性があります。 大規模なインポート（数千件のレコード）は次の事態を招く可能性があります：

    * 5,000 実行/時の制限に達する
    * ワークフロークレジットを大量に消費する
    * 想定外のメールや通知を送信する
    * 重複するタスクやレコードを作成する

    **一括インポートの前に**：

    1. **Settings → Workflows** に移動する
    2. インポート対象のオブジェクトでトリガーされるワークフローを特定する
    3. 一時的に**無効化**する
    4. CSV インポートを実行する
    5. 完了したらワークフローを**再有効化**する

    **代替案**：インポートしたデータでワークフローを実行する必要がある場合は、レート制限内に収めるため小さなバッチでインポートします。
  </Accordion>

  <Accordion title="ワークフローのレイアウトを整えるにはどうすればよいですか？">
    ワークフローのキャンバスでノードが散らばって見づらい場合、自動的に整理できます：

    1. ワークフローのキャンバス上の任意の場所を右クリックする
    2. **Tidy up workflow** をクリックする

    これにより、すべてのノードが自動的に整理され、見やすいレイアウトに再配置されます。
  </Accordion>
</AccordionGroup>
