😸

【ゼロからのSalesforce#1】

に公開

皆さん、こんにちは。アクセンチュアの北海道オフィス(AIH)所属の王 煦(オウク)です。

最近、ゼロからSalesforceの勉強を始めました。最初は知らない単語や概念が多くて、戸惑ったりしていましたが、AIを活用したり、実際に手を動かして試行錯誤をしたりすることで、少しずつ地図を拡大してきた気がします。

本記事は、全くの初心者の視点から、Salesforceについて探検する記録のようなものです。同じように「どこから手を付ければいいの?」という悩みをお持ちの方にお役に立てれば幸いです。

1. Org(組織)とは

最初、会社のメールアドレスでいくつかのプラットフォームにサインアップしたり、ユーザー名を含めたメールが届いたりしたのですが、いったいどのような関係性があるのかについて混乱していました。そこで、まず「Org(組織)」というSalesforceにおける重要な概念を紹介しておきたいと思います。Org(組織)とは、Salesforceが提供する一つ一つ、お互いに独立した環境のことである。メールアドレスで作るDeveloper Edition(DE)は個人専用のOrg(無料)であり、よく耳にする「本番環境(Production)」ももちろん一つのOrgである。

さて、「Org(組織)」という概念を軸に、以下のようにまとめてみました。

Salesforce DE

Orgの一種である。個人用の実験環境であるため、自由に試行錯誤できる。

メールアドレスでサインアップすると、自動的にユーザー名(実際には存在しないメールアドレス形式で、Salesforce上で一意となる)が発行される。このユーザー名でログインすることで、自分専用のDE環境にアクセスできる。

また、同じメールアドレスを使っても、異なるユーザー名=異なるDEを複数作成することが可能である。

Trailhead playground

Trailheadとは、Salesforce公式の学習プラットフォームで、①のサインアップしたメールアドレスを使ってTrailheadアカウントを作成できる。モジュールの課題などで実際に手を動かして操作が必要になったとき、「Launch(起動)」ボタンを押すと、Playgroundという自分専用の練習環境が自動的に作成される。

Playgroundは本質的に、①のDEである。唯一の違いは、①のDEはTrailheadとお互いに独立しており、②のPlaygroundはTrailheadに強く連携している点である。

補足:Trailheadで①で作ったDEを使いたいという場合、Trailheadアカウントの「ハンズオン組織」機能で、DEをTrailheadアカウントと紐づけることができる。

Sandbox

Orgの一種である。Sandboxは、⑤の本番環境(Production)の設定をクローンした、「開発チーム用の実験・検証用」の環境である。よく見られるのは、Develop Sandbox、Developer Pro Sandbox、Partial Copy Sandbox、Full Sandboxなどがあります。

本番(Production)

Orgの一種である。実際の業務データや顧客情報を運用する環境である。本番環境への直接変更・操作は、リスクを最小限に抑えるべきである。

Partner Community

Partner Community自体はOrgではないが、Orgが一戸建てだとすれば、Communityは家のオーナーである会社Aが外部の顧客やパートナーを招待するために用意した「専用の部屋」のようなものである。

AppExchange

Orgではなく、「Salesforce版のApp StoreやGoogle Play」のような存在である。標準機能でカバーできない業務ニーズや、より便利な機能をすぐに追加したい時、AppExchangeで検索し、ワンクリックで自分のOrgにインストールすることができる。

2.CRMとSalesforceCRMの位置づけについて

本章では、CRMとは何なのか、どのような場面で活用されるのか、また、CRMマーケットにおいてSalesforce CRMはどのような位置づけをしているかについて簡単にまとめてみました。

2.1 CRMとは

CRMとは、顧客情報を一元管理して営業活動やマーケティング、カスタマーサポートなどの顧客関連業務を最適化するシステムです。企業が顧客との関係を強化し、売上向上や業務効率化を実現するために活用されます。

2.2 CRMの目的

・顧客情報の一元管理
 顧客の基本情報や過去の取引履歴、連絡先などを一元保存・管理できる。

・営業プロセスの管理
見込み客の獲得から案件の進捗管理など、営業の各段階をシステム上で可視化・追跡できる。また、見込み客の自動割り当てやリマインダー機能で営業チャンスの抜け漏れなどを防げます。

