JSONata Exerciser:https://try.jsonata.org/
JSONata関数:文字列、数値、オブジェクト、配列
文字列のタイプを強制: $string(Account.Order[0].Product[0].ProductID):"858383"
数値のタイプを強制: $number(Account.Order[0].Product[0].SKU):406654608
日付と時間
$now() > ISO 8601、例:2022-10-17T09:50:03.163Z
$millis() > UNIX Epoch、ミリ秒、例:1666000139832
Millis(UNIX x 1000)(数式変換および比較の場合):
$toMillis(date)
> 例:1626335334767
日付がISO 8601形式でなくても、入力形式を指定することでtoMillisを使用できます。例:$toMillis('2020-09-09 00:00:00 +02:00', '[Y0001]-[M01]-[D01] [H01]:[m01]:[s01] [Z]')
Millis(UNIX x 1000)(人間が読み取り可能、出力パターンをパラメータとして渡す:
$fromMillis($toMillis(date), '[M01]/[D01]/[Y0001] [h#1]:[m01][P]')
> 例:07/15/2021 7:48am
例:orderDateとnow()の違い:
($millis() - $toMillis(orderDate))/1000/60 > To minutes
($millis() - $toMillis(orderDate))/1000/60/60/24 > To days
> 例:461日。条件設定ブロック数値演算子で使用できます。<>=
複数の結果を集計する:カードとカルーセル
(ライブCRMウィジェットでテストする場合は、技術的制限事項に注意してください)
重要:対話ビルダーのカードとカルーセルは配列を検索します。JSONataでターゲット出力を[ ]として定義しない限り、代わりにオブジェクトが返され、技術的なエラーが発生する可能性があります。
AIエージェントのテキストメッセージで出力する場合、(ネストされていない)オブジェクトは [object Object],[object Object]として、配列は[object Object],[object Object]としてレンダリングされます。
エントリごとに新しいオブジェクトを作成するための基本クエリ:
Account.Order.Product.{'Quantity': Quantity}
シンプルなカードとカルーセル:
Account.Order.Product[[0..8]].{
'SKU': $substring(SKU, 0, 50), 'Quantity': Quantity}
… [[0..8] > 最初の項目をインデックス0とする結果範囲。ほとんどのCRMでは、合計10個のオブジェクトが上限です。
… $substring(SKU, 0, 50) > 最初の文字をインデックス0にして、余分な文字を切り捨てます。
レスポンスの本文が空の場合/見つからない場合のオプションのフォールバックカード:
Account.Order.Product ?
[Account.Order.Product[[0..8]].{
'SKU': $substring(SKU, 0, 50), 'Quantity': Quantity}] :
[{"SKU" : "Product Not Found"}]
複数の結果を集計する:メールアドレス
$join(Account.Order.Product.(
"SKU: " & SKU & ", " & "Price: " & Price), '\n')
… '\n' > CRMが基本フォーマットをサポートしている場合、結果を分けるために新しい行をレンダリングします。