¿Qué plan tengo?
Complemento Agentes IA - Avanzado

Exerciser de JSONata: https://try.jsonata.org/
Funciones de JSONata: cadena, número, objeto, matriz

Forzar tipo de cadena: $string(Account.Order[0].Product[0].ProductID): "858383"
Forzar tipo de número: $number(Account.Order[0].Product[0].SKU): 406654608

Día y hora

$now() > ISO 8601, p. ej. 2022-10-17T09:50:03.163Z
$millis() > época de UNIX en milisegundos, p. ej. 1666000139832

A Millis (UNIX x 1000), para cualquier conversión matemática y comparación:

$toMillis(date)
> p. ej. 1626335334767

Si la fecha no está en formato ISO 8601, puede usar toMillis especificando el formato de entrada, p. ej. $toMillis('2020-09-09 00:00:00 +02:00', '[Y0001]-[M01]-[D01] [H01]:[m01]:[s01] [Z]').

De Millis (UNIX x 1000), legible por humanos; pase el patrón de salida como parámetro:

$fromMillis($toMillis(date), '[M01]/[D01]/[Y0001] [h#1]:[m01][P]')
> p. ej. 07/15/2021 7:48am

Ejemplo: diferencia entre orderDate y now():

($millis() - $toMillis(orderDate))/1000/60 > a minutos
($millis() - $toMillis(orderDate))/1000/60/60/24 > a días

> p. ej., 461 días, que ahora se puede usar en operadores numéricos de bloqueo condicional: <>=

 

Agregar varios resultados: Tarjetas y carruseles

Tenga en cuenta las limitaciones técnicas al realizar pruebas en un widget de CRM activo. 

IMPORTANTE: los módulos de tarjetas y carruseles (C&C) en el generador de diálogo buscan matrices. A menos que defina la salida de destino en JSONata como [], podría devolver un objeto en su lugar y generar un error técnico.

Cuando se envían en un mensaje de texto de agente IA, los objetos (no anidados) se representarán como [objeto Objeto], y las matrices como [objeto Objeto],[objeto Objeto].

Consulta básica para crear un nuevo objeto por entrada:

Account.Order.Product.{'Quantity': Quantity}


C&C sencillo:

Account.Order.Product[[0..8]].{
'SKU': $substring(SKU, 0, 50), 'Quantity':
Quantity}

… [[0..8]] > Intervalo de resultados en el que el primer elemento es el índice 0. 10 objetos en total es el límite máximo para la mayoría de los CRM.
… $substring(SKU, 0, 50) > Cortar las letras de cadena excedentes en la que la primera letra es el índice 0.


Tarjeta alternativa opcional en caso de que el cuerpo de la respuesta esté vacío o no se encuentre:

Account.Order.Product ? 
[Account.Order.Product[[0..8]].{
'SKU': $substring(SKU, 0, 50), 'Quantity': Quantity}] :
[{"SKU" : "Product Not Found"}]

 

Agregar varios resultados: Correo electrónico

$join(Account.Order.Product.(
"SKU: " & SKU & ", " & "Price: " & Price), '\n')

… '\n' > Representar una nueva línea para separar los resultados si su CRM admite funciones básicas de formato.

Tecnología de Zendesk