【管理者・開発者向け】フローのメンテナンス性が劇的に向上!「カスタムメタデータ型」の活用法
投稿日:
更新日:
目次
フローの中に消費税率や割引率、特定のユーザーIDを直接入力していて、変更のたびにフローを修正してテストし直すといった運用に心当たりはないでしょうか。
こうした「値の埋め込み(ハードコーディング)」は、フローのメンテナンス性を大きく下げる原因になります。この課題を解決するのが「カスタムメタデータ型」です。
本記事では、カスタムメタデータ型の基本から、カスタム設定・カスタム表示ラベルとの違い、メリット、フローでの活用方法までを解説します。フローの保守性を高めたいと考えている管理者・開発者の方は、ぜひ参考にしてください。
カスタムメタデータ型とは?

カスタムメタデータ型とは、設定値やマスタデータをレコードとして管理できる仕組みです。カスタムオブジェクトのように項目を定義し、その値をレコードとして保存できます。
ハードコーディングの問題点
フローの条件分岐や計算処理の中に、消費税率や特定のユーザーIDなどの値を直接入力してしまうケースは少なくありません。一見手軽に見えますが、この方法には以下のような問題があります。
値が変わるたびにフローの修正が必要になる
消費税率の変更や担当者の異動があった場合、フロー内のすべての該当箇所を探して修正する必要があります。修正漏れがあれば不具合につながります。
修正のたびにテストとリリースが必要になる
フロー自体を修正するため、変更後は動作確認のテストとリリース作業が必要です。値の変更だけであっても、フロー全体への影響を確認し、本番環境へ反映する一連の作業が発生します。
カスタムメタデータ型で解決できること
カスタムメタデータ型を使うと、フロー内に直接値を書き込む代わりに、カスタムメタデータ型のレコードから値を取得する形に変更できます。
これにより、消費税率や割引率などの値を変更したい場合は、フローを修正するのではなく、カスタムメタデータ型のレコードの値を更新するだけで済みます。フロー自体の構造は変更されないため、修正範囲が明確になり、テストの負荷も軽減されます。
カスタム設定・カスタム表示ラベルとの違い

カスタムメタデータ型と似た用途で使われる機能として、「カスタム設定」と「カスタム表示ラベル」があります。それぞれの違いを理解しておくことで、適切な使い分けができるようになります。
カスタム設定・カスタム表示ラベルとカスタムメタデータ型の比較
それぞれの特徴と環境間の移行方法を比較すると、以下のようになります。
| 種類 | 特徴 | 移行方法 |
| カスタム設定 | リスト形式と階層形式の2種類。 ※リスト形式は新規作成不可。 階層形式ではプロファイルやユーザー単位で値を切り替えることが可能。 |
レコードの値はメタデータとして扱われないため、変更セットやパッケージによる環境間移行は不可。 |
| カスタム表示ラベル | 文字列を定数として管理する。 多言語対応のメッセージなど、固定的な文字列の管理に適している。 |
変更セットやパッケージによる環境間移行が可能。 |
| カスタムメタデータ型 | カスタムオブジェクトのようにレコード形式で設定値を管理できる。 環境ごとに異なる定数などを「メタデータ」として管理できる。 |
レコードの値もメタデータとして扱われるため、変更セットやパッケージによる環境間移行が可能。 |
カスタムメタデータ型が推奨される理由
カスタム設定のリスト形式が新規作成できなくなっているのは、その役割がカスタムメタデータ型に引き継がれたためです。カスタムメタデータ型は、リスト形式と同様の用途で使えるだけでなく、Apexからのレコード作成・更新や、変更セット・パッケージを使った値の環境間移行にも対応しており、より柔軟に活用できます。
一方、カスタム表示ラベルは値ごと環境間に移行できますが、Apexから値を更新することができず、固定的な文字列の管理にしか使えません。カスタム設定の階層形式は、プロファイルやユーザー単位で値を切り替えたい場合に適していますが、それ以外の用途ではカスタムメタデータ型のほうが柔軟に対応できます。
このような背景から、現在では設定値の管理にカスタムメタデータ型を使用することが推奨されています。
カスタムメタデータ型を使うメリット

カスタムメタデータ型を活用することで、ハードコーディングの問題を解消できるだけでなく、運用面でも以下のようなメリットがあります。
変更セットで設定値のリリースが可能
カスタムメタデータ型は、定義(オブジェクト・項目)だけでなく、レコードの値そのものも変更セットやパッケージに含めてリリースできます。
たとえばSandboxで消費税率の値を設定してテストした場合、その値を含めて本番環境にリリースできます。本番環境で改めて値を入力し直す必要がないため、デプロイ後の設定漏れを防ぐことができます。
環境ごとに設定値の変更が可能
カスタムメタデータ型のレコードは、Sandboxと本番環境でそれぞれ個別に保持されます。そのため、環境ごとに異なる値を設定することができます。
たとえばテスト用の割引率と本番用の割引率を、各環境のカスタムメタデータ型レコードでそれぞれ管理できます。Sandboxでのテスト時に本番のデータに影響を与える心配がありません。
ガバナ制限における優位性
カスタムメタデータ型は、Apexから直接クエリする場合、SOQLクエリのガバナ制限の対象外となります。設定値の参照を頻繁に行う処理でも、ガバナ制限を気にせず利用できる点がメリットです。
なお、フローでカスタムメタデータ型を取得する場合は、通常のSOQLクエリと同様にガバナ制限が適用されます。フロー内で多用する場合は、この点を踏まえた設計を心がけましょう。
フロー内でカスタムメタデータ型を参照する手順
ここでは、消費税率をカスタムメタデータ型で管理し、フローから参照する例で手順を解説します。
カスタムメタデータ型の作成
- 「設定」の検索ボックスに「カスタムメタデータ型」と入力し、「カスタムメタデータ型」を選択した後、「新規カスタムメタデータ型」をクリック
- 表示ラベル、表示ラベル(複数形)、オブジェクト名を入力し、「保存」をクリック
- 「カスタム項目」セクションで「新規」をクリック
- 項目のデータ型を選択肢、「次へ」をクリック
- 項目のラベル名・項目名などを入力し、「次へ」をクリック
- ページレイアウトに追加し、「保存」をクリック
- 「Manage [オブジェクト名]」をクリック
- 「新規」をクリック
- レコードの値を入力し、「保存」をクリック








フローでの参照方法
- フロービルダーで「レコードを取得」の要素を追加し、オブジェクトにカスタムメタデータ型で作成したオブジェクトを選択後、レコード条件を入力
- 取得した値を後続の処理で参照する

これにより、フロー内に直接値を書き込むことなく、カスタムメタデータ型のレコードから値を取得して処理に利用できます。消費税率が変更された場合は、カスタムメタデータ型のレコードの値を更新するだけで、フローを修正することなく対応できます。
まとめ
本記事では、フローのメンテナンス性を高める「カスタムメタデータ型」について、ハードコーディングの問題点から、カスタム設定・カスタム表示ラベルとの違い、メリット、フローでの活用方法までを解説しました。
フローに値を直接書き込む運用は、変更のたびに修正・テスト・リリースの手間が発生し、メンテナンス性を下げる要因になります。カスタムメタデータ型を活用すれば、値の変更をレコードの更新だけで完結させることができ、フロー自体への影響を最小限に抑えられます。
フローのメンテナンスに課題を感じている方は、ぜひカスタムメタデータ型の導入を検討してみてください。
<Salesforce>
弊社ではSalesforceをはじめとするさまざまな無料オンラインセミナーを実施しています!
>>セミナー一覧はこちら
また、弊社ではSalesforceの導入支援のサポートも行っています。ぜひお気軽にお問い合わせください。
>>Salesforceについての詳細はこちら
>>Salesforceの導入支援実績はこちらからご覧いただけます!
医療業界に特化した営業支援、顧客管理(SFA/CRM)のコンサルティングも提供しております。こちらもぜひお気軽にお問い合わせください。
>>顧客管理(SFA/CRM)のコンサルティングの詳細はこちら


