CMS — Gerenciamento de Conteúdo
O módulo CMS permite gerenciar coleções de conteúdo estruturado — registros de dados que podem ser referenciados por formulários, processos e outros módulos da plataforma.
O que é uma coleção?
Uma coleção é um conjunto de registros com estrutura definida. Exemplos:
- Lista de centros de custo
- Catálogo de fornecedores aprovados
- Tabela de produtos ou serviços
- Tipos de documento aceitos
Navegando no CMS
- Acesse Conteúdo → CMS na barra lateral
- Veja a lista de coleções disponíveis para o seu tenant
- Clique em uma coleção para ver e editar seus registros
Quem pode ver e quem pode alterar
A tela do CMS fica em Conteúdo, ao lado das Bases de Conhecimento, e exige o papel de Gerente ou superior — quem não tem esse papel é levado de volta ao dashboard. Alterar — criar coleções, incluir, editar ou excluir registros e fazer carga em lote — exige o mesmo papel.
A tela é restrita; a leitura não é
Não ver a tela não é o mesmo que não alcançar o conteúdo. Qualquer pessoa da empresa que esteja autenticada consegue ler os registros de uma coleção por outros caminhos — um processo em execução, um agente de IA, uma integração —, sempre limitada pelo nível de sigilo da coleção. Isso é proposital: o agente e o processo leem o CMS em nome do fluxo, e essa leitura precisa continuar aberta para que o fluxo consulte as tabelas de referência sem depender do papel de quem iniciou a instância. Quem integra encontra as rotas em API REST.
Níveis de sigilo
Cada coleção tem um nível de confidencialidade, definido na criação e alterável depois:
| Nível | Quem consegue ver | Exemplos |
|---|---|---|
| Público | Qualquer usuário do tenant | Catálogo de produtos, centros de custo, códigos de município |
| Secreto | Gerente e administrador | Margens, política comercial, tabela de preços |
| Ultrassecreto | Somente administrador | Folha de pagamento, jurídico, material de diretoria |
Uma coleção que você não tem permissão para ver simplesmente não aparece na listagem. Coleções classificadas exibem uma etiqueta com cadeado no card.
Um gerente não consegue marcar uma coleção como Ultrassecreta — isso criaria um dado fora do seu próprio alcance. O seletor de confidencialidade só oferece os níveis que você mesmo pode ler.
A matriz completa — inclusive como um agente de IA e um robô se encaixam nela — está em Papéis e Permissões.
Criando um registro
- Abra a coleção desejada
- Clique em Novo registro
- Preencha os campos do formulário da coleção
- Clique em Salvar
Editando e excluindo registros
- Use o botão de edição (lápis) ao lado do registro para modificá-lo
- Use o botão de exclusão (lixeira) para remover. A tela pede confirmação, e a exclusão é definitiva: o registro não vai para uma lixeira e não há como desfazer
Tabelas grandes e consulta pelo agente de IA
Coleções são a fonte determinística que o agente de IA consulta quando precisa de um dado exato — tabelas de referência com milhares de linhas são o caso típico. A consulta é feita direto no banco, por igualdade exata sobre os campos do registro: perguntar pelo código CAM-0042-P devolve aquele registro, esteja ele em qualquer posição da tabela.
Por ser igualdade exata, o valor precisa ser idêntico ao gravado — não há busca parcial, aproximada ou por intervalo. Se vários campos forem informados no mesmo filtro, todos precisam casar.
O agente também respeita os níveis de sigilo: cada agente tem um nível de acesso próprio, configurado por um administrador e Público por padrão. Se a coleção for mais restrita que o nível do agente, ele responde que não tem permissão — em vez de dizer que o dado não existe.
Coleções que vêm da plataforma
Um processo global pode trazer as próprias tabelas de referência. Quando o agente procura uma coleção, a plataforma resolve nesta ordem:
- a coleção do seu tenant, se existir uma com aquele nome;
- senão, a coleção global que acompanha o processo;
- se não houver nenhuma das duas, o agente responde que a coleção não existe.
A sua coleção substitui a global por inteiro. Se você criar uma coleção com o mesmo nome de uma global, o agente passa a usar só a sua — os registros das duas nunca são misturados. Essa é a saída para quando a tabela do seu negócio difere da que o processo traz: em vez de pedir uma exceção, você cria a sua própria e ela prevalece.
A escolha é por coleção inteira, não por registro
Se você criar a sua versão, ela precisa estar completa. O agente deixa de enxergar a tabela global por inteiro, então um código que existia só nela passa a não existir para o agente.
Coleções globais são criadas e mantidas pelo administrador da plataforma. Um administrador de tenant não as edita nem as exclui.
Na tela de CMS elas aparecem junto com as suas, marcadas como Global. Dá para abrir e consultar os registros, mas não há botão de criar, editar ou excluir — nem para a coleção, nem para os registros dela.
Enquanto existe a sua própria versão de uma tabela global, a global não aparece na listagem: ela não vale para o seu agente, e mostrá-la como disponível seria enganoso. No lugar dela, a sua coleção exibe o aviso "Substitui uma coleção global — ver qual", que abre a global em modo de leitura. É por ali que você compara o que a plataforma oferece com o que você criou, antes de decidir manter ou apagar a sua.
Carga em lote
Cadastrar dezenas de milhares de registros um a um pela tela não é viável. Para tabelas desse tamanho existe a carga em lote pela API de integração, que recebe a tabela inteira de uma vez. Ela exige o mesmo papel de Gerente ou superior, e quem vai montar a chamada encontra as rotas e os limites em API REST.
Vale conhecer uma opção dessa carga mesmo sem programar, porque ela muda o resultado: informando um campo-chave (por exemplo codigo), recarregar a mesma tabela atualiza os registros existentes em vez de duplicá-los. Sem campo-chave, tudo o que for enviado é inserido, e a coleção precisa ser esvaziada antes para não ficar com linhas repetidas.
Boas práticas para coleções
Use o CMS quando o dado é procurado por um identificador exato. Catálogo de produtos, centros de custo, códigos de município, tabela de cargos, de-para entre sistemas. O agente consulta por igualdade — informa {"sku":"CAM-0042-P"} e recebe aquela linha.
O contraponto vale ser dito: esse mesmo dado não funciona numa Base de Conhecimento. A busca vetorial recupera por semelhança de texto, e códigos vizinhos costumam ter descrições quase idênticas — "Camiseta azul P" e "Camiseta azul M" são praticamente o mesmo texto, e termos genéricos como "Outros" se repetem por milhares de linhas. Perguntar por um código devolveria a linha errada, com toda a confiança. A regra é: identificador exato → CMS; texto que se interpreta → Base de Conhecimento.
Os nomes dos campos são o contrato da consulta. O agente filtra pelo nome do campo exatamente como ele foi criado. Numa tabela de centros de custo, codigo e cod_centro não são a mesma coisa. Escolha nomes curtos, estáveis e previsíveis, e evite renomear depois — quem consulta são as instruções dos agentes, que não são atualizadas junto.
Padronize o formato dos valores antes de carregar. A consulta é de igualdade exata, sem busca parcial e sem aproximação. Numa tabela de municípios, se metade das linhas tem 3550308 e a outra metade 35.503-08, metade das consultas falha. Decida um formato — com ou sem pontuação, com ou sem zeros à esquerda — e aplique à tabela inteira.
Uma coleção por assunto. Uma coleção de cargos e uma de faixas salariais separadas são mais fáceis de recarregar e de classificar por sigilo do que uma coleção genérica com um campo "tipo" — ainda mais quando as duas têm níveis de confidencialidade diferentes.
Recarregue com campo-chave. Informando o campo-chave na carga em lote, recarregar a mesma tabela atualiza os registros em vez de duplicá-los, e a coleção nunca fica incompleta durante a operação. Sem campo-chave, é preciso limpar antes — e nesse intervalo a coleção responde "não consta" para códigos que existem.
Os dados: tipo, caixa e espaço são significativos
A comparação é literal. Estas são as formas mais comuns de uma carga aparentemente correta não ser encontrada — todas verificadas no banco:
| O que está gravado | O que o agente procura | Encontra? |
|---|---|---|
{"codigo": 1234} | {"codigo": "1234"} | não — número não é texto |
{"ativo": true} | {"ativo": "true"} | não — booleano não é texto |
{"centro": "01 "} | {"centro": "01"} | não — espaço sobrando |
{"uf": "sp"} | {"uf": "SP"} | não — caixa diferente |
{"codigo": "1234"} | {"codigo": "1234"} | sim |
A armadilha número um é o código gravado como número. Planilhas convertem 1234 em número sozinhas, e a coleção fica silenciosamente inconsultável. Códigos são texto, mesmo quando só têm dígitos — inclusive porque zeros à esquerda se perdem no meio do caminho.
O registro precisa responder, não só identificar
Não existe junção entre coleções: o agente recebe o registro que casou e nada além dele. Se a resposta depende de um dado que está em outra coleção, ele não chega lá.
// ruim — identifica, mas não responde nada
{ "codigo": 123, "desc": "Outros" }
// bom — o registro se explica e traz o que será perguntado
{
"codigo": "00123",
"nome": "Marketing — eventos e patrocínios",
"grupo": "01 — Despesas comerciais",
"responsavel": "Diretoria Comercial",
"vigencia_inicio": "2026-01-01"
}Repare no desc: "Outros" do exemplo ruim. É um rótulo que aparece com frequência em tabelas de referência e que, sozinho, não informa nada — nem para uma pessoa, nem para o agente. Traga o grupo e o responsável junto: com apenas "Outros" na mão, o agente escreve a análise sem o grupo e sem o responsável.
Prefira registros planos. Campos aninhados funcionam, mas dificultam a consulta e a leitura pelo agente. Uma linha por fato, campos no primeiro nível.
"Não consta" é uma afirmação
Numa tabela de referência, a ausência de uma linha não é ausência de resposta: o agente conclui que aquele código não existe e escreve isso na análise. Por isso a recarga com campo-chave importa mais aqui do que em outros sistemas.
Uso do CMS em formulários
Campos de formulário do tipo "Seleção" ou "Busca" podem ser vinculados a uma coleção do CMS. Quando o usuário abre a tarefa, os valores da coleção aparecem como opções selecionáveis, sempre atualizados.
TIP
O administrador define quais coleções existem e quais campos cada uma possui. Se precisar de uma nova coleção ou de alterações na estrutura, entre em contato com o administrador.