Salesforce サービスコンソール徹底活用術:コンサルタントが解説するエージェント生産性向上の秘訣

背景と応用シナリオ

現代のカスタマーサービス部門は、日々増加する問い合わせ量、顧客満足度向上のプレッシャー、そして迅速な問題解決への期待という、かつてないほどの課題に直面しています。このような環境でサービスエージェントが最高のパフォーマンスを発揮するためには、必要な情報すべてに素早く、かつ直感的にアクセスできるツールが不可欠です。しかし、多くのエージェントは、顧客情報、問い合わせ履歴、ナレッジ記事、関連ドキュメントなど、複数のアプリケーションやブラウザタブを切り替えながら業務を行っており、この「コンテキストスイッチング」が生産性を著しく低下させる原因となっています。一つの問い合わせを処理するために、平均で5〜10回も画面を切り替えるというデータもあるほどです。

このような課題を解決するために Salesforce が提供するのが、Service Console (サービスコンソール) です。Service Console は、Service Cloud の中核をなす機能であり、サービスエージェントの業務に特化して設計された、タブベースの統合ワークスペースです。その最大の目的は、エージェントが顧客対応に必要なすべての情報を単一の画面に集約し、クリック数を最小限に抑え、シームレスな業務遂行を支援することにあります。

応用シナリオは多岐にわたります:

・コンタクトセンター:電話、メール、チャットなど、複数のチャネルからの問い合わせを一元管理。Omni-Channel (オムニチャネル) と連携することで、エージェントの対応可能なスキルや稼働状況に応じて、問い合わせを自動的に適切なエージェントに割り振ることができます。

・ITヘルプデスク:社内からのPCトラブルやシステムに関する問い合わせを管理。関連する資産情報や過去の同様のインシデント、解決策をまとめたナレッジ記事などを即座に参照しながら、迅速な解決を支援します。

・フィールドサービス:現場の技術者からの報告や顧客からの緊急のサービスリクエストを管理。作業指示の作成から技術者のディスパッチ、進捗管理までをコンソール上で完結させることができます。

このように、Service Console は単なる情報表示画面ではなく、エージェントの生産性を最大化し、最終的には顧客体験 (CX) を向上させるための戦略的なプラットフォームなのです。本稿では、Salesforce コンサルタントの視点から、Service Console の基本原理、効果的な設定方法、そして導入を成功に導くためのベストプラクティスを解説します。


原理説明

Service Console の強力な機能性は、いくつかの重要な設計思想とコンポーネントに基づいています。これらを理解することが、効果的なコンソールを設計する第一歩となります。

タブベースのナビゲーション

コンソールの最大の特徴は、タブベースのインターフェースです。従来の Salesforce の標準ナビゲーションとは異なり、複数のレコードを同時に開いておくことができます。

  • Workspace Tabs (ワークスペースタブ): ケース、取引先、取引先責任者といった主要なレコード(プライマリオブジェクト)を表します。各ワークスペースタブは、一つの顧客対応セッションと考えることができます。
  • Subtabs (サブタブ): ワークスペースタブ内で開かれる関連レコードです。例えば、「ケース」のワークスペースタブの中で、そのケースに関連する「取引先責任者」や「過去のケース」をサブタブとして開くことができます。これにより、エージェントは主要なコンテキストを失うことなく、関連情報にドリルダウンできます。

この構造により、エージェントは複数の顧客対応を並行して進めることができ、それぞれのコンテキストをタブで明確に分離することが可能です。

3カラムレイアウトと Split View (分割ビュー)

Lightning Service Console は、一般的に3カラムレイアウトを採用しています。これにより、画面スペースを最大限に活用し、情報の視認性を高めます。

  • 左カラム (Split View): 通常、ケースやリードなどのリストビューが表示されます。エージェントはここから対応すべきレコードを選択し、中央のカラムで詳細を開きます。リストと詳細を同時に表示できるため、作業の切り替えがスムーズです。
  • 中央カラム (メイン領域): 選択されたレコードの詳細が表示されるメインの作業領域です。Highlights Panel (ハイライトパネル) で重要情報を一目で把握し、詳細タブで関連情報にアクセスします。
  • 右カラム (関連コンポーネント): Knowledge (ナレッジ)、関連レコード、カスタムコンポーネントなどを配置するのに最適な領域です。現在のケースに関連するナレッジ記事を自動でサジェストしたり、顧客の感情分析結果を表示したりと、コンテキストに応じた補助情報を提供します。

Utility Bar (ユーティリティバー)

画面下部に固定表示されるフッター領域で、エージェントがいつでもアクセスしたいツールを配置します。例えば、以下のようなものが一般的です。

  • Macros (マクロ): 定型的な繰り返し作業(例: メールの定型文挿入、項目の更新、クローズ処理)をワンクリックで自動化します。
  • History (履歴): 最近表示したレコードに素早くアクセスできます。
  • Omni-Channel (オムニチャネル): エージェントのログイン状態(対応可能、離席中など)を管理し、新規の作業項目を受け取るためのウィジェットです。
  • Notes (メモ): リッチテキスト形式でメモを取るためのツールです。

Utility Bar は、どのタブを開いていても常に利用可能であるため、エージェントの作業効率を飛躍的に向上させます。

Lightning App Builder (Lightning アプリケーションビルダー) による柔軟なカスタマイズ

Service Console のレイアウトは、Lightning App Builder を使用して、ドラッグ&ドロップの直感的な操作で自由にカスタマイズできます。標準コンポーネント、カスタムコンポーネント、AppExchange からインストールしたコンポーネントを自由に配置し、ビジネスプロセスに最適化された画面を構築することが可能です。これにより、コーディングを行うことなく、エージェントが必要とする情報を、必要とする場所に、必要とする形式で表示させることができます。


設定とカスタマイズ例

ここでは、Service Console をより強力にするための具体的なカスタマイズ例を、コードを交えて紹介します。特に、Lightning Web Components (LWC)Workspace API を組み合わせることで、宣言的な設定だけでは実現できない動的なタブ操作が可能になります。

例えば、ケースの詳細ページにカスタムLWCを配置し、そのコンポーネント内のボタンをクリックすることで、関連する親取引先や特定のナレッジ記事を新しいサブタブとしてプログラムで開く、といったシナリオが考えられます。

これを実現するのが lightning/platformWorkspaceApi です。この API を使用すると、LWC からコンソールのタブを開いたり、閉じたり、フォーカスを当てたりといった操作ができます。

示例代码

以下の LWC は、コンソール内で現在のタブ情報を取得し、新しいサブタブを開く機能を持つシンプルなコンポーネントです。このコンポーネントをケースのレコードページに配置することを想定しています。

workspaceAPIExample.html

<template>
    <lightning-card title="Workspace API LWC Example" icon-name="custom:custom14">
        <div class="slds-m-around_medium">
            <p>現在のタブ情報を取得し、関連レコードを新しいサブタブとして開きます。</p>
            <br/>
            <lightning-button 
                label="親取引先をサブタブで開く" 
                onclick={openAccountSubtab} 
                disabled={!isCaseRecord}
            ></lightning-button>
        </div>
        <div class="slds-m-around_medium">
            <b>現在のタブ情報:</b>
            <p>Tab ID: {focusedTabId}</p>
        </div>
    </lightning-card>
</template>

workspaceAPIExample.js

import { LightningElement, wire, api } from 'lwc';
import { getRecord, getFieldValue } from 'lightning/uiRecordApi';
import { NavigationMixin } from 'lightning/navigation';
import { EnclosingTabId, openSubtab, getFocusedTabInfo } from 'lightning/platformWorkspaceApi';

// ケースオブジェクトから取引先IDを取得するための項目
import ACCOUNT_ID_FIELD from '@salesforce/schema/Case.AccountId';

export default class WorkspaceAPIExample extends NavigationMixin(LightningElement) {
    @api recordId; // 現在のレコードID (ケースID)
    @wire(EnclosingTabId) enclosingTabId; // このコンポーネントが含まれるタブのID

    accountId;
    focusedTabId;
    isCaseRecord = false;

    // 現在のレコードがケースであるかどうかを判断し、取引先IDを取得
    @wire(getRecord, { recordId: '$recordId', fields: [ACCOUNT_ID_FIELD] })
    wiredCase({ error, data }) {
        if (data) {
            this.accountId = getFieldValue(data, ACCOUNT_ID_FIELD);
            // 取引先IDが存在する場合のみボタンを有効化する
            if(this.accountId) {
                this.isCaseRecord = true;
            }
        } else if (error) {
            console.error('Error retrieving case data', error);
        }
    }

    connectedCallback() {
        // コンポーネントがロードされた時に現在のフォーカстаブ情報を取得
        this.handleGetFocusedTabInfo();
    }
    
    // 現在フォーカスされているタブの情報を取得する非同期関数
    async handleGetFocusedTabInfo() {
        const tabInfo = await getFocusedTabInfo();
        this.focusedTabId = tabInfo.tabId;
    }

    // 「親取引先をサブタブで開く」ボタンがクリックされた時の処理
    openAccountSubtab() {
        if (!this.accountId) {
            console.error('Account ID is not available.');
            return;
        }

        // openSubtab関数を呼び出す
        // 第1引数: 親となるワークスペースタブのID
        // 第2引数: 開きたいサブタブに関する情報
        openSubtab(this.enclosingTabId, {
            recordId: this.accountId, // 開きたいレコードのID (取引先ID)
            focus: true // 新しく開いたサブタブにフォーカスを当てる
        }).catch(error => {
            console.error('Error opening subtab', error);
        });
    }
}

このコードは、Salesforce の公式ドキュメントに記載されている lightning/platformWorkspaceApi の使用方法に基づいています。openSubtab メソッドを利用することで、現在のワークスペースタブ (enclosingTabId) 内に、ケースに関連付けられた取引先 (accountId) のレコードページを新しいサブタブとして動的に開くことができます。これにより、エージェントはケース画面から離れることなく、ワンクリックで顧客の基本情報にアクセスでき、対応の質とスピードを向上させることができます。


注意事項

Service Console を導入・運用する際には、いくつかの点に注意が必要です。

・権限とライセンス:Service Console を利用するには、ユーザーに「Service Cloud ユーザー」の機能ライセンスが必要です。また、作成したコンソールアプリケーションへのアクセスは、プロファイルまたは権限セットで制御します。特定のユーザーグループにのみコンソールへのアクセスを許可するように、慎重に権限設定を行ってください。

・パフォーマンスへの影響:Lightning App Builder でコンポーネントを自由に追加できる反面、一つのページにあまりにも多くのコンポーネントを配置すると、ページの読み込み速度が低下する可能性があります。特に、複雑なSOQLクエリを発行するカスタムコンポーネントや、多数の関連リストはパフォーマンスに影響を与えやすいです。コンポーネントの表示/非表示を動的に切り替える(Conditional Rendering)など、パフォーマンスを意識したページ設計が重要です。

・ユーザーのトレーニングと導入支援 (Change Management):Service Console は非常に高機能ですが、従来のUIに慣れたユーザーにとっては、最初は戸惑うかもしれません。なぜコンソールを導入するのか(目的)、どのように使えば業務が効率化されるのか(利点)、そして具体的な操作方法について、十分なトレーニングとドキュメントを提供することが、導入を成功させる鍵となります。コンサルタントとして、このチェンジマネジメントの部分を主導することがプロジェクトの成否を分けます。

・API の制限:Workspace API は非常に強力ですが、実行できるコンテキストは Lightning Console App 内に限られます。標準のナビゲーションを持つアプリケーションでは動作しません。また、API の呼び出し回数にはガバナ制限が適用される可能性があるため、ループ内で大量に呼び出すような実装は避けるべきです。


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

Salesforce Service Console は、サービスエージェントの生産性を最大化し、顧客満足度を向上させるための強力なツールです。タブベースのインターフェース、柔軟なレイアウト、そして自動化機能を組み合わせることで、エージェントは「より少なくクリックし、より多くを解決する」ことが可能になります。

コンサルタントとして Service Console の導入を成功に導くためのベストプラクティスを以下にまとめます。

  1. エージェントの業務フローを深く理解する:設計を始める前に、まずエージェントの日常業務を観察し、ヒアリングを行います。彼らがどのような情報を、どのタイミングで必要としているのかを正確に把握することが、本当に「使える」コンソール設計の出発点です。
  2. 360度ビューを意識したレイアウトを設計する:顧客に関するすべての情報を、可能な限り1画面に集約することを目指します。Highlights Panel で最重要情報を、関連レコードコンポーネントで詳細情報を、Knowledge コンポーネントで解決策を提示するなど、情報の優先順位をつけて配置します。
  3. 定型業務は徹底的に自動化する:Macros や Quick Actions、Flow を活用して、メールの送信、項目の更新、ケースのクローズといった繰り返し作業を自動化します。これにより、エージェントはより付加価値の高い、顧客との対話に集中できます。
  4. ナビゲーションルールを活用する:ケースを開いたら常に関連する取引先責任者をサブタブで開く、といったナビゲーションルールを設定することで、エージェントのクリック数を削減し、情報の見落としを防ぎます。
  5. 反復的な改善サイクルを回す:一度構築して終わりではなく、リリース後にエージェントからフィードバックを収集し、継続的にコンソールの改善を行います。どの機能がよく使われているか、どこにボトルネックがあるかを分析し、定期的にレイアウトや機能を見直すことが重要です。

これらのベストプラクティスを実践することで、Service Console は単なるツールから、企業の顧客サービス戦略を支える強力なプラットフォームへと進化します。そして、それはエージェントの満足度向上、離職率の低下、そして最終的には企業の成長に繋がるのです。

コメント