・マーケティング効果の向上
 顧客をセグメント分けしてメール配信を行ったり、イベントやキャンペーンを管理したり、数値化することでマーケティング活動の効果測定も可能になります。

・カスタマーサポート・アフターサービス支援
 顧客からの問い合わせやクレーム、アフターサポートを一元的に受け付けることが可能になります。ケースの割り振りや対応状況の追跡など、迅速な対応を実現できます。

・データ分析・意思決定のサポート
 営業のKPI、顧客の粘着度、サポートに対する満足度などに対して、レポートを自動で作成可能です。客観的なデータを提供することで経営層の意思決定をサポートできます。

2.3 CRMの背景と発展

・黎明期(1980年代)
 ほとんどの企業は紙の台帳やExcelなどを使って顧客情報の管理を行っていたため、情報の管理や活用が難しい時代でした。

・ソフトウェア化の始まり(1990年代)
 SiebelやSAPなど、CRM専用のソフトウェアが登場。しかし、多くは自社サーバーへのインストール型で、導入コストや運用のハードルが高く、大企業が中心でした。

・クラウドへの転換(2000年代)
 Salesforceなどの企業がSaaS(クラウド型サービス)型のCRMを提供し始めたことで、自社でサーバーを持たなくても手軽に利用できるようになり、中小企業にも普及が進みました。

・インテリジェント化・エコシステム化(2010年代以降)
 AIやビッグデータ分析、ワークフロー自動化、モバイル対応など、CRMの多機能化が進んでいます。さらにAPIやアプリマーケットとの連携により、他のシステムや外部サービスとも柔軟に統合できるようになり、企業のデジタル化の中心的存在となっています。

2.4 Salesforceの位置づけと強み

周知のように、CRMマーケットでは、SalesforceCRMは圧倒的な存在感を有します。ここでは、他のCRMと比較した際の、Salesforceの位置づけと強みについて整理します。

・クラウド型CRMのNO.1
 Salesforceは「クラウドCRM」というコンセプトを業界に先駆けて打ち出し、現在も世界シェアNo.1を誇るリーディングカンパニーです。大企業から中小企業まで、業界や規模を問わず幅広く利用されています。

・クラウドネイティブで手軽に利用開始
 自社でサーバーを構築する必要がなく、アカウント登録だけでブラウザからすぐに利用開始できます。ITコストや導入ハードルを大幅に下げることが可能です。

・高いカスタマイズ性と拡張性
 ノーコード、ローコードでの画面や業務プロセスのカスタマイズが可能なうえ、Apexと呼ばれる独自言語による高度な開発にも対応しています。さまざまなビジネスニーズに柔軟に応えられます。

・自動化処理が強い
 ワークフロー、プロセスビルダー、Lightning Flowなどの強力な自動化ツールを内蔵しています。さらにAI(Einstein)による予測分析や提案機能も進化し続けています。

・オープンなエコシステムと連携性
 第一章でも軽く触れたように、世界最大規模の企業向けアプリマーケット「AppExchange」を運営し、数多くのサードパーティアプリや外部システムとの連携が可能。APIも豊富で拡張性が高いのが特徴です。

・厳しいセキュリティと権限管理体系
 組織・オブジェクト・項目・レコード単位での多層的な権限設定が可能になります。高い安全性と法令順守に対応できます。

・継続的なイノベーションとグローバル展開
 年数回にわたる大規模アップデートにより、常に最新機能を提供しています。全世界での導入実績・ノウハウも非常に豊富です。

3.SalesforceCRMの仕組みと基礎概念について

第三章では、Salesforce初心者がよく出会う複数の概念について紹介していきたいと思います。

3.1 オブジェクト(Object)

オブジェクトとは、会社Aの業務データを管理する最小単位です。イメージとしては、「テーブル」のようなものです。
社内の様々な業務を支援するために、特定の業務分野(例:営業)でよく使われるオブジェクトを集め、一つの入り口として提供するのがApp(例:セールスApp)です。

オブジェクトは、主に以下2つの種類があります。

