シナリオ:Excelデータを分割してSalesforceに連携
業務で扱うExcelファイルの中には、複数の種類のデータが混在していることがよくあります。 たとえば、研修プログラムの応募者一覧に「学生」と「講師」の情報が一緒に含まれており、 それぞれをSalesforceの異なるオブジェクトに登録したい場合では、従来なら、Excelを手作業で分割したり、 スクリプトを用意したりと手間がかかっていました。
しかし、ExcelTLを使えば、このような処理もノーコードで簡単に自動化できます。 今回は、「Excelの応募者データを条件で分割し、Student__c と Instructor__c に自動連携する」 シナリオを紹介します。
シナリオ概要:1つのExcelから2つのSalesforceオブジェクトへ
このシナリオでは、1枚のExcelファイル(applications.xlsx)に応募者情報がまとめられています。 応募タイプ(Type列)に応じて、次のようにデータを振り分けます:
- Type = "Student" → Salesforce の Student__c に登録
- Type = "Instructor" → Salesforce の Instructor__c に登録
| FullName | Type | Major | Experience | |
|---|---|---|---|---|
| Alice Johnson | alice@example.com | Student | Computer Sci | 0 |
| Bob Smith | bob@teach.com | Instructor | Engineering | 5 |
| Carol Kim | carol@example.com | Student | Biology | 1 |
| David Lee | david@edu.org | Instructor | Math | 8 |
ExcelTLでのジョブ設定
① データ抽出
まず、Excelファイルからデータを抽出します。
extract: type: excel file: "./applications.xlsx" sheet: "Sheet1"
② データ変換・分岐
応募タイプ(Type列)の条件に応じて2つのパイプラインを定義します。Student__c と Instructor__c それぞれにマッピングを設定します。
transform:
pipelines:
- name: student_pipeline
filter: "row['Type'] == 'Student'"
map:
- target_object: Student__c
fields:
FullName: Name__c
Email: Email__c
Major: Major__c
- name: instructor_pipeline
filter: "row['Type'] == 'Instructor'"
map:
- target_object: Instructor__c
fields:
FullName: Name__c
Email: Email__c
Major: Subject__c
Experience: Years_of_Experience__c
③ Salesforceへロード
最後に、2つのパイプラインをSalesforceにロードします。
load:
type: salesforce
auth:
username: your-username
password: your-password
token: your-token
pipelines:
- name: student_pipeline
- name: instructor_pipeline
テストと確認
- Student__c に 2件(Alice, Carol)が登録されている
- Instructor__c に 2件(Bob, David)が登録されている
- 項目マッピングが正しい(例:Experience → Years_of_Experience__c)
- ログにエラーがないこと
ノーコードで実現する柔軟なデータ統合
このように、ExcelTLを使えば、条件分岐や複数オブジェクトへの登録もノーコードで簡単に実現できます。 データの性質や業務ロジックに応じてパイプラインを柔軟に設計できるため、 Salesforceとの連携をよりスマートに進めることが可能です。