Entende o contexto
Lê a operação, o cliente e o histórico antes de propor qualquer coisa.
Vendas, marketing, atendimento, operação, financeiro e inteligência trabalhando sobre o mesmo contexto — para sua empresa ganhar escala sem perder controle.
Sua empresa inteira. Uma operação. IA trabalhando.
Para empresas de qualquer setor que querem crescer com estrutura, controle e inteligência.
Painel ilustrativo do Sistema Centriu com sete frentes trabalhando: atendimento, comercial, operação, agentes, inteligência, conteúdo e marketing. Cada frente mostra o trabalho concluído ou o próximo passo.
Representação ilustrativa do trabalho em execução
Não é falta de ferramenta. É que cada ferramenta resolve um pedaço, e ninguém é dono do todo. O custo disso não aparece numa fatura — aparece no mês seguinte.
Sistemas que não se falam
O mesmo dado é digitado de novo — e cada cópia conta uma história diferente.
Dados duplicados
Ninguém sabe qual versão é a verdadeira na hora de decidir.
Conversas perdidas
O cliente repete o contexto a cada canal e a cada pessoa.
Tarefas espalhadas
O trabalho vive em planilhas, mensagens e na memória de alguém.
Decisões sem contexto
A escolha é feita com o recorte que estava à mão, não com o que importava.
Automações desconectadas
Cada ferramenta automatiza um pedaço e ninguém enxerga o todo.
Nenhum desses problemas se resolve comprando mais um software. Eles se resolvem quando a operação inteira passa a trabalhar sobre o mesmo contexto.
A Centriu não é uma coleção de produtos. É uma plataforma em que clientes, áreas e agentes leem e escrevem no mesmo lugar.
Cliente 360
Um contexto, não vários cadastros
Cada conversa, tarefa, campanha, cobrança e decisão fica ligada ao cliente e à operação — não a um sistema isolado.
As áreas abaixo são partes da mesma operação, não produtos separados. Elas compartilham conta, permissões e histórico.
A inteligência artificial da Centriu participa da operação: entende contexto, prepara trabalho, executa rotinas e pede aprovação quando importa.
Lê a operação, o cliente e o histórico antes de propor qualquer coisa.
Redige, organiza, calcula e deixa pronto para revisão humana.
Roda o que é repetitivo dentro dos limites definidos pela empresa.
Cruza áreas, identifica prioridade e mostra o motivo da recomendação.
O que é sensível passa por uma pessoa antes de valer. Sem exceção silenciosa.
Registra o que aconteceu e usa o resultado para melhorar a próxima decisão.
Uma plataforma, várias frentes de trabalho. Tudo no mesmo contexto, com a IA participando do que dá para acelerar.
CRM, pipeline, oportunidades, propostas, follow-up e automações.
WhatsApp, Instagram, Messenger, chat do site e e-mail no mesmo contexto.
Tarefas, responsáveis, prazos, aprovações, agenda e capacidade.
Contas, cobranças, caixa, fiscal, margem, IR, orçamento e inteligência econômica.
Planejar, produzir, aprovar, publicar e medir conteúdo e campanhas.
Painéis, alertas, previsões, recomendações e leitura executiva.
Rotinas executadas continuamente pela IA com controle e aprovação.
Diagnóstico, estratégia, transformação, acompanhamento e especialistas.
A Centriu faz sentido quando o volume aumenta e a estrutura precisa acompanhar. Não é sobre setor nem tamanho: é sobre a operação conseguir sustentar o próximo estágio.
As vendas crescem, mas o processo não acompanha.
As áreas trabalham separadas e o cliente sente.
A operação depende de pessoas específicas.
O financeiro ficou complexo e o caixa perde visibilidade.
O atendimento cresce em volume e em canais.
A IA entra sem contexto, controle ou histórico.
Se a empresa ainda não começou a crescer, a Centriu também ajuda a preparar a estrutura para o primeiro salto.
Ver a Centriu funcionandoA Centriu combina tecnologia, inteligência, método e acompanhamento. A consultoria diagnostica, desenha, implanta e acompanha — com evidências, não com apresentação.
Diagnóstico e imersão na operação
Estratégia e prioridades
Roadmap de transformação
Desenho da arquitetura operacional
Implantação conduzida
Acompanhamento com evidências
Benchmarking e leitura de mercado
Especialistas, rede e inteligência coletiva
Uma conversa para entender onde a sua operação perde tempo, dinheiro ou capacidade — e o que a Centriu faria primeiro.
problema
Centriu Maestro's Security screen reads a table. This table should record every important action on a client's ad accounts. These actions include connecting a platform, pausing a campaign, changing a budget, or publishing an ad. A direct check of the system found that table was missing all these events. Pausing, resuming, editing, or publishing a real campaign left no trace. Anything that uses real ad money was not recorded. Two separate main reasons caused this. Five of the edge functions, which write to the audit table, sent column names that did not match the table's real structure. The database silently rejected these as failed writes. Three of those five functions had error handling that threw away both success and failure results. So, no one would have seen the rejection, even if they were looking for it. A sixth function wrote to a different, shared table. About thirty other parts of the platform used this table. This function used a column that the table had stopped having a long time ago. The fix combines every write through one shared function. This function matches the real table structure exactly. It truly shows any failure in the system's own logs instead of silently throwing it away. It also has a special tool that checks every field name in the event's details. It looks for anything that looks like a secret. It replaces it before the record is written.

A Security or Activity screen that shows an an empty history does not tell you why. It could be because very little actually happened. Or it could be because the system recording what happened has been silently failing the whole time. Both states look the same. They show a short list, or no list at all. There is no visual sign on the screen itself. It does not tell the difference between "nothing important occurred" and "everything that occurred failed to be recorded." To know which one is true, you must check directly. You must specifically check if a KNOWN real event that should be in the history actually is.
A Security or Activity screen that shows an empty or sparse history doesn't announce whether that's because very little actually happened, or because the mechanism recording what happened has been silently failing the entire time. Both states render the exact same way — a short list, or none at all — and there is no visual signal on the screen itself distinguishing "nothing significant occurred" from "everything that occurred failed to be recorded." Confirming which one is true requires checking, directly and specifically, whether a KNOWN real event that should be present in the history actually is.
This gap was found and fixed as part of a security review. This review also closed Maestro's OAuth token exposure. That is covered on this pillar's other page. The review did not stop at checking login details. It also directly checked if the Security screen's history showed what really happened. It did not. Two specific database queries answered the question. Counting rows in the platform-wide shared audit table for exact actions returned zero. These actions were "platform connected" and "campaign updated." Real Maestro use should have made these actions. Listing every different action value in Maestro's own audit table showed only login events. It also showed events from one unrelated system. It showed nothing about connecting a platform, pausing a campaign, changing a budget, or publishing an ad.
The main reason split into two separate failures. Five different edge functions were involved. These covered ad-account hierarchy, ad-management actions, suggestion use, campaign control, and token refresh. All of them were writing audit events. They used a simple set of column names. These were a user ID, an action name, a severity level, a details field, and a timestamp. These names simply did not match the audit table's real, current shape. The table had an ID, a tenant ID, and one structured JSON field for everything else. Every one of those inserts was rejected by the database as wrong. Three of the five functions were built with a promise-handling pattern. This pattern reacted the same way whether the write succeeded or failed. It threw away the result either way. A sixth function handled the OAuth connection callback. It wrote to a completely different table. This was the platform's general audit table. About thirty unrelated parts of the product shared it. It used a column name that table had stopped having some time before. This happened after an earlier, unrelated change to the table's structure elsewhere in the platform.
The fix combines all six of these places where code calls for a write. It uses a single, shared write function. This function builds its insert using the audit table's actual, current column structure. This matches exactly what the Security screen's own reading code expects. So, a write that works is sure to display correctly. That function purposely never lets a write failure stop the real action that started it. A failed audit write must never block someone from pausing a campaign. It must not block disconnecting a platform. The action people came to do is more important than the record of doing it. But it completely changes how visible the failure is. The old code threw away the result entirely. The new function specifically logs any failure to the system's own error output. The exact silence that left the entire audit trail empty for a long time is what the fix directly targets. It does not just target the six broken inserts themselves.
A further, planned detail is included. The shared function has its own special step to hide sensitive data. It checks every field name inside an event's structured details. It checks at any level of nesting. It compares them against a list of terms linked to secrets. These include tokens, passwords, login details, authorization headers, and similar words. It replaces the value with a clear placeholder when a match is found. It does this by name. It does not trust that the calling code has already removed anything sensitive. The reason for this hiding step is worth stating clearly. An audit trail exists especially for times when something goes wrong before it. This makes it the wrong place to assume every caller will always get it right. A central safety net, based on names, catches what any single caller might miss.
A single, shared audit-write function is used. All six of the previously affected edge functions use it. It builds its insert to match the audit table's real, current column structure exactly.
A write path that never lets an audit failure block or stop the real action that started it. Pausing a campaign always works or fails on its own, no matter if the record was written.
Real, visible logging of any audit-write failure. This goes to the system's own error output. It replaces old error-handling code. That code used to throw away both success and failure results the same way.
A special step to hide sensitive data. It checks every field name inside an event's structured details. It checks at any level of nesting. It compares them against a list of terms linked to secrets. This is done centrally. It is not left to each individual caller.
Every one of the six previously affected call sites now writes through the same checked path. These sites include ad-account hierarchy, ad management, suggestion use, campaign control, token refresh, and the OAuth connection callback.
Confirmed today by direct check: this shared function is still the only write path into the audit table for all six call sites.
A person checking Maestro's Security screen will now see a record that truly shows what happened. They can understand what happened to a client's ad accounts. They can see who connected a platform, who paused a campaign, or who changed a budget. Before, this history was silently empty for real actions that involved money. This was true since the six affected functions were first written. Also, any future write failure is now clearly logged instead of thrown away. So, if a similar gap opens again, it will be much more likely to be noticed.
A person reviewing Maestro's Security screen to understand what happened to a client's advertising accounts — who connected a platform, who paused a campaign, who changed a budget — is now looking at a record that genuinely reflects those events, rather than a history that had been silently empty for real, money-moving actions since the six affected functions were first written. And because any future write failure is now visibly logged rather than discarded, a similar gap opening again would be far more likely to be noticed.
Someone pauses a real, active ad campaign. They do this through Maestro's campaign-control screen. Before the fix, that action would work exactly as expected for the campaign itself. But the Security screen's history would show nothing about it. This is because the audit write was silently rejected by the database. After the fix, the same pause action works the same way. The Security screen's history now truly shows that it happened. The record's details are already checked for anything like a secret before being stored.

We checked by directly asking the database for a specific, known type of real event. We counted rows for actions like "platform connected" and "campaign updated." We found zero. We did not assume an empty-looking history meant truly low activity.
Five functions sent column names that did not match the table's real structure. So, the database rejected every insert. Three of those five had error handling that threw away both success and failure results the same way. So, the rejection was never shown anywhere.
It wrote to a completely different, shared table. About thirty unrelated parts of the platform used this table. It used a column name that table had stopped having. This happened after an earlier, unrelated change to the table's structure.
No, the shared write function purposely never lets an audit failure stop the real action that started it. The two are handled separately by design.
Yes, a special step to hide sensitive data scans every field name inside an event's details. It checks at any level of nesting. It compares them against a list of terms linked to secrets. This is done centrally, not left to each caller.
It is sold by subscription with a published starting price. The exact current prices are on the main pricing page.
Centriu Maestro's Security screen reads a table. This table should record every important action on a client's ad accounts. These actions include connecting a platform, pausing a campaign, changing a budget, or publishing an ad. A direct check of the system found that table was missing all these events. Pausing, resuming, editing, or publishing a real campaign left no trace. Anything that uses real ad money was not recorded. Two separate main reasons caused this. Five of the edge functions, which write to the audit table, sent column names that did not match the table's real structure. The database silently rejected these as failed writes. Three of those five functions had error handling that threw away both success and failure results. So, no one would have seen the rejection, even if they were looking for it. A sixth function wrote to a different, shared table. About thirty other parts of the platform used this table. This function used a column that the table had stopped having a long time ago. The fix combines every write through one shared function. This function matches the real table structure exactly. It truly shows any failure in the system's own logs instead of silently throwing it away. It also has a special tool that checks every field name in the event's details. It looks for anything that looks like a secret. It replaces it before the record is written.