changeノード¶
概要¶
changeノードは、フロー内で受け取ったデータの値を変更・追加・削除・移動するためのノードです。
ロボシュタインのフローでは、各ノードの間で msg というデータが受け渡されます。changeノードを使用すると、msg.payload や msg.topic などの値を書き換えたり、新しいプロパティを追加したり、不要なプロパティを削除したりできます。
例えば、受信したアラートメールの本文を後続のノードで扱いやすい形に整形したり、通知用のメッセージ本文をセットしたりする場合に使用します。
functionノードのようにJavaScriptを記述しなくても、画面上の設定だけでデータの加工ができるため、簡単な値の変更や置換を行う場合に便利です。

具体的な活用例(アラートメール本文の整形と通知への応用)¶
実務で特によくある「受信したアラートメールの内容を整形し、後続の通知ノードへ渡すフロー」を例に、changeノードの役割を見ていきましょう。
フローのイメージ図¶

① changeノードで値を整形する¶
メール本文に不要な文字列が含まれている場合、changeノードの「値の置換」を使用して文字列を置換できます。
例:msg.payload.text に含まれる「CRITICAL」を「重要アラート」に置換する
これにより、後続の通知文やチケット本文で、より分かりやすい表現に整形できます。
また、「値の代入」を使用して、後続のtemplateノードやメール送信ノードで扱いやすいように、以下のような新しいプロパティを追加することもできます。
msg.alertLevel = "重要"
msg.systemType = "サーバ"
② 後続ノードへ渡す¶
changeノードで整形した値は、後続のtemplateノードやメール送信ノード、Slack送信ノードなどで利用できます。
例えば、changeノードで msg.alertLevel を追加しておくことで、templateノード側では以下のように通知文へ埋め込むことができます。
アラートレベル:{{alertLevel}}
このように、changeノードは後続ノードで使いやすいようにデータを整える役割を持ちます。
設定項目一覧¶
| 必須 | 項目名 | 説明 |
|---|---|---|
| 名前 | フローエディター上で表示されるノードの名前を任意で指定できます。 | |
| ◯ | ルール | 実行する処理内容を設定します。「値の代入」「値の置換」「値の削除」「値の移動」から選択します。 |
changeノードでは、1つのノード内に複数のルールを設定できます。ルールは「追加」ボタンで増やすことができ、複数のルールを設定した場合は上から順番に処理されます。
ルールについて¶
changeノードでは、以下の4種類のルールを使用できます。
| ルール | 内容 |
|---|---|
| 値の代入 | 指定したプロパティに値を設定します。 |
| 値の置換 | 指定したプロパティ内の文字列を検索し、別の文字列に置換します。 |
| 値の削除 | 指定したプロパティを削除します。 |
| 値の移動 | 指定したプロパティの値を、別のプロパティへ移動します。 |
① 値の代入¶
指定したプロパティに値を設定します。 例えば、後続のノードで利用するために、新しいプロパティを追加したい場合に使用します。
- 設定例
msg.alertLevelに「重要」(文字列)を代入する - 実行後のイメージ
{ "alertLevel": "重要" }
このように設定しておくと、後続のtemplateノードやswitchノードで msg.alertLevel を参照できます。
- よくある利用例
- メール送信ノードへ渡す件名を
msg.subjectに設定する - アラートレベルを
msg.alertLevelに設定する - 後続ノードで使いやすいように、固定値を追加する
msg.payloadに通知本文をセットする
- メール送信ノードへ渡す件名を
② 値の置換¶
指定したプロパティ内の文字列を検索し、別の文字列に置換します。 例えば、監視ツールから届いたメール本文内の表記を、通知先の担当者に分かりやすい表現へ変換する場合に使用します。
- 設定例
msg.payload.text内の「CRITICAL」を「重要アラート」に置換する - 実行前
CRITICAL: Webサーバで異常を検知しました。 - 実行後
重要アラート: Webサーバで異常を検知しました。
検索する文字列が複数含まれている場合は、すべて置換されます。
- よくある利用例
- 監視ツール固有の表記を分かりやすい文言に置き換える
- 置換後の文字列を空にして、不要な文字列を削除する
- 改行や区切り文字を置換して、後続処理で扱いやすくする(検索する文字列の種類に「正規表現」を指定します)
- メール本文中の表記ゆれを揃える
③ 値の削除¶
指定したプロパティを削除します。 後続のノードへ渡す必要がない情報や、不要なデータを取り除きたい場合に使用します。
- 設定例
msg.payload.rawDataを削除する - よくある利用例
- 不要な一時データを削除する
- 後続ノードへ渡したくない情報を削除する
- debugノードで確認しやすいように、不要なプロパティを整理する
④ 値の移動¶
指定したプロパティの値を、別のプロパティへ移動します。移動元のプロパティは削除されます。 元のプロパティ名では分かりにくい場合や、後続ノードで参照しやすい名前に変更したい場合に使用します。
- 設定例
msg.payload.subjectをmsg.mailSubjectに移動する - 実行前
{ "payload": { "subject": "サーバーアラート通知" } } - 実行後
{ "payload": {}, "mailSubject": "サーバーアラート通知" } - よくある利用例
- メール件名を
msg.mailSubjectなど分かりやすい名前に移動する - 後続ノードで使う値を、扱いやすいプロパティ名に整理する
- 複雑なオブジェクト内の値を、上位のプロパティへ取り出す
- メール件名を
値の種類について¶
「値の代入」で設定する値は、入力欄左側のプルダウンから種類を選択できます。
| 種類 | 内容 |
|---|---|
| msg. | 他の msg プロパティの値を使用します。 |
| flow. | フローコンテキストの値を使用します。 |
| global. | グローバルコンテキストの値を使用します。 |
| 文字列 | 任意の文字列を設定します。 |
| 数値 | 数値を設定します。 |
| 真偽 | true または false を設定します。 |
| JSON | JSON形式のデータを設定します。 |
| バッファ | バイナリデータ(バッファ)を設定します。 |
| 日時 | 実行時点の日時(タイムスタンプ)を設定します。 |
| JSONata式 | JSONataを使用して、値の抽出や加工を行います。 |
| 環境変数 | 環境変数の値を使用します。 |
「値の置換」の「検索する文字列」では、上記のうち msg./flow./global./文字列/数値/真偽/環境変数 に加えて、正規表現 を指定できます。
通常の利用では、まずは「文字列」「数値」「真偽」「msg.」を使用することが多いです。複雑な加工が必要な場合は、JSONata式やfunctionノードの利用も検討してください。
利用例¶
例1:メール送信用の件名を設定する¶
メール送信ノードへ渡す件名を、changeノードで設定します。

