Exercice JSONata : https://try.jsonata.org/
Fonctions JSONata : Chaîne, Nombre, Objet, Tableau
Type de chaîne de force : $string(Account.Order[0].Product[0].ProductID) : « 858383 »
Type de numéro de force : $number(Account.Order[0].Product[0].Sku) : 406654608
Jour et heure
$now() > ISO 8601, par ex. 17-10-2022T09:50:03.163Z
$millis() > UNIX Epoch en millisecondes, par ex. 1666000139832
En millisecondes (UNIX x 1 000)(pour toutes les conversions et comparaisons mathématiques) :
$toMillis(date)
> Par ex. 1626335334767
Si votre date n’est pas au format ISO 8601, vous pouvez quand même utiliser toMillis en spécifiant le format de saisie, par ex. $toMillis('09-09-2020 00:00:00 +02:00', '[A0001]-[M01]-[J01] [H01]:[m01]:[s01] [Z]')
FromMillis (UNIX x 1 000) (lisible par l’homme, modifiez le schéma de sortie comme paramètre :
$fromMillis($toMillis(date), '[M01]/[J01]/[A0001] [h#1]:[m01][P]')
> Par ex. 07/15//2021 7:48
Exemple : Différence entre orderDate et now() :
($millis() - $toMillis(orderDate))/1000/60 > En minutes
($millis() - $toMillis(orderDate))/1000/60/60/24 > En jours
> Par ex. 461 jours, qui peut désormais être utilisé avec les opérateurs de blocs conditionnels : <>=
Agrégation de plusieurs résultats : Fiches et carrousels
(N’oubliez pas les limitations techniques quand vous testez sur un widget CRM en direct.)
IMPORTANT : Les modèles C&C dans le créateur de dialogue recherchent des tableaux. Si vous ne définissez pas votre sortie cible dans JSONata comme [], elle peut renvoyer un objet et générer une erreur technique.
Lors de la sortie d’un texte de l’agent IA, les objets (non imbriqués) seront rendus en tant que [objet objet], les tableaux en tant que [objet Objet],[objet Objet].
Requête élémentaire pour créer un nouvel objet par entrée :
Account.Order.Product.{'Quantity': Quantity}
C&C simple :
Account.Order.Product[[0..8]].{
'SKU': $substring(SKU, 0, 50), 'Quantity': Quantity}
… [[0..8]] > Plage de résultats, le premier élément étant l'index 0, 10 objets au total étant la limite maximale pour la plupart des CRM
… $substring(SKU, 0, 50) > Coupe les lettres de la chaîne en excès, la première lettre étant l'indice 0
Carte de repli facultative si le corps de la réponse est vide / introuvable :
Account.Order.Product ?
[Account.Order.Product[[0..8]].{
'SKU': $substring(SKU, 0, 50), 'Quantity': Quantity}] :
[{"SKU" : "Product Not Found"}]
Agrégation de plusieurs résultats : E-mail
$join(Account.Order.Product.(
"SKU: " & SKU & ", " & "Price: " & Price), '\n')
… « \n » > Produit une nouvelle ligne pour séparer les résultats si votre CRM prend en charge le formatage élémentaire