Pular para o conteúdo

Recurso

Motor de regras: a convenção do seu time, aplicada na criação

Qualquer pessoa constrói um builder de UTM numa tarde; existem dezenas gratuitos, e este site tem um deles. O que ninguém tem é a camada que impede o estagiário de digitar Facebook quando a convenção da agência é meta.

As regras são a feature. O builder é só onde elas aparecem.

O que você declara

Cada parâmetro do seu workspace — os cinco utm_* clássicos, os customizados e os atributos internos — recebe uma lista de restrições:

RestriçãoO que faz
requiredO campo não pode ficar vazio
allowed_valuesSó o que está na lista. strict mata facebook/Facebook/fb de uma vez
patternExpressão ancorada, com exemplo que a interface mostra como dica
formatCaixa, acento, espaço e recorte — a única regra que muda o valor
lengthMínimo e máximo, medidos em caracteres de verdade, não em unidades de código
forbidden_charsLista de caracteres que quebram o seu BI
depends_onutm_term é livre quando o medium é organic e restrito quando é cpc
templateO valor é calculado a partir de outros campos

As três severidades

A mesma restrição vale como aviso numa taxonomia e como erro em outra. É um enum, não uma reescrita da regra — e é o que permite uma agência estrear a governança sem que o time pare de trabalhar.

  • auto_fix — corrige e mostra o diff. Promoção Verão 2026 vira promocao-verao-2026, com o antes riscado ao lado do depois. Correção invisível é como o usuário deixa de confiar na ferramenta.
  • warning — avisa e deixa passar. O valor novo entra no relatório "fora da taxonomia", e o admin promove com um clique. É a política de crescimento: taxonomia que exige antecipar tudo no dia 1 é onde implementações de governança morrem.
  • error — não salva, com a mensagem que o seu admin escreveu. Nenhum dicionário nosso conteria "use a sigla do cliente conforme a planilha em Operações".

Os três estados se distinguem sem depender de cor: a silhueta do ícone muda, e só o erro trava o botão de salvar. Daltonismo é comum, e este é o feedback mais visto do produto.

Por que a validação roda duas vezes

O mesmo código avalia a cada tecla no navegador e de novo no servidor que persiste o link. Não é redundância defensiva: é a única forma de a URL que você vê na tela ser a URL que fica salva.

O cliente nunca envia a URL final — ele manda os campos, e o servidor emite. Um formulário que manda a URL montada é um formulário que pode ser contornado com um curl, e aí a garantia inteira vira sugestão.

O que nunca é tocado

{{campaign.name}} do Meta, {campaignid} do Google, __CID__ do TikTok: macros de plataforma passam literais, byte a byte, sem codificação e sem transformação — inclusive sem a transformação de caixa, que é o erro que costuma escapar. O Meta faz correspondência textual sensível a maiúsculas; case: lower sobre {{Campaign.Name}} produz um macro que não resolve, e o relatório recebe a string crua semanas depois.

Token desconhecido também passa literal. Nunca vira string vazia — porque uma URL com utm_campaign= é indistinguível de uma campanha sem nome no relatório, e o erro é silencioso.

Ver os planos · Testar o gerador sem cadastro

Comece pelo plano grátis, sem cartão

30 links por mês, 2 pessoas no time e 3 templates — de graça, para sempre. Sem cartão, sem trial que expira.