Porte do portal de taxas do William Imóveis para dentro do EvoTalks, como extensão nativa: um menu superior Gerenciamento de Imóveis com três telas — Imóveis, Campos e Histórico.
Registra, por imóvel, informações que não aparecem no site (taxas, IPTU, encargos, observações da administração) e que precisam chegar a quem atende.
| No portal (Docker + Postgres + n8n) | Aqui (extensão) |
|---|---|
/imoveis + /imovel/:codigo |
tela Imóveis — lista, filtros, 🟢/🟡 e o formulário de lançamento |
/campos |
tela Campos — os cinco tipos, recorrência padrão, ativar/desativar/apagar |
/historico |
tela Histórico — quem, quando, de → para, com filtros |
/consultas |
removida na 0.3.0 — o que a IA consulta se vê no MCP do portal, não aqui |
/login, /usuarios, CSRF, sessão |
some: a extensão herda o usuário logado do EvoTalks |
| espelho Postgres + sync 6h + XML | some: o catálogo já está na instância (products) |
manifest.json identidade, config e as contribuições (o menu e os 3 itens)
app/comum.js SDK omni, persistência, catálogo, formatação — a camada que as 3 telas usam
app/estilo.css tema por tokens --ext-* (segue a whitelabel da instância)
app/imoveis.html lista + detalhe do imóvel
app/campos.html definição dos campos
app/historico.html eventos de edição
Piloto: omni.storage — por instalação e por usuário, no navegador dele, ~262 mil
caracteres. Outro computador começa vazio. Serve para validar as telas, não para produção.
A troca por armazenamento compartilhado mexe em um lugar só: as funções ler/gravar de
app/comum.js. Os candidatos, em ordem de esforço:
POST /int/createPersistentStorageItem, até 10.000
itens de 4 KB) via omni.http.request, com apiKey + queueId em config — sem infra nossa.As telas leem products por omni.data.request (blueprint Sails, com where/limit/skip).
Se o where for recusado, o código cai para leitura paginada e filtro local — a tela mostra qual
caminho respondeu, no rodapé da lista.
O recorte do catálogo vem da configuração da instalação:
| chave | padrão | para quê |
|---|---|---|
marca |
WILLIAM IMÓVEIS BOULEVARD |
filtra o brand — é o que separa os imóveis do resto do catálogo |
prefixoCodigo |
535 |
o código do site não mostra o prefixo da imobiliária (5350060 → 0060) |
rotulo |
imóvel |
palavra usada nos textos |
extension_installs_probe_manifest { manifesturl } → installable: true
extension_installs_install { manifesturl, label,
filters: { include: { userIds: [SEU_ID] } } }
Sempre restrito a você primeiro: a entrega é imediata para todo usuário que caia no filtro.
mode: fullscreen), desde a 0.2.0 — a 0.1.0 usava
diálogo e a lista ficava espremida. size não é aceito fora de dialog: em fullscreen o
campo tem de sair do manifest.url de item de menu não aceita # nem query string: cada tela é um arquivo próprio, e é
por isso que não há SPA com rota por hash.omni.forms.openDynamic; onde ele não estiver disponível, a tela avisa em vez
de falhar.base-conhecimento/clientes/william-imoveis/portal-taxas/ (cofre)william-imoveis-decisoes.md, ADR-14Sistemas/Evotalks/Extensões/