Referência de Expressões
abs(number)
Retorna o valor absoluto de um número.
Exemplo 1:
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo Float: 0.5
.
card MyCard do
my_var = abs(-0.5)
# Quando usado em um trecho de texto, prefixe com um `@`
my_var = "@abs(-0.5)"
end
Exemplo 2:
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo Integer: 1
.
card MyCard do
my_var = abs(-1)
# Quando usado em um trecho de texto, prefixe com um `@`
my_var = "@abs(-1)"
end
and(argument1, argument2, argument3)
Retorna true
se, e somente se, todos os seus argumentos forem avaliados como true
.
Exemplo 1:
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo Boolean: false
, quando usado com o seguinte contexto:
%{"contact" => %{"age" => 32, "gender" => "?"}}
card MyCard do
my_var = contact.gender = "F" and contact.age >= 18
# Quando usado em um trecho de texto, prefixe com um `@`
my_var = "@and(contact.gender = \"F\", contact.age >= 18)"
end
Exemplo 2:
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo Boolean: true
, quando usado com o seguinte contexto:
%{"contact" => %{"age" => 32, "gender" => "F"}}
card MyCard do
my_var = contact.gender = "F" and contact.age >= 18
# Quando usado em um trecho de texto, prefixe com um `@`
my_var = "@and(contact.gender = \"F\", contact.age >= 18)"
end
append(list, payload)
Anexa um item ou uma lista de itens a uma lista fornecida.
Exemplo 1:
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo Lista com valores String, String, String, String:
[
"A",
"B",
"C",
"B"
]
card MyCard do
my_var = append(["A", "B"], ["C", "B"])
# Quando usado em um trecho de texto, prefixe com um `@`
my_var = "@append([\"A\", \"B\"], [\"C\", \"B\"])"
end
Exemplo 2:
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo Lista com valores String, String, String:
[
"A",
"B",
"C"
]
card MyCard do
my_var = append(["A", "B"], "C")
# Quando usado em um trecho de texto, prefixe com um `@`
my_var = "@append([\"A\", \"B\"], \"C\")"
end
attachment_url(media_id, ttl)
Retorna uma URL temporária que dá acesso à mídia referenciada pelo ID fornecido.
Exemplo 1: Retorna uma URL para um anexo recebido com um TTL (tempo de vida) limitado.
O segundo parâmetro é a quantidade de minutos que a URL será válida.
Se não fornecido, o valor padrão será 15.
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo String: "https://example.org/attachment-url"
.
card MyCard do
my_var = attachment_url(event.message.image.id, 10)
# Quando usado em um trecho de texto, prefixe com um `@`
my_var = "@attachment_url(event.message.image.id, 10)"
end
attachment_url(media_id)
Gera uma URL para o ID de mídia fornecido, válida por 15 minutos.
Exemplo 1: Retorna uma URL para um anexo válida por 15 minutos.
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo String: "https://example.org/attachment-url"
.
card MyCard do
my_var = attachment_url(event.message.image.id)
# Quando usado em um trecho de texto, prefixe com um `@`
my_var = "@attachment_url(event.message.image.id)"
end
base64_decode(thing)
Decodifica uma expressão em Base64.
Exemplo 1:
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo String: "hello world"
.
card MyCard do
my_var = base64_decode("aGVsbG8gd29ybGQ=")
# Quando usado em um trecho de texto, prefixe com um `@`
my_var = "@base64_decode(\"aGVsbG8gd29ybGQ=\")"
end
base64_encode(thing)
Codifica uma expressão em Base64.
Exemplo 1:
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo String: "aGVsbG8gd29ybGQ="
.
card MyCard do
my_var = base64_encode("hello world")
# Quando usado em um trecho de texto, prefixe com um `@`
my_var = "@base64_encode(\"hello world\")"
end
char(code)
Retorna o caractere especificado por um número.
> "Tão fácil quanto @char(65), @char(66), @char(67)"
"Tão fácil quanto A, B, C"
Exemplo 1:
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo String: "A"
.
card MyCard do
my_var = char(65)
# Quando usado em um trecho de texto, prefixe com um `@`
my_var = "@char(65)"
end
chunk_every(enumerable, count)
Divide uma lista em várias listas menores.
Isso é útil em casos onde há uma lista grande, mas se deseja processá-la em pedaços menores.
Exemplo 1: Divida um grande conjunto de frases em conjuntos menores.
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo Lista com valores Lista com valores String, String, Lista com valores String, String, Lista com valores String:
[
[
"a primeira frase",
"a segunda frase"
],
[
"a terceira frase",
"a quarta frase"
],
[
"a quinta frase"
]
]
quando usado com o seguinte contexto:
%{"sentences" => ["a primeira frase", "a segunda frase", "a terceira frase", "a quarta frase", "a quinta frase"]}
card MyCard do
my_var = chunk_every(sentences, 2)
# Quando usado em um trecho de texto, prefixe com um `@`
my_var = "@chunk_every(sentences, 2)"
end
clean(binary)
Remove todos os caracteres não imprimíveis de uma string de texto.
Exemplo 1:
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo String: ""
.
card MyCard do
my_var = clean(nil)
# Quando usado em um trecho de texto, prefixe com um `@`
my_var = "@clean(nil)"
end
Exemplo 2:
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo String: "ABC"
quando usado com o seguinte contexto:
%{"value" => <<65, 0, 66, 0, 67>>}
card MyCard do
my_var = clean(value)
# Quando usado em um trecho de texto, prefixe com um `@`
my_var = "@clean(value)"
end
code(code_ast)
Retorna o código numérico para o primeiro caractere em uma string de texto.
> "O código numérico de A é @CODE(\"A\")"
"O código numérico de A é 65"
Exemplo 1:
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo Nulo: null
.
card MyCard do
my_var = code(nil)
# Quando usado em um trecho de texto, prefixe com um `@`
my_var = "@code(nil)"
end
Exemplo 2:
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo Inteiro: 65
.
card MyCard do
my_var = code("A")
# Quando usado em um trecho de texto, prefixe com um `@`
my_var = "@code(\"A\")"
end
concatenate(argument1, argument2, argument3)
Une strings de texto em uma única string de texto.
> "O seu nome é @CONCATENATE(contact.first_name, " ", contact.last_name)"
"O seu nome é name surname"
Exemplo 1:
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo String: "name surname"
quando usado com o seguinte contexto:
%{"contact" => %{"first_name" => "name", "last_name" => "surname"}}
card MyCard do
my_var = concatenate(contact.first_name, " ", contact.last_name)
# Quando usado em um trecho de texto, prefixe com um `@`
my_var = "@concatenate(contact.first_name, " ", contact.last_name)"
end
count(term)
Retorna o número de entradas em uma lista, string ou mapa.
Exemplo 1:
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo Inteiro: 0
quando usado com o seguinte contexto:
%{"nil_value" => nil}
card MyCard do
my_var = count(nil_value)
# Quando usado em um trecho de texto, prefixe com um `@`
my_var = "@count(nil_value)"
end
Exemplo 2:
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo Inteiro: 1
quando usado com o seguinte contexto:
%{"map" => %{"foo" => "bar"}}
card MyCard do
my_var = count(map)
# Quando usado em um trecho de texto, prefixe com um `@`
my_var = "@count(map)"
end
Exemplo 3:
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo Inteiro: 3
.
card MyCard do
my_var = count("zoë")
# Quando usado em um trecho de texto, prefixe com um `@`
my_var = "@count("zoë")"
end
Exemplo 4:
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo Inteiro: 3
.
card MyCard do
my_var = count([1, 2, 3])
# Quando usado em um trecho de texto, prefixe com um `@`
my_var = "@count([1, 2, 3])"
end
cull_data()
Exclui permanentemente todas as mensagens, contatos, detalhes de contato, anexos e tudo relacionado a um chat.
Exemplo 1:
Quando usado como uma expressão em uma Jornada, retorna um tipo Booleano complexo com valor padrão: true com os seguintes campos:
- type do tipo String.
card MyCard do
my_var = cull_data()
# Quando usado em um trecho de texto, prefixe com um `@`
my_var = "@cull_data()"
end
date(year, month, day)
Define um novo valor de data.
Exemplo 1: Construa uma data a partir de inteiros para ano, mês e dia.
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo Data: "2022-01-31"
quando usado com o seguinte contexto:
%{"day" => 31, "month" => 1, "year" => 2022}
card MyCard do
my_var = date(year, month, day)
# Quando usado em um trecho de texto, prefixe com um `@`
my_var = "@date(year, month, day)"
end
datetime_add(datetime, offset, unit)
Calcula uma nova data/hora com base no deslocamento e na unidade fornecida.
A unidade pode ser qualquer um dos seguintes valores:
- "Y" para anos
- "M" para meses
- "W" para semanas
- "D" para dias
- "h" para horas
- "m" para minutos
- "s" para segundos
Especificar um deslocamento negativo resulta em cálculos de data voltados para o passado.
Exemplo 1: Entradas de data inválidas
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo Map:
{
"__type__": "expression/v1error",
"error": true,
"message": "Invalid date"
}
quando usado com o seguinte contexto:
%{}
card MyCard do
my_var = datetime_add("_..[0]._", 0, "h")
# Quando usado em um trecho de texto, prefixe com um `@`
my_var = "@datetime_add("_..[0]._", 0, "h")"
end
Exemplo 2: Deslocamentos negativos
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo DateTime: "2020-02-28T00:00:00.000000Z".
card MyCard do
my_var = datetime_add(date(2020, 02, 29), -1, "D")
# Quando usado em um trecho de texto, prefixe com um `@`
my_var = "@datetime_add(date(2020, 02, 29), -1, "D")"
end
Exemplo 3: Tratamento de ano bissexto fora de um ano bissexto.
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo DateTime: "2021-03-01T00:00:00.000000Z".
card MyCard do
my_var = datetime_add(date(2021, 02, 28), 1, "D")
# Quando usado em um trecho de texto, prefixe com um `@`
my_var = "@datetime_add(date(2021, 02, 28), 1, "D")"
end
Exemplo 4: Tratamento de ano bissexto em um ano bissexto.
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo DateTime: "2020-02-29T00:00:00.000000Z".
card MyCard do
my_var = datetime_add(date(2020, 02, 28), 1, "D")
# Quando usado em um trecho de texto, prefixe com um `@`
my_var = "@datetime_add(date(2020, 02, 28), 1, "D")"
end
Exemplo 5: Calcula uma nova data/hora com base no deslocamento e na unidade fornecida.
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo DateTime: "2022-08-31T00:00:00Z" quando usado com o seguinte contexto:
%{"datetime" => ~U[2022-07-31 00:00:00Z], "offset" => "1", "unit" => "M"}
card MyCard do
my_var = datetime_add(datetime, offset, unit)
# Quando usado em um trecho de texto, prefixe com um `@`
my_var = "@datetime_add(datetime, offset, unit)"
end
datetime_from_unix(unix, unit)
Analisa um horário UNIX e retorna um DateTime
Exemplo 1:
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo DateTime: "2023-12-06T23:00:00Z" quando usado com o seguinte contexto:
%{}
card MyCard do
my_var = datetime_from_unix("1701903600", "second")
# Quando usado em um trecho de texto, prefixe com um `@`
my_var = "@datetime_from_unix("1701903600", "second")"
end
Exemplo 2:
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo DateTime: "2023-12-06T23:00:00.000Z" quando usado com o seguinte contexto:
%{}
card MyCard do
my_var = datetime_from_unix(1701903600000, "millisecond")
# Quando usado em um trecho de texto, prefixe com um `@`
my_var = "@datetime_from_unix(1701903600000, "millisecond")"
end
Exemplo 3:
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo DateTime: "2023-12-06T23:00:00.000Z" quando usado com o seguinte contexto:
%{}
card MyCard do
my_var = datetime_from_unix("1701903600000", "millisecond")
# Quando usado em um trecho de texto, prefixe com um `@`
my_var = "@datetime_from_unix("1701903600000", "millisecond")"
end
datetime_next(desired_day, time, base_date)
Calcula uma nova data/hora com base em uma data base, um dia desejado e um horário desejado.
Exemplo 1: Se o dia da semana for o mesmo que a data base, a próxima ocorrência será 7 dias depois.
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo DateTime: "2023-02-09T10:30:00-03:00" quando usado com o seguinte contexto:
%{"base_date" => ~U[2023-02-02 20:18:03Z], "contact" => %{"whatsapp_id" => "552197295926"}}
card MyCard do
my_var = datetime_next("thursday", "10:30", base_date)
# Quando usado em um trecho de texto, prefixe com um @
my_var = "@datetime_next("thursday", "10:30", base_date)"
end
Exemplo 2: Desloca uma data/hora para a próxima ocorrência de um determinado dia da semana e um horário definido.
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo DateTime: "2023-02-06T10:00:00-03:00" quando usado com o seguinte contexto:
%{"base_date" => ~U[2023-02-03 20:18:03Z], "contact" => %{"whatsapp_id" => "552197295926"}}
card MyCard do
my_var = datetime_next("monday", "10:00", base_date)
# Quando usado em um trecho de texto, prefixe com um @
my_var = "@datetime_next("monday", "10:00", base_date)"
end
datetime_next(desired_day, time)
Calcula uma nova data/hora com base na data e hora de hoje, um dia desejado e um horário desejado.
Exemplo 1:
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo DateTime: "2024-10-12T13:45:00-03:00" quando usado com o seguinte contexto:
%{"contact" => %{"whatsapp_id" => "552197295926"}}
card MyCard do
my_var = datetime_next("saturday", "13:45")
# Quando usado em um trecho de texto, prefixe com um @
my_var = "@datetime_next("saturday", "13:45")"
end
datevalue(date, format)
Converte uma data armazenada em texto em um objeto de data real e a formata usando a formatação de strftime.
Usará "%Y-%m-%d %H:%M:%S" se nenhum formato for fornecido.
Exemplo 1: Converter um valor de data e ler o campo de data
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo Date: "2022-01-01".
card MyCard do
my_var = datevalue(date(2022, 1, 1)).date
# Quando usado em um trecho de texto, prefixe com um @
my_var = "@datevalue(date(2022, 1, 1)).date"
end
Exemplo 2: Converter uma data de um trecho de texto e ler o campo de data
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo Date: "2022-01-01".
card MyCard do
my_var = datevalue("2022-01-01").date
# Quando usado em um trecho de texto, prefixe com um @
my_var = "@datevalue("2022-01-01").date"
end
Exemplo 3: Converter uma data de um trecho de texto para uma string de data formatada
Quando usado como uma expressão em uma Jornada, retorna um tipo String complexo de valor padrão: "2022-01-01 00:00:00" com os seguintes campos:
- date do tipo Date
- datetime do tipo DateTime.
card MyCard do
my_var = datevalue("2022-01-01")
# Quando usado em um trecho de texto, prefixe com um @
my_var = "@datevalue("2022-01-01")"
end
datevalue(date)
day(date)
Retorna apenas o dia do mês de uma data (1 a 31).
Exemplo 1: Obter o dia do mês de hoje
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo Integer: 8.
card MyCard do
my_var = day(now())
# Quando usado em um trecho de texto, prefixe com um @
my_var = "@day(now())"
end
Exemplo 2: Obter o dia do mês de hoje
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo Integer: 10.
card MyCard do
my_var = day(date(2022, 9, 10))
# Quando usado em um trecho de texto, prefixe com um @
my_var = "@day(date(2022, 9, 10))"
end
delete(map, key)
Exclui um elemento de um mapa pela chave fornecida.
Exemplo 1:
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo Map:
{
"age": 32
}
quando usado com o seguinte contexto:
%{"patient" => %{"age" => 32, "gender" => "?"}}
card MyCard do
my_var = delete(patient, "gender")
# Quando usado em um trecho de texto, prefixe com um @
my_var = "@delete(patient, "gender")"
end
edate(date, months)
Desloca uma data pelo número de meses fornecido.
Exemplo 1: Deslocar a data armazenada em um trecho de texto em 1 mês
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo Date: "2022-11-10".
card MyCard do
my_var = edate("2022-10-10", 1)
# Quando usado em um trecho de texto, prefixe com um @
my_var = "@edate("2022-10-10", 1)"
end
Exemplo 2: Deslocar a data em um objeto de data em 1 mês
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo DateTime: "2022-02-01T00:00:00Z" quando usado com o seguinte contexto:
%{right_now: ~U[2022-01-01 00:00:00Z]}
card MyCard do
my_var = edate(right_now, 1)
# Quando usado em um trecho de texto, prefixe com um @
my_var = "@edate(right_now, 1)"
end
filter(enumerable, filter_fun)
Filtra uma lista retornando uma nova lista que contém apenas os
elementos para os quais filter_fun
é verdadeiro.
Exemplo 1:
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo Lista com valores String, String:
[
"B",
"B"
]
card MyCard do
my_var = filter(["A", "B", "C", "B"], & &1 == "B")
# Quando usado em um trecho de texto, prefixe com um @
my_var = "@filter(["A", "B", "C", "B"], & &1 == "B")"
end
find(enumerable, find_fun)
Encontra o primeiro elemento na lista para o qual filter_fun
é verdadeiro.
Exemplo 1:
Quando usado como uma expressão em uma Jornada, retorna um valor do tipo Lista com valores String, String:
[
"Hi",
"World"
]
card MyCard do
my_var = find([["Hello", "World"], ["Hi", "World"]], & &1[0] == "Hi")
# Quando usado em um trecho de texto, prefixe com um @
my_var = "@find([["Hello", "World"], ["Hi", "World"]], & &1[0] == "Hi")"
end