オブジェクトの種類 由来 具体例
①標準オブジェクト
(Standard Object)
システムに元々あるもの。タブとして表示できる。 Account、Contact、Lead...
②カスタムオブジェクト
(Custom Object)
開発者が業務要件に応じて新規作成するもの。
API名は通常、__ cで終わるのが特徴。
Project__c、invoice_c...

補足1:

システムに元々あるものとして存在しているが、タブとして表示されないようなオブジェクトもあります。具体例としては、User、Profileなどが挙げられます。

補足2:

Salesforceで「多対多」の関係を実現するためには、「誰と誰が紐づいているか」を記録する専用のオブジェクトが必要となります。これを「連結オブジェクト」と言います。
具体例としては、以下のようなものが挙げられます。

  • Campaign Influence(Opportunity ↔ Campaignの多対多関係)
  • Case Contact Role(Case ↔ Contactの多対多関係)
  • Opportunity Contact Role(Opportunity ↔ Contactの多対多関係)

連結オブジェクトは基本、タブとして直接表示されません(通常、ユーザーがそれを一覧で確認する必要がないため) 。
どのような連結オブジェクトが存在するかについては、Page Layoutの「関連リスト(Related List)」で確認できます。必要に応じて、それらを追加することで、ユーザーが初めて、その連結オブジェクトに関わるオブジェクトの詳細画面から参照・編集できるようになります。

3.1.1 オブジェクトとAppの関係性(Relationship between objects & Apps)

Q:じゃあ、あるオブジェクトが、特定のAppに所属していると理解していもいい?例えば、Accountというオブジェクトが、SalesというAppに所属すると考えても大丈夫?
A:正確に言えば、オブジェクトはOrg自体に所属しており、Appとはお互いに独立に存在しているんだけど、複数のAppで「引用」されることは可能である。例えば、Accountは、Sales App とService App同時に引用される(タブとして表示される)ことは可能である。

3.1.2 項目タイプ(Field Type)& オブジェクト間のリレーション(Relationships between Objects)

Salesforceで項目を作るとき(Object Manager--Object--Fields&Relationships)、項目タイプは大まか以下3つに分かれている。

項目タイプ 具体例
A. 基本データ型項目
(Standard Field Types)
- テキスト(Text)
- ロングテキストエリア(Long Text Area)
- 数値(Number)
- 通貨(Currency)
- 選択リスト(Picklist)
- チェックボックス(Checkbox)
-数式項目(Fomula)
-積み上げ集計項目(Roll-Up Summary)
etc.
B. リレーション型項目
(Relationship Fields)
- 参照関係項目(Lookup Relationship)
- 主従関係項目(Master-Detail Relationship)
C. その他
(Other)
- 外部参照関係項目(External Lookup)
- 階層型関係項目(Hierarchical Relationship)

オブジェクト間の関係は、本質的には項目を追加することで実現されるようなものです。つまり、あるオブジェクトに表のBタイプの項目(リレーション型項目)を追加すれば、それに応じて、オブジェクト間のリレーションも構築できるわけです。

Salesforceにおけるオブジェクトのリレーションは、本質的には「主従関係(Master-Detail Relationship)」と「参照関係(Lookup Relationship)」の2種類だけ、と言えます。

主従関係(Master-Detail) 参照関係(Lookup)
依存度 強い依存関係(親が削除されると子も必ず削除される) 子は独立して存在できる
権限 親レコードによって制御される 個別に権限を割り当て可能
積み上げ集計項目 利用可能 利用不可
数量制限 1つのオブジェクトは最大2つの親を持てる 最大40個

Tip:オブジェクト間のリレーションを鳥瞰して把握したい場合はSchema Builderというツールを使うのがおすすめです。

3.1.3 数式項目(Fomula Field)

数式項目(Formula Field)は、自動的に計算される、read only(読み取り専用)の項目です。実際のデータを保存するわけでなく、鏡のように他の項目の値をリアルタイムで反映させるようなものです。

Salesforceがおすすめする標準的なやり方は次の通りです:

  1. 1つの主従項目または参照項目を作成し、オブジェクトAとオブジェクトBをつなぐ。
  2. (業務要件に応じて)複数の数式項目を作成し、クロスオブジェクトでデータをリアルタイムで表示させる。

