Qual é o meu plano?
Complemento Agentes de IA - Avançado

Exercício do JSONata: https://try.jsonata.org/
Funções JSONata: Cadeia de caracteres, Número, Objeto, Matriz

Forçar tipo de cadeia de caracteres: $string(Account.Order[0].Product[0].ProductID): "858383"
Forçar tipo de número: $number(Account.Order[0].Product[0].SKU): 406654608

Dia e hora

$now() > ISO 8601, por exemplo, 2022-10-17T09:50:03.163Z
$millis() > UNIX Epoch em milissegundos, por exemplo, 1666000139832

Para Millis (UNIX x 1000) (para quaisquer conversões e comparações matemáticas):

$toMillis(date)
> por exemplo, 1626335334767

Se sua data não estiver no formato ISO 8601, você ainda poderá usar toMilis especificando o formato de entrada, por exemplo, $toMillis('2020-09-09 00:00:00 +02:00', '[Y0001]-[M01]-[D01] [H01]:[m01]:[s01] [Z]')

De Millis (UNIX x 1000) (legível, passar o padrão de saída como parâmetro:

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

Exemplo: Diferença entre orderDate e now():

($millis() - $toMillis(orderDate))/1000/60 > para minutos
($millis() - $toMillis(orderDate))/1000/60/60/24 > para dias

> por exemplo, 461 dias, que agora pode ser usado em operadores de números do bloqueio condicional: <>=

 

Agregação de vários resultados: Cartões e carrosséis

(Lembre-se das limitações técnicas ao testar em um widget de CRM em uso.) 

IMPORTANTE: os C&Cs no criador de diálogos procuram matrizes. A menos que você defina sua saída de destino em JSONata como [], ela pode retornar um objeto e gerar um erro técnico.

Ao serem exibidos em uma mensagem de texto do agente de IA, os objetos (não aninhados) serão renderizados como [object Object], as matrizes como [object Object],[object Object].

Consulta básica para criar um novo objeto por entrada:

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


C&C simples:

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

… [[0..8]] > Intervalo de resultados com o primeiro item sendo índice 0, 10 objetos no total sendo o limite máximo para a maioria dos CRMs.
… $substring(SKU, 0, 50) > Cortar o excesso de letras da cadeia de caracteres com a primeira letra sendo o índice 0.


Cartão de fallback opcional caso o corpo da resposta esteja vazio/não seja encontrado:

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

 

Agregação de vários resultados: E-mail

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

… '\n' > Renderizar uma nova linha para separar os resultados se o seu CRM for compatível com a formatação básica.

Powered by Zendesk