msg.subject = "【ロボシュタイン通知】サーバーアラートを検知しました"
メール送信ノードは、ノードの「件名」が空欄の場合に msg.subject を件名として使用します。詳しくはメール送信ノードをご確認ください。
例2:メール本文中の表記を置換する¶
監視ツールから届いたメール本文を、分かりやすい表現へ変換します。

msg.payload.text 内の「WARNING」を「警告」に置換する
置換後の値をtemplateノードやメール送信ノードで利用することで、通知内容を読みやすくできます。
例3:判定用の値を追加する¶
switchノードで条件分岐しやすいように、判定用の値を追加します。

msg.alertType = "server"
後続のswitchノードで msg.alertType を条件にすることで、本文全体を毎回判定するよりも分かりやすいフローにできます。
例4:不要なデータを削除する¶
後続ノードへ渡す必要がないデータを削除します。

msg.payload.rawData を削除する
データ量が多い場合や、debugノードで確認する際に見づらい場合に便利です。
注意点¶
ルールは上から順番に実行される¶
changeノードに複数のルールを設定した場合、上から順番に処理されます。 例えば、先にプロパティを削除・移動してしまうと、後続のルールでその値を参照できなくなります。複数ルールを設定する場合は、処理の順番に注意してください。ルールの順番は、左端の「≡」をドラッグして入れ替えられます。
対象プロパティの指定ミスに注意する¶
msg.payload.text を変更したいところを msg.payload と指定してしまうと、想定より広い範囲のデータを書き換えてしまう可能性があります。
必要に応じて、changeノードの前後にdebugノードを接続し、入力値や処理結果を確認してください。
JSON形式の値を設定する場合は書式に注意する¶
値の種類にJSONを指定する場合、JSONとして正しい形式で記述する必要があります。 例えば、キーや文字列はダブルクォーテーションで囲む必要があります。
{
"status": "error",
"level": "critical"
}
JSONの形式が正しくない場合、ノードの設定エラーとなり、正しく動作しません。
複雑な処理はfunctionノードも検討する¶
changeノードは、値の代入・置換・削除・移動などのシンプルな加工に向いています。 複数条件を組み合わせた複雑な判定や、配列の集計、外部データとの突合などを行う場合は、functionノードを利用した方が分かりやすい場合があります。
関連ノード¶
- debugノード:changeノードの前後でデータの中身を確認する場合に使用します。
- switchノード:changeノードで整えた値をもとに条件分岐する場合に使用します。
- templateノード:changeノードで整えた値を通知文やメール本文に埋め込む場合に使用します。
- functionノード:changeノードでは表現しづらい複雑な処理を行う場合に使用します。
- メール送信ノード:changeノードで作成・整形した件名や本文を送信する場合に使用します。
まとめ¶
changeノードは、フロー内のデータを後続処理で扱いやすい形に整えるためのノードです。
値の代入、文字列の置換、不要なデータの削除、プロパティの移動などを、JavaScriptを書かずに画面上の設定で行うことができます。
特に、アラートメール本文の整形、通知用メッセージの作成、switchノードで使う判定値の追加、不要データの整理などで活用できます。
フロー作成時は、必要に応じてdebugノードで入力値や処理結果を確認しながら、changeノードで必要な形に整えていくと、後続ノードの設定が分かりやすくなります。