Salesforceからファイルを移行する理由は数多くあります。ストレージコスト、コンプライアンス要件、あるいは単に組織がコンテンツを保管する場所を統合したいといった理由などです。.
奇妙なことに、CRMの移行、システムの統合、あるいは統合プロジェクトの際に、レガシーCRMや他の業務システムからSalesforceへファイルを移行するという逆の方向を選ぶことにも、十分な理由があるのです。.
どちらの方法も、スクリプトを使わなくても実現可能です。これには、ファイルを正しいレコードに関連付け続け、重複を回避し、メタデータを保持するという難しい部分も含まれます。.
Want to migrate Salesforce files to SharePoint without coding?
Discover how Salesforceプラットフォーム用に作られたDocument Extractor can make migrations smooth
#1 何を運ぶのか把握する
実際の移行に先立ち、現在の組織の構成状況について簡単な調査を行う必要があります。.
- ストレージレポートを実行する: 次のページへ 設定 > データ > ストレージ使用状況 ファイルストレージとデータストレージの正確な生容量を把握するため。.
- スキーマの照会: 簡単なSOQLクエリを実行するか、APIツールを使用して、「Attachment」、「Document」、および「ContentVersion」の行数を取得します。.
- 大容量ファイルの特定: 外れ値を特定しましょう。大容量のファイルを大量に転送する予定はありますか?しきい値(例:25MB)を設定し、そのしきい値を超えるファイルをフィルタリングしてください。これらは、後のバッチサイズやネットワークスループットの制限を決定づける要因となるからです。.
古いバージョンの Salesforce 組織をお持ちの場合は、ドキュメントがクラシック時代のストレージと最新の Lightning ストレージの両方に分散している可能性があることにご留意ください。.
クラシック(レガシー):
- 添付ファイル:旧モデルにおいてレコードに直接添付されていたファイル
- メモ:レコードに関するプレーンテキストのメモ
- ドキュメントフォルダ:旧「ドキュメント」タブ
ライトニング(現代版):
- ファイル(ContentDocument / ContentVersion):現在の標準
- 強化されたノート:Lightningで導入された、より充実したノート形式
- ライブラリ(Salesforce CRM コンテンツ):共有ファイルリポジトリ
Salesforceファイルの移行における真の課題は、生のバイナリデータ(PDF、画像、ログなど)を移動することではなく、関係性のコンテキストを維持することにあります。.
Classicモデルでは、アタッチメントは親レコードの単純な子レコードです。Lightningでは、ContentVersionが実際のファイルデータを保持しており、これがContentDocumentに集約され、さらにContentDocumentLinkと呼ばれるジャンクションオブジェクトを介してレコードにマッピングされます。.
Salesforceからファイルを移行する場合、ターゲットシステム(SharePoint、Azure Blob、AWS S3バケットなど)が、どのファイルがどのアカウントやケースに属するかを認識できるように、これらの関連性を抽出する必要があります。 ファイルを移行する場合、レガシーファイルをこの最新の多層型Lightningアーキテクチャにマッピングする必要があります。カスタムApexバッチやPythonスクリプトを作成せずにこれを行うには、これらの基盤となるAPIの関係をネイティブに理解するツールが必要です。.
#2 ソースとターゲットを特定する
SharePointをターゲットとする場合:Document Extractor
Document Extractor SalesforceのファイルをSharePoint Onlineやオンプレミス環境との間で転送するために特別に設計されています。.
面倒な作業はすべてこのツールがこなしてくれます。. Document Extractorは、Salesforceの「アカウント」、「連絡先」、「見込み客」、「商談」、「見積書」、「契約」、「受注」、「資産」、「電子メールメッセージ」、およびカスタムオブジェクトに関連するドキュメントを監視し、SharePoint内に適切なフォルダ構造を作成します。また、必要なすべての関係性、エッジケース、およびリンク処理を処理します。.
ユーザーには何の変化も感じられません。. ファイルがSharePointに移動した後も、Salesforce内の元の場所にはリンクが残されます。 実際には、一部のファイルはすでにSharePointに存在し、他のファイルは依然としてSalesforceに保存されている場合がありますが、ユーザーにとってのSalesforceの利用体験に一貫性が保たれます。つまり、段階的に移行を行い、その都度検証を進めながら、リスクの高い一括ファイル移行を回避することができるのです。.
開始日を指定してください。. 一度にすべてを移行したくない場合は、日付を指定して、その日付以降に作成されたファイルのみを移行することができます。これは、移行を段階的に進めたい大規模な組織にとって便利です。.
メタデータ。. 「作成者」、「所有者」、「説明」、「バージョン」、「変更者」などの標準的なメタデータファイル属性は、ContentVersion オブジェクトで定義されたカスタムフィールドとともに、SharePoint に直接マッピングされます。これにより、ファイルが Salesforce エコシステムから外れた場合でも、完全なファイル履歴、コンプライアンス、およびユーザーのコンテキストを維持することができます。 ファイル属性に加え、Document Extractorは親レコードのフィールド(例:Account Name)を、対応するSharePointのフォルダ階層にマッピングします。.
「クラシック」と「ライトニング」の全情報を網羅。. 添付ファイル、メモ、ドキュメントフォルダ、ファイル、拡張メモ、ライブラリがすべてサポートされています。何も取り残されることはありません。.
対応している Salesforce エディション: Professional、Enterprise、Unlimited、Developerの各エディション(ClassicおよびLightning Experienceの両方)。サポート対象のSharePointバージョンには、2013、2016、2019、およびSharePoint Online / Office 365が含まれます。.
そこには SaaSの15日間無料トライアル, 、クレジットカードは不要で、十分な時間をかけて本格的な概念実証(PoC)を行うことができます。試用版をセルフホスティングで実行したい場合や、さらに詳しい情報が必要な場合は、簡単な 形 連絡を取るために利用できます。.
ターゲットが SharePoint 以外の場合:Connect Bridge
ファイルの移行が、必ずしもSharePointから始まったり、SharePointで終わったりするわけではありません。ファイルのソースや宛先として、レガシーなCRM、オンプレミスのファイルストレージ、独自開発の文書管理システム、あるいはそれとはまったく異なるシステムが使用されている場合もあります。そこで Connect Bridge 登場します。.
Connect Bridgeは、Salesforceを実質的にあらゆるデータベースや業務アプリケーションに接続する統合プラットフォームです。 Connect Bridgeとの通信には標準のSQL構文を使用し、内部ではSQLクエリ(SELECT、INSERT、UPDATE、DELETE)を適切なSalesforce API呼び出しに変換します。.
これは特に次のような場合に役立ちます:
- Salesforceとオンプレミスデータベースまたはレガシーシステムとの同期
- SharePointをターゲットとしないカスタム統合の構築
- 特定のコンプライアンス要件やデータ保管場所に関する要件がある組織
逆方向の場合、Connect BridgeはSalesforceへファイルをインポートするために必要なあらゆる外部ソースに対応しているため、インバウンド移行にも最適なツールとなっています。.
価格設定の仕組み
Document Extractorの料金は、移行対象となるファイルの量やサイズではなく、Salesforceのユーザー数に基づいて算出されます。一方、Connect Bridgeの料金は、Salesforceのユーザー数と移行対象となるファイルの数に基づいて算出されます。.
大規模なファイルセットを扱う場合、これは非常に重要なポイントです。GB単位やファイル単位で課金されるツールでは、データ量が数百ギガバイトに達すると、予想以上に高額な請求額になる可能性があります。.
ユーザーベースの料金体系は、転送するデータ量にかかわらず予測可能であり、料金の変動を気にすることなく、段階的に移行したり、必要に応じてジョブを再実行したりする柔軟性を提供します。.
それでもDIYという選択肢を検討すべきでしょうか?
Pythonに習熟している方であれば、REST API によるアプローチ(例えば、ContentVersionからの取得やMicrosoft Graphへの書き込みなど)は、中規模の一回限りの移行には有効な手段となります。 しかし、これには実際の隠れたコストが伴います。具体的には、開発者の工数、レート制限への対応、ContentDocumentLinkの重複排除ロジック、メタデータの保持、そして大規模な移行作業の途中で初めて表面化するエッジケースなどです。.
ほとんどの組織にとって、無料トライアルがあり、実績があり、ユーザーベースの料金体系を採用した、すぐに使えるツールを導入することが、リスクの低い選択肢となります。スクリプトによるアプローチが有効なのは、標準的なツールでは満たせない要件がある場合や、開発者が実際に余裕を持ってその開発を最初から最後まで担当できる場合です。.
- SharePointへの移行、それともSharePointからSalesforceへのインポート? Document Extractor 15日間の無料トライアルを提供しており、クレジットカードは不要です。.
- 他にソースやターゲットはありますか? Connect Bridge 無料のデモを提供しています。.
また、以下の方法を通じて、皆様からのご質問にお答えいたします。 お問い合わせフォーム いつでも。.
著者について

記入例 アナ・ネトConnecting Softwareのテクニカルアドバイザー。
"私は1997年からソフトウェア・エンジニアであり、最近は書くことと人前で話すことが好きです。この記事について質問やコメントはありますか?ご意見・ご感想をお待ちしております!"
