Skip to content
Last updated

Sprinklr Import Integration

このTreasure Data連携は、デジタルセールス組織に現代的なリモートコラボレーション機能を提供し、優れたチームワークとスムーズなエンゲージメントを実現します:

  • より強固な関係を見つけ、構築する
  • 生産性とパフォーマンスを向上させる
  • 顧客の単一ビューを取得する

Import Integrationを使用すると、プロファイルデータをTreasure Dataにインポートできます。

この機能はベータ版です。詳細については、カスタマーサクセス担当者にお問い合わせください。

インクリメンタルデータロードについて

  • スケジュール実行時、取得されるデータの時間枠は各実行ごとに自動的に前方にシフトします。

以下は、インクリメンタルロードが有効な場合の例です。たとえば、初期設定が1月1日で期間が10日間の場合、最初の実行では1月1日から1月10日までに変更されたデータを取得し、2回目の実行では1月11日から現在時刻までを取得し、以降も同様に続きます。

前提条件

  • TD Toolbeltを含むTreasure Dataの基本知識
  • 認可されたTreasure Dataアカウントアクセス
  • Sprinklrユーザーアカウント
  • Sprinklr開発者アカウント
  • curlまたはPOSTMANの基本知識

SprinklrからTokenを取得する

最初に、アカウントの環境を確認する必要があります。 https://www.sprinklr.com/でSprinklrアカウントにログインします。 Chromeブラウザで、F12を選択して開発者モードに入ります。

Consoleを選択し、SPR_ENV.envと入力します。この例では、アカウントの環境prod2を確認できます。この記事では、これが設定に必要な7つの値のうちの値1です。

開発者アカウントを作成する

https://developer.sprinklr.com/member/registerにアクセスし、https://developer.sprinklr.com/docs/read/api_overview/Getting_Startedの手順に従って開発者アカウントを登録します。

Sprinklrから送信されるメールを通じてアカウントを有効化する必要があります。

開発者アプリケーションを作成する

URL https://developer.sprinklr.com/login/を使用して開発者アカウントにサインインします。

My Accountを選択します。

Applicationタブを選択します。

次にCreate A New Appを選択します。

Register An Application画面で、必要な情報を入力します。

Register Callback URLでは、スクリーンショットの値を使用することをお勧めします。http://localhost:8123/sprinklr/callback(この設定に必要な7つの値のうちの値2)を使用すると、トークン取得プロセスが簡素化されます。

下にスクロールします。環境に最適なオプションを選択します。この例では、環境はprodです。Issue a new key for Prod2を選択します。

次にI agree to the terms of serviceを選択します。

REGISTER APPLICATIONを選択して登録を完了します。

注意: 環境が利用可能なオプションに含まれていない場合(例:prod0, qa4 …)、Sprinklrに連絡してアプリケーションを作成してください。また、ニーズに基づいてレート制限を増やすようSprinklrに連絡することもできます。

次に、https://developer.sprinklr.com/apps/mykeysにアクセスして、key(この設定に必要な7つの値のうちの値3)とsecret(7つの値のうちの値4)を確認します。値をメモしてください。後の手順でこの情報を使用します。

注意: 設定を続行する前に、少なくとも30分間待機してください。Sprinklrがアプリケーションを有効にするには処理時間が必要です。

アプリケーションを認可する

以下を収集します:

ValueType
1environment
2redirect URI
3application key
4application secret

Webブラウザを開き、次のURLを入力します。中括弧{}内のテキストを適切な値に置き換えてください。 https://api2.sprinklr.com/{environment}/oauth/authorize?client_id={application_key}&response_type=code&redirect_uri={redirect_uri}

環境がprodの場合は、次のようにURLから{environment}を削除します:

  • Environment prod
https://api2.sprinklr.com/oauth/authorize?client_id={application_key}&response_type=code&redirect_uri={redirect_uri}
  • その他の環境
https://api2.sprinklr.com/{environment}/oauth/authorize?client_id={application_key}&response_type=code&redirect_uri={redirect_uri}

たとえば、環境がprod2、redirect URIがhttp://localhost:8123/sprinklr/callback、application keyがth1s1s4f4k3dk3yの場合、URLは次のようになります:

https://api2.sprinklr.com/prod2/oauth/authorize?client_id=th1s1s4f4k3dk3y&response_type=code&redirect_uri=http://localhost:8123/sprinklr/callback

ブラウザで、Sprinklrアカウントへのアクセス許可を求められます。Submitを選択します。

アクセスを許可するスペースを選択し、Submitを選択します。

Sprinklrアカウントにまだログインしていない場合は、再度ログインする必要があります。

ログインには、開発者アカウントではなく、Sprinklrアカウントを使用してください。

次のような画面が表示されます:

code=xxxxの値をコピーします。この情報は後のステップで使用します。

トークンの取得

POSTMANを開き、新しいリクエストを作成します。

https://api2.sprinklr.com/{environment}/oauth/token?client_id={client_id}&client_secret={client_secret}&redirect_uri={redirect_uri}&grant_type=authorization_code&code={code}を入力し、中括弧{}内のテキストを適切な値に置き換えます。

codeパラメータは、この設定に必要な7つの値のうち5番目の値です。

注意: 環境がprodの場合は、URLから{environment}を削除してください。

コード値が12233333の場合の例は次のとおりです:

https://api2.sprinklr.com/prod2/oauth/token?client_id=th1s1s4f4k3dk3y&client_secret=th1s1s4f4k3ds3cr3t&redirect_uri=http://localhost:8123/sprinklr/callback&grant_type=authorization_code&code=12233333

メソッドをPOSTに変更します。

Headersタブを選択します。Content-Typeキーにapplication/x-www-form-urlencodedの値が表示されます。Sendを選択します。

次のようなレスポンスが表示されます:

{
   "access_token": "th1s1s4f4k3d4cc3sst0k3n",
   "refresh_token": "th1s1s4f4k3dr3fr3sht0k3n",
   "token_type": "Bearer",
   "expires_in": 2591999
}

access_token(この設定に必要な7つの値のうち6番目)とrefresh_token(7番目)をメモしてください。

または、cURLの送信方法がわかる場合は、次のコマンドを使用してトークンを取得できます:

curl --location --request POST 'https://api2.sprinklr.com/{environment}/oauth/token?client_id={client_id}&client_secret={client_secret}&redirect_uri={redirect_uri}&grant_type=authorization_code&code={code}'
--header 'Content-Type: application/x-www-form-urlencoded'

例は次のとおりです:

curl --location --request POST 'https://api2.sprinklr.com/prod2/oauth/token?client_id=th1s1s4f4k3dk3y&client_secret=th1s1s4f4k3ds3cr3t&redirect_uri=http://localhost:8123/sprinklr/callback&grant_type=authorization_code&code=12233333'
--header 'Content-Type: application/x-www-form-urlencoded'

すべての情報の収集

Sprinklrコネクタの認証を作成するために必要なすべての情報を指定しました。次のマッピングテーブルは、収集した値を示しています:

NameValueConfiguration propertyConfiguration name in the Sprinklr console
Environment (値1)prod2environmentEnvironment
Redirect URI (値2)http://localhost:8123/sprinklr/callbackredirect_uriRedirect URI
Application Key (値3)your_applicaiton_keyclient_idApplication key
Application secret (値4)your_application_secretclient_secretApplication secret
Access token (値6)your_access_tokenaccess_tokenAccess token
Refresh token(値7)your_refresh_tokenrefresh_tokenRefresh token

TD Consoleを使用した接続の作成

新規接続の作成

データ接続を設定する際、統合にアクセスするための認証を提供します。Treasure Dataでは、認証を設定してからソース情報を指定します。

Integrations Hub > Catalogに移動し、Sprinklrを検索して選択します。

次のダイアログが開きます。

前のステップで取得した情報を使用して、必要な認証情報を編集します。

Continueを選択します。

新しいSprinklr Connectionに名前を付けます。Doneを選択します。

SprinklrデータのTreasure Dataへの転送

認証された接続を作成すると、自動的にAuthenticationsタブに移動します。作成した接続を探して、New Sourceを選択します。

詳細を入力し、Nextを選択します。

パラメータ設定

パラメータ説明必須
Client Idアプリケーションのキー - Sprinklrでアプリケーションを作成する際に取得されます。はい
Client secretアプリケーションのキー - Sprinklrでアプリケーションを作成する際に取得されますはい
Access tokenアクセストークン - アプリケーションへのアクセスを許可する際に取得されますはい
Refresh tokenリフレッシュトークン - アプリケーションへのアクセスを許可する際に取得されますはい
Redirect UriリダイレクトURL - Sprinklrでアプリケーションを作成する際に宣言されますはい
EnvironmentユーザーのSprinklr環境 - Sprinklr Webアプリにログインすることで取得できますはい
Target取り込むターゲットオブジェクト - enum(profile)いいえ
Filter Columnstart_timeend_timeでフィルタリングするために使用するプロパティの名前、enum(created_time,modified_time) (文字列、デフォルト: modified_time)いいえ
Sn types取り込むプロファイルに関連付けられたソーシャルネットワークタイプのスペース区切りリスト、例 FACEBOOK TWITTER LINKEDIN YOUTUBE ... (文字列、デフォルト: null)いいえ
SourceSprinklrで取り込みたいデータソース (現在はProfileのみサポート)はい
Number of profiles to fetch in each API call各API呼び出しでSprinklrから取得するプロファイルの数いいえ
Filter time usingフィルタリングまたはインクリメンタル読み込みで有効にしたいプロファイルのタイムスタンプタイプを選択します。サポートされているオプションはCreated TimeModified Timeです。新しく作成されたプロファイルのみを取り込みたい場合は、Created Timeを使用します。更新されたプロファイルを取り込みたい場合は、Modified Timeを使用します。いいえ
Start Timeこの指定された開始時刻から作成または変更されたプロファイルを取得します。いいえ
End Timeこの指定された終了時刻まで作成または変更されたプロファイルを取得します
Incremental loadingスケジュール実行時に、取得されるデータの時間ウィンドウが各実行時に自動的に前方にシフトします。例えば、初期設定が1月1日で期間が10日間の場合、最初の実行では1月1日から1月10日までに変更されたデータを取得し、2回目の実行では1月11日から現在の時刻までを取得します。以降も同様ですいいえ
Social networks大文字と小文字を区別する、スペース区切りのソーシャルネットワークリスト。このリストには、取り込みたいプロファイルが含まれます。例えば、FacebookとTwitterのプロファイルのみを取り込みたい場合は、**"FACEBOOK TWITTER"**を使用しますいいえ
Profile list数値、スペース区切りのプロファイルリストIDリスト。このリストには、取り込みたいプロファイルが含まれます。正しい入力例 "1 2 3 4"いいえ
Partner profile list数値、スペース区切りのパートナープロファイルリストIDリスト。このリストには、取り込みたいプロファイルが含まれます。正しい入力例 "1 2 3 4"いいえ
Tags大文字と小文字を区別する、スペース区切りのタグリスト。このリストには、取り込みたいプロファイルが含まれます。正しい入力例 "tag1 tag2"いいえ

データプレビュー

データプレビューはオプションであり、次のダイアログページに進みたい場合は安全にNextをクリックできます。

  1. Generate Previewを選択して、インポートを実行する前にデータのプレビューを表示します。

    データプレビューに表示されるデータは、ソースから近似されたものです。実際にインポートされるデータではありません。

  2. データが期待通りに見えることを確認します。

  3. Nextを選択します。

ターゲットデータベースとテーブルの選択

データを転送する既存のデータベースとテーブルを選択するか、新しいデータベースとテーブルを作成します。新しいデータベースを作成する場合は、データベースに名前を付けます。Create new tableについても同様の手順を実行します。

既存のテーブルにレコードを**append(追加)するか、既存のテーブルをreplace(置換)**するかを選択します。

デフォルトのキーを使用するのではなく、異なるpartition key seedを設定したい場合は、ポップアップメニューを使用して指定できます。

スケジュール設定

Scheduleタブでは、1回限りの転送を指定するか、自動化された定期的な転送をスケジュールできます。Once nowを選択した場合は、Start Transferを選択します。**Repeat…**を選択した場合は、スケジュールオプションを指定してから、Schedule Transferを選択します。

転送が実行された後、転送結果はData Workbench > Databasesで確認できます。

(オプション) CLIを使用したエクスポートインテグレーション

CLI(Toolbelt)を使用して、SprinklrからTreasure Dataに結果をインポートすることもできます。

サーバーへのエクスポート情報をtd queryコマンドの--resultオプションとして指定する必要があります。td queryコマンドについては、こちらの記事を参照してください。

オプションの形式はJSONで、一般的な構造は以下の通りです。

プロファイルターゲットの例

in:
  type: sprinklr
  client_id: client_id
  client_secret: client_secret
  access_token: access_token
  refresh_token: refresh_token
  redirect_uri: http://localhost:8123/
  environment: prod2
  target: profile
  incremental: true
  page_size: 5000
  filter_column: modified_time
  start_time: "2019-12-12T00:00:00.000Z"
  end_time: "2019-12-31T00:00:00.000Z"
  sn_types: "FACEBOOK TWITTER LINKEDIN YOUTUBE"
  profile_list: "1 2 3 4"
  partner_profile_list: "1 2 3 4"
  tags: "#tag1 #tag2 #tag3 #tag4"

レポートターゲットの例

in:
  type: sprinklr
  client_id: client_id
  client_secret: client_secret
  access_token: access_token
  refresh_token: refresh_token
  redirect_uri: http://localhost:8123/
  environment: prod2
  target: report
  incremental: true
  report_page_size: 1000
  start_time: "2019-12-12T00:00:00.000Z"
  end_time: "2019-12-31T00:00:00.000Z"
  payload: |
    { "requests": { "sample": { "timeFilter": { "sinceTime": 1, "untilTime": 2 }, "reportingEngine": "PLATFORM", "report": "POST_INSIGHTS", "timezone": "UTC", "details": { "accessible": true }, "groupBys": [ { "key": "LEVEL1", "field": "LEVEL1", "groupType": "FIELD", "details": {}, "sort": null, "page": null, "projections": null, "filters": null, "namedFilters": null, "childrenGroupBys": [ { "key": "LEVEL2_1", "field": "LEVEL2_1", "groupType": "DATE_HISTOGRAM", "details": { "interval": "1d" }, "childrenGroupBys": [ { "key": "LEVEL3_1", "field": "LEVEL3_1", "groupType": "FIELD", "details": { "accessible": true } }, { "key": "LEVEL3_2", "field": "LEVEL3_2", "groupType": "FIELD", "details": { "accessible": true }, "childrenGroupBys": null } ] }, { "key": "LEVEL2_2", "field": "LEVEL2_2", "groupType": "FIELD", "details": { "interval": "1d" }, "childrenGroupBys": [] } ] }, { "key": "LEVEL1_2", "field": "LEVEL1_2", "groupType": "FIELD", "details": {}, "sort": null, "page": null, "projections": null, "filters": null, "namedFilters": null } ], "filters": [ { "filterType": "IN", "field": "CLIENT_ID", "values": [ 1, "2" ], "details": { "accessible": true } }, { "filterType": "GT", "field": "ACCOUNT_ID", "values": [ 1 ], "details": { "accessible": true } } ], "projections": [ { "measurement": "TOTAL_ENGAGEMENT", "missing": null, "aggregateFunction": "SUM", "details": null, "filters": null, "key": "TOTAL_ENGAGEMENT_1" }, { "measurement": "PUBLISHED_MESSAGE_COUNT", "missing": null, "aggregateFunction": "SUM", "details": null, "filters": null, "key": "PUBLISHED_MESSAGE_COUNT_1" } ] } } }

参考資料

  • API概要: https://api2.sprinklr.com/prod0/
  • OAuth 2.0: https://developer.sprinklr.com/docs/read/developr/framework/OAuth