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) // recupera

Internamente, 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!

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *