Configurações
O módulo Configurações é o único lugar para onde um administrador vai para mudar qualquer coisa que afete a organização inteira — a aparência do app, quem pode entrar em quê, como os e-mails saem, quais recursos aparecem na barra lateral. A maior parte do trabalho acontece em Configurações na barra lateral, com algumas telas relacionadas separadas em páginas próprias (Módulos, PWA App, Canais, Acessibilidade) porque precisam de mais espaço do que uma faixa de abas comporta.

Como as Configurações estão organizadas
Abra a barra lateral e clique em Configurações. Você verá uma faixa de abas no topo — identidade visual primeiro, depois e-mail, mapa, pagamentos, domínio, lembretes, campos personalizados, completude, integrações, WhatsApp, armazenamento, offline, jurídico, geral, acessibilidade. A faixa rola horizontalmente no celular para nada ficar enterrado.
Algumas abas só aparecem quando você tem permissão ou quando seu plano oferece o recurso:
- E-mail, Pagamentos, Lembretes, Campos personalizados, Integrações, WhatsApp, Armazenamento, Acessibilidade — apenas administradores.
- Mapa — qualquer pessoa com a permissão
map.manage. - Domínio — apenas planos Growth, Network ou Unlimited.
- Offline — planos Growth+, e somente quando
VITE_POWERSYNC_URLestá configurado neste build.
Se você não vê uma aba que esta doc menciona, é porque seu papel ou plano não a inclui.
Páginas relacionadas fora de Configurações
Algumas telas relacionadas vivem em outro lugar da barra lateral porque precisam de uma página inteira:
| Página | O que faz |
|---|---|
| Módulos | Ligar ou desligar recursos inteiros para sua organização. |
| PWA App | Configurar o app instalável — nome, ícones, cores de tema, push. |
| Canais | Conectar WhatsApp, SMS, e-mail, push e provedores in-app. |
| Acessibilidade | Preferências visuais + de movimento por usuário, mais padrões da organização. |
Cada uma ganha seu próprio artigo porque são fluxos de trabalho significativos por si só.
Onde as configurações realmente moram
Para os curiosos (e para quem está depurando), as configurações ficam guardadas em três lugares:
app_settings— uma tabela chave/valor para tudo que não merece uma coluna dedicada. Identidade visual, PWA, configuração de provedor de e-mail, regras de envio de mensagens, texto de rodapé. Uma linha por(organization_id, key). As edições passam pelo helperupsertAppSettingspara que o RLS seja escopado porcurrent_org_id().organizations— as colunas que outras tabelas referenciam como chave estrangeira. Nome da organização, plano, idioma padrão, país padrão, fuso horário (usado por edge functions).- Tabelas específicas de recurso —
org_channel_config(canais),event_reminder_config(lembretes),org_custom_domains(domínio),reserved_slugs(gerenciado pela plataforma), preferências de acessibilidade emuser_accessibility_preferenceseorg_accessibility_defaults.
Você não precisa saber nada disso para usar a interface — mas se um dia exportar uma organização ou resolver por que uma configuração "não salvou", saber onde olhar ajuda.
Uma nota sobre a armadilha do fuso horário
organizations.timezone é a fonte da verdade que as edge functions leem. O frontend lê app_settings.app_timezone via BrandingContext. O artigo de Identidade visual escreve nos dois ao salvar o formulário regional, então eles ficam em sincronia — mas se você editar um diretamente no SQL, edite o outro também.
Quem pode mudar o quê
A maioria das abas de admin é controlada pelo sistema de permissões RBAC v2. A matriz:
| Aba | Permissão necessária |
|---|---|
| Identidade visual | qualquer usuário logado pode ver; admins salvam |
| E-mail, Lembretes, Campos personalizados, Integrações, WhatsApp | isAdmin |
| Mapa | map.manage |
| Pagamentos | isAdmin (sensível para PCI) |
| Domínio | isAdmin + plano Growth+ |
| Armazenamento | isAdmin |
| Módulos | toggles isAdmin; não-admins veem somente leitura |
| Acessibilidade | self sempre; padrões da organização para admins |
As mesmas verificações rodam no servidor via assertPermission nas edge functions que dão suporte a cada formulário, então uma requisição forjada à mão não consegue burlar a proteção da interface.
Salvar e a barra de alterações não salvas
Toda aba que muda dados usa uma barra Alterações não salvas fixa no fundo da página. Ela fica visível enquanto você rola para que você não precise caçar um botão Salvar no fim de um formulário longo. Atualizar a página (ou sair) pede confirmação — a proteção de formulário sujo é intencional, já que algumas dessas configurações afetam cada e-mail que você vai enviar amanhã de manhã.
Próximos passos
- Fundamentos da organização — definir nome legal, locale, fuso horário.
- Identidade visual — logo, favicon, cores, rodapé.
- E-mail + notificações — conectar a identidade do remetente.
- Canais — configuração por provedor para mensagens.
- Configuração PWA — tornar o app instalável.
- Ativar / desativar módulos — manter a barra lateral relevante.
