Salesforceページレイアウトの習得:最適なユーザーエクスペリエンスのための包括的ガイド

背景と適用シナリオ

Salesforce管理者(Salesforce Administrator)として、私たちの重要な責務の一つは、ユーザーが効率的かつ直感的に作業できるようなユーザーインターフェース(UI)を設計・提供することです。ユーザーが毎日対話するレコードページは、その中心的な役割を担います。ここでPage Layout(ページレイアウト)が極めて重要なツールとなります。

ページレイアウトは、Salesforceのオブジェクトレコードページに表示される項目、ボタン、関連リストなどの配置や表示/非表示を制御するための宣言的な機能です。適切に設計されたページレイアウトは、単に情報を表示するだけでなく、ビジネスプロセスをガイドし、データ入力の質を向上させ、最終的には組織全体の生産性を高めることにつながります。

適用シナリオ

  • 部門ごとの情報表示の最適化:営業部門のユーザーは商談の金額やフェーズに注目しますが、カスタマーサポート部門のユーザーはケースの状況や関連する問い合わせを重視します。ページレイアウトを使用することで、同じ取引先レコードでも、見るユーザーの役割に応じて最適な情報レイアウトを提供できます。
  • データ品質の向上:重要な項目を必須に設定したり、読み取り専用にしたりすることで、不完全なデータや誤ったデータの入力を防ぎます。例えば、商談の「完了予定日」を必須項目にすることで、入力漏れをなくし、正確な売上予測を支援します。
  • ワークフローの効率化:関連性の高い項目をセクションにまとめてグループ化し、ページ上部に配置することで、ユーザーはスクロールすることなく重要な情報に素早くアクセスできます。また、カスタムボタンやアクションを配置することで、関連レコードの作成や外部システムへの連携といった次のアクションへスムーズに移行できます。
  • ユーザーエクスペリエンス(UX)の向上:乱雑で情報過多なページは、ユーザーの混乱を招き、Salesforceの利用意欲を低下させる原因となります。ページレイアウトを整理し、不要な項目を非表示にすることで、クリーンで使いやすい画面を実現し、ユーザーの満足度と定着率を高めます。

このように、ページレイアウトはSalesforceプラットフォームの柔軟性を最大限に引き出し、ビジネス要件に合わせてシステムを最適化するための第一歩と言えるでしょう。


原理説明

ページレイアウトの仕組みを理解するためには、それがSalesforceの他の機能とどのように連携して動作するのかを知ることが不可欠です。特に、Profile(プロファイル)、Record Type(レコードタイプ)、そしてLightning Record Page(Lightningレコードページ)との関係性が重要です。

ページレイアウトの構成要素

ページレイアウトは、主に以下の要素で構成されています。

  • Fields(項目):オブジェクトの項目をページ上に配置します。ドラッグ&ドロップで位置を調整し、項目プロパティ(参照のみ、必須)を設定できます。
  • Sections(セクション):関連する項目をグループ化するためのコンテナです。セクションごとに表示/非表示を切り替えたり、1列または2列のレイアウトを選択したりできます。
  • Buttons(ボタン):レコードの保存、編集、削除などの標準ボタンや、カスタム処理を呼び出すカスタムボタンを配置します。
  • Custom Links(カスタムリンク):外部サイトや社内システムへのリンクを配置します。
  • Related Lists(関連リスト):主従関係や参照関係にある他のオブジェクトのレコード一覧を表示します。表示する列やソート順、表示するボタンをカスタマイズできます。
  • Visualforce Pages:カスタム開発されたVisualforceページをセクション内に埋め込むことができます。
  • Mobile & Lightning Actions(モバイルおよびLightningのアクション):SalesforceモバイルアプリケーションやLightning Experienceのアクションバーに表示されるアクション(レコード作成、活動の記録など)を制御します。

プロファイルとレコードタイプによる割り当て

どのユーザーにどのページレイアウトを表示するかは、プロファイルとレコードタイプの組み合わせによって決まります。この割り当てはSalesforceのUI制御における基本原則です。

1. プロファイルベースの割り当て:
最も基本的な割り当て方法です。各プロファイルに対して、オブジェクトごとにデフォルトのページレイアウトを1つ割り当てます。このオブジェクトにレコードタイプが設定されていない場合、そのプロファイルのユーザーには常にこのレイアウトが表示されます。

2. レコードタイプベースの割り当て:
1つのオブジェクトで複数のビジネスプロセスを管理する場合、レコードタイプを使用します。例えば、「取引先」オブジェクトに「顧客」と「パートナー」という2つのレコードタイプを作成できます。そして、「営業プロファイル」のユーザーが「顧客」レコードタイプの取引先を開いた場合はレイアウトAを、「パートナー管理プロファイル」のユーザーが「パートナー」レコードタイプの取引先を開いた場合はレイアウトBを表示する、といった柔軟な割り当てが可能です。

割り当てのロジックは次のようになります:
ユーザーのプロファイル + 表示するレコードのレコードタイプ → 割り当てられたページレイアウト

