Salesforceにデータを取り込む
公開日: 2021.06.16
この記事で学べること
- 別システムのデータをSalesforceに取り込む場合の考慮事項について知ることができます
Salesforceへデータを取り込む理由
皆様の会社では、業務でどんなシステムを使っていますか?
きっとSalesforce以外にもたくさんのアプリケーションを使っていると思います。
そして、日々の運用という観点では、それら別々のシステムに保存されているデータを取り出して、集計や報告をしなければならないということもあると思います。が、それって結構面倒ですよね?「もう少し楽にできないか?」と感じることもあるでしょう。そんな時に、「Salesforceにデータを(自動で)取り込めないか?」と考えるかもしれません!
そうです。Salesforceにデータを取り込めば、レポートやダッシュボード使って、手軽に集計や報告ができそうですね。
この記事では、「Salesforceにデータを取り込む場合の考慮事項」について、(自動化以外の)手動の方法も含めて概要をご紹介します。(データ量によっては、Salesforceではなく、CRM Analyticsなどにデータを取り込むほうが良い場合もあります)
まずは、Salesforceにデータを取り込むために用意されている方法を見てみましょう。
データインポートウィザード
データインポートウィザードを使用すると、あらかじめ用意したCSVファイルをアップロードし、取引先、取引先責任者、リード、キャンペーンメンバー、カスタムオブジェクトなどへ容易にデータをインポートできます。
(Database.com Edition以外の)すべてのエディションでご利用可能で、一度にインポートできるレコードの最大数は 5 万件です。
Salesforceの画面上から実行できるので最も簡単な方法となりますが、自動化はできません。
特徴は、取引先と取引先責任者を同時に(互いを関連付けた状態で)インポート出来る点です。
そのため、これからSalesforceにデータを投入して使い始めるお客様には、最適な機能です。
※データインポートウィザードで商談をインポートすることはできません。商談をインポートする場合はデータローダを使用します
データインポートウィザードについては、Excelの顧客データを取り込む(サクセスナビ)をご確認ください。
データローダ
データローダを使用すると、あらかじめ用意したCSVファイルを使用して(レコードのインポートのみでなく)更新や削除、エクスポートができます。
Enterprise Edition以上、もしくはDeveloper Edition、Database.com Editionでご利用可能で、一度に操作できるレコードの最大数は、5 百万件です。
データローダは(英語の)クライアントアプリケーションなので、PCにインストールが必要ですが、Windows端末をご利用の場合は自動化(バッチモード)もできます。
データローダは、データインポートウィザードでは対応していない(商談等の)オブジェクトにも使用できますが、複数のオブジェクトに対して一度に作業を行うことはできません。互いに関連しているデータをインポートする場合は、親 → 子の順番でインポートをしていきます。
また、データローダはAPIを消費しますので、上限を超過しないように注意が必要です。
詳細は、API 要求の制限と割り当てをご確認ください。
データローダの画面操作については、以下をご確認ください。
データローダのバッチモードについては、バッチモードでの実行 (Windows のみ)をご確認ください。
さて、ここまでは、Salesforceが標準で提供している機能(方法)についてご紹介しました。
データローダのバッチモードは、設定ファイルの編集やバッチファイルの起動など、Salesforceの設定だけでは完結しません。設定をする場合にはシステム管理者と協力して進めましょう。(もし、ご自身がSalesforceのシステム管理者の場合は、データローダを使用して連携したいシステムの管理者の方と協力しましょう)
これ以降は、外部システムから直接API(アプリケーション・プログラミング・インタフェース)を呼び出す方法をご紹介します。
「自分にはAPIを呼び出すなどのスキルが無い・・・」というシステム管理者の方も、ご安心ください。AppExchangeでパートナー企業を探すこともできます!
Salesforce API
APIを使用して開発をすれば、ほぼ何でもできます!(しかし、これは、言いすぎかもしれません・・・)
この記事では、外部システムのデータをSalesforceに定期的に取り込むことで、手動での外部システムからのデータのダウンロード、(場合によってはデータの加工)、Salesforceへのデータインポートにかかる工数を無くす方法について考えてみましょう。
※お客様のユースケースによっては、外部システムのデータをリアルタイムにSalesforceの画面に表示したいこともあるでしょう。その場合、定期的にデータをロードしても間に合いません!以下
どのようなツールを利用すべきですか?
サードパーティ製の ETL ツールを利用することもできますし、独自のクライアントアプリケーションを開発することもできます。
いずれにせよ必要な処理は、一定期間内に発生した外部システムのデータ変更を取得し、そのデータを(必要であればSalesforce用に加工して)Bulk APIもしくはSOAP APIを使用してSalesforceに取り込みます。
どのAPIを使用すべきかですか?
使用するAPIは、取り扱うデータ量を元に選択します。
Bulk APIは、大量データ(数千から数百万単位のレコード)を扱うために最適化されています。複数のバッチを並列して送信するので、多数のレコードをで挿入、更新、更新/挿入または削除できます。
一方、SOAP API は、一度に少数のレコードを更新するリアルタイムのクライアントアプリケーション用に最適化されています。SOAP API を使用しても多数のレコードを処理することはできますが、数十万のレコードを扱う
また、Bulk APIとSOAP APIの違いは以下の通りです。
APIの種類 | プロトコル | データの形式 | 同期/非同期 | |
---|---|---|---|---|
1 | APIの種類 | プロトコル | データの形式 | 同期/非同期 |
2 | Bulk API | REST | CSV、JSON、XML | 非同期 |
3 | SOAP API | SOAP (WSDL) | XML | 同期 |
- Bulk API には 2 つのバージョン (1.0と 2.0) があります。2.0の方がデータの取り扱いが容易ですが、データローダは2.0に対応していません。
- 他の種類のAPIを含めた説明は、Salesforce Lightning プラットフォーム API の概要(Trailhead)をご確認ください。
データを取り込むタイミング
営業時間内にデータを取り込むと、画面上でユーザがデータを更新などしていた場合に(バッチ処理と)競合して、ロックやエラーが発生することがあります。
バッチ処理は、事前にフルSandbox等で実際にかかる所要時間を確認し、夜間などユーザが操作をしていない時間帯にスケジュールしましょう。
- Bulk APIのフルSandbox等での評価時にロックエラーが発生する場合には、データの投入順序を調整するといった対処が必要になる事があります。(ロックエラーが出て対処法を模索中の場合は、この資料や英語のブログが参考になります)
学習ツール
- インテグレーションのパターンと実践
- データの Salesforce へのインポート(ヘルプ)
- データ管理(Trailhead)
まとめ
- 外部システムからデータを取り込む処理は、大量データになることがあるのでBulk APIに対応したツールがおすすめです
- データの取り込みを本番に実装する前に、所要時間の確認を含めSandboxで事前検証しましょう
公開日: 2021.06.16
この情報は役に立ちましたか?
ご意見お待ちしております。
フィードバックありがとうございます。
より役に立つために
役に立たなかった一番の理由を教えてください。