Se você já tentou desenvolver algo mais interativo usando o Consumer Goods Cloud Modeler da Salesforce, provavelmente esbarrou em algumas limitações do Modoler, visando trazer flexibilidade a Salesforce disponibiliza o UIPluginV2 para customizações de layout, porem ainda existem possíveis limitações.
Ele não permite a edição direta de listas — e, consequentemente, não consegue armazenar dinamicamente dados complexos dentro da própria estrutura do plugin.
Essa restrição está documentada oficialmente pela Salesforce:
UIPluginV2 Limitations — Salesforce Help
Mas, como bons desenvolvedores criativos, sabemos que toda limitação é uma oportunidade de inovar. Pensando nisso resolvi utilizar o UIPluginV2 por outra abordagem:
O problema
Durante o desenvolvimento de um plugin que permitiria anotações rápidas diretamente dentro do ambiente de execução do CG Cloud, me deparei com a limitação acima.
A ideia era simples: criar um Sticky Notes, um painel inteligente onde o usuário pudesse adicionar, editar e organizar pequenas notas — cada uma com título, conteúdo, cor e categoria (como “trabalho”, “pessoal” ou “lembrete”).
Porém, logo ficou claro que armazenar dinamicamente as notas dentro do próprio plugin era impossível usando apenas as propriedades do UIPluginV2.
A solução criativa
A alternativa foi pensar fora da caixa: se o plugin não pode editar listas, ele pode persistir dados em formato JSON!
A solução que encontrei foi criar um campo customizado no objeto User e armazenar o conteúdo das notas como JSON dentro dele.
Dessa forma, cada usuário possui suas próprias notas, armazenadas e recuperadas pelo plugin de maneira totalmente personalizada.
O plugin usa o mesmo conceito de persistência local que implementei no Utils.createDictionary(), que abstrai leitura e escrita JSON com uma API simples e segura:
const noteStore = Utils.createDictionary('stickNotes');
noteStore.add(id, note); // salva
const note = noteStore.get(id) // recuperaInternamente, essa estrutura grava os dados JSON no campo custom do usuário, permitindo reabrir o plugin e ver todas as notas novamente — mesmo após logoff ou atualização do ambiente.
O resultado
O resultado é um plugin fluido, interativo e 100% funcional, que se integra perfeitamente ao visual do CG Cloud Modeler.
Cada nota pode ter:
- Título, descrição e categoria (pessoal, trabalho, estudos…)
- Cores personalizadas
- Filtro por categoria
- Modal de criação e edição com interface responsiva
E tudo isso sem depender de APIs externas, apenas com o poder do UIPluginV2 e um pouco de criatividade na forma de persistir os dados.
Demonstração — Sticky Notes Inteligente

O design foi adaptado para o tema claro e azul, mantendo consistência visual com o aplicativo principal.
Além disso, o uso do Utils.createDictionary garante compatibilidade com outros plugins e fácil reuso em novos projetos.
Conclusão
Mesmo com limitações, o UIPluginV2 é extremamente poderoso quando usado com criatividade.
Com um pouco de engenharia e abstração, conseguimos quebrar barreiras técnicas e transformar simples interfaces em experiências inteligentes.
Este projeto é mais do que um painel de notas — é uma prova de que limitações não são obstáculos, são convites à inovação.
🚀Gostou da ideia?
Você pode usar o mesmo padrão para:
- Criar sistemas de checklist dinâmico
- Implementar quizzes interativos
- Criar dashboards inteligentes com dados locais do usuário
- E muito mais — tudo sem precisar sair do Modeler!
