> ## Documentation Index
> Fetch the complete documentation index at: https://docs.growtify.me/llms.txt
> Use this file to discover all available pages before exploring further.

# Viabilidade técnica GHL

> Parecer de 08/09/2026: alcance da skin, limites reais e prova necessária antes da compra.

<Note>
  Pesquisa oficial e inspeção inicial realizadas em 08/09/2026. A presença dos controles foi verificada na conta; nenhuma skin foi aplicada. Este parecer não equivale à homologação de todas as telas.
</Note>

## Resposta direta

**É viável trabalhar uma identidade própria preservando o GHL nativo. Não está comprovado que conseguiremos redesenhar 100% das superfícies, substituir todos os gráficos ou garantir compatibilidade permanente.**

A direção técnica é: **configuração nativa primeiro; CSS isolado por superfície; JavaScript mínimo quando necessário.** Um app do Marketplace poderá distribuir o pacote, mas não será tratado como solução que elimina os limites do navegador ou a manutenção.

<Columns cols={2}>
  <Card title="Pode avançar" icon="check">
    Comparação visual, critérios de tema, inventário técnico e preparação da prova.
  </Card>

  <Card title="Ainda não liberar" icon="shield">
    Compra baseada em compatibilidade total, substituição de gráficos ou aplicação global em produção.
  </Card>
</Columns>

## O que foi observado na conta

| Superfície                          | Evidência de leitura                                                       | O que ainda não foi testado                                      |
| ----------------------------------- | -------------------------------------------------------------------------- | ---------------------------------------------------------------- |
| Company → White Label               | Campos Custom JS e Custom CSS presentes; tema da agência marcado como Dark | Carregamento de uma skin, alcance por conta e reversão           |
| Domínio oficial                     | app.growtify.me abriu a sessão autenticada e a navegação nativa            | Login desautenticado, recuperação e OAuth; não encerrei a sessão |
| Sidebar da agência                  | Links com IDs e rotas legíveis; um ID repetido entre dois links            | Estabilidade entre versões, papéis e subcontas                   |
| Dashboard da subconta de referência | Botão Edit dashboard e um relatório externo em iframe de outra origem      | Estilização dos gráficos e conteúdo interno desse iframe         |
| Oportunidades                       | Página, Add opportunity e Manage fields observados                         | Modal aberto, edição, validação e salvamento                     |

Inspeção restrita à estrutura. Nenhum registro, mensagem, configuração ou permissão do CRM foi alterado. Dados comerciais e identificadores de clientes não foram incluídos no relatório.

## Matriz de alcance

**Documentado** = fonte oficial. **Observado** = controle ou estrutura visto na conta. **Condicional** = exige prova. Nenhuma linha abaixo significa “skin homologada”.

| Área                                   | Classificação                 | Caminho e limite                                                               |
| -------------------------------------- | ----------------------------- | ------------------------------------------------------------------------------ |
| Logo, domínio e identidade             | Documentado + observado       | Usar white label nativo; verificar cada superfície de autenticação             |
| Fontes, cores, botões e espaços        | Documentado / condicional     | CSS por raiz e componente; sem reset global de tema                            |
| Sidebar                                | Observado / condicional       | Preservar links e permissões; validar ordem visual e ordem do teclado          |
| Dark/light da subconta                 | Condicional                   | O tema nativo da agência não comprova tema global nas subcontas                |
| Mobile e tablet no navegador           | Condicional                   | Media queries e adaptação por tela; testar teclado virtual, toque e tabelas    |
| Dashboard e widgets                    | Documentado / condicional     | Priorizar temas e configurações nativas antes de overrides                     |
| Novo motor de gráficos                 | Não demonstrado               | Não presumir troca por BK Lite ou outra biblioteca mantendo dados e interações |
| Conversas, calendário e modais         | Condicional                   | Preservar eventos, foco, seleção, validação e atualizações assíncronas         |
| Iframes de outra origem                | Fora do alcance do CSS do pai | Personalização depende de controle próprio do conteúdo incorporado             |
| Builders e modais sensíveis            | Alto risco                    | Preservar UI nativa até teste específico; não incluir em promessa de cobertura |
| Aplicativos iOS/Android e PDFs gerados | Fora desta skin web           | Não confundir com a versão mobile no navegador                                 |

O HighLevel documenta personalização visual e alerta que alterações no núcleo podem quebrar código próprio; também distingue áreas que não recomenda personalizar. [Company Settings](https://help.gohighlevel.com/support/solutions/articles/48000982604-agency-company-settings-in-highlevel).

Para gráficos, os controles nativos incluem aparência de dashboard/widget e configuração de visualização. Isso não documenta a substituição livre da biblioteca de gráficos. [Temas](https://help.gohighlevel.com/support/solutions/articles/155000003966-how-to-customize-dashboard-themes), [widgets](https://help.gohighlevel.com/support/solutions/articles/155000001207-customizing-dashboard-widgets).

A separação de origem impede tratar um iframe externo como parte do DOM da página principal; CORS não é uma autorização geral para editar seu documento. [MDN: same-origin policy](https://developer.mozilla.org/en-US/docs/Web/Security/Defenses/Same-origin_policy).

## CSS direto ou plugin?

<Tabs>
  <Tab title="Primeira prova: CSS/JS da agência">
    **Direção adotada para a prova técnica.** Usar os campos existentes com pacote mínimo, sem API, rastreamento ou dependência do tema comercial.

    Preparar isolamento explícito: domínio, rota, conta piloto e ativação voluntária de teste. Esses filtros evitam aplicação acidental; não substituem permissões. A publicação na agência só ocorre depois de comprovar que o restante das contas não é afetado.

    Seletores devem combinar contexto e atributos verificados. Não usar posição do elemento, texto traduzido ou ID isolado como contrato suficiente. Não remontar o CRM em React nem mover elementos controlados pelo framework sem prova.
  </Tab>

  <Tab title="Distribuição: Marketplace">
    O GHL oferece Custom JS/CSS por app, com revisão prévia. A central de ajuda lista distribuição Agency ou Agency & Sub-account e prazo de revisão de até dez dias. A aprovação efetiva depende do fornecedor.

    As regras publicadas exigem código legível e autocontido, sem carregamentos remotos dinâmicos, acesso a dados sensíveis ou banco direto. Portanto, não planejar um plugin que baixe código novo silenciosamente de nosso servidor.

    Um anúncio anterior cita somente Agency; para implementação, reconfirmar a opção presente no portal de desenvolvedor. O plugin não será criado ou submetido nesta etapa. [Guia de scripts](https://help.gohighlevel.com/support/solutions/articles/155000003278-unlocking-customization-enhancing-marketplace-apps-with-custom-javascript), [anúncio original](https://ideas.gohighlevel.com/changelog/app-marketplace-custom-js).
  </Tab>

  <Tab title="Custom Pages e links">
    Custom Pages são páginas externas incorporadas em iframe. Não são um mecanismo para substituir a interface nativa inteira e permanecem fora do caminho escolhido. [Custom Pages](https://marketplace.gohighlevel.com/docs/2023-02-21/marketplace-modules/CustomPages/index.html).

    Custom Menu Links podem abrir documentação ou ferramentas e têm regras próprias de visibilidade e ordenação. Isso não comprova liberdade para reorganizar todo o menu nativo. [Custom Menu Links](https://help.gohighlevel.com/support/solutions/articles/48001185767-custom-menu-links).

    O custo de uma página depende de sua implementação: iframe não implica, sozinho, consumo de API. Nosso protótipo continua sem API ou dados reais.
  </Tab>
</Tabs>

## Prova obrigatória antes de comprar para implementar

<Steps>
  <Step title="Preservar e isolar">
    Exportar CSS/JS atuais; identificar piloto e mecanismo de desativação. Não publicar screenshots, URLs de conta ou dados privados na documentação pública.
  </Step>

  <Step title="Testar uma fatia pequena">
    Sidebar, campo/botão, dashboard e um modal representativo. Incluir login em sessão de teste separada. Medir antes/depois e confirmar que a operação nativa permanece intacta.
  </Step>

  <Step title="Exercitar estados e tamanhos">
    Navegação entre rotas, carregamento, erro, vazio, foco, dark/light; 390, 768 e 1440 px, além de Safari/iOS real. Testar conta/papel não incluído no piloto.
  </Step>

  <Step title="Retirar a skin">
    Desativar o pacote e confirmar retorno ao GHL original, sem dados perdidos, controles ocultos ou necessidade de limpar a conta.
  </Step>

  <Step title="Decidir com evidência">
    Publicar matriz de passou/falhou por superfície. Só então concluir compatibilidade do tema e alcance da primeira versão.
  </Step>
</Steps>

**Critério de interrupção:** se uma alteração exigir recriar dados por API, contornar isolamento de iframe, comprometer permissões ou esconder funções essenciais, preservar essa superfície nativa e registrar a diferença.

## Custo e manutenção

A skin proposta não adiciona consultas à API de negócio. Continuam existindo custos possíveis de tema/licença, hospedagem, distribuição e manutenção. Nenhum valor foi cotado como definitivo.

Não existe garantia de “nunca quebrar”. Versões imutáveis, testes de rotas críticas e reversão reduzem o risco. O desenho da operação está em [Publicação e manutenção](/servidor); ainda não há monitor autônomo da skin em funcionamento.

**Próximo passo técnico:** executar a prova isolada. A comparação de temas pode avançar agora, mas a escolha visual continua com Marcelo. [Comparar opções](/temas).
