上記の記事にて、CSVファイルなど外部のシステムからTimeline API経由でのアクティビティの登録についてはご紹介しましたが、Gainsight内の日時項目を利用した際のTimeline APIの登録の際に少しテクニックが必要なので、その方法をご紹介致します。
(この記事では、日時変換の部分をご説明するためルールエンジンからのAPI呼び出し処理等については上記記事をご確認下さい)
Previewで閲覧する際の日時文字列と実際にAPIで投げられる文字列の形式は異なることがあるため、以下の形式をご参考に設定して下さい。
まず、gainsight内での日時(datetime)データの保存形式は
YYYY-MM-DDThh:mm:ssXXX (例: 2025-09-13T11:46:00.000+09:00)
YYYY-MM-DDThh:mm:ssXXX (例: 2025-09-13T11:46:00.000+09:00)
となっています。
一方で、Timeline Activity登録のAPIが受け付けられるフォーマットは
YYYY-MM-DDThh:mm:ss.SSSXXX (例: 2025-09-13T11:46:00.000+09:00)
のように、ミリ秒(.SSSの部分)を含める必要があります。
ルールエンジンの中では以下の3つのTransform処理で日時項目を上記のフォーマットに変更できます。
- Datetime型の日時項目をString型に変更する
Datetime型でのフォーマット変更は難しいため、一度文字列に変換します。
文字列への変換はToString関数を利用することで実施できます。(デフォルト値を第2引数として与える必要がありますので、必要があればデフォルトの日時をセットして下さい。気にしない場合は適当な文字でOKです) - String型の日時項目からタイムゾーンを取り除く
ミリ秒を追加するため、LEFT関数を使って一度タイムゾーン(+09:00の部分)を取り除きます。
(タイムゾーンの値は環境のLocaleに依存するのでアプリケーション設定をご確認下さい) - ミリ秒とタイムゾーンを結合し、APIで利用可能な文字列に変換
先程取り除いたタイムゾーン(ここでは+09:00)とミリ秒(.000)をConcat関数を使って先程の文字列と結合します。
これでAPIで利用可能な日時形式の文字列が作成できました。