JSONata Exerciser: https://try.jsonata.org/
JSONata-Funktionen: String, Number, Object, Array
Zeichenfolgetyp erzwingen: $string(Account.Order[0].Product[0].ProductID): "858383"
Nummerntyp erzwingen $number(Account.Order[0].Product[0].SKU): 406654608
Datum und Uhrzeit
$now() > ISO 8601, z. B. 2022-10-17T09:50:03.163Z
$millis() > UNIX-Epoche in Millisekunden, z. B.1666000139832
In Millis (UNIX x 1000) (für alle mathematischen Umrechnungen und Vergleiche):
$toMillis(date)
>z. B. 1626335334767
Selbst wenn Ihr Datum nicht das ISO 8601-Format aufweist, können Sie toMillis verwenden, indem Sie das Eingabeformat angeben, z. B. $toMillis('2020-09-09 00:00:00 +02:00', '[Y0001]-[M01]-[D01] [H01]:[m01]:[s01] [Z]').
Aus Millis (UNIX x 1000) (lesbar für Menschen, Ausgabemuster als Parameter übergeben:
$fromMillis($toMillis(date), '[M01]/[D01]/[Y0001] [h#1]:[m01][P]')
> z. B. 07/15/2021 7:48am
Beispiel: Unterschied 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 mit Operatoren für konditionale Blöcke verwendet werden können: <>=
Aggregieren mehrerer Ergebnisse: Karten und Karusselle
(Beachten Sie die technischen Einschränkungen, wenn Sie mit einem CRM-Widget testen, das live geschaltet ist.)
WICHTIG: Karten und Karusselle im Dialoggenerator suchen nach Arrays. Sofern Sie Ihre Zielausgabe in JSONata nicht als [] definieren, wird möglicherweise stattdessen ein Objekt zurückgegeben und ein technischer Fehler ausgelöst.
Bei der Ausgabe in der Textnachricht eines AI Agent werden (nicht verschachtelte) Objekte als [object Object] und Arrays als [object Object],[object Object] dargestellt.
Einfache Abfrage zur Erstellung eines neuen Objekts pro Eintrag:
Account.Order.Product.{'Quantity': Quantity}
Einfache Karte/Karussell
Account.Order.Product[[0..8]].{
'SKU': $substring(SKU, 0, 50), 'Quantity': Quantity}… [[0..8]] > Ergebnisbereich, wobei das erste Element den Index 0 hat und 10 Objekte für die meisten CRMs die maximale Obergrenze sind
… $substring(SKU, 0, 50) > Überschüssige Zeichen in der Zeichenfolge abschneiden, wobei das erste Zeichen den Index 0 hat
Optionale Fallback-Karte, falls Antworttext leer ist bzw. 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 ein, um Ergebnisse voneinander zu trennen, sofern Ihr CRM grundlegende Formatierungsfunktionen unterstützt