JSONata zum Üben: https://try.jsonata.org/
JSONata-Funktionen: Zeichenfolge, Zahl, Objekt, Array
Typ „Zeichenfolge“ erzwingen: $string(Account.Order[0].Product[0].ProductID): "858383"
Zahlentyp erzwingen: $number(Account.Order[0].Product[0].SKU): 406654608
Tag und Uhrzeit
$jetzt() > ISO 8601, z. B. 17.10.2022T09:50:03.163Z
$millis() > UNIX-Epoche in Millisekunden, z. B 1666000139832
Nach Millisekunden (UNIX x 1000)(für alle mathematischen Umrechnungen und Vergleiche):
$tomillis((Datum)
> z. B. 1626335334767
Wenn das Datum nicht im ISO 8601-Format vorliegt, können Sie toMillis trotzdem verwenden, indem Sie das Eingabeformat angeben, z. B. $toMillis('09.09.2020 00:00:00 +02:00', '[Y0001]-[M01]-[D01] [H01]:[m01]:[s01] [Z]')
Aus Millisekunden (UNIX x 1000) (Klartext, Ausgabemuster als Parameter übergeben:
$from Millis($to Millis(Datum), '[M01]/[D01]/[Y0001] [h#1]:[m01][P]')
> z. B 15.07.2021 7:48 Uhr
Beispiel: Differenz zwischen orderDate und now():
($millis() - $tomillis(orderDate))/1000/60 > In Minuten
($millis() - $tomillis(orderDate))/1000/60/60/24 > In Tage
> z. B. 461 Tage, die jetzt für Operatoren mit konditionalen Blocknummern verwendet werden können: <>=
Aggregieren mehrerer Ergebnisse: Karten und Karussells
(Beachten Sie die technischen Einschränkungen beim Testen in einem Live-CRM-Widget.)
WICHTIG: C&Cs im Dialoggenerator suchen nach Arrays. Wenn Sie Ihre Zielausgabe nicht in JSONata als [] definieren, wird möglicherweise stattdessen ein Objekt zurückgegeben und ein technischer Fehler ausgelöst.
Bei der Ausgabe in einer Textnachricht für AI Agents werden (nicht verschachtelte) Objekte als [object Object], Arrays hingegen als [object Object],[objec Object] dargestellt.
Grundlegende Abfrage zum Erstellen eines neuen Objekts pro Eintrag:
Account.Order.Product.{'Quantity': Quantity}
Einfaches C&C:
Account.Order.Product[[0..8]].{
'SKU': $substring(SKU, 0, 50), 'Quantity': Quantity}
… [[0..8]] > Ergebnisbereich mit erstem Element als Index 0, wobei 10 Objekte für die meisten CRMs die Obergrenze darstellen.
… $substring(SKU, 0, 50) > Überzählige Buchstaben der Zeichenfolge abschneiden, wobei der erste Buchstabe der Index 0 ist
Optionale Fallback-Karte für den Fall, dass der Antworttext leer ist/nicht gefunden wird:
Account.Order.Product ?
[Account.Order.Product[[0..8]].{
'SKU': $substring(SKU, 0, 50), 'Quantity': Quantity}] :
[{"SKU" : "Product Not Found"}]
Aggregieren mehrerer Ergebnisse: E-Mail
$join(Account.Order.Product.(
"SKU: " & SKU & ", " & "Price: " & Price), '\n')
… '\n' > Neue Zeile rendern, um die Ergebnisse zu trennen, wenn das CRM grundlegende Formatierung unterstützt.