Salesforce ID、略してSFIDはSalesforceの一つの環境内で各レコードを一意に特定するためのキーです。
この記事では、Salesforce IDの基本概念と、15桁と18桁のSFIDの違いや注意点、そして15桁のIDを18桁に変換する方法について詳しく解説します。
Salesforce ID(SFID)とは
Salesforce IDとは、レコードが作成された時に自動的に生成されるIDです。
英数字15桁または18桁で構成され、1つのSalesforce環境内には同じIDが存在しない、一意のIDとなります。
つまり、Salesforce IDさえあれば、オブジェクトや個別のレコードを特定することが可能です。
活用シーンとしては、主にデータインポートの際に使用することが多いです。例えば、SFID入りのレポートをCSVでエクスポートして、SFID以外の各種データを手元で編集し、再度SFIDをキーにSalesforceにアップして一括更新する、という使い方があります。
Salesforce IDからオブジェクトを特定する方法
Salesforce IDの頭文字3桁はオブジェクト単位で固定になっています。
例えばこちらは取引先のSalesforce IDです。
0012w00001MX2wwAAD
頭3桁の「001」が固定でオブジェクトを表していますので、どの取引先レコードを開いても頭の3桁は「001」です。
活用シーンとしては、フローで「取得したレコードが取引先だったら」という条件を設定したい場合に、「SFIDが001から始まる」という条件を設定すると実現できたりします。
Salesforce IDを確認する方法
Salesforce IDを確認するためには、URLを見ます。なんでも構いませんのでレコードを開くと、18桁のIDが表示されていることがわかります。これはケースや商談などのレコードのほか、レコードタイプIDなどをフローで使用したい際にも同様の方法でSalesforce IDを取得できます。
これは補足ですが、Salesforce IDはSalesforce環境内の一意のIDなので、例えば商談レコードを開いているときにURLにケースのSalesforce IDをコピペで張り付けてEnterを押すと、ケースのレコードに飛ぶことが出来ます。具体的には、下図緑線のlightning.force.com/のあとにSFIDを入力します。
Salesforce ID(SFID)15桁と18桁の違い
Salesforce ID(SFID)15桁と18桁は、どちらも一つのSalesforce環境の中で一意のIDであるという点で違いはありません。
下図の商談のSFIDは「0062w00000KIcq1AAD」ですが、
レポートで同じレコードを確認すると「0062w00000KIcq1」と表示されます。つまり、後ろの3桁が切り上げられて15桁になっています。Salesforce上では、どちらのIDを指定しても同じレコードが表示されます。
気を付けなくてはならないのは、Salesforceは大文字と小文字を区別するシステムなのですが、Salesforce以外のシステムは大文字と小文字を区別しない場合があるということです。
例えば、Excel上でSFIDをキーにしてvlookupで突合するシーンがよくあります。その時、15桁のSFIDで突合をすると、全然関係ないレコードと突合されてしまい、うまくいかない場合があるのです。
なぜこのようなことが起こるかというと、Excelは大文字・小文字を区別しないシステムだからです。
15桁のSFIDは大文字・小文字を区別する前提で作られており、18桁のSFIDは大文字・小文字を区別しないシステム上であっても機能するように作られています。
15桁のSFID:0062w00000KIcq1は、以下のそれぞれの場合、Salesforce上では別物として扱われますが、Excel上では大文字・小文字を区別しないので同じレコードとして扱われてしまいます。
・0062w00000KIcq1
・0062w00000KIcQ1
18桁で表記しておけば、Excel上であっても一意のIDとして機能します。
・0062w00000KIcq1AAD
ただし、Salesforceは大文字・小文字を区別するシステムなので、Salesforce上では18桁であっても例えば以下の2つは別物として扱われます。
・0062w00000KIcq1AAD
・0062w00000KIcq1aAD
15桁のSFIDをただ単にExcelに落としてほかの列を加工してSalesforceに戻すだけであればこのような考慮は不要なのですが、SFIDを使用してExcel上で突合する場合には必ず18桁を使用する、ということを覚えておきましょう。
Salesforce ID(SFID)15桁を18桁に変換するCASESAFEID
Salesforceのシステム管理者の日常業務として、データの突合は日々発生します。私は15桁で出力して、あとから18桁にしておけばよかった…という事態になるのが面倒なので、最初から必ず18桁で出力するようにしています。
レポートからExcelでエクスポートする際に、標準で用意されているID項目は15桁しかありません。レポートに18桁のSFIDを表示するためには数式をカスタムで作成します。
ここで使用する数式はCASESAFEIDというものです。作り方は以下の通りです。
オブジェクトマネージャーからオブジェクトを選択します。サイドメニューから項目とリレーションを選択します。データ型は数式を選択します。
カスタム項目の名称を定義し、数式の戻り値のデータ型はテキストを選択します。SFIDは英数字で生成されるテキストだからです。
CASESAFEIDを選択して挿入します。CASESAFEID(id)という数式がセットされますが、(id)部分は変えなくて大丈夫です。下図の状態で18桁のSFIDが戻り値として表示されます。あとはこの項目をレポートの列に表示してエクスポートすればOKです。
まとめ
この記事を通じて、Salesforce ID(SFID)の基本的な概念や、15桁と18桁のSFIDの違いを明確にし、どのようにして15桁のIDを18桁に変換するかを解説しました。これにより、Excel上でのデータ突合やAPIを使用した開発時にIDの不一致による問題を避けることが出来ます。Salesforceを使用する上で、これらの知識はデータの一貫性と精度を保つために不可欠なものとなります。