Exercice JSONata : https://try.jsonata.org/
Fonctions JSONata : Chaîne, Numéro, Objet, Tableau
Type de chaîne Force : $string(Account.Order[0].Product[0].ProductID): "858383"
Type de numéro Force : $number(Account.Order[0].Product[0].SKU): 406654608
Jour et heure
$now() > ISO 8601, p. ex., 2022-10-17T09:50:03.163Z
$millis() > Epoch UNIX en millisecondes, p. ex., 1666000139832
To Millis (UNIX x 1000) (pour toute conversion et comparaison mathématique) :
$toMillis(date)
> p. ex., 1626335334767
Si votre date n’est pas au format ISO 8601, vous pouvez quand même utiliser toMillis en spécifiant le format d’entrée, p. ex., $toMillis('2020-09-09 00:00:00 +02:00', '[Y0001]-[M01]-[D01] [H01]:[m01]:[s01] [Z]')
From Millis (UNIX x 1000) (lisible par l’humain, envoyez schéma de sortie comme paramètre :
$fromMillis($toMillis(date), '[M01]/[D01]/[Y0001] [h#1]:[m01][P]')
> p. ex., 07/15/2021 7:48am
Exemple : Différence entre orderDate et now() :
($millis() - $toMillis(orderDate))/1000/60 > En minutes
($millis() - $toMillis(orderDate))/1000/60/60/24 > En jours
> p. ex., 461 jours, utilisable dans les opérateurs de nombre de bloc conditionnel : <>=
Regroupement de plusieurs résultats : fiches et carrousels
(Prenez en compte les limitations techniques lors du test sur un widget CRM en production.)
IMPORTANT : les C&C dans le créateur de dialogue recherchent des tableaux. À moins que vous ne définissiez votre sortie cible dans JSONata sous forme [], ils peuvent renvoyer un objet à la place et provoquer une erreur technique.
Lorsqu’ils sont créés en tant que message texte dans un agent IA (non imbriqués), les objets sont rendus comme [object Object], et les tableaux comme [object Object],[object Object].
Requête de base 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, avec index 0 comme premier élément, 10 objets en tout, limite maximale pour la plupart des CRM
… $substring(SKU, 0, 50) > Éliminez les lettres inutiles de la chaîne, la première lettre étant index 0
Carte de repli facultative au cas où le corps de la réponse est vide ou introuvable :
Account.Order.Product ?
[Account.Order.Product[[0..8]].{
'SKU': $substring(SKU, 0, 50), 'Quantity': Quantity}] :
[{"SKU" : "Product Not Found"}]
Regroupement de plusieurs résultats : e-mail
$join(Account.Order.Product.(
"SKU: " & SKU & ", " & "Price: " & Price), '\n')… '\n' > Créer une nouvelle ligne pour séparer les résultats si votre CRM prend en charge le formatage de base