具体的な手順:

  1. まず、オブジェクトAとオブジェクトBの間に参照関係が成立していることを確認します。

  2. 「Object Manager」→「オブジェクトA」→「Fields & Relationships」→「新規作成」→「数式項目(Formula Field)」を選択し、戻り値を指定します。すると自動的に数式エディタ(Formula Editor)が開きます。

補足:数式エディタの主なボタンと使い方:

ボタン 機能
Insert Field 項目を挿入する
Insert Operator( 演算子を挿入する
Functions 関数を挿入する

例を一つ挙げましょう。
オブジェクトA(学生の情報)とオブジェクトB(学校の情報)があるとします。
オブジェクトAに、オブジェクトBにある「学校名」という項目を参照項目として追加し、「所属」と名付けることで、AとBの間に参照関係を作りました。
オブジェクトAでオブジェクトBの更なる情報(クロスオブジェクトの情報。例えば、「電話番号」「在籍人数」など)をもオブジェクトAで表示させたい場合、Aに数式項目を作成すれば、オブジェクトBの情報をAでリアルタイムで参照・表示できるようになります。

Insert Field(項目を挿入)→オブジェクトAにおける参照項目(「所属」)を確定→参照項目によって、オブジェクトBにたどり着く→オブジェクトBにある「電話番号」と「在籍人数」の項目を選択→オブジェクトAの数式項目として新規作成。最終的には、オブジェクトAにおいて、二つの鏡(数式項目)が作成され、それらがリアルタイムでオブジェクトBの「電話番号」と「在籍人数」のデータを反映できるようになります。

3.1.4 积み上げ集計項目(Roll-Up Summary Field)

知っておくべき項目タイプの一つです。主従関係でのみ使用可能であり、参照関係では利用できません。

主な役割:
親オブジェクト側で、すべての子オブジェクトのレコードを自動的に集計・計算・表示できます。

自動集計の方法:

  • 件数(Count)
  • 合計(SUM)
  • 最大値/最小値(MAX/MIN)

具体的な操作手順:
親オブジェクトで「積み上げ集計項目」を新規作成し、集計方法(件数、合計、最大値、最小値など)を選択し、子オブジェクトの項目(例:金額など)を指定すれば、 システムが自動で集計し表示してくれます。手動のメンテナンスは不要です。

3.1.5 選択リスト(PickList)

知っておくべき項目タイプの一つです。選択リストを作成する際、値(values)の入力方法として通常2つの選択肢があります。

  1. Enter values, with each value separated by a new line(各値を改行区切りで入力)
    この方法は、特定のオブジェクト(例:Account)で選択リストを使いたいという場合に適しています。他のオブジェクトで同じ選択リスト(及びその値)を使う必要がなければ、ここで値を入力してOKです。このような値を「ローカル値セット(Local Value Set)」と呼びます。

  2. Use global picklist value set(グローバル値セットを使用)
     複数のオブジェクト・複数の選択リストで同一の値セットを使いたい場合、「Global picklist value set(グローバル値セット)」を作成して参照するのが便利です。
     まず、「Picklist Value Sets」を検索し、グローバル値セットを作成する。次に、他の選択リストを作成し、グローバル値セットを参照すればOKです。
     
     メンテナンスの際は、グローバル値セットだけを修正すれば、それを参照している全ての選択リストが自動的に同期されます。

具体例:
ベーカリーを経営しているとする。複数のオブジェクト(「パン」や「ケーキ」など)で「原材料」という値セットを使いたい場合。最も便利でメンテナンスしやすい方法は、「小麦粉・卵・牛乳・生クリーム・砂糖」などの値を含むグローバル値セットを新規作成し、それぞれのオブジェクトでそれぞれの選択リストに参照してもらうことです。

補足:
既に特定のオブジェクトで選択リストを作ってあるとする。
これからほかのオブジェクトで同じ値セットを使いたい、と思った場合は、Picklist Value Setsでグローバル値セットを作る必要はありません。
その既存の選択リストの編集画面から「Promote to Global Value Set(グローバル値セットへの昇格)」ボタンを押すだけで、既存の値セットをそのままグローバル値セットに変換できます。

Accenture Japan (有志)

Discussion