見出し画像

はじめての Salesforce【エンジニア向け】

社内の基幹システムを Salesforce に統合することになったので、業務で得られた知見を Salesforce 初心者向けにアウトプットします。

Salesforce とは

Salesforce は、ローコードツールのひとつで、プログラマでなくてもWebアプリケーションが作れるというものです。
世界でもっとも売れているクラウド型のSFA/CRM(営業支援・顧客管理)プラットフォームとなります。
提供するのは米セールスフォース・ドットコム社で、B2B最大手のSaaS企業。若い企業ですが時価総額はトヨタ自動車を超えます。Herokuを傘下に収め、先日、Slackを約3兆円で買収することでも話題になりました。
Microsoft365にAzure、AWS等、他のプラットフォームにもサービスコネクタ(連携API)が豊富に用意されており、アプリケーションエンジニア(AE)でなくても名前くらいは聞いたことがあると思います。

エンジニアからみた Salesforce

エンジニアなら開発言語は気になるところです。
Javaを易しくしたようなApex、そして、SQLとORMを足したようなSOQLという専用言語を使うらしいです。ユーザーインターフェースはVisualforceというHTML類似のマークアップ言語で定義します。いずれも、標準のカスタマイズでは実現できない要件に限り用いることになりますが、フロントエンドエンジニアならその専門領域を存分に発揮できると思います。

Apexはサーバサイドのプログラムで、Visualforceと合わせることで Servlet/JSP ライクに使うことができます。

Apexコード例

class Example {
   public String greet() {
       return 'Hello, world !';
   }
}

Visualforceコード例

<apex:page>
   <h1>Example</h1>
   <p>
       <apex:outputText value="{! 'Hello, world !' }"/>
   </p>
</apex:page>

JavaScript を含められるので、React や Vue.js を載せることもできますが、Lightning Component フレームワークを使うのが Salesforce 的には推奨のようです。

開発環境はブラウザ内で完結しますが、Salesforce CLI を使うと、Visual Studio Code と連携できます。

作成したアドオンやコンポーネント、ビジネスアプリケーションは、Salesforce が提供する企業向けアプリマーケット AppExchange で公開(販売)できます。

Salesforce を構成する主なプロダクト

Salesforce の利用料金は、プロダクトとエディション、サポートプランによって決まります。
主なプロダクトは次の通りです。

Sales Cloud
SFAに特化。営業・マーケティングを主な対象業務とします。
商談管理、Chatter(チャター)と呼ばれる社内SNS、レポート作成、ダッシュボード機能があります。

Service Cloud
カスタマーサポートに特化。コンタクトセンター・カスタマーサービス・フィールドサービスを主な対象業務とします。
サービス契約、ナレッジ、チャット機能があります。

営業の最前線に Sales Cloud、アフターサポートに Service Cloud という棲み分けですが、近年はその差が曖昧になってきているようです。

Salesforce Platform(Lightning Platform)
Salesforce から、上記 Sales Cloud、Service Cloud の機能を除いたものです。以前は Force.com と呼ばれていました。
つまり、ローコードで独自アプリケーションを開発できるPaaS環境です。
CRMオブジェクト(テーブル)は無いですが、独自のカスタムオブジェクトを作成できます。
コストを抑えて小さく始めたいプロジェクトに向いています。

Experience Cloud(Community Cloud)
企業やユーザ同士のコミュニティサイト、FAQの機能を提供します。
このようなサイトを運営する場合は、ゲストユーザのアクセス権限を適切に設定することが肝要です。
設定を誤ると、企業・個人情報流出にもなりかねません。

略語

コミュニティなどの書き言葉では次の略語が一般的でした。
他にもあるかもしれません。

SF ▶ Salesforce
VF ▶ Visualforce
LEX ▶ Lightning Experience
SFDC ▶ セールスフォース・ドットコム

学習方法

まずは Trailhead から始めるのが良いと思います。

Trailhead
Salesforce が提供する無償のオンライン学習プログラムです。
お題クリアでポイントやバッジ獲得! ゲーム感覚で楽しく学べるよう工夫されています。
ランクがあり、スキルの証明にも使えます。

Trailmix
誰もが作成できる学習コンテンツのコレクション、カスタムカリキュラムです。

取り敢えず次がオススメです。

まずはやるべき Trailhead:簡単カスタマイズ編
Salesforceの開発をはじめる

Trailblazer
ユーザーコミュニティです。

次のグループがオススメです。グループ名で検索し、参加すると良いです。

・質問広場~初心者から上級者まで~ 日本
・Japan Trailhead (日本)

活発かつ紳士的な交流が行われています。

trailblazerとは先駆者という意味ですが、セールスフォース・ドットコム創業者で会長兼CEOのマーク・ベニオフ氏による同名の本もあります。

本の内容については、中田敦彦のYouTube大学でもザックリ解説してくれています。これはこれで面白いのでオススメです。

もくもく会
オンラインだけではモチベーションが保てないって人には、もくもく会のオフラインイベントに足を運んでみるのがオススメです。

Salesforce の認定資格

Salesforce 認定資格は、基本資格と上位資格で構成され、基本資格に合格すると上位資格を受験できます。
試験区分は多岐に渡りますが、エンジニアなら、開発者/アーキテクトに分類される試験が候補になると思います。
どの試験も実務経験がないと合格するのは難しいと言われています。合格率は非公開で、受験料は20,000円から。

本記事の開発環境

画像1

プロダクトとエディションは、

が分かり易かったです。

標準オブジェクトとカスタムオブジェクト

標準オブジェクトは、Salesforce組織がデフォルトで持っているオブジェクトです。取引先、取引先責任者、商談などはすべて標準オブジェクトになります。
カスタムオブジェクトは、ユーザが作成するもので、会社や業種固有の情報を保存するオブジェクトです。

オブジェクトは、オブジェクトマネージャやスキーマビルダーで確認できますが、非表示のオブジェクトもあります。すべての標準オブジェクトは、SOAP API 開発者ガイドで確認できます。

公式サイトのER図を簡略化(概念データモデルへの置き換え)してみました。

画像2

各オブジェクトの用途は、

が分かり易かったです。

オブジェクトを作ると、対応するバリデーション付き入力フォーム(CRUD操作画面)やレポートの標準形を自動で作ってくれます。超簡単!

アクセス権限や共有ルールの制約を考慮すると、最低限の設計、つまり、業務フロー図とER図くらいは真面目に書いておかないと厳しいと感じました。

なお、独自項目の表現方法として、標準オブジェクトにカスタム項目を追加する方法、カスタムオブジェクトから標準オブジェクトにリレーションを張る方法とがありますが、後者は複雑になり易いので、基本、前者で作るらしいです(業務にも因るでしょうけども)。

アカウントを作成してみよう

1つのアカウントを複数のユーザで使い回すことは禁止されています。
システム管理者アカウントでログインし、自分専用のアカウントを用意しましょう。

1. 歯車のアイコンから [設定] をクリック。

画像3

2. 管理 ▶ ユーザ ▶ 新規ユーザ をクリック。(クイック検索に「ユーザ」と入力しても良い)

画像4

3. 必要情報を入力。
ユーザ名は、メールアドレスの形式にする必要がありますが、実際のメールアドレスでなくても構いません。
メールアドレスが全ての Salesforce 組織内でユニークなら、そのメールアドレスを使用できます。
ユーザライセンスによって、そのユーザで利用可能なプロファイルが決まります。
最初は、Salesforceユーザライセンス + システム管理者プロファイルで良いと思います。

画像5

結言

エンジニアであれば、Trailhead をひと通りこなすだけでも十分に理解できそうです。