EinsteinDiscoveryのEinstein予測をやってみた
この記事はSalesforce Advent Calendar 2019の20日目の記事です。 みなさんこんにちは。
私について
Salesforceの完全自立型コミュニティ「TERAKOYAFORCE」の運営リーダーをやらせてもらっておりますHENNGE株式会社の板垣です。関西在住です。約14年の社会人生活、ずっとITソフトウェアメーカーで働いてます。現職ではDigital Intelligenceという部署でSaaS導入・活用という業務ハック的な仕事をやっています。2児のパパです。週末イクメンです。2019年は合計117日東京に出張で滞在していましたが勤務地は関西です。
TERAKOYAFORCEはハンズオン中心の、脱!初心者向けコミュニティです。2018年7月に発足後、16か月で21回開催しております!大阪と東京でよくやってます。みんな来てね。
はじめに
みなさま、 Salesforceのオプションと言えば何を思い浮かべますでしょうか。
たぶん、1番有名なのはPardotではないでしょうか。
CommunityCloudもオプションですが、価格体系的にはコア(SalesCloud・ServiceCloud・Salesforce Platform)の一部でして、その他だとMarketingCloud、CommerceCloud。最近ではQuipもぐんぐん来てます。
・・・みなさん、何か忘れてませんか?
そう、オレオレ!オレだよ、EinsteinAnalyticsだよ!
そんなEinsteinAnalyticsくんですが、洗練されたUI、業界最高クラスの分析速度、また最近ではEinsteinDiscoveryによるAIを使った予測分析、予測結果のSalesforceレコードへの反映等、企業の生産性を劇的に向上できるポテンシ
ャルを秘めた製品です。
EinsteinAnalyticsとは
2019年4月のTERAKOYAFORCEにてこんな感じでまとめさせてもらったので資料を流用します。
今は「EinsteinAnalytics Plus」というライセンスがAnalytics&Discovery込みのライセンスです。なので「EinsteinAnalyticsって言ったら当然両方込みだぜ」というスタンスで語られる事が多いですが、価格体系が2018年11月までころころ変わっていた経緯もあり混乱しがちなので、ここではEinsteinAnalyticsとEinsteinDiscoveryを明確に分けて説明します。
で、EinsteinAnalytics。私の解釈では↑の図でいう、「Excelスペシャリストの民主化」を志向する機能群です。簡単にいうと、「Lightningレポート&ダッシュボードのすごいやつ」を作る機能です。
構成は分かりやすく配慮されており、Salesforce本体でいうレポートタイプ→レポート→ダッシュボードという構成とほぼ同じ概念でEinsteinAnalyticsでは「データセット」→「レンズ」→「ダッシュボード」といいます。Lightningダッシュボードの表現力が年々高まっており、差は縮まってきておりますが、すごいところは無理やりまとめるとこんな感じ。
・素晴らしくキレイでうねうね動くUIとデータ集計の速さ
・Salesfoceのデータを再加工できる
・外部データ(AWS S3等主要なSaaS・CSV)を持ってこれる
しかも10億レコードも保存できます。今はオープン価格になったので値段はいえませんが、1××××円/月でSalesforceオブジェクトをスケジュール決めて吸い上げられるので、バックアップ目的だけでも超絶お得なEinsteinAnalyticsくんであります。
EinsteinDiscoveryとは
私の解釈では↑の図でいう、「データサイエンティストの民主化」を志向する機能群です。EinsteinAnalyticsを使うときに必ずつくるデータセット。それをレンズ&ダッシュボードで可視化していくのがEinsteinAnalyticsなのですが、つくったデータセットはすべて「ストーリー」という、回帰分析をかけることができます。EinsteinDiscovery=「ストーリー」をつくれる機能です。
↑は前掲と同じ資料の中からの抜粋ですが「回帰分析=過去の計測結果を元に未来を予測すること」と私は解釈しております。EinsteinDiscoveryは
「どの数値を最大化したいか?」
「どの項目が判断材料となるか?」
を選択するだけで、有意な関係が高い順から総当たりでどばーっと出してくれます。
分析結果も見やすくシンプルで「何が起きたか」「なぜそれが起きたか」画面で確認し、「予測と改善」「相違点」画面で[もしも○○が○○だったら…]という観点で項目をとっかえひっかえして仮説を検証できます。
すごくないですか・・・!?
もし仮に、あなたが好きになった100人の異性がいるとして、その100人が全くなんの共通点もない、ということは普通に考えてあり得ないと思うんですよね。そこには傾向がある。
・・・つまりッ!
EinsteinDiscoveryは過去のデータをみて、かたよりを探しあて、未来を予測する…!!
人はッ!過去に縛られるッ!いつでも未来は過去からやってくるのだッ!!
…(*´Д`)ハァハァすみません取り乱しました。
2017年からEinsteinAnalyticsの進化の軌跡を追ってる私からしたら、まさかそんな方向に成長していくとは全く持って予想外だったわけですEinsteinAnalyticsくんよ。
CSVも取り込めるので、気になったデータをとりあえずEinsteinDiscoveryにぶっこんで、お手軽に解析できる。そんなことも可能です。
Einstein予測とは
これですね。
コードを記述せずに予測を Salesforce レコードにリリース (正式リリース)
2019年10月にリリースされた最新バージョン、Winter20で発表された機能です。
例えば商談レコードにて、過去の入力データを元に、「今の商談状況からしたら、金額はこれくらいじゃね?」と予測値と原因を返してくるのです!表示個所はSalesforce本体です、なのでEinsteinDiscoveryはエンジンのような役割をします。なかなかステキ機能に聞こえませんか??
こちらが、以前のバージョンでもApex書けばできたんです。それがNo-Codeでできるようになったんです!すげー。
ただ機能に差があって、↑の画像のオレンジの部分が実はコードありのEinstein予測です。左側=数値と右側=主な原因(テキストエリア)が項目で存在します。
一方、コードなしのEinstein予測は、オレンジの部分の左側の数値は出てきますが、右側の原因は出てこず、↑の写真でいうアインシュタインくんがよっって言ってる右上のコンポーネントで表現します。つまり、原因の部分だけがLightning限定機能になっている、というところが相違点でございます。
私コードは書けませんでですね、今回は検証も兼ねてコードなしのEinstein予測をやってみよう、そういう趣旨でございます。(以上前置き)
コードなしのEinstein予測をやってみた
ちなみにストーリーをつくるところまでは、Trailheadでわりと丁寧に説明してますのでそちらをご確認ください。(1万件のテストデータ付き)
Einstein Discovery でのインサイトの取得
で、今回はこのSalesforceヘルプを元に進めます。
SALESFORCE ヘルプ→ドキュメント→分析→結果の予測
なんと資料がこれしかないんですよね・・・!
解説動画もありません。Trailheadもありません。
というかそれが今回記事にしようと思った理由です。
届け・・・俺の想い・・・!
■手順①マニュアルを理解する
あくまで2019年12月段階の情報であることをご承知ください。
〇結果の予測
1 自動予測項目を使用した Einstein 予測の表示
2 Lightning ページへの Einstein 予測の追加
→これが今回試すコードなしのEinstein予測のことです。
3 Einstein 予測サービス
→REST APIで結果を外から呼び出すやり方です。
4 Apex での予測の取得
→Apexでの実装方法です。
5 カスタム項目を使用した Einstein 予測の表示 (高度)
→コードありのEinstein予測のやり方です。
情報元がマニュアルしかないのでしっかり読みます。
■手順②ストーリーを作成する。
今回は「商談のフェーズを最大化させる組み合わせ」というユースケースで進めます。「最大化させるもの」は数値である必要があるので、フェーズと連動する「確度(%)」という項目を使います。
※デモはEinsteinAnlytics専用のDeveloper環境を使っています。
ストーリーができました!とりあえず結果は微妙でしたがいったん無視してEinstein予測の作成に移ります。
「モデルをリリース」をクリックします。
基本的には次へ次へなんですが、↑の「項目の対応付け」が最大の関門です。普通にデータセットをつくると、参照先の項目名がOppotunity.Account.nameとかになってるので、正しい項目名を把握していないと大変苦労します。
↑こんな感じで自動的に項目が作られるので、その名前をここで決めます。
↑ここでデータの範囲を絞れます。なんとなくLostのデータを省いたのですが、よくよく考えたら確度が0%になるのでデータとしては邪魔どころか入れたほうがよかったなと後で思いました。。
↑ここは正直意味わからずに設定しました。
↑これでEinsteinDiscovery側の設定は終わりです。確かに簡単でした。では次はSalesforce側の設定です。
まず、項目アクセス許可は全部非表示になってます。(システム管理者さえも)参照権限をつけてあげましょう。そしてページレイアウトやビューに項目を出したら・・・
無事表示されてます!うおおおお!過去のデータを総合すると、20%でなくて21.62%なんですって!ほおー、へえーー!!
そうなると、当然なぜこの値なのか見たくなりますね。なのでコンポーネントに配置しましょう。
まずは権限。「Einstein Discoveryのおすすめを表示」が必要な権限です。
↑設定→編集ページより、左側中段の「Einstein Discovery 設定」を使い、右上設定画面の「予測」にさっき作ったやつを選ぶだけ!そうすると・・・
↑無事表示されました!!「上位の要素」でなぜその数値になったか、という理由、「これを改善する方法」でどうやったら確度があがる=フェーズが上がるか教えてくれてます!
・・・フェーズも原因となる項目にいれてしまったために、「フェーズ上げたら確度上がるよ」と当たり前の提案が出てきてしまいました・・・気をつけよ。
で、取引先種別(Account.type)がスコアがあがってる原因だよということで、これを違う値に変えてみました。
おおー!変わった!!変わりました。21.62%→18.85%へ。Einsteinさん曰くのところに!出てる!
一方項目のほうは21.62のままです。これは反映タイミングが通常とは違いそうです。(後述)
ともあれ、やりたかったことは無事完了しました。
仕様の注意点
●自動作成されたEinstein予測項目の数値反映タイミングのクセがすごい
→予測の判断の元となるデータが更新されただけでは、実は項目には反映されません。その後、商談のどこかのデータに変更があったタイミングで反映されます。何も変更がないカラ更新では反映されない点も注意が必要です。
なので、商談でデータ変更(1回目)→商談でデータ変更(2回目)→この時点ではEinstein予測項目は1回目のデータ変更が反映されます。その後予測項目と関連しない何かの項目を編集すると2回目の変更が反映されます。
●LightningコンポーネントはEinsteinDiscoveryのライセンスが必要
→Lightningコンポーネントの表示は常にリアルタイムで反映されます。これはありがたいんですがライセンスがいるんですね・・・Oh
具体的には「 Einstein Discovery のおすすめの表示」という権限セットがいりますが、ライセンス割り振っていないと設定できない項目になります。Einstein予測項目はライセンスなくてもいけるのにな・・・
あとがき
本機能について、私としては取引先の項目や商談の項目を現場の営業さんが、埋めていく事が楽しくなるような機能だったらいいなと思っていました。
取引先にお客様の属性を埋めたり、商談のBANT的な情報に値を埋めれば確度が上がる。さらには「次はお客様にデモ商談をすれば確度があがるよ」とか、「現在お客様が使っているサービスを聞けばいいよ」とか、ネクストアクションを示唆できるようになれば最高ですよね!もうちょっときめ細やかに設定すればできそうな感触をつかめたのは成果でした。
仕様の注意点が想定と違っていた(非ライセンス保持者でも見れてほしかった)ので、次はコードありEinstein予測項目にチャレンジしてみます・・・こっちは理論上は非ライセンス保持者でも見れそう。コードなしの仕様変更を期待しつつ!ですが。
ただ、ライセンス保持者が中心に見るような使い方では全然ありだと思いました!
今日の研究成果も踏まえ、 2020/1/25に渋谷で開催されるJapanDreamin`2020にて「
ホントのとこどうなの?〜EinsteinAnalyticsの知られざる実態〜」というセッションを持たせていただくことになりました!昼前の20分のセッションなので、EinseteinAnalyticsに興味を持たれた方はぜひお越しください!
最後にEinsteinAnalytics使いが広まってほしいという願いの元に、初心者向けTrailmixを作ったので興味を持たれた方はぜひチャレンジしてみてください!
最後まで読んでいただいてありがとうございました!