Variáveis e modelos
Use dados do evento e de passos anteriores em títulos, mensagens e pedidos
Última atualização em
Com variáveis cria textos que mudam consoante o caso. Escreve uma variável entre chavetas e o Tillor preenche o valor real quando a automação corre.
Um exemplo de título de tarefa:
Controleer {occupation.terrain.name}Se a ocupação terminar no terreno 12, a tarefa chama-se Controleer 12.
Inserir uma variável
Acima de cada campo de texto onde as variáveis funcionam está o botão Variável. Clique nele e vê uma lista com todos os dados disponíveis, agrupados por registo. Escreva para pesquisar (Pesquisar variáveis) e clique numa linha. O Tillor coloca a variável na posição do cursor.
Também pode simplesmente escrever uma variável você mesmo. Sob o campo, uma caixa cinzenta mostra o aspeto do texto com dados de exemplo, para ver logo se está certo.
As variáveis funcionam em campos de texto como títulos, descrições, subtarefas, mensagens, o ID de um cliente, fatura ou outro registo, o caminho ou o URL de um pedido à API, o corpo, o payload de um webhook, o nome do evento do webhook e os valores dos cabeçalhos. Nos dois últimos falta o botão Variável, mas uma variável que escreva você mesmo é preenchida na mesma. O Tillor não verifica erros nesses dois campos e não mostra um exemplo.
Nos campos em que escolhe um dado para comparar, escreve a variável sem chavetas. Isto aplica-se a Apenas quando, Se / senão e Até em Aguardar até (por exemplo invoice.status), ao Campo de um Desvio e à Data de um Atraso.
Que variáveis existem
| Variável | Disponível | Conteúdo |
|---|---|---|
{occupation.…}, {invoice.…}, {task.…}, {reservation.…} e outras | Após um evento | Os campos do registo a que o evento diz respeito. O nome do registo é também o início da variável |
{occupation.terrain.name} | Após um evento | Campos dos registos para que o registo remete, como o cliente ou o terreno. Funciona um nível em profundidade |
{triggeredBy.name}, {triggeredBy.id} | Sempre | O colega que causou o evento. Vazio se foi o sistema |
{invoice.…} | Em Fatura vencida | Os campos da fatura vencida e do cliente |
{reservation.…}, {task.…} e outras | Em Uma data é atingida | Os campos do registo cuja data foi atingida, mais os registos para que remete |
{now}, {today} | Sempre | O momento em que o passo corre, e a meia-noite desse dia no fuso horário da organização. Com um deslocamento (abaixo), {today + 1 day} dá amanhã |
{threadId}, {messageId} | Em eventos sobre mensagens da caixa de entrada, como inbox:message-created | O ID da conversa e da mensagem |
| Os campos do evento | Após Aguardar um evento, através de Recebido | Os dados do evento que se esperava. Substituem os dados dos mesmos registos do início do fluxo |
{createdTask.id}, {createdTask.name} | Após Criar tarefa | A tarefa que acabou de ser criada |
{foundTask.id}, {foundTask.name}, {foundTask.priority}, {foundTask.status} | Após Procurar tarefa, através de Encontrada | A tarefa que o passo encontrou |
{updatedTask.id}, {updatedTask.status} | Após Definir estado | A tarefa cujo estado foi alterado |
{updatedTask.id}, {updatedTask.priority} | Após Definir prioridade da tarefa | A tarefa cuja prioridade foi alterada |
{updatedTask.id} | Após Atualizar tarefa | A tarefa que foi modificada |
{foundDocument.id}, {foundDocument.name}, {foundDocument.status}, {foundDocument.userMetadata.documentType}, {foundDocument.userMetadata.insuranceExpiryDate} | Após Encontrar documento, através de Encontrada | O documento que o passo encontrou |
{updatedDocument.id} | Após Atualizar documento | O documento que foi modificado |
{response.status}, {response.body}, {response.data.…} | Após Pedido à API | A resposta do pedido |
{foundCustomer.…}, {foundInvoice.…}, {foundReservation.…} e outras | Após Procurar um registo, através de Encontrada | Os campos do registo que o passo encontrou, mais os registos para que remete. O nome é found mais o tipo de registo: foundCustomer, foundReservation, foundOccupation, foundInvoice, foundPayment, foundTerrain, foundTask, foundDocument, foundAccessMethod, foundNfcTag, foundMeter, foundInboxThread ou foundInboxMessage |
{body.…}, {query.…}, {receivedAt} | Após Webhook recebido | O corpo JSON, os parâmetros de consulta e o momento de receção da chamada do webhook |
| Cada nome de destino de Mapear variáveis | Após Mapear variáveis | O que preencher nesse passo como destino, por exemplo {invoice.displayId} após invoice ← {foundInvoice} |
{item.…} | Nos passos a seguir a Para cada | Os campos do item para o qual o passo está a correr, como {item.id} |
{approvalTask.id}, {approval.decision}, {approval.label}, {approval.note}, {approval.decidedBy.name} | Após Pedir uma decisão, através de uma opção | A tarefa, a opção escolhida, o nome dessa opção, a nota e o colega que escolheu |
{task.…}, {action.label}, {note} | Em É escolhida uma ação de tarefa | A tarefa, o botão escolhido e a nota que lhe foi preenchida |
{createdComment.id} | Após Adicionar um comentário | O comentário que acabou de ser publicado |
{bookedInvoice.displayId} | Após Lançar fatura, através de Concluído | O número da fatura lançada |
{paymentLink.url} | Após Criar link de pagamento, através de Concluído | A ligação com que o cliente pode pagar online |
{consumptionInvoice.id} | Após Faturar consumo, através de Concluído | A fatura do consumo do contador |
{extendInvoice.id} | Após Rascunho de fatura de prolongamento | O rascunho de fatura que prolonga a ocupação |
{createdAccessMethod.id}, {createdAccessMethod.value} | Após Criar método de acesso | O novo método de acesso e o seu valor, como o código de um código QR ou PIN |
{error.message}, {error.step} | Após uma ação com Continuar quando este passo falha, através de Erro | A mensagem de erro e o nome do passo que falhou |
Que campos tem exatamente um registo, vê na lista atrás do botão Variável. No acionador existe também o resumo Dados que este evento fornece.
Apenas o que vem antes no fluxo
Um passo só pode usar variáveis do acionador que o alcança e de passos que estão antes no mesmo caminho. Se vários acionadores alcançarem o mesmo passo, só estão disponíveis as variáveis que cada um desses acionadores fornece. Um campo de um passo anterior conta se cada um desses acionadores também passar por esse passo. Se usar uma variável que não existe nesse ponto, o Tillor indica [Campo]: [variável] não está disponível neste passo. Um fluxo com uma indicação destas não pode ser ativado.
Alguns registos guardam dados adicionais num só campo, como os dados do documento em userMetadata. Cada chave abaixo dele é uma variável: {document.userMetadata.documentType}, {document.userMetadata.insuranceExpiryDate} ou outra chave. As chaves conhecidas, como o tipo e a data de validade de um documento, estão também na lista e pode compará-las como data. Uma data sem hora, como 2026-10-07, aparece numa mensagem como 07-10-2026.
As variáveis de Para cada ({item.…}) só existem nos passos a seguir à saída Para cada, não a seguir a Concluído. As variáveis de uma saída que não seguiu também não existem: {paymentLink.url} só existe se o passo correu por Concluído, e {foundTask.id} só após Encontrada.
Em eventos cujos dados não estão descritos, o Tillor não consegue verificar que variáveis existem. Então não recebe essa indicação. Verifique por isso estes fluxos com especial cuidado através de uma execução de teste.
Um novo valor substitui o antigo
Um segundo Pedido à API no mesmo fluxo substitui a response do primeiro. O mesmo vale para createdTask após uma segunda Criar tarefa, para foundTask após uma segunda Procurar tarefa ou Procurar um registo em Tarefa, e para error após um segundo passo falhado. Use por isso os dados de uma resposta no passo que vem imediatamente a seguir.
Como os valores são preenchidos
O Tillor adapta a notação ao tipo de campo.
Em texto simples (títulos, descrições, subtarefas):
- As datas aparecem no fuso horário da sua organização, por exemplo
05-10-2026. Se a hora não for exatamente meia-noite, aparece também uma hora, como05-10-2026 14:30 - Um campo vazio dá um texto vazio
- Uma variável que o Tillor não conhece fica como a escreveu, por exemplo
{occupation.terain.name}. Um erro de escrita nota-se assim logo na tarefa ou na mensagem - Se um registo associado não existir, a variável fica vazia. Uma ocupação sem reserva não dá, portanto, nada para
{occupation.reservation.displayId}, e um evento causado pelo sistema não dá nada para{triggeredBy.name}. Se nesse caso quiser outro texto, coloque antes um Se / senão com está vazio
Em JSON (o Payload de um webhook e o Corpo de um pedido à API):
- O texto é preenchido em segurança. Aspas, novas linhas e outros carateres especiais no valor não podem quebrar o JSON
- Números e valores sim/não vão sem aspas, pelo que não coloca aspas à volta. O texto, esse, coloca entre aspas
- As datas seguem como data e hora internacionais, como
2026-10-05T08:00:00.000Z, para que o sistema recetor as trate bem
{
"reservation": "{reservation.displayId}",
"adults": {reservation.numberOfAdults}
}Se o JSON não for válido após o preenchimento, por exemplo porque um número está vazio, a execução para com uma mensagem de erro.
Num caminho ou URL (num pedido à API):
- Os valores são convertidos para caberem num endereço. Um nome com um espaço não dá, por isso, um endereço quebrado
- As datas também aqui seguem como data e hora internacionais
- O que escreve você mesmo fica como o escreve. Se quiser um espaço num termo de pesquisa, escreva você mesmo
%20
Deslocar uma data
Depois de uma variável de data pode vir um deslocamento: {reservation.checkOut + 1 day}, {today - 2 weeks}, {invoice.dueDate + 3 hours|date}. As unidades são minutes, hours, days, weeks e months (o singular também é aceite). Dias e semanas têm comprimentos fixos, de modo que uma validade atravessa a hora de verão e de inverno com a mesma duração; os meses seguem o calendário, pelo que 31 de janeiro mais um mês é 28 ou 29 de fevereiro. Num valor que não é uma data, o deslocamento não faz nada, e uma unidade que não existe é um erro no passo. Campos de data como Válido até aceitam a mesma notação.
Formatar um valor
Depois da variável coloque um | e um formato, por exemplo {invoice.amountOutstanding|currency}. Sem formato, um montante aparece em bruto, como 1295.3. Com |currency passa a € 1.295,30.
| Formato | Exemplo | Resultado |
|---|---|---|
currency | {invoice.amountOutstanding|currency} | € 1.295,30 |
currency:USD | {invoice.amountOutstanding|currency:USD} | US$ 1.295,30 |
number | {invoice.amountOutstanding|number} | 1.295,3 |
number:2 | {invoice.amountOutstanding|number:2} | 1.295,30 (número fixo de casas decimais) |
date | {invoice.dueDate|date} | 30-06-2026 |
datetime | {invoice.createdAt|datetime} | 01-06-2026 16:04 |
time | {invoice.createdAt|time} | 16:04 |
upper / lower | {customer.lastName|upper} | VAN DEN BROECKE |
- Números e montantes aparecem sempre na notação belga: um ponto para os milhares e uma vírgula para os decimais
- Datas e horas aparecem no fuso horário da sua organização
- Se o formato não conseguir ler o valor, por exemplo
|currencyem texto, o valor aparece simplesmente sem formato - Um formato que o Tillor não conhece fica como o escreveu, e o editor mostra um aviso sobre isso
- Em JSON e num URL, o valor formatado é preenchido como texto. Em JSON, coloque por isso aspas à volta
Usar uma resposta da API
Após um Pedido à API pode usar campos da resposta com {response.data.…}. A resposta a uma pesquisa de tarefas tem, por exemplo, este aspeto:
{
"items": [
{ "id": "task_1", "priority": "LOW" }
]
}Então {response.data.items.0.id} dá o ID da primeira tarefa (o primeiro de uma lista é o número 0) e {response.data.items.0.priority} a sua prioridade.
O Tillor só pode oferecer os campos de uma resposta como variável se souber o aspeto da resposta. Há duas maneiras:
- Deixe a automação correr uma vez a sério. O Tillor usa então a resposta da última execução
- Cole um exemplo no separador Execução de teste, no campo Exemplo de resposta da API. Esse campo aparece assim que o fluxo contém um Pedido à API. Por baixo estão Campos nesta resposta. Clique num campo para o copiar, incluindo as chavetas
Depois os campos estão na lista atrás do botão Variável e na lista de Campo de um Desvio.
Se escrever você mesmo um caminho sob response.data, é sempre aceite, mesmo sem exemplo. Além disso:
{response.body}contém os primeiros 4000 carateres da resposta. Se a resposta for mais longa, o resto é cortado{response.data}fica vazio se a resposta não for JSON, ou se a resposta for muito grande (mais de 100 000 carateres)- Numa pesquisa sem resultado,
{response.data.items.0.id}não existe. Um Desvio nesse campo segue então por Predefinição
Um exemplo no teste
No separador Execução de teste preenche também os dados de exemplo do evento. Assim vê, na execução de teste, que valores o Tillor preencheria. Veja Testes e execuções.
O que acontece a seguir?
- Assim que a automação corre, o Tillor substitui cada variável pelo valor real. Uma variável que o Tillor não conhece fica como a escreveu.
- Se um dado estiver vazio, o espaço fica vazio. Se então quiser outro texto, coloque antes um Se / senão com está vazio.