Salesforce Sales Cloud / Service Cloud
Salesforce Sales Cloud、Salesforce Service CloudからKARTEに対してデータ連携が可能です。
コールバックURLの仕様変更について
2021年11月26日に、コールバックURLの仕様変更を行いました。
接続先の設定画面で連携・再連携を行う際には、Salesforceのアプリケーション設定でコールバックURLを変更してから連携を行ってください。既存の接続先を使用してのジョブフローの実行については、設定変更の必要はございません。
データ連携のパターン
- 以下の連携が可能です
- Datahubに直接インポートする(Salesforce→KARTE)
- Datahubから直接エクスポートする(KARTE→Salesforce)
注意点
- Salesforceのログイン時にAzure Active DirectoryによるSAML SSOを使用している場合、API経由での認証ができないためDatahubとのデータ連携ができません
- 連携サービス側の設定やプランによっては、意図した通りに連携できない可能性があります
- 必ず、事前に連携検証を実施してください
事前に必要な設定
Salesforce Sales Cloud(以下SC) / Salesforce Service Cloud (以下Service)上での設定
参考:https://help.salesforce.com/articleView?id=connected_app_create_basics.htm&type=5
-
Salesforce管理者アカウントでSC (or Service)へログイン後、管理者権限で、
- [設定] から、[クイック検索] ボックスに「アプリケーション」と入力し、[アプリケーションマネージャ] を選択します。
- [新規接続アプリケーション] をクリックします。
-
下記必須項目の設定を行う。その他の設定は任意です。
- 「API OAuth設定の有効化」にチェック
- コールバックURLに以下2つのURLを入れてください。
https://admin.karte.io/oauth2/schedule/callback/SALESFORCE/
https://admin.karte.io/oauth2/schedule/callback/SALESFORCE/${api_key}
${api_key}
の部分はKARTEのAPIキーに置き換えてください
- OAuth範囲を以下に設定
- データへのアクセスと管理 (api)
- ユーザーに代わっていつでも要求を実行 (refresh_token, offline_access)
- 以上の設定を保存する
※(エクスポートのみ)使用する場合はKARTE内プラグインインストールが必要なため、担当者にお問い合わせください。
Datahubジョブ設定
接続先の設定
- [ジョブフロー]画面 > 「作成」を選択してください
- [ジョブフローを作成]画面 > ジョブの設定 > 「ジョブの追加」を選択してください
- ジョブタイプ > 「データテーブルへインポート」を選択し、インポート元 > 「外部サービス」を選択してください
- 接続先 > [接続先の作成・管理]ボタンから接続先を作成し、下記を入力してください
- 接続先名
- 任意の名称を入力してください
- クライアントID
- SC/Service管理画面にて、接続アプリケーション詳細画面から
コンシューマ鍵
として取得できます。
- SC/Service管理画面にて、接続アプリケーション詳細画面から
- クライアントシークレット
- SC/Service管理画面にて、
コンシューマの秘密
として取得できます。
- SC/Service管理画面にて、
- ログインURL
- SC/Service 本番環境であれば
https://login.salesforce.com/
、Sandbox環境であればhttps://test.salesforce.com/
を入力してください
- SC/Service 本番環境であれば
- インスタンスURL
- 貴社Salesforce管理画面URLを入力してください
- ex.
https://xxx.my.salesforce.com/
,https://xxx.lightning.force.com/
- ※
https://xxx.lightning.force.com/lightning/page/home
という形式で設定するとエラーが発生します。hostまでを入力してください。 - ※
https://xxx.lightning.force.com/
(Lightning画面)でジョブフロー実行時にエラーが出る場合には、https://xxx.my.salesforce.com/
(Classic画面)での設定をお試しください。
- ex.
- 貴社Salesforce管理画面URLを入力してください
- 1の入力完了後、「つなげる」をクリックし、SC/Service のログイン・認証を行ってください
- 認証が完了し、KARTEの画面に遷移したら、「つなげる」ボタン → 「連携済/再取得する」ボタンになっている事を確認してください
- 設定内容に問題がなければ「保存」ボタンを押して完了です
スケジュールの設定
インポート
- スキーマ
- データテーブルのスキーマを指定するをご覧ください
- 対象オブジェクト
- 取得対象のオブジェクト名を入力してください
- Salesforceの
設定 > オブジェクトマネージャ
で参照できる、オブジェクトのAPI参照名を入力してください。- 例:取引先→
Account
, 契約→Contract
- 例:取引先→
- Salesforceの
- 取得対象のオブジェクト名を入力してください
- 取得項目
- デフォルトフィールド:(例)
Status
- カスタムフィールド:(例)
Plan__c
- デフォルトで参照しているオブジェクトのフィールド:(例)
Account.Name
- カスタムで参照しているオブジェクトのフィールド:(例)
Contract1__r.StartDate
- salesforceの基準テーブル上のフィールド名をそのまま記入してください
- salesforce上での参照関係があれば何階層でもたどることが可能です
- フィールド名は、下記いずれかの方法でご確認いただけます
- i. salesforce にログイン > 設定 >カスタマイズ > (対象オブジェクトを選択) > 項目 と遷移し、下記画像のように記載されている「API参照名」を「Salesforce上のフィールド名」に記入してください
- ii. salesforce にログイン > 設定 > オブジェクトおよび項目 > オブジェクトマネージャ> (対象オブジェクトを選択) > 項目とリレーション と遷移し、下記画像のように記載されている項目名「項目名」を「Salesforce上のフィールド名」に記入してください
- デフォルトフィールド:(例)
- SOQLクエリを利用する
- SOQLクエリで結果を取得する場合はチェックを入れてください。
- チェックを入れた場合、上記の対象オブジェクト、取得項目は無視されます。
- クエリ(SOQL)
- 実行するSOQLクエリを入力してください。
エクスポート
- 処理概要:エクスポートはキーを元に、更新先のレコードを新規作成・または更新します。update、upsertから選択します
- データセット
- データテーブルのスキーマを指定するをご覧ください
- ※外部IDについてのポイント:エクスポートする際に必要な Sales Cloud 側のオブジェクトの必須項目とキー(外部IDがなければレコードIDが採用されます)をデータテーブルに入れてください
- 対象オブジェクト
- 取得対象のオブジェクト名を入力してください
- 設定 > オブジェクトマネージャ から参照できる、オブジェクトのAPI参照名を入力してください
- 例:取引先→Account, 契約→Contract
- 設定 > オブジェクトマネージャ から参照できる、オブジェクトのAPI参照名を入力してください
- 取得対象のオブジェクト名を入力してください
- 更新種別:
update
- salesforce の Id (レコードID)をキーに、対象のクエリで select した項目で更新します。
- クエリで select した項目のみ更新します。クエリで select していない限りは更新されません。
upsert
- キー項目が Sales Cloud の対象オブジェクトになければ
insert
- キーが一致すれば該当したレコードを
update
- この場合データテーブルに入っている項目全てで上書きされます。
- キー項目が Sales Cloud の対象オブジェクトになければ
- ※いずれもキーと更新する項目は salesforce 側のAPI参照名と一致させてください。
- 外部ID(任意)
- 更新種別で
upsert
を選択した場合だけ使用されます。 - デフォルトで参照しているオブジェクトのレコードID:(例)Account の Id
- Sales Cloud 側のオブジェクトのカスタムキーを外部ID(
(例)email___c
)として指定することができます(メールアドレスなど)。外部IDが入らない場合はレコードID(Id)が採用されます - クエリで取得するデータテーブルには、レコードIDを設定する場合はレコードID、外部IDを指定する場合は対象項目を入れてください
- salesforceの
API参照名
のフィールド名をそのまま記入してください
- Sales Cloud 側のオブジェクトのカスタムキーを外部ID(
- フィールド名は、下記いずれかの方法でご確認いただけます
- i. salesforce にログイン > 設定 > オブジェクトおよび項目 > オブジェクトマネージャ> (対象オブジェクトを選択) > 項目とリレーション と遷移し、該当の項目の「項目名」を確認してください
- 更新種別で
- 大量データのタイムアウトについて
- 時間がかかる大量データのリクエストに関してはタイムアウトする可能性がございます。(現在10分で設定)その場合、途中まで更新されたデータはそのまま更新された状態となります。実行される場合は複数回実行される前提でデータを作成していただくようお願い致します。
- 認証後のエラーについて
- 連携による接続先の設定後、エクスポートにて
Unable to find any data to create batch
エラーが生じることがあります。このエラーは数時間〜1日程度の時間経過により解消することがあります。1日経過してもエラーが改善しない場合、お問い合わせください。
- 連携による接続先の設定後、エクスポートにて
注意事項
本機能(エクスポートのみ)は現在β版提供のため、今後仕様が変更される場合があります。
また、使用する場合はプラグインインストールが必要なため、担当者にお問い合わせください。
よくある質問
Q. Salesforce側で論理削除されたレコードは、Datahubにデータをインポートする場合の取り込み対象になりますか?
- A. なりません
Updated 10 months ago