Pular para o conteúdo principal
Uma pergunta (inputs) é uma etapa do assistente, e um placeholder ({{...}}) é um valor que a plataforma preenche quando cria o template. As perguntas coletam o que só o usuário sabe; os placeholders conectam os serviços e geram o que ninguém deveria digitar.

Perguntas

inputs é uma lista ordenada. Cada item vira uma etapa do assistente, exibida nessa ordem. Como cada tipo é verificado: Uma pergunta secret é digitada sem eco. Quando generate está definido e o usuário a deixa vazia, a plataforma a gera no servidor e a mostra uma vez nas saídas. Um regex é limitado a 200 caracteres e não pode usar back-references, quantificadores aninhados nem alternância repetida, porque roda no servidor; só vale para os tipos de texto. Pergunta de token, do bot inicial:

Condições com when

when é uma verificação de igualdade contra uma pergunta anterior, sem linguagem de expressões. equals precisa caber no tipo dessa pergunta: um booleano para boolean, um número para number, um dos valores das opções para select. Uma condição sobre uma pergunta posterior, sobre ela mesma ou sobre um id desconhecido é recusada (invalid_when, unknown_input). Uma pergunta cuja condição é falsa é pulada, e sua resposta não existe.
Um serviço de banco de dados ou Blob aceita o mesmo when para ser criado condicionalmente. Um serviço de app não; use sets.services.

Opções e sets

O efeito de uma escolha vive na própria opção. sets pode fazer três coisas. Quando várias perguntas mexem no mesmo serviço ou variável, a última vence; a memória de ram_extra se soma: Um template não pode ficar sem app: se as opções escolhidas desligarem todos os apps, o deploy é recusado. Coloque "on" e "off" entre aspas no YAML para que continuem texto. É assim que o n8n oferece Postgres, SQLite ou workers sem nenhuma expressão:

Placeholders

Um placeholder é escrito {{ ... }}. A plataforma o resolve quando cria o template e de novo quando um valor gerenciado muda (por exemplo, depois de um reset de senha do banco de dados). Ele nunca é resolvido no navegador. Placeholders funcionam em env (e em sets.env) e em outputs. Eles não funcionam em main, build, start nem healthcheck.path; ali geram unknown_placeholder. O texto fora de {{ }} nunca é interpretado, e o valor de um placeholder nunca é expandido de novo, então uma resposta que contém {{secrets.x}} continua como texto simples.

Apps e a stack

A URL e o nome do host acompanham o app: a variável cujo valor é exatamente um desses placeholders é atualizada quando o subdomínio muda ou quando o usuário adiciona um domínio personalizado. Dentro de um texto maior (https://{{app.domain}}/x), o valor fica o do deploy.

Bancos de dados

O app alcança o banco pelo endereço público, com certificados de cliente. Veja Stacks. Os valores ssl.*_path são caminhos absolutos dentro do app, em /app/.vertra/certs/<database_id>/ (ca.pem, client.crt, client.key, client.pem, client.p12). A plataforma os grava a cada início, e o seu processo (uid 1000) consegue lê-los. prisma_url carrega a senha, então é sensível e só existe quando o seu manifesto o pede. Postgres do n8n, com certificados:

Pastas Blob

Secrets e respostas

Serviços desligados

Um placeholder que aponta para um serviço desligado por uma resposta resolve para um valor vazio, e uma variável que termina vazia não é gravada. Por isso o template do n8n pode listar todas as variáveis DB_POSTGRESDB_* e ainda rodar em SQLite.

Variáveis gerenciadas

Uma variável cujo valor é um placeholder de banco de dados, pasta Blob ou app é gerenciada pela stack: ela é atualizada sozinha quando o banco de dados troca de senha ou certificado, ou quando o endereço do app muda, e o dashboard mostra um selo “gerenciada pela stack”. Editá-la à mão a transforma em uma variável comum.

O que é recusado

Veja Validar e testar para saber como corrigir cada um.
Última modificação em 30 de outubro de 2026