1. はじめに
こんにちは!この記事をご覧いただきありがとうございます。devKuma と申します。主にWeb系のサービスを担当するエンジニアとして、これまで十数年ほど働いてきました。
そこで、実は、私も最近Salesforceの学習を始めたばかりの入門者です。
入門者でありながら、Salesforceと早く仲良くなりたい! という気持ちで日々学んでいます。そして、学習をより深めるために、「自分が学んだことや経験したことを他の人に説明する」という、最も効果的な学習方法を実践してみようと思いました。そこで、みんさんが多く愛用されているQiitaを通じて、同じようにSalesforceを学ぶ皆さんと一緒に成長していけたらと思っています。
私の場合、Salesforceについて調べ始めると、慣れている言葉は多いけど、Salesforceはその上に“独自の概念”が多いということです。例えば、「オブジェクト」「Apex」「Lightning」「Flow」など、似たような用語でも指している意味や仕組みが全く異なり、最初は「結局どこから触ればいいの?」と戸惑う場面が多々ありました。
そのため、この記事は、何かを“教える”ためのものではなく、私自身が「最初にこれを知っておけばよかった!」と感じたことを、入門者の目線で整理・共有するために書いています。
この記事が、同じようにSalesforceを学び始めた皆さん、
そして私自身にとっても、少しでも学習の道しるべとなれば嬉しいです。
この記事で一緒に確認したいこと
- Salesforceって結局なにがすごいの?
- 難しそうな「基本用語」の私なりの理解
- 私も実践中!おすすめの学習ステップ
- 「管理者」と「開発者」ってどう違うの?
2. Salesforceとは? 〜私たちが学ぼうとしているもの〜
まず、「Salesforceって何?」というところからですが、調べてみると「世界No.1のCRM(顧客関係管理)プラットフォーム」と説明されています。
CRM(顧客関係管理)って何?
これは、企業がお客様との関係(営業活動、問い合わせ履歴など)を管理するための考え方やツールのことのようです。
「A社にいつ訪問したか」「Bさんからどんな問い合わせがあったか」といった情報を一元管理して、お客様に最適な対応をするために使われます。
Salesforceの主要な製品(クラウド)
Salesforceは、このCRMを実現するために、いろんな部門向けの製品(クラウド)を提供しているようです。
- Sales Cloud(営業支援)
- Service Cloud(カスタマーサービス)
- Marketing Cloud(マーケティング)
これらがメインのようですが、他にもたくさんあるみたいです。(正直、まだ全部覚えきれていません…!)
Salesforceの強み:PaaSとしての側面
学習を進める中で「Salesforceのすごさはここか!」と感じたのは、単なるSaaS(完成品のアプリ)ではなく、PaaS(開発・実行環境の基盤)でもある、という点です。
これはつまり、自社の業務に合わせて、機能をカスタマイズできるということで、私は開発者として、こちら関連の仕事をやることになるんだなと思いました。
-
高いカスタマイズ性:
- 会社のルールに合わせて入力項目を増やしたり、承認プロセスを自動化したりできる。
-
AppExchange:
- Salesforce版のApp Storeのようなもの。便利なアプリ(名刺管理とか)を追加できる。
-
強力な学習システム:
- これが一番心強いのですが、Trailheadという素晴らしい無料学習環境があり、世界中に学習仲間や先輩がたくさんいます。
3. まずはこれだけ!Salesforceの重要基本用語
開発者のビューで、まず押さえるべきは、Salesforceのデータ構造と一般的なRDB(リレーショナルデータベース)との用語の違いです。
Salesforceは独自のデータベースを持っており、その呼び方が独特です。私も最初は戸惑いましたが、以下のようにRDB用語と対比させると理解しやすかったです。
1. オブジェクト (Object)
-
RDBでいう「テーブル (Table)」です。
-
データを格納する「型」や「定義」そのものを指します。
-
開発者がコード(ApexやSOQL)で扱う際は、このオブジェクトの**「API参照名」**を使います。
-
標準オブジェクト (Standard Object)
- Salesforceが標準で用意しているテーブル。
- API参照名(コードで使う名前)はそのままです。
- 例:
Account(取引先),Contact(取引先責任者),Opportunity(商談),User(ユーザ)
-
カスタムオブジェクト (Custom Object)
- 開発者が独自に作成するテーブル。
- API参照名には必ずサフィックスとして
__cが付きます。(cは Custom の略です) - 例:
Project__c(プロジェクト管理),Employee__c(社員名簿)
2. 項目 (Field)
-
RDBでいう「カラム (Column)」です。
-
オブジェクト(テーブル)が持つデータ項目を定義します。
-
項目には厳密なデータ型(Text, Number, Date, Checkbox, Picklist, Lookup など)が定義されています。
-
標準項目 (Standard Field)
- 標準オブジェクトに最初からあるカラム。
- 例:
Id(全レコードに付与される一意のキー),Name,CreatedDate,OwnerId(所有者ID)
-
カスタム項目 (Custom Field)
- 開発者が独自に追加するカラム。
- こちらもAPI参照名には
__cが付きます。 - 例:
ProjectCode__c,StartDate__c,Status__c(選択リスト)
3. レコード (Record)
- RDBでいう「行 (Row)」です。
- オブジェクトに格納される実データ1件1件を指します。
- Apex開発では、このレコード1件を
SObject型(例:Account型やProject__c型の変数)としてインスタンス化して扱います。
SOQLで理解する3つの関係
この3つの用語の関係は、Salesforceのクエリ言語である SOQL (Salesforce Object Query Language) を見ると一目瞭然です。
/*
* SELECT [項目 (Field)]
* FROM [オブジェクト (Object)]
* WHERE [レコード (Record) を絞り込む条件]
*/
SELECT
Id, Name, Industry, -- 標準項目
CustomField__c -- カスタム項目
FROM
Account -- 標準オブジェクト
WHERE
Industry = 'Technology'
LIMIT 10
4. リレーション (Relationship)
-
RDBでいう「外部キー (Foreign Key)」によるテーブル間の関連付けです。
-
これはSalesforce開発において非常に重要な概念で、主に2つの種類があります。
-
参照関係 (Lookup Relationship)
- ゆるやかな 1:N の関連付け。一般的なRDBのFKに近いです。
- 子オブジェクトの項目として、親オブジェクトの
Idを保持します(これが__cで終わるリレーション項目です)。 - 例: 「商談 (Opportunity)」が「取引先 (Account)」を参照する。
- SOQLでは
Opportunity.Account.Nameのようにドット記法で親の項目を辿れるのが特徴です。
-
主従関係 (Master-Detail Relationship)
- 強力な 1:N の関連付け。「親(Master)」と「子(Detail)」の関係です。
-
特徴(開発上重要):
- 「親」レコードが存在しないと「子」レコードは存在できません。
- 「親」が削除されると、「子」も自動でカスケード削除されます。
- 「子」の権限は「親」に連動します。
- ロールアップサマリー項目(子のレコードを集計(COUNT, SUMなど)した値を親に持たせる特殊な項目)が使えます。
私のような開発者は、この「オブジェクト」「項目」「リレーション」をどう設計するか(データモデリング)が、Salesforce開発の基礎であり最も重要な部分だと感じています。
4. Salesforce入門:最強の学習ステップ
SalesforceにはTrailheadという、公式の無料学習プラットフォームがあります。私も今、まさにこれで学習を進めています。
Step 1: 開発環境 (Developer Edition) を手に入れよう!
まずは、Salesforceを自由に触れる「練習環境」を手に入れる必要があります。
Salesforce Developer Edition と検索して、無料サインアップしましょう。私もこれで自分の環境を作りました。現時点では以下のリンクのようです。
Step 2: Trailhead を始めよう!
次に Trailhead と検索し、アカウントを作成します。
Trailheadは、学習サイトというよりゲームに近いです。
- モジュール(単元)をクリアすると「バッジ」がもらえる!
- バッジを集めると「ポイント」が貯まり、ランクが上がる!(モチベーションになります)
- 知識を学ぶだけでなく、実際に手を動かしながら学べる「ハンズオンChallenge」があるのが最高です。
Step 3: おすすめの入門モジュール
私もここから始めました。まずは以下のモジュールから挑戦してみるのがおすすめです。
5. あなたはどっち?「管理者」と「開発者」
Salesforce利用やプロジェクトにあたり多くの役割があると思いますが、まずは大きくこの二つになるかと思います。私は開発者の方ではありますが、管理者面もあわせで学習しています。
1. 管理者 (Administrator)
- 役割:コードを書かずに、クリック操作(「宣言的開発」と呼ぶそうです)でSalesforceを使いやすく設定・運用する人。
- 現場の「こうしたい」を機能に落とし込む、頼れる存在のようです。
- 学ぶこと:標準機能、オブジェクト設計、フローという自動化ツール、権限設定など。
- ポイント:開発者を目指す場合でも、まずはこの「管理者」の知識が必須と言われています。私もまずはここの勉強から集中しています。
2. 開発者 (Developer)
- 役割:コードを書いて、管理者機能だけでは実現できない、より複雑な要件や外部連携を実現する人。
-
学ぶこと:
- Apex:Javaに似たSalesforce独自のプログラミング言語。
- LWC (Lightning Web Components):モダンなUI(画面)を作る技術(JavaScript, HTML, CSSベース)。
6. (エンジニア向け)Salesforce開発の勘所
もし(私のように)開発経験がある方がSalesforce開発を学ぶ場合、いくつか「独特だな」と感じる点がありました。
-
「コードを書かない開発(宣言的開発)」が第一
- 他の開発だとすぐコードを書きがちですが、Salesforceではまず「フローでできないか?」を考える文化が強いようです。
-
ガバナ制限
- Salesforceはマルチテナント環境なので、1回の処理で使えるリソース(DBアクセス回数など)に厳しい制限があるとのこと。これは慣れるまで大変そうです…。
-
SOQL (Salesforce Object Query Language)
- SQLに似た独自のクエリ言語。
SELECT *が使えなかったり、JOINの書き方が独特だったりして、最初は戸惑いました。
- SQLに似た独自のクエリ言語。
7. 情報収集とコミュニティ
一人で学んでいると不安になりますが、Salesforceはコミュニティがとても活発なのが心強いです。
-
Trailblazer Community
- 公式のコミュニティ。質問すると世界中の先輩(Trailblazer=先駆者と呼ばれます)が答えてくれるそうです。(日本語グループもあります)
- コミュニテイにと説明と参加方法についてSalesforceコミュニティとは?参加方法やメリットを簡単解説から詳細を案内しています。
-
Qiita / Zenn
- まさにこの記事があるQiitaやZenn!「Salesforce」タグには、私のような入門者向けの記事から、マニアックな技術記事までたくさんあります。
- Qiita - Salesforce
- Zenn - Salesforce
8. おわりに
Salesforce、学び始めると本当に奥が深くて「できること」がめちゃくちゃ多いプラットフォームだと感じています。(正直、まだ全体像の入り口に立ったばかりですが…)
もし皆さんも私と同じように「どこからやろう…」と迷っていたら、まずは一緒に無料のDeveloper Editionを手に入れ、Trailheadで最初のバッジを1つ取ってみることから始めてみませんか?
私もまだまだ学習中です。この記事が少しでもお役に立てば嬉しいですし、ぜひ一緒に学習を頑張っていきましょう!ではみなさんこれからもよろしくお願いいたします!
以上devKumaでした。