付録
A.1. トラブルシューティング FAQ
(ここでは一般的な FAQ の例をいくつか挙げますが、実際の FAQ はより広範になります)
- Q: ワークフローが期待通りに動作しません。どこを確認すればよいですか?
- A: まず「実行履歴 (Executions)」でエラーが出ていないか確認します。エラーがあればメッセージを読み、エラーが発生したノードの入力データと設定を見直します。エラーがない場合は、各ノードの Input/Output Data を順に確認し、データが意図した通りに流れているか、式が正しく評価されているかを確認します。ノードごとのテスト実行も有効です。
- Q: Webhook がトリガーされません。
- A: Webhook URL が正しいか、外部サービス側で正しく設定されているか確認します。Test URL と Production URL を間違えていないか確認します。n8n が起動しており、ネットワーク的に到達可能か確認します。ファイアウォール設定なども確認してください。
- Q: Credentials (認証情報) がうまく設定できません。
- A: 入力した API キーやトークン、クライアント ID/シークレットなどが正しいか再確認します。OAuth2 の場合は、リダイレクト URL の設定が正しいか、サービス側でのアクセス許可が適切に行われているか確認します。n8n のドキュメントで対象サービスの Credentials 設定手順を確認してください。
- Q: ワークフローが途中で止まってしまいます。
- A: 実行履歴でどのノードで停止しているか確認します。エラーメッセージがあればそれを手がかりにします。タイムアウト、メモリ不足、データ形式の問題などが考えられます。大量データを扱う場合は SplitInBatches などで分割処理を検討します。
A.2. 式 (Expressions) リファレンス
n8n の式は、ワークフロー内で動的なデータを扱うための強力な機能です。JavaScript の構文に基づいています。
- 基本構文:
{{ expression }} - データへのアクセス:
$json.propertyName: 現在のアイテムの JSON データ内のプロパティ。$item(index).json.propertyName: 特定のインデックスのアイテムの JSON データ内のプロパティ。$node["Node Name"].json.propertyName: 特定のノードの出力 JSON データ内のプロパティ。$binary.propertyName: バイナリデータプロパティへのアクセス。$parameter.parameterName: ノードのパラメータ値へのアクセス。$env.VARIABLE_NAME: 環境変数へのアクセス。$workflow.id,$workflow.name: ワークフローの ID や名前。$execution.id,$execution.lastNodeExecuted: 実行 ID や最後に実行されたノード名。
- 組み込み変数/オブジェクト:
$now: 現在の日時 (Luxon DateTime オブジェクト)。例:{{ $now.toFormat('yyyy-MM-dd HH:mm:ss') }}$today: 今日の日付の始まり (Luxon DateTime オブジェクト)。$yesterday: 昨日の日付の始まり。$tomorrow: 明日の日付の始まり。$runIndex: ループ処理 (SplitInBatches など) における現在の実行回数 (0始まり)。$resumeIndex: 再開可能なワークフローでのインデックス。
- 演算子:
- 算術演算子:
+,-,*,/,% - 比較演算子:
==,!=,===,!==,>,<,>=,<= - 論理演算子:
&&(AND),||(OR),!(NOT) - 三項演算子:
condition ? value_if_true : value_if_false
- 算術演算子:
- 一般的なメソッド (例):
- 文字列:
.toUpperCase(),.toLowerCase(),.slice(),.split(),.replace(),.includes() - 数値:
.toFixed(),.toString() - 配列:
.map(),.filter(),.find(),.join(),.length - オブジェクト:
Object.keys(),Object.values()
- 文字列:
詳細は n8n 公式ドキュメントの「Expressions」セクションを参照してください。
A.3. 用語集
- Workflow (ワークフロー): 一連の自動化されたタスクの流れを定義したもの。ノードとコネクションで構成される。
- Node (ノード): ワークフロー内の個々の処理ステップ(トリガー、アクション、ロジックなど)。
- Trigger Node (トリガーノード): ワークフローを開始させるきっかけとなるノード (例: Schedule, Webhook)。
- Regular Node (通常ノード): データの取得、加工、送信など、トリガー以外の処理を行うノード。
- Connection (コネクション): ノード間を結び、データの流れを示す線。
- Item (アイテム): ワークフロー内を流れるデータの単位。通常は JSON オブジェクト。
- JSON (JavaScript Object Notation): n8n で主に使われるデータ形式。キーと値のペアで構成される。
- Expression (式):
{{ }}で囲まれた、動的な値を生成するためのコードスニペット。JavaScript に似た構文を持つ。 - Credentials (認証情報): 外部サービスへの接続に必要な API キーやトークンなどを安全に保存・管理する仕組み。
- Execution (実行): ワークフローがトリガーされてから完了または失敗するまでの一連の処理。実行履歴で確認できる。
- Self-Hosted: ユーザー自身のサーバーやインフラに n8n をインストールして運用する形態。
- n8n Cloud: n8n 社が提供するマネージドなホスティングサービス。
- Webhook: Web アプリケーション間でリアルタイムにデータを送信するための仕組み。HTTP POST リクエストが一般的。
- API (Application Programming Interface): ソフトウェアコンポーネント同士が相互作用するための一連の定義やプロトコル。
- Queue Mode (キューモード): n8n の実行を Main, Webhook, Worker プロセスに分散させ、スケーラビリティを高める動作モード。
- Community Nodes (コミュニティノード): n8n コミュニティのメンバーによって開発・公開されたカスタムノード。