Lightning Experienceにおけるページレイアウトの役割

Classic UIではページレイアウトがレコードページのすべてを制御していましたが、Lightning Experienceではその役割が少し異なります。Lightning Experienceのレコードページは、Lightning App Builder(Lightningアプリケーションビルダー)で作成されるLightning Record Pageによって構成されます。

Lightningレコードページは、コンポーネントベースの柔軟なページです。このページ上に配置される標準コンポーネントの一つが「レコードの詳細(Record Detail)」コンポーネントです。ページレイアウトが制御するのは、この「レコードの詳細」コンポーネントの内部、つまり項目のセクションや関連リストの表示内容です。

近年、SalesforceはDynamic Forms(動的フォーム)という新機能を導入しました。これにより、従来ページレイアウトでしか管理できなかった項目の配置を、Lightningアプリケーションビルダー上で直接行えるようになりました。動的フォームを使用すると、項目を個別のコンポーネントとして扱い、特定の条件下で項目やセクション全体の表示/非表示を切り替えるなど、ページレイアウトよりもはるかに高度なUI制御が可能になります。動的フォームはページレイアウトの進化形と見なされており、今後のUI設計の主流となるでしょう。


サンプルコード

私たち管理者は主にUIを通じてページレイアウトを編集しますが、その設定が内部的にどのように保存されているかを知ることは、移行やバックアップ、高度な管理作業において非常に役立ちます。ページレイアウトはメタデータの一種であり、XMLファイルとして表現されます。以下は、SalesforceのMetadata APIにおけるLayoutメタデータ型の公式ドキュメントからのサンプルです。これは「Account-Account (Sales) Layout」という取引先オブジェクトのページレイアウトの構造を示しています。

<?xml version="1.0" encoding="UTF-8"?>
<Layout xmlns="http://soap.sforce.com/2006/04/metadata">
    <!-- layoutSections: ページのセクションを定義します。 -->
    <layoutSections>
        <!-- customLabel: セクションヘッダーをカスタムテキストにするか(true)、標準のセクション名を使うか(false)。 -->
        <customLabel>false</customLabel>
        <!-- detailHeading: レコード詳細ページでセクションヘッダーを表示するかどうか。 -->
        <detailHeading>false</detailHeading>
        <!-- editHeading: レコード編集ページでセクションヘッダーを表示するかどうか。 -->
        <editHeading>true</editHeading>
        <!-- label: セクションの表示ラベル。「Account Information」など。 -->
        <label>Account Information</label>
        <!-- layoutColumns: セクション内の列を定義します。通常は1列または2列です。 -->
        <layoutColumns>
            <!-- layoutItems: 列内に配置される項目を定義します。 -->
            <layoutItems>
                <!-- behavior: 項目の振る舞いを定義します。Required(必須), Edit(編集可能), Readonly(参照のみ)。 -->
                <behavior>Required</behavior>
                <!-- field: 項目のAPI参照名。ここでは「Name」項目。 -->
                <field>Name</field>
            </layoutItems>
            <layoutItems>
                <behavior>Edit</behavior>
                <field>ParentId</field>
            </layoutItems>
        </layoutColumns>
        <layoutColumns>
            <layoutItems>
                <behavior>Edit</behavior>
                <field>Type</field>
            </layoutItems>
            <layoutItems>
                <behavior>Edit</behavior>
                <field>OwnerId</field>
            </layoutItems>
        </layoutColumns>
        <!-- style: セクションのスタイル。TwoColumnsTopToBottom(2列), OneColumn(1列)など。 -->
        <style>TwoColumnsTopToBottom</style>
    </layoutSections>
    
    <!-- relatedLists: 関連リストの定義セクション。 -->
    <relatedLists>
        <!-- fields: 関連リストに表示する列のAPI参照名。 -->
        <fields>FULL_NAME</fields>
        <fields>CONTACT.TITLE</fields>
        <fields>CONTACT.EMAIL</fields>
        <fields>CONTACT.PHONE1</fields>
        <!-- relatedList: どの関連リストかを示す。ここでは取引先責任者(Contacts)。 -->
        <relatedList>RelatedContactList</relatedList>
    </relatedLists>

    <showEmailCheckbox>false</showEmailCheckbox>
    <showHighlightsPanel>false</showHighlightsPanel>
    <showInteractionLogPanel>false</showInteractionLogPanel>
    <showRunAssignmentRulesCheckbox>false</showRunAssignmentRulesCheckbox>
    <showSubmitAndAttachButton>false</showSubmitAndAttachButton>
    <summaryLayout>
        <masterLabel>00hD000000P5k1S</masterLabel>
        <sizeX>4</sizeX>
        <sizeY>0</sizeY>
        <summaryLayoutStyle>Default</summaryLayoutStyle>
    </summaryLayout>
</Layout>

このXML構造を理解することで、変更セットや開発ツール(VS Code + Salesforce Extensionsなど)を使用して、環境間でページレイアウトを正確にデプロイすることが可能になります。


注意事項

ページレイアウトを設計・管理する際には、いくつかの重要な注意点があります。これらを無視すると、セキュリティ上の問題やユーザーの混乱を招く可能性があります。

権限とセキュリティ

最も重要な原則は、「ページレイアウトはセキュリティツールではない」ということです。ページレイアウトはあくまでUI上での「表示」を制御するものであり、データへの「アクセス権」を制御するものではありません。

  • Field-Level Security(FLS, 項目レベルセキュリティ)との関係:ある項目がページレイアウトに配置されていても、ユーザーのプロファイルや権限セットでその項目へのFLS(参照権限)がなければ、そのユーザーには項目は表示されません。逆に、ページレイアウトから項目を削除しても、ユーザーがFLS(参照権限)を持っていれば、レポート、検索、API経由でその項目のデータにアクセスできます。セキュリティを確保するためには、必ずFLSでアクセス権を制御し、ページレイアウトはUXを整えるための補助ツールとして使用してください。

API制限とガバナ制限

ページレイアウト自体に直接的なAPIコール数の制限はありませんが、ページレイアウトに含まれるコンポーネント(VisualforceページやLightningコンポーネントなど)がAPIコールを行う場合、それらはSalesforceの標準的なガバナ制限に従います。複雑なカスタムコンポーネントを多数配置すると、ページの読み込みパフォーマンスに影響を与える可能性があるため注意が必要です。

Lightning Experienceとモバイルの考慮事項

  • アクションの配置:Lightning ExperienceとSalesforceモバイルアプリケーションのアクションバーに表示されるアクションは、ページレイアウトの「モバイルおよびLightningのアクション」セクションで管理されます。標準の「編集」や「削除」ボタンをオーバーライドしたり、カスタムのアクションを追加したりできますが、このセクションの設定を忘れると、ユーザーが必要な操作を行えなくなる可能性があります。
  • 動的フォームへの移行:前述の通り、Lightning Experienceでは動的フォームが推奨されています。既存のページレイアウトを動的フォームにアップグレードする機能がありますが、移行後は項目の管理がページレイアウトではなくLightningアプリケーションビルダーに移行します。この二重管理を避けるため、どちらで項目を管理するか方針を明確にすることが重要です。

まとめとベストプラクティス

ページレイアウトは、Salesforce管理者がユーザーの生産性と満足度を向上させるために使える、最も強力で基本的なツールの一つです。その役割は、ClassicからLightningへと進化する中で変化してきましたが、レコードの詳細情報を整理し、ビジネスプロセスを反映させるという本質は変わりません。

効果的なページレイアウトを設計・維持するためのベストプラクティスを以下にまとめます。

  1. シンプルさを追求する:
    ユーザーを情報で圧倒しないようにしましょう。最も重要な項目をページ上部に配置し、使用頻度の低い項目は下部のセクションに移動するか、思い切ってレイアウトから削除します。平均的なユーザーが日常業務で必要としない項目は、表示する必要はありません。
  2. ユーザー中心の設計を心がける:
    レイアウトを設計する前に、実際にそれを使用するユーザーにヒアリングを行いましょう。彼らのワークフローはどのようなものか、どの情報を最も頻繁に参照するか、どのようなアクションを最もよく実行するかを理解することが、優れたレイアウトの鍵となります。
  3. レコードタイプを戦略的に活用する:
    異なるビジネスプロセスやユーザーグループが存在する場合は、レコードタイプとページレイアウトの割り当てを積極的に活用しましょう。これにより、各グループに特化した、無駄のないUIを提供できます。
  4. Lightningの力を最大限に引き出す:
    Lightning Experienceを利用している場合、従来のページレイアウトだけに固執せず、Lightningレコードページと動的フォームの採用を検討してください。コンポーネントの可視性ルールを使えば、「商談のフェーズが『完了』になったら、特定の項目を表示する」といった動的なUIを宣言的に実現できます。
  5. 一貫性を保つ:
    関連するオブジェクト間で、セクション名や項目の配置に一貫性を持たせましょう。例えば、どのオブジェクトでも「システム情報」セクションは常にページ最下部に配置する、といったルールを設けることで、ユーザーは新しいオブジェクトの画面でも直感的に操作できます。
  6. 定期的なレビューと改善:
    ビジネスは常に変化します。半年に一度、または年に一度、主要なユーザーグループと共にページレイアウトを見直し、現在のビジネスプロセスに適合しているかを確認しましょう。不要になった項目を削除し、新しい要件に合わせてレイアウトを改善するプロセスを定着させることが重要です。

結論として、優れたページレイアウトは、ユーザーがSalesforceを「使いたい」と感じるか、「使わされている」と感じるかの分かれ目となり得ます。私たち管理者は、技術的な設定を行うだけでなく、ユーザーの視点に立ったエンパシーを持ってUIを設計することで、Salesforceの導入効果を最大化できるのです。

コメント