こんにちは。にいるです。
今回はServiceCloud関連でオムニチャネルについて説明したいと思います。
・【Trailhead】オムニチャネルの使用開始
・【Trailhead】キューベースのルーティングの概要
・【Trailhead】スキルベースのルーティングについて
・【ヘルプ】Service Cloudのチャネル
・【ヘルプ】オムニチャネルでサポートされるオブジェクト
1.オムニチャネルとは
組織に電話、メール、またはWebフォームやWebチャットなどさまざまなカスタマーサポートチャネルがあるとします。
でもその確認箇所がそれぞれ違うシステムだったり、違うページ、もしくはCTIではなくただの固定電話だったりすると絶望しか感じません笑
そのばらけたチャネルを一元化管理をするものがオムニチャネルです。
Salesforceではそれをサービスコンソールで管理しています。
オムニチャネルでルーティング設定を行うことにより、作業担当者を自動で定義することができます。
※Salesforceでは問い合わせを「作業」と呼んでいます。
オムニチャネルは現在、次のオブジェクトおよびレコードの転送がサポートされています。
2.ルーティング設定について
ルーティングはキューベースとスキルベース、または外部システムの3つで設定が可能です。
それぞれ個別に見ていきたいと思います。
また、ルーティングモデルは2つあります。
2-1.キューベースのルーティング
キューベースのルーティングの場合、オムニチャネルはキューに作業を割り当てます。
エージェントはキューに割り当てられています。
問い合わせの優先度を基準に、そのキューに属しているエージェントに転送します。
2-2.スキルベースのルーティング
スキルベースの場合は、問い合わせ内容に対して、英語や経理の知識が必要な場合、このスキルを保有するエージェントに問い合わせを転送します。
2-3.外部ルーティング
すでにSalesforce外にルーティング設定があり、それを使用するのであればAPIを使用して連動させることができます。
3.キューベースのルーティングの設定方法
キューベースの場合は簡単に言うと、キューを作成して、優先度を決め、キューにエージェントを割り当てるだけです。
まずは有効化設定を行います。
続いてオムニチャネルの設定を行っていきます。
ここでキューを作成して、キューにエージェント(ユーザ)を追加します。
追加したユーザには自動的にService Cloudのライセンスがセットされます。
続いて、作業の優先度を定義します。
優先度は最優先であれば「1」になります。
他にルーティング設定がない場合は自動で「1」が付与されます。
最後に作業負荷を設定します。
作業項目サイズは消費されるエージェントの業務量です。
エージェントの総業務量はエージェントが対応できる作業のキャパサイズになります。
4.スキルベースのルーティング設定方法
続いて、スキルベースの設定方法を見ていきたいと思います。
最初にまとめておくと、まずはスキルレコードを作成して、サービスリソースレコード(エージェント)を作成します。
そして、サービスリソースの関連リストでスキルを関連付けます。
まずはいつものように[設定]メニューから有効化します。
続いて[設定]メニューで[オムニチャネル]→[スキル]からスキルを作成します。
名前とAPI名と説明、割り当てるユーザとプロファイルを設定する事ができます。
そしてサービスリソースというオブジェクトでエージェントを作成します。
リソース種別は「エージェント」を選択しておきます。
※ユーザと関連づける事ができますが、ユーザとは別でレコードを作成する必要があるようです。
ここでトラップに引っかかりました、、、
レコードタイプとページレイアウトを設定して、必須入力項目を表示させないとエラーでつまずきます笑
作成したサービスリソースの関連リストにスキルを表示させて、スキルを関連付けます。
スキルは11段階(0〜10)でレベルが設定でき、有効期間も設定する事ができます。
資格有効期間などで使用できそうですね。
これでエージェント(サービスリソース)とスキルを関連づける事ができました。
4-1.スキルベースの作業の割当てについて
あとは作業の割当てを行っていきます。
スキルベースのルーティングでは、Apexクラスとプロセスビルダーを使用します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 |
Global class SkillsBasedRouting { @ InvocableMethod public static void routeUsingSkills(List<String> cases) { List<Case> caseObjects = [SELECT Id, Description FROM Case WHERE Id in :cases]; for (Case caseObj : caseObjects) { // Add SkillsBased PendingServiceRouting PendingServiceRouting psrObj = new PendingServiceRouting( CapacityWeight = 1, IsReadyForRouting = FALSE, RoutingModel = 'MostAvailable', RoutingPriority = 1, RoutingType = 'SkillsBased', ServiceChannelId = getChannelId('Case'), WorkItemId = caseObj.Id ); insert psrObj; psrObj = [select id, IsReadyForRouting from PendingServiceRouting where id = : psrObj.id]; // Now add SkillRequirement(s) SkillRequirement srObj = new SkillRequirement( RelatedRecordId = psrObj.id, SkillId = getSkillId(caseObj.Description), SkillLevel = 5 ); insert srObj; // Update PendingServiceRouting as IsReadyForRouting psrObj.IsReadyForRouting = TRUE; update psrObj; } return; } public static String getChannelId(String channelName) { ServiceChannel channel = [Select Id From ServiceChannel Where DeveloperName = :channelName]; return channel.Id; } public static String getSkillId(String caseDescription) { String skillName = 'English'; if (caseDescription != null) { if (caseDescription.contains('Spanish')) { skillName = 'Spanish'; } else if (caseDescription.contains('French')) { skillName = 'French'; } } Skill skill = [Select Id From Skill Where DeveloperName = :skillName]; return skill.Id; } } |
まずは上記のスニペットをコピーしてApexクラスを作成します。
次にこのApexクラスを呼び出すプロセスビルダーでワークフローを作成します。
ここで名前とAPI名、説明を入力します。
プロセスの開始タイミングは「レコードが変更されたとき」にします。
次にオブジェクトにケースを選択し、[プロセスを開始]で「レコードを作成したときのみ」を選択します。
条件はなしにしておきます。
ここでアクション種別をApexにして、さっき作成したApexクラスを選択します。
あとは変数を入力して完了です!
これでケースが作成された時にワークフローが実行されるようになりました。
5.まとめ
いかがでしたでしょうか。
キューベースかスキルベースのどちらを使用するかは、運用上、管理しやすい方を選んだ方がいいと思います。
複雑な問い合わせがよく発生するのであれば、一度スキルベースで設定してグルーピングできるようになるなら、キューベースに切り替えるのもいいかもしれません。
臨機応変に使用してみてください。
他にも色々と標準機能やSalesforce機能について紹介しています。
そのまとめ一覧ページはこちらになりますので、よければ見てみてください。
ではでは!