Salesforce Sales Cloud、Salesforce Service CloudからKARTEに対してデータ連携が可能です。ご利用の場合は接続先設定画面への追加が必要なため担当カスタマーサクセスにお問い合わせください。

補足

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

  1. Salesforce管理者アカウントでSC (or Service)へログイン後、管理者権限で、

    • [設定] から、[クイック検索] ボックスに「アプリケーション」と入力し、[アプリケーションマネージャ] を選択します。

    • [新規接続アプリケーション] をクリックします。

  2. 下記必須項目の設定を行う。その他の設定は任意です。

  • 「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)

  • 「サポートされる認証フローにProof key for Code Exchange (PKCE) 拡張を要求」にチェックが入っている場合は、チェックを外してください。

  1. 以上の設定を保存する

※(エクスポートのみ)使用する場合はKARTE内プラグインインストールが必要なため、担当者にお問い合わせください。

Datahubジョブ設定

接続先の設定

  1. [ジョブフロー]画面 > 「作成」を選択してください

  2. [ジョブフローを作成]画面 > ジョブの設定 > 「ジョブの追加」を選択してください

  3. ジョブタイプ > 「データテーブルへインポート」を選択し、インポート元 > 「外部サービス」を選択してください

  4. 接続先 > [接続先の作成・管理]ボタンから接続先を作成し、下記を入力してください

  • 接続先名

    • 任意の名称を入力してください

  • クライアントID

    • SC/Service管理画面にて、接続アプリケーション詳細画面から コンシューマ鍵 として取得できます。

  • クライアントシークレット

    • SC/Service管理画面にて、コンシューマの秘密として取得できます。

  • ログインURL

    • SC/Service 本番環境であればhttps://login.salesforce.com/、Sandbox環境であればhttps://test.salesforce.com/を入力してください

  • インスタンスURL

    • 貴社SalesforcenのインスタンスURLを入力してください

      • 例. https://xxx.my.salesforce.com/

      • 「私のドメイン」が設定されている場合は基本的に上記の例の形式となります。

      • Salesforce開発者コンソールで System.debug(URL.getOrgDomainUrl()); を実行することでも確認可能です。

  1. 1の入力完了後、「つなげる」をクリックし、SC/Service のログイン・認証を行ってください

  2. 認証が完了し、KARTEの画面に遷移したら、「つなげる」ボタン → 「連携済/再取得する」ボタンになっている事を確認してください

  3. 設定内容に問題がなければ「保存」ボタンを押して完了です

スケジュールの設定

インポート

  • スキーマ

  • 対象オブジェクト

    • 取得対象のオブジェクト名を入力してください

      • Salesforceの 設定 > オブジェクトマネージャ で参照できる、オブジェクトのAPI参照名を入力してください。

        • 例:取引先→Account, 契約→Contract

  • 取得項目

    • デフォルトフィールド:(例)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

  • 更新種別:

    • update

      • salesforce の Id (レコードID)をキーに、対象のクエリで select した項目で更新します。

      • クエリで select した項目のみ更新します。クエリで select していない限りは更新されません。

    • upsert

      • キー項目が Sales Cloud の対象オブジェクトになければ insert

      • キーが一致すれば該当したレコードを update

        • この場合データテーブルに入っている項目全てで上書きされます。

    • ※いずれもキーと更新する項目は salesforce 側のAPI参照名と一致させてください。

  • 外部ID(任意)

    • 更新種別で upsert を選択した場合だけ使用されます。

    • デフォルトで参照しているオブジェクトのレコードID:(例)Account の Id

      • Sales Cloud 側のオブジェクトのカスタムキーを外部ID((例)email___c)として指定することができます(メールアドレスなど)。外部IDが入らない場合はレコードID(Id)が採用されます

      • クエリで取得するデータテーブルには、レコードIDを設定する場合はレコードID、外部IDを指定する場合は対象項目を入れてください

      • salesforceの API参照名 のフィールド名をそのまま記入してください

    • フィールド名は、下記いずれかの方法でご確認いただけます

      • i. salesforce にログイン > 設定 > オブジェクトおよび項目 > オブジェクトマネージャ> (対象オブジェクトを選択) > 項目とリレーション と遷移し、該当の項目の「項目名」を確認してください

  • 大量データのタイムアウトについて

    • 時間がかかる大量データのリクエストに関してはタイムアウトする可能性がございます。(現在10分で設定)その場合、途中まで更新されたデータはそのまま更新された状態となります。実行される場合は複数回実行される前提でデータを作成していただくようお願い致します。

  • 認証後のエラーについて

    • 連携による接続先の設定後、エクスポートにて Unable to find any data to create batch エラーが生じることがあります。このエラーは数時間〜1日程度の時間経過により解消することがあります。1日経過してもエラーが改善しない場合、お問い合わせください。

FAQ

Salesforce側で論理削除されたレコードは、Datahubにデータをインポートする場合の取り込み対象になりますか?

  • A. なりません

その他