目的
この記事では、Gainsightのルールエンジンを使用して、GainsightAPIを呼び出し、Timeline APIを通じてアクティビティを登録する方法を説明します。具体的には、CSVファイルからRelationshipのタイムラインアクティビティにデータを登録する手順を紹介します。
この記事で紹介する方法は、ルールエンジンから「Single Activity Save API」を利用する方法のため、データを1行挿入するたびにAPIをコールしますので、スロットル制限に注意する必要があります。少量のデータであれば1回のルールでアクティビティを取り込むことができますが、データ量が多い場合は、ルールエンジンを利用しないBulk Activity Save API を利用したこちらの方法をご参照ください。
シナリオ
CSVファイルからRelationshipのタイムラインアクティビティにデータを登録する。
手順
-
CSVファイルを準備してS3にUPする
- CSVファイルに必要なデータを入力します。以下は例です:
ContextName,TypeName,ExternalId,Subject,Notes,ActivityDate,Author,CompanyName,RelationshipName,Ant__jie_guo__c,internalAttendees,externalAttendees
Relationship,会議,1234567890,超会議,重要な会議,2024-05-16T01:00:00.000+09:00,mnishimi@gainsight.com,Mariko Test 商事,導入サービス,,xxx@gainsight.com,yyy@gainsight.com
... - 完成したCSVファイルをS3バケットにアップロードします。
- CSVファイルに必要なデータを入力します。以下は例です:
-
カスタムコネクタを作成する
- コネクタ2.0の設定画面に移動します。
- 新しいカスタムコネクタを作成し、Gainsightの APIエンドポイントを設定します。
認証タイプはトークンベースで、ヘッダーにはAccesskey→アクセスキーを入れます。(アクセスキーはGenerate API Access Key参照)URLにはインスタンスのホスト名を入力して保存します。接続テストしてもエラーになりますが気にしなくてOKです。
※参考:Configure Custom Connectors
-
ExternalActionを作成する
- 作成したカスタムコネクタを使用して、外部アクションを作成します。
- External Actionの設定画面で、APIリクエストの詳細を入力します。
- 設定は以下のようにします。
- BasicInformation
- HTTPメソッド:POST
- URL:https://ホスト名.gainsightcloud.com/v1/ant/es/activity
- Payload(以下はサンプル)
ペイロードが正しいかどうか、テストして確認します。{
"records": s
{
"ContextName": "Relationship",
"TypeName": "{{TypeName}}",
"ExternalId": "{{ExternalId}}",
"Subject": "{{Subject}}",
"Notes": "{{Notes}}",
"ActivityDate": "{{ActivityDate}}",
"Author": "{{Author}}",
"CompanyName": "{{CompanyName}}",
"GsRelationshipTypeId": "{{GsRelationshipTypeId}}",
"RelationshipName": "{{RelationshipName}}",
"internalAttendees":"{{internalAttendees}}",
"externalAttendees":"{{externalAttendees}}"
}
],
"lookups": {
"AuthorId": {
"fields": {
"Author": "Email"
},
"lookupField": "Gsid",
"objectName": "GsUser",
"multiMatchOption": "FIRSTMATCH",
"onNoMatch": "ERROR"
},
"GsCompanyId": {
"fields": {
"CompanyName": "Name"
},
"lookupField": "Gsid",
"objectName": "Company",
"multiMatchOption": "FIRSTMATCH",
"onNoMatch": "ERROR"
},
"GsRelationshipId": {
"fields": {
"RelationshipName": "Name"
},
"lookupField": "Gsid",
"objectName": "Relationship",
"multiMatchOption": "FIRSTMATCH",
"onNoMatch": "ERROR"
},
"InternalAttendees": {
"fields": {
"internalAttendees": "Email"
},
"lookupField": "Gsid",
"objectName": "GsUser",
"multiMatchOption": "MARKASERROR"
},
"ExternalAttendees": {
"fields": {
"externalAttendees": "Person_ID__gr.Email",
"GsCompanyId": "Company_ID"
},
"lookupField": "Gsid",
"objectName": "Company_Person",
"multiMatchOption": "FIRSTMATCH"
}
}
}
※参考:Configure External Actions
- BasicInformation
-
ルールエンジンを作成する
- Gainsightのルールエンジンを開き、新しいルールを作成します。
- データソースとしてS3バケット内のCSVファイルを指定します。
※ISO 8601 formatに沿ったCSVファイルを準備しているので、ActivityDateはStringでセットしておきます。
Gainsight内の日時データを利用する場合はこちらの記事を参照して下さい。
- 先ほど作成したExternal Actionをルールに追加しフィールドをペイロードにマッピングします。
※参考:Call External API Action Type
-
ルールエンジンを実行する
- ルールエンジンを実行し、CSVファイルのデータがGainsightのTimeline APIを通じてアクティビティとして登録されることを確認します。
- ルールエンジンを実行し、CSVファイルのデータがGainsightのTimeline APIを通じてアクティビティとして登録されることを確認します。
-
その他
実行結果の詳細は、ExternalActionsのカスタムアクションのExecutionHistoryから確認することができます。
ただし、APIコール結果に何らかのエラーが発生してもルールエンジン実行結果はエラーとなりません。ExternalActionsのカスタムアクションのExecutionHistoryのResponse内に、エラーがある場合はエラーコードが表示されますのでそこを確認する必要があります。
APIコールのリミット内に収まるようであれば、このようにルールエンジンからGainsightAPIを呼び出して利用することも可能となります。
関連記事:製品Tips:TimelineAPIでタイムライン アクティビティを登録する(ルールエンジンを利用しない方法)