Escolar Documentos
Profissional Documentos
Cultura Documentos
➡ OmniStudio for Vlocity e OmniStudio são como duas versões de um conjunto de aplica:vos.
📌 OmniStudio Core
OmniStudio Architecture
• Digital Experience
• Service Management
• Developer Experience
🔵Digital Experience (front-end)
➡ É um componente que reside em uma página (ou em um processo guiado) e exibe os dados de
sua escolha. Em vez de ficar limitado aos componentes Out of the box (OOTB), você pode
configurar um novo :po de componente para a página.
➡ É para processos passo a passo em que o usuário consome informações, insere informações e
dá o próximo passo.
🔵Service Management (back-end)
Serviço de dados que leem, gravam, transformam, calculam e rastreiam dados dentro e fora do
Salesforce.
2. Integra:on Procedures (IP): AplicaQvo usados para ler e gravar dados do Salesforce e de
sistemas externos.
3. Calcula:on Procedures and Calcula:on Matrices: Procedimentos de cálculo são usados
para configurar matemáQca complexa. Um procedimento de cálculo pode chamar vários arquivos
de matriz de cálculo para lidar com valores de entrada de variáveis e cálculos.
🔵Developer Experience
-> Entra em cena assim que terminamos o desenvolvimento e focamos na implantação.
1. IDX build Tool: Ferramenta de automação que empacota e migra Datapack (pacote de
dados) ominstudio .
2. IDX Workbench: App desktop que permite desenv. Migra Datapack e metadados do SF de
uma org p/ outra ou de uma org para o Git.
Para migrações simples, os desenvolvedores podem exportar e importar o componente como um
Datapack (Coleção de componentes do OmniStudio agrupados para fins de exportação e
importação.)
FlexCards
FlexCards exibem informações do objeto Salesforce junto com ações dis:ntas e clicáveis que
mudam de acordo com o contexto em que aparecem e com base nas informações que contêm.
PRINCIPAIS RECURSOS
CICLO DE VIDA
📋CREATE FLEXCARD
Name/Author
• O nome e o autor devem conter apenas sublinhados e caracteres alfanuméricos. Deve ser
único, começar com uma letra, não incluir espaços, não terminar com sublinhado e não conter
dois sublinhados consecu:vos.
⚠ A combinação do nome e autor do cartão deve ser única dentro da sua organização Salesforce.
Exemplo
• Se você tentar importar um novo FlexCard com o mesmo nome e autor, o sistema vai
perguntar se deseja subs:tuir o FlexCard atual pelo novo.
Theme
• Newport é uma ferramenta CSS que permite aos designers e desenvolvedores web
rees:lizar facilmente todos os componentes do OmniStudio em um único local.
• É possível gerar um arquivo CSS personalizado e oQmizado que poderá ser uQlizado em
todas as páginas futuras.
⚠ Ao salvar o FlexCard, não será mais possível editar o nome, autor ou tema. Se precisar mudar
as edições, clone o FlexCard e atualize essas configurações ao criar o clone.
⁃ Title (opcional) - Preenche automaQcamente, mas pode ser alterado opcionalmente.
⁃ Is Child Card(Opcional) - Habilita para incorporar um FlexCard dentro de outro FlexCard.
⁃ Descrip:on (opcional)
1. SOQL Query : Usa uma linguagem de consulta de objeto Salesforce (SOQL) para pesquisar
dados específicos do Salesforce de uma organização.
Exemplo:
SELECT FirstName, AccountId, Id FROM Contact WHERE Id = '003Dp000004x5aAIAQ'
Isso significa que apenas os registros que possuem o valor '003Dp000004x5aAIAQ' no fileld "Id"
serão retornados como resultado da consulta.
🔎Observação: Se a segurança for uma preocupação, use um DataRaptor em vez de uma SOQL
query, pois os DataRaptors suportam totalmente a segurança em nível de campo.
2. SOSL Search: Usa a Salesforce Object Search Language para criar consultas de pesquisa
baseadas em texto no índice de pesquisa.
3. Apex Remote: UQliza uma classe Apex para retornar dados por meio da
VlocityOpenInterface.
4. Apex REST: Usa um endpoint REST de uma classe Apex para retornar dados.
5. DataRaptor: UQliza a interface DataRaptor Extract para retornar dados, com suporte total à
segurança em nível de campo.
6. REST: Usa a chamada de API REST padrão para retornar dados de um endpoint de callout,
com credenciais nomeadas ou não.
10. PushTopic: Usa uma consulta SOQL para retornar um resultado que noQfica os ouvintes
sobre alterações nos registros em uma organização do Salesforce.
11. Custom: UQliza JSON de amostra para configurar um FlexCard com dados temporários
subsQtuídos por outra fonte de dados.
⚠ Um FlexCard filho não precisa de uma fonte de dados se um FlexCard pai es:ver configurado
para enviar dados de sua fonte para esse filho.
⚠Um FlexCard pai pode não precisar de uma fonte de dados se o FlexCard filho :ver uma.
➡ A escolha do :po de fonte de dados determina as propriedades exibidas para a própria fonte
de dados. (Select Data Source)
✏ FLEXCARD DESIGNER
Ferramenta declara:va com uma interface de arrastar e edição WYSIWYG que facilita a criação
de componentes da Web do Lightning da interface do usuário (IU) sem código.
• HEADER
O cabeçalho é onde você visualiza os metadados e executa ações relacionadas ao seu FlexCard da
seguinte forma:
🟦 Visualize os metadados básicos sobre o seu FlexCard, como Autor, Versão, Status, o FlexCard
do qual foi clonado, se é um cartão infan:l, data da úl:ma modificação e tema.
🟥Alterne entre visualização de design e visualização, crie uma nova versão de seu FlexCard e
clone, a:ve ou desa:ve seu FlexCard.
• CANVAS
Arraste elementos como Fields, Ac:on, Image, State, FlexCards filhos e componentes da Web
personalizados do Lightning (LWC) do painel para a tela.
• Reorganize, clone, exclua e ajuste as larguras de seus elementos conforme necessário.
• No modo Design, teste a responsividade do seu FlexCard com a lista suspensa de viewport.
Essa funcionalidade permite uQlizar o viewport, para ver como os elementos do FlexCard são
exibidos em diferentes tamanhos de tela, possibilitando ajustar o layout para garanQr que o
conteúdo seja apresentado da melhor forma possível em disposi:vos com telas de diferentes
tamanhos.
FLEXCARD ELEMENTS
➡ Block Elements
Um elemento Block combina grupos lógicos de outros elementos. É possível tornar esse bloco
recolhível para ocultar ou expandir seu conteúdo. Além disso, é possível aninhar blocos, ou seja,
colocar um bloco dentro de outro bloco.
O elemento Text combina texto e mescla campos usando um editor de rich text.
⚠ Um editor de rich text, também conhecido como editor WYSIWYG (What You See Is What You
Get), é uma ferramenta de sowware que permite a criação e edição de conteúdo de texto
formatado de maneira visualmente semelhante ao resultado final.
O editor de rich text adiciona um DIV HTML para cada seção de texto. Este elemento também
inclui um menu “Styles” para formatar o texto.
📌 Caso o FlexCard não tenha nenhuma fonte de dado vinculada, não será possível retornar
informação de campo, pois não temos nenhuma fonte.
Exemplo:
Não é possível selecionar a guia “Fields”.
📌 Em situações em que temos uma fonte vinculada ao FlexCard é possível adicionar os campos
pertencente aquela fonte.
Exemplo:
As propriedades do campo incluem o “Field Type”, que é ú:l para mostrar os dados em seu
formato correto.
Exemplo:
Se o Output escolhido para ser retornado, seja do :po Data o Field Type deve ser “Date”.
2. Quando existe fonte de dados vinculada ao FlexCard é possível visualizar os campos
disponíveis no Paínel Build.
Arraste o campo que deseja u:lizar sem precisar arrastar o elemento Field e configurar o Output.
➡ Icon Elements
O Icon Elements exibe um ícone SVG do Salesforce que você acessa na biblioteca de ícones do
Salesforce.
É possível carregar o ícone de sua escolha. (custom icon)
O Ac:on element exibe um texto ou um botão que executa uma ação quando clicado, podendo
adicionar ação ao FlexCard para fazer o seguinte:
O DataTable element cria uma estrutura de tabela para exibir os dados obQdos de um data
source.
Quando existe uma fonte de dado vinculada ao flexcard ao arrastarmos o elemento Datatable
para tela é possível ver os campos disponíveis para tabela.
Em TABLE é possível:
➡ Chart
• bar
• pie
• donut
• line
• radar
➡ Custom LWC
➡FlexCard
Incorpora FlexCard filho reu:lizável. O filho pode ter sua própria fonte de dados ou o pai pode
subsQtuir a fonte de dados do filho.
➡State
Adiciona um State para apresentar diferentes interações e layouts com base nas condições.
⚠ Cada FlexCard quando criado tem um default state que NÃO pode ser excluído.
• Drag a State element à tela de um FlexCard ou clone um State que já esteja na tela.
State ProperEes
Nas propriedades do State element é possível alterar o nome do State e informar seu estado.
Vamos supor que estamos criando uma lista de tarefas usando FlexCards. Cada FlexCard
representa uma tarefa na lista.
Abaixo estão alguns exemplos de States que poderíamos ter para um FlexCard:
1. State Ac:ve:
• Nesse estado, o FlexCard exibe os dados da tarefa, como o |tulo da tarefa, a descrição e a
data de vencimento.
• Os usuários podem interagir com o FlexCard, marcando a tarefa como concluída, editando
os detalhes da tarefa ou excluindo-a.
Para clonar esse State selecione o ícone e crie um novo State que aparece quando as condições
definidas são atendidas.
Ao clonar um State, é possível alterar o nome e configurar as condições que determinam quando
ele é exibido.
Configuring Display CondiEons
Ao clicar em clonar vamos alterar o nome do State para Alert e adicionar as condições de quando
deve ser exibido esse State flexCard.
Neste caso, para que este State element seja acionado será necessário o campo “Condi:on” está
preenchido com “Heavy Snow”.
Os mesmos elementos são usados para os State Ac:ve e Alert: Blocos, Imagem, Texto e Ações.
⚠ Os State Ac:ves são considerados padrão, se o elemento State Ac:ve for o primeiro no topo
da tela, isso significa que não há nenhuma condição para avaliar, sendo por padrão exibida.
No entanto, se houver condições que verifiquem se o FlexCard deve estar em um estado
diferente, essas condições devem ser verificadas antes da condição padrão.
É uma prá:ca recomendada sempre ter um State FlexCard na parte inferior que não possui
condições.
(no exemplo acima, é o State AcEve).
➡Image
🛠 BUILD PANEL
➡ Fields
A seção "Fields" é onde você seleciona e adiciona os campos da fonte de dados do seu FlexCard.
Exemplo:
Se você escolheu uma fonte de dados que contenha informações sobre contas do Salesforce
(Objeto Conta), pode arrastar os campos (existentes neste objeto) como nome, telefone e
endereço para a tela do FlexCard.
⚠ Ao publicar o FlexCard, ele exibirá essas informações para o usuário com base nos dados
disponíveis na fonte de dados selecionada.
➡ Display
Os elementos mais complexos, como ac:on, chart, menu e datatable podem ser incorporados
para melhorar a funcionalidade do FlexCard.
Exemplo
• Ações podem ser adicionadas para permi:r que o usuário execute uma ação específica,
como salvar ou enviar um formulário.
• Gráficos podem ser usados para visualizar dados de forma mais clara e compreensível.
• Tabelas de dados podem ser incluídas para exibir dados de forma organizada e
estruturada.
• Adiciona um State para apresentar diferentes interações e layouts com base nas condições
O componente Custom Lightning Web são componentes que você pode criar para adicionar
funcionalidades personalizadas ao seu FlexCard.
Exemplo
Digamos que é preciso exibir um gráfico personalizado em seu FlexCard. Você pode criar um
Lightning Web Component que gera esse gráfico usando uma biblioteca de terceiros como D3.js.
Esse componente da Web do Lightning pode então ser incorporado ao seu FlexCard para exibir o
gráfico e quaisquer dados associados.
Esses componentes são criados usando as tecnologias padrão da Web, como HTML, CSS e
JavaScript, mas são integrados ao Lightning e podem ser usados em seu FlexCard.
⚠ Os Custom LWC são reu:lizáveis e podem ser facilmente compar:lhados com outros usuários
ou equipes.
Por fim, Os Child FlexCards podem ser incorporados a outros FlexCards, muitas vezes chamados
de FlexCards “Parent”.
Exemplo
O Child FlexCard pode conter informações detalhadas sobre a receita em questão, como
ingredientes, etapas de preparação, tempo de cozimento, nutrição e fotos da sobremesa
acabada.
Quando um usuário clica em um Child FlexCard específico, ele pode ser levado a uma tela com
informações mais detalhadas sobre a receita correspondente.
⚠ Um componente "parent" FlexCard pode conter vários componentes "child" FlexCard, cada
um exibindo informações diferentes.
➡ Input
Os elementos de input na guia "Build" do FlexCard podem receber entrada de dados dos
usuários.
1. Checkbox: permite que os usuários escolham uma ou mais opções em uma lista de opções.
2. Currency: permite que os usuários digitem um valor monetário em uma área específica do
FlexCard.
5. E-mail: permite que os usuários digitem um endereço de e-mail válido em uma área
específica do FlexCard.
6. Mul:-select: permite que os usuários escolham várias opções em uma lista de opções.
7. Number: permite que os usuários digitem um número em uma área específica do FlexCard.
11. Telephone: permite que os usuários digitem um número de telefone em uma área
específica do FlexCard.
12. Text: permite que os usuários digitem texto em uma área específica do FlexCard.
13. Text Area: permite que os usuários digitem um texto mais longo em uma área específica do
FlexCard.
15. Toggle: permite que os usuários alternem entre dois estados (ligado ou desligado) clicando
em um botão de alternância.
16. Typeahead: permite que os usuários digitem texto em uma caixa de pesquisa e sugere
possíveis correspondências com base no que o usuário digitou até agora. Isso pode ser úQl
para encontrar e selecionar rapidamente um item em uma lista longa de opções.
📋 PROPERTIES PANEL
Permite es:lizar elementos FlexCard, sendo possível visualizar em tempo real como as alterações
afetam a aparência e tornando a personalização mais rápida e intuiQva.
➡ Custom Styles
É possível configurar a es:lização que deseja ao seu elemento e salvar no Custom Style, basta
clicar em “Save As” e preencha com o nome desejado.
Caso deseje limpar toda a esQlização do elemento clique em “Clear Styles”
➡ Dimension
Oferece opções para ajustar a largura e altura mínima e máxima do FlexCard, podendo ser
ajustadas manualmente digitando valores em pixels ou porcentagens (10px ou 10%).
Exemplo:
Exemplo:
Personalizar a aparência visual do FlexCard e garante que ele atenda às necessidades de design
específicas do projeto.
⚠ Quando selecionamos um elemento específico, neste caso o Field é possível observar em Style
uma configuração uníca para este elemento, além da dimensions, appearance…
Aqui é possível alterar o rótulo do campo, fonte, cor, tamanho e também é possível es:lizar o
value a ser recebido no campo.
➡ Alignment
O alinhamento e u:lizado para ajustar, permiQndo que o conteúdo seja colocado em posições
precisas dentro do FlexCard.
Exemplo:
O texto do elemento Field foi alinhado ao centro, juntamente com o preenchimento do topo do
card.
Quando removemos o pedding type e pedding size (top:large) é possível ver a ausência de
preenchimento no flexcard, ficando apenas o alinhamento do texto, veja:
➡ Custom CSS
É uma técnica avançada de es:lização, uQliza código CSS personalizado que pode ser aplicado ao
FlexCard para es:lizar elementos específicos.
Ela permite criar es:los de página personalizados que NÃO são possíveis com as propriedades de
es:lo padrão fornecidas pelo FlexCard Design.
⚙ SETUP PANEL
Uma Session variable é como uma "memória" do FlexCard, onde podemos armazenar
informações de diferentes fontes de dados ou sistemas externos.
Exemplo:
Digamos que estamos construindo um FlexCard que precisa exibir informações sobre um usuário.
Podemos criar uma variável de sessão chamada "user_data" e armazenar nela as informações do
usuário, como nome, e-mail, endereço, etc.
Essas informações podem vir de uma fonte de dado ou de um sistema externo, e a variável de
sessão permite que o FlexCard acesse esses dados globalmente, em qualquer lugar em que ela
seja necessária.
📍 Event Listeners
São funções que são acionadas quando um determinado evento ocorre em uma aplicação.
Exemplo:
⚠Altere a forma de visualizar o seu FlexCard, quando estamos no processo de criação ou edição,
u:lizamos o modo Design, e para visualizar em tempo real uQlizamos o modo Preview.
No modo preview conseguimos observar o botão "Add Test Parameters" que permite testar seu
FlexCard com diferentes valores de parâmetros.
Quando definimos um parâmetro, podemos atribuir um nome a ele, o que chamamos de chave.
Exemplo:
Crie um parâmetro com a KEY "Limite de registros" e atribuir o VALEU "10" a essa chave.
A chave é como o nome ou iden:ficador do parâmetro, e o valor é o conteúdo ou valor que está
associado a essa chave.
🔁 Atualizar
📟 Data JSON
Data JSON do FlexCard é uma representação estruturada dos dados que são usados para
preencher os elementos do FlexCard.
Ele contém informações sobre a fonte de dados, como as consultas ou APIs usadas para obter os
dados, e como esses dados são mapeados para os elementos do FlexCard.
Ao visualizar o Data JSON do FlexCard, é possível verificar se os dados estão sendo preenchidos
corretamente nos elementos do FlexCard.
Por exemplo, se um elemento de texto não está sendo preenchido com o valor correto, é
possível verificar se o valor correspondente está presente no JSON de dados.
O Data JSON é atualizado dinamicamente à medida que o usuário interage com o FlexCard. Isso
permite verificar como as mudanças na interação afetam os dados exibidos no FlexCard e no
JSON de dados. Isso pode ser úQl para iden:ficar problemas de sincronização ou de atualização
de dados em tempo real.
🐞 Ac:on Debugger
O Ac:on Debugger registra todas essas ações em um log, que pode ser acessado através da guia
"Ac:on Debugger”.
O AcQon Debugger pode ser úQl para depurar problemas no FlexCard, como erros de integração
com serviços da web, problemas de desempenho ou comportamento inesperado do usuário. Ele
permite visualizar em detalhes o que está acontecendo nos bas:dores do FlexCard enquanto
você o usa.
✅PUBLISH
Para publicar um FlexCard, você precisa primeiro a:var clicando no botão “Ac:vate no cabeçalho
do editor. Esse processo compila e implanta seu FlexCard como um componente da Web do
Lightning (LWC).
Após a:var o FlexCard, você pode configurar os valores de metadados do LWC gerado, como
onde ele será publicado.
(2) API Version: Esta é a versão API do seu componente FlexCard. O padrão é a versão da API
usada quando você criou o FlexCard. Quando você cria um novo FlexCard, o padrão é a versão
API atual.
(4) Is Exposed: Isso é aQvado quando você deseja que seu componente FlexCard seja público.
(5) Add SVG Resource/Drop it here: é aqui que você pode adicionar seu próprio ícone SVG de
componente personalizado para iden:ficar seu LWC gerado no Lightning App Builder e no
Community Builder.
(6) Targets: Aqui você seleciona os locais onde seu componente FlexCard está disponível para
publicação.
⚠Os alvos não são definidos para um FlexCard filho por padrão, já que os FlexCards filhos são
normalmente incorporados apenas nos pais ou usados em ações, como o menu desdobrável.
➡ A publicação de um FlexCard pode ser feita em diferentes locais, dependendo da finalidade do
componente.
• Lightning Page
• App Page
• Home Page
• Record Page
⁃ App Page é uma página que pode ser acessada através do menu do aplica:vo e que
geralmente é usada para exibir um resumo dos principais recursos do aplicaQvo.
⁃ Home Page é a primeira página que o usuário visualiza quando acessa o aplicaQvo.
⁃ Record Page é uma página que mostra informações detalhadas sobre um registro em
par:cular. Essa página é usada principalmente para exibir informações de um objeto específico,
como detalhes do contato ou oportunidade.
• Experience Page
• Community Page
• Community Default
⁃ Community Pages são páginas em uma comunidade do Salesforce, que permitem que os
usuários acessem recursos e informações específicas da comunidade.
⁃ Community Default permite publicar um FlexCard como a página inicial padrão de uma
comunidade.
A Custom components list é onde você encontrará os componentes que criou e outros
componentes que compõem o pacote.
🏋 Pra:que:
h€ps://developer.salesforce.com/files/OmniStudio/pdf/OmniStudio_Meet_the_Data_Source_Wiz
ard.pdf?_ga=2.171536928.1671807635.1683573867-242827117.1655918874
h€ps://developer.salesforce.com/files/OmniStudio/pdf/OmniStudio_Display_Data_and_AcQons_o
n_a_FlexCard.pdf?_ga=2.148327730.440651954.1684177707-242827117.1655918874
h€ps://developer.salesforce.com/files/OmniStudio/pdf/OmniStudio_Style_the_Elements_on_a_Fl
exCard.pdf?_ga=2.55003182.440651954.1684177707-242827117.1655918874
👪 Child FlexCards
Child FlexCards podem ser incorporados a outros FlexCards, muitas vezes chamados de FlexCards
“Parent”.
A ação flyout exibe os dados usando um FlexCard filho em uma janela popover ou modal.
Para colocar um FlexCard Filho dentro do FlexCard Pai é necessário está a:vo.
2. Data Node é um conjunto de dados para passar um registro ou uma matriz de registros
para o FlexCard filho. (Nó)
Exemplo:
Se você Qver uma lista de registros em uma base de dados, cada registro pode conter várias
informações, como nome, idade, endereço etc.
Nesse caso, cada registro seria um nó de dados. Ao selecionar o FlexCard filho e escolher um nó
de dados, você está determinando quais informações desse registro serão enviadas para o
FlexCard filho.
⚠Para passarmos registros ou uma array de dados para um FlexCard Child, uQlizamos os
seguintes Node/nós:
NÓ DESCRIÇÃO
{records} Envie todos os dados.
{recordId} Obtém o ID de contexto do registro de dados de um objeto Salesforce. Se
esQver usando um DataRaptor para obter uma lista de Casos de conta,
no Input Map , insira AccountId como Key e {recordId}como Value . Em
seguida, adicione um Test Parameter cuja chave é recordId o
valor é 138238279r9ff para preencher seu FlexCard com dados reais.
{record[#]} Envie todos os dados de um registro específico. {records[0]} = primeiro
registro. {records[1]} = segundo registro. E assim por diante.
{record} Envie apenas os dados do registro atual, como quando Repe:r registros está
desabilitado no painel Configuração para que apenas um registro seja
retornado.
{record.FieldName} Envie um objeto de registro. Por exemplo, se {record.Product} for um objeto
ou array com dados adicionais, selecione-o. Mas, se você quiser enviar um
campo de dados, use a propriedade A‚ributes .
{record.a€ributes} Envie todos os Atributos para o registro atual.
Se um FlexCard Child usa a fonte de dados pai, não importa se sua fonte de dados está
configurada ou definida como Nenhum.
A‚ributes permite que você defina campos de dados adicionais que deseja passar para o
FlexCard Child.
Nesse caso, você quer passar o campo "Id", então você insere "Id" como Atributo (2) e "{Id}"
como Valor (3).
Isso significa que o valor do campo "Id" no FlexCard pai será passado para o FlexCard filho.
Em Setup do FlexCard Child, é necessário especificar como usar o valor do "Id" passado, neste
caso nossa fonte de dado é um DataRaptor.
Na seção Input Map, será mapeado a saída de dados do seu DataRaptor, sendo o "Id" como key
(input) e o campo "Value" determinará qual valor será usado para o contextId do filho.
Nesse caso, usamos o valor como "{Parent.Id}". Isso significa que o valor "Id" do FlexCard pai
será atribuído ao contextId do FlexCard filho.
▶ Collapse a Block
Os usuários têm a opção de expandir o bloco para visualizar o conteúdo completo quando
desejarem.
Existem duas opções para configurar o bloco recolhível.
• Collapsible
• Collapsed By Default
⁃ Sempre ocultar o bloco quando o FlexCard for exibido pela primeira vez.
👯 Clone FlexCard
A clonagem do FlexCard cria uma cópia do FlexCard com o layout e configurações do FlexCard
clonando.
⚠ A clonagem de um FlexCard não é possível até que você altere o nome do cartão.
Caso queira criar uma cópia idên:ca de um FlexCard a:vado sem afetar os locais em que é
usado, crie uma versão.
O controle de versão mantém o nome e o autor iguais, mas permite que você faça edições e
alterações sem afetar a versão a:va usada, para que nada seja interrompido.
Version a FlexCard
O controle de versão é uma maneira de fazer alterações em seu FlexCard enquanto mantém o
FlexCard existente.
O nome e o autor do FlexCard permanecem os mesmos, mas o número da versão aumenta para
a nova versão que você deseja editar.
⚠ Apenas UMA versão de um FlexCard deve estar a:va por vez, portanto, quando você a:va a
nova versão, ela subs:tui automa:camente a versão anterior.
Version a FlexCard
Clone a FlexCard
Dados externos referem-se a todos os dados que estão fora do ambiente do Salesforce.
Quando você precisa acessar informações que não estão armazenadas no Salesforce, é
necessário u:lizar uma fonte de dados externa.
Este FlexCard contém o clima atual, que é previsto para o local de uma conta. Usar uma API
meteorológica é uma óQma maneira de obter dados por meio de uma API da web.
Flyout é uma maneira de mostrar dados adicionais com um simples clique do mouse.
• Um flyout pode exibir informações extensas que não cabem no campo FlexCard padrão.
• Um flyout pode exibir informações sobre child records, como casos abertos relacionados a
uma conta específica.
⚠ Os Flyouts são criados com o elemento Ac:on selecionando o Ac:on Type como Flyout.
Usar uma API meteorológica é uma óQma maneira de praQcar a obtenção de dados por meio de
uma API da web.
No painel de Setup do FlexCard configure o Type Data Source, busque pelo Name da API criada e
preencha o Input Map.
O VALUE "{recordId}" seria subs:tuído pelo ID real da conta durante a execução do processo de
integração.
🔁 Repeat Records
Essa funcionalidade é usada para mostrar uma lista ou tabela com múl:plos registros, onde cada
registro é exibido de forma repe:da de acordo com os dados disponíveis.
Exemplo:
OmniScript Support
A:ve o recurso OmniScript Support quando o FlexCard for interagir com um OmniScript.
🏋 Pra:que:
h€ps://developer.salesforce.com/files/OmniStudio/pdf/OmniStudio_Work_With_Child_FlexCards.
pdf?_ga=2.206321557.781961959.1684786615-242827117.1655918874
h€ps://developer.salesforce.com/files/OmniStudio/pdf/OmniStudio_Build_a_FlexCard_with_Exter
nal_Data.pdf?_ga=2.172841765.781961959.1684786615-242827117.1655918874
h€ps://developer.salesforce.com/files/OmniStudio/pdf/OmniStudio_Add_FlexCard_States_and_C
ondiQons.pdf?_ga=2.180625953.704177184.1685294552-242827117.1655918874
h€ps://developer.salesforce.com/files/OmniStudio/pdf/OmniStudio_AcQvate_and_Publish_FlexCa
rds.pdf?_ga=2.194714155.781961959.1684786615-242827117.1655918874
OmniStudio Integra3on Procedures
Processos declara:vos Server-side que executam várias ações em uma única chamada do
servidor.
• Mul:ple ac:ons in a single server call: Ao executar várias ações em uma única chamada
do servidor, os procedimentos de integração evitam viagens de ida e volta desnecessárias entre o
cliente e o servidor.
É possível mesclar a saída para várias APIs para buscar ou enviar dados, realizar cálculos em
várias etapas ou até mesmo orquestrar fluxos de trabalho complexos.
Exemplo:
Nesse procedimento, você pode chamar as APIs do PayPal, Stripe e PagSeguro para obter as
informações do pagamento.
➡Access and transform data from third-party sources: Obter informações de diferentes fontes
externas, como APIs de terceiros, bancos de dados de outras empresas ou serviços de
armazenamento em nuvem.
➡No user interac:on is required:
Ações que não exigem a intervenção ou entrada direta do usuário. AutomaQza o processo sem
depender de ações manuais do usuário.
⚠ só pode ter uma Integra:on Procedure com o mesmo Type and SubType a:vos a qualquer
momento.
➡ Groups
⚠ Todos os element Block têm uma propriedade em comum - “Execu:on Condi:onal Fórmula.
• Se esta fórmula for avaliada como verdadeira ou não for definida, o bloco será executado.
• Se for avaliado como falso, o bloco será ignorado.
Exemplo:
➡ Ac:ons
⚠ Você também pode usar blocos para agrupar ações para execução condicional.
Element Func:on
Batch AcQons Execute um trabalho agendado.
CalculaQon AcQon Chamar uma ação de cálculo. - Pode exigir um
DataRaptor Transform.
DataRaptor Extract AcQon Chame um DataRaptor Extract.
DataRaptor Post AcQon Chame um DataRaptor Post.
DataRaptor Transform Chame um DataRaptor Transform.
AcQon
DataRaptor Turbo AcQon Chame um DataRaptor Turbo.
Delete AcQon Exclua registros do Salesforce
DocuSign Envelope AcQon Envie e-mails DocuSign para assinatura.
Email AcQon Preencha e envie e-mails.
IntegraQon Procedure AcQon Chame um IntegraQon Procedure.
List AcQon Mesclar listas.
Matrix AcQon Chame uma Matriz de Cálculo.
Remote AcQon A maioria das coisas que você pode fazer com uma classe
e um método do Apex. - Pode exigir um DataRaptor
Transform.
Response AcQon Passe os dados de volta para o objeto de inicialização
HTTP AcQon Obtenha, salve ou exclua dados por meio de uma API da
web. Métodos: GET, POST, DELETE, PUT
Set Values Definir valores padrão. Execute transformações simples,
funções e mapeamento.
➡ Data Input
Salesforce Org Delete AcQon (To delete data from Salesforce Records)
🔴 2. Structure Panel
Drag and drop elements do painel Componentes disponíveis para o painel Estrutura.
⚠ Cada elemento tem um painel Propriedades com um link para editar JSON.
Exemplo:
🔴 3. Preview
Exemplo:
Foi uQlizado AccountId como chave (Key) e o ID de uma conta existente como valor (Value).
🛑 Errors/Debug Output
🔽 Debug Log
h€ps://developer.salesforce.com/files/OmniStudio/pdf/OmniStudio_Build_Simple_IntegraQon_Pr
ocedures.pdf?_ga=2.124719562.1730121652.1686079454-242827117.1655918874
Dados externos referem-se a todos os dados que estão fora do ambiente do Salesforce em uma
organização.
Quando você precisa acessar informações que não estão armazenadas no Salesforce, é
necessário u:lizar uma fonte de dados externa.
⁃ Referem-se a sistemas ou tecnologias mais an:gas que foram u:lizadas para armazenar e
gerenciar dados antes da implementação do Salesforce.
⁃ Esses sistemas podem incluir bancos de dados locais, planilhas, sistemas de arquivos,
entre outros. Ao integrar dados legados ao Salesforce, é possível aproveitar os dados existentes e
torná-los acessíveis.
⁃ Esses dados podem ser armazenados em servidores locais, data centers privados ou em
outros disposi:vos de armazenamento ƒsicos.
• API integra:ons
⁃ Essa categoria inclui qualquer outra fonte de dados ou aplica:vo de terceiros que não se
enquadre nas categorias mencionadas anteriormente.
Este SetValues compar:lha a API Key com dois elementos HTTP Ac:on.
DataRaptor Extract AcQon compar:lha o código postal da conta com os dois elementos HTTP
Ac:on.
Os dois elementos HTTP Ac:on enviam o código postal da conta (a localização da conta) e a API
Key para o site ⚠.
Uma ação recebe um JSON com o clima atual (Current JSON) e o outro recebe um JSON com 5 dias
de dados de previsão do tempo (Forecast JSON).
Após pegar o JSON de “Current” e “Forecast” os dados são enviados para um DataRaptor
Transform, que corta e transforma os dados, retornando apenas um JSON selecionado.
Com os dados JSON selecionado, está informação é passada ao elemento Response Ac:on, que
retorna os dados selecionados para o FlexCard ou OmniScript que chamou o Integra:on
Procedure.
🏋 Pra:que:
h€ps://developer.salesforce.com/files/OmniStudio/pdf/OmniStudio_Extract_External_Data_with_
an_IntegraQon_Procedure.pdf?_ga=2.125147850.1730121652.1686079454-
242827117.1655918874
h€ps://developer.salesforce.com/files/OmniStudio/pdf/OmniStudio_Get_and_Transform_Externa
l_Data.pdf?_ga=2.158111226.1730121652.1686079454-242827117.1655918874
OmniScripts
Um OmniScript é uma interação guiada que é configura para guiar os usuários por meio de
processos de negócios complexos.
Creat OmniScript
O que torna um OmniScript único é o TYPE, SUBTYPE, AND LANGUAGE eles se combinam para
criar um iden:ficador exclusivo que se torna o nome de um componente da Web Lightning do
OmniScript compilado.
Exemplo:
Type=account,
SubType=Create
Language=English
Apenas UM OmniScript a:vo pode ter o mesmo :po, sub:po e idioma a qualquer momento.
⚠ Embora não seja obrigatório, é recomendável que o Type do OmniScript comece com uma
letra minúscula.
Header (1)
🟦 Visualize os metadados sobre o seu OmniScript como Type, SubType, Version, Language, and
Ac:va:on status.
⁃ Tree View
⁃ Slide View
• Tree View
Use a guia Tree View para obter uma visão detalhada da estrutura do script.
Exemplo:
Quando arrastamos os elementos OmniScript para tela, é possível visualizar sua estrutura com a
guia Tree View.
Neste exemplo, é possível observar todos os elementos que estão sendo usado no STEP1 e de
forma estruturada.
• Slide View
Use Slide view para uma visualização de alto nível da estrutura de scripts grandes e complexos.
Exemplo:
Neste exemplo é possível ver o STEP1 de forma completa, sem mostrar detalhes de sua estrutura.
⚠ Clique no slide para abrir o painel Propriedades de uma etapa ou ação, existente.
CANVAS
O Newport Design System (NDS) inclui um conjunto completo de es:los globais personalizáveis e
é uma estrutura CSS.
• Hide Condi:onal Elements: Permite ocultar elementos ou grupos de elementos com base
em determinadas condições.
Isso significa que, se uma determinada condição for atendida, os elementos associados serão
ocultados na visualização do OmniScript.
🛠 Build Painel
Esses elementos são colocados em uma sequência específica para o fluxo de trabalho.
Os elementos do OmniScript são agrupados por :po, e cada um deles possui configurações que
devem ser definidas adequadamente.
➡ ELEMENTS ACTIONS
Aciona outras ferramentas para executar diversas ações: get or save data, calculate, send an
email e assim por diante.
🔎 Integra dados de várias fontes (Salesforce ou terceiros), manipula os dados e os envia de volta à
sua fonte.
OMNISCRIPT ACTION ELEMENTS
• CalculaQon AcQon:
• HTTP Ac:on: Obtenha, salve ou exclua dados por meio de uma interface de programação
de aplicaQvo (API) da Web.
• DocuSign Envelope Ac:on and DocuSign Signature Ac:on: Envie e-mails DocuSign para
assinatura ou assine e-mails DocuSign.
• Navigate Ac:on: Envie o usuário de volta para uma página anterior após a conclusão da
interação.
➡ DISPLAY
Line Break
Text Block
➡ FUNCTIONS ELEMENTS
Fórmula
Permite criar fórmulas ou expressões que u:lizam os valores fornecidos em diferentes campos
para realizar cálculos e obter um resultado desejado.
Exemplo:
Você esteja construindo um formulário para calcular o IMC (Índice de Massa Corporal) de uma
pessoa com base nos campos "peso" e "altura".
Você pode usar um elemento Fórmula ou Agregação para definir a expressão que realiza o
cálculo do IMC.
✏ Constantes são valores fixos e imutáveis, que representa informações está:cas e conhecidas.
Ao contrário das variáveis, que podem ter seus valores alterados durante a execução.
%NOME_DO_CAMPO% ou %NOME_DO_NÓ_JSON%.
Por exemplo, %IDADE% pode representar o valor de um campo chamado "IDADE" em seu
formulário.
Realizar operações matemá:cas básicas, como addi:on (+), subtrac:on (-), mul:plica:on (*) e
division (/), com números.
Usar valores booleanos, como true ou false, e operadores lógicos, como && (e), || (ou) e !
(negação), para avaliar condições e tomar decisões em suas expressões.
📍Arrays:
Nesse exemplo, temos uma matriz que contém os números de 1 a 5. Os valores são separados
por vírgulas e estão dentro dos colchetes [ ] para indicar que se trata de uma array.
[1, 2, 3, 4, 5]
Nesse caso, a array [ "Opção A", "Opção B", "Opção C" ] representa as opções disponíveis para
um campo de seleção múl:pla, em que o usuário pode selecionar.
📍 Null:
Indica que um campo pode não ter um valor atribuído ou pode ter um valor vazio.
➡ Quando se diz que um campo pode não ter um valor atribuído, significa que nenhum valor foi
especificado ou inserido nesse campo.
Exemplo:
➡ Quando se diz que um campo pode ter um valor vazio, significa que um valor foi atribuído a
esse campo, mas o valor atribuído é considerado vazio.
Exemplo:
Nesse exemplo, o campo "Nome" tem um valor atribuído, mas esse valor é composto apenas por
espaços em branco.
Messaging
UQlizado para exibir mensagens ou no:ficações durante a interação do usuário com o formulário.
Ele permite que você exiba mensagens de comentários, requisitos, sucesso ou aviso para orientar
o usuário e fornecer informações relevantes durante o preenchimento do formulário.
Exemplo:
Exibir mensagens de sucesso quando uma ação é concluída com êxito ou suponha que você tenha
um campo chamado "Idade" e deseja exibir uma mensagem de aviso se a idade for inferior a 18
anos.
Nesse caso, a expressão de validação pode ser algo como: ‘%IDADE% < 18’.
➡ GROUPS
- Block
Combine grupos lógicos de elementos em uma etapa OmniScript usando um elemento Block.
- Edit Block
Crie, edite e exclua vários registros externos ou do Salesforce em uma página usando o bloco de
edição.
Exemplo:
Se esQver coletando as informações de contato de uma conta, você pode adicionar um bloco de
edição ao seu OmniScript para permiQr que os usuários adicionem um registro para cada contato.
- Radio Group
O Radio Group do OmniScript permite que você crie e exiba perguntas em um formato de
quesQonário.
- Step
Ao criar a estrutura de script para um OmniScript, as etapas devem ser usadas para criar cada
"página" do formulário.
É possível habilitar a validação de campo para uma Etapa, o que significa que todos os campos
obrigatórios na Etapa devem ser preenchidos para avançar.
Exibe uma lista de resultados quando um usuário começa a digitar em um campo de entrada.
Exemplo:
Um bloco Type Ahead pode ser usado com um DataRaptor para listar contas nos resultados.
➡ INPUT ELEMENTS
Isso permite que você crie OmniScripts “filhos” menores para funcionalidade comum.
Exemplo:
🛠 Setup Panel
h€ps://help.salesforce.com/s/arQcleView?id=sf.os_omniscript_setup_reference_9056.htm&type=
5
• Currency Code
• Enable SEO
Habilita um site de saída (Leave Site)? aviso a ser acionado ao recarregar, navegar fora ou fechar a
janela.
Permite que os valores da lista de opções sejam recuperados no carregamento do script quando
marcado. Se desmarcada, as listas de opções serão buscadas no momento do design
• Element Type
Um Qpo de elemento específico, como texto ou bloco de edição, que é subsQtuído por seu
componente da Web do Lightning personalizado.
Isso significa que você está associando o seu componente a um :po específico de objeto ou dado
no Salesforce.
Ao mapear o Lightning Web Component para um Element Type, você está definindo como e
onde esse componente será usado dentro do contexto.
• Seed Data JSON
A propriedade "Seed Data JSON" é usada para fornecer valores está:cos que são propagados
durante o carregamento inicial do OmniScript. Isso significa que esses valores são carregados e
preenchidos automa:camente quando o formulário é aberto pela primeira vez. Esses valores
geralmente não mudam ao longo do tempo e são úteis para fornecer informações padrão ou
predefinidas.
Existem duas maneiras de preencher os campos do OmniScript com dados: usando dados
fornecidos diretamente ou usando hidden nodes no JSON de dados do OmniScript.
• Ao adicionar nós ocultos ao JSON de dados, você pode definir valores que não são visíveis
inicialmente no formulário, mas que podem ser u:lizados posteriormente.
• Por exemplo, você pode adicionar um nó oculto chamada “idade” com o valor "30" no
JSON de dados do OmniScript.
• Esse valor não será visível no formulário, mas você pode usá-lo em fórmulas ou em outros
cálculos dentro do formulário.
• Ao preencher os campos com dados, você insere os valores diretamente nos campos do
formulário. Por exemplo, se você tem um campo "Nome" no seu formulário OmniScript, você
pode preenchê-lo com um valor como "João Silva".
• Tracking Custom Data
Registre dados personalizados na tabela Vlocity Tracking Entry adicionando pares de Key/Value.
🏋 Pra:que:
h€ps://developer.salesforce.com/files/OmniStudio/pdf/OmniStudio_Create_a_Simple_OmniScript
.pdf?_ga=2.26203325.1632278648.1687176936-242827117.1655918874
h€ps://developer.salesforce.com/files/OmniStudio/pdf/OmniStudio_Design_and_Build_a_Branchi
ng_OmniScript.pdf
h€ps://developer.salesforce.com/files/OmniStudio/pdf/OmniStudio_Create_a_Type_Ahead_Block
_Element.pdf
h€ps://developer.salesforce.com/files/OmniStudio/pdf/OmniStudio_Validate_Data_and_Handle_
Errors.pdf
h€ps://developer.salesforce.com/files/OmniStudio/pdf/OmniStudio_Display_External_Data.pdf
DataRaptors
DataRaptor é uma ferramenta de mapeamento que permite ler, transformar e gravar dados do
Salesforce.
Pense em um sistema que permite o usuário preencher um formulário online, e após preencher o
formulário, esses dados são coletados e processados.
É aí que entra os DataRaptors do OmniStudio. Eles são uma parte do sistema que tem a função de
extrair e salvar os dados provenientes dessas interações digitais.
Um DataRaptor Turbo Extract recupera dados de um único :po de objeto Salesforce com suporte
para campos de objetos relacionados. Os usuários podem filtrar os dados e selecionar os campos
a serem retornados.
⚠ DataRaptor Turbo Extract não oferece suporte a fórmulas, mapeamentos output, JSON
personalizado, default values, and transla:ons .
➡ DataRaptor Extract
➡ DataRaptor Transform
O DataRaptorTransform permite que os usuários executem transformações de dados sem ler ou
gravar no Salesforce.
➡ DataRaptor Load
Além disso, suporta Fórmulas e atributos; por exemplo, quando um usuário está executando um
OmniScript de tratamento de casos, termina de inserir a data e clica em Salvar, o script chama
um DataRaptor Load para registrar os dados inseridos.
📋 CREATE DATARAPTOR
• Required Permission — Esta configuração limita quem pode executar este Procedimento
de Integração.
⚠ Dependendo do Epo de DataRaptor selecionado os campos de input Type e output Type tem
opções de seleção diferente.
➡ HEADER
Interface Type
Input Type
Output Type
Required Permission
Descrip:on
UQlize os botões para realizar ações como:
✏ DataRaptor Designer
No DataRaptor Designer é possível observar guias, nas quais especificam o que desejamos fazer.
Extract
Fórmula
Output
Op:ons
Preview
🔽 Extract Tab
Na guia Extract, você especifica os objetos Salesforce que deseja que o DataRaptor consulte e os
filtros determinam os dados a serem retornados do objeto.
Clique em Adicionar etapa de extração e escolha o objeto de origem na lista suspensa de objetos.
(Select an Op:on) - (Neste caso, Account)
Extract Output Path: Nomeie o caminho de saída de extração para o objeto Salesforce que é sua
fonte de dados. (Neste caso, Account)
Isso define o primeiro nó dos valores do campo Extract JSON Path na guia Output.
Filter: É uma comparação usada para determinar quais dados devem ser lidos, o item filtro é um
operador de comparação.
O filtro mais básico é Id = Id, que define o Id do objeto para um parâmetro de entrada chamado
Id.
• AND: É um operador lógico que adiciona um filtro adicional a uma consulta e especifica
que ambos os filtros devem ser verdadeiros para que um registro seja incluído no resultado.
• OR: É um operador lógico que adiciona um filtro adicional a uma consulta e especifica que
qualquer um dos filtros pode ser verdadeiro para que um registro seja incluído no resultado.
• OFFSET: É usado juntamente com o parâmetro LIMIT para especificar o primeiro registro
em uma página de uma recuperação de várias páginas.
Exemplo:
Você deseja obter 5 registros por página e começar a recuperar a par:r do primeiro registro.
Se você definir o LIMIT como 5 e o OFFSET como 0, a consulta retornará os primeiros 5 registros.
Agora, se você quiser recuperar a próxima página de resultados, definirá o OFFSET como 5, para
pular os primeiros 5 registros, e manterá o LIMIT como 5 para obter mais 5 registros. Essa
consulta retornará os registros da página 2, começando do sexto registro.
• ORDER BY: É usado para classificar os resultados da consulta pelo campo especificado.
• Você pode classificar os resultados por um único campo ou por vários campos,
especificando uma lista separada por vírgulas dos nomes dos campos na ordem de precedência.
⚠Você pode opcionalmente especificar ASC ou DESC para uma classificação crescente ou
decrescente.
Exemplo:
Suponha que você tenha um objeto chamada "produtos" com os seguintes campos: "nome",
"preco" e "quan:dade". Você deseja obter os produtos ordenados pelo preço em ordem
crescente.
Nesse caso, o resultado da consulta retornará todos os registros do objeto "produtos", mas
ordenados pelo campo "preço" em ordem ascendente (ASC).
Se você quisesse obter os produtos em ordem decrescente, era só definir o filtro para ordem
descendente (DESC).
🔽Fórmulas Tab
Na guia fórmulas, você define as fórmulas. Ao definir uma fórmula, você mapeia a saída para
OutputJSON (para Extract e Transform) ou campo de objeto do Salesforce (para loads).
⚠ Apenas três >po de DataRaptor suporta Fórmula (Extract, Transform, and Load).
🔎 DataRaptor func:on
Uma função DataRaptor é uma equação que você usa para realizar;
Na guia Saída, você mapeia os dados JSON do objeto de extração para o Output JSON.
• No campo Extract JSON Path, escolha qual o campo deseja u:lizar dentro do objeto de
extração JSON.
Na imagem abaixo o Extract JSON Path foi o Objeto Account do Campo Name (Account:Name)
O Extract JSON Path deste output será o Campo AccountName que trás o nome da conta.
⚠ Nomeie o Extract JSON Path na guia Extrat para o objeto que é sua fonte de dados (neste
exemplo Account). Isso define o primeiro nó dos valores do campo Extract JSON Path.
É possível configurar o :po de saída de dado que aquele campo Output tem.
No caso do exemplo acima para o campo Name o Tipo de dado a ser retornado é do :po “Text”.
Quando precisamos de uma grande quan:dade muito grande de campo, clicamos no botão Quick
Match.
Na caixa de diálogo Quick Match, os mapeamentos são exibidos na coluna Matched Mappings à
direita.
É possível mapear os campos da seguinte maneira:
• Drag and drop: Arraste o campo sObject de origem da coluna da esquerda para o campo de
output de desQno na coluna do meio ou vice-versa.
Exemplo:
Na imagem acima é possível arrasar a entrada Account Name para a coluna Output para a saída
AccountName.
⚠ Para um output que não tem campo sObject de origem, arraste o Output Mappings para a
coluna Matched Mappings.
• Auto Match: Clique em Auto Match para que os campos com nomes correspondentes
sejam combinados automa:camente.
🔽Op:ons Tab
Na guia Opções, você define opções para verificar permissões de acesso do usuário aos campos
antes de executar o DataRaptor.
1. Session Cache
Esse Qpo de cache é usado para armazenar dados relacionados a usuários e suas sessões de
login.
Os dados armazenados nesse cache são específicos para cada usuário e são descartados quando a
sessão do usuário é encerrada.
É úQl para dados personalizados ou específicos de cada usuário que precisam ser acessados com
frequência durante a sessão.
2. Org Cache
Esse Qpo de cache é usado para armazenar outros :pos de dados que não estão diretamente
relacionados a usuários ou sessões de login.
Os dados armazenados nesse cache são compar:lhados por todos os usuários da organização e
permanecem disponíveis mesmo quando a sessão de um usuário é encerrada.
É úQl para dados está:cos ou comuns que são acessados com frequência por vários usuários.
Em Time to Live in Minutes determinamos por quanto tempo os dados permanecem no cache
antes de serem considerados inválidos ou expirados.
Essa configuração define o tempo de vida dos dados em minutos, ou seja, após o período
definido, os dados serão descartados do cache e uma nova consulta ou acesso aos dados será
necessário para obtê-los novamente.
🔽Preview Tab
Na guia Visualização, é possível testa a saída do DataRaptor. Você fornece parâmetros de entrada
como Kay/Values e, em seguida, clica em Executar.
🔎 Entenda
As guias dos DataRaptor são alteradas conforme seu :po, nos exemplos mostrados anteriormente
u:lizamos o DataRaptor Extract e agora falaremos sobre “Turbo Extract”.
⁃ Extract
⁃ Op:ons
⁃ Preview
🔽 Extract tab
Na guia Extract, temos o campo Extract Output Path (1), que especifica o nó JSON de nível
superior na saída.Geralmente é o mesmo que o objeto de origem.
Um filtro consiste em três campos: O objeto de origem (2) (neste caso o Id da conta); um
operador de comparação (3) (igual a); e um valor literal entre aspas, um parâmetro de entrada
ou outro campo do mesmo objeto de origem (4) (neste caso u:lizamos um campo do objeto de
origem “AccountId”).
No campo Search Field(5) é possível selecionar ou escrever os campos que você deseja extrair do
seu objeto de origem.
As guias OpQons e Preview não sofrem alterações, em Op:ons verificamos quais permissões de
acesso o usuário tem aos campos antes de executar o DataRaptor.
E na guia Preview, testamos a saída do DataRaptor. Fornecendo parâmetros de entrada como
Kay/Values e, executando.
⚠Todos os registros no Salesforce têm um RecordId exclusivo. Para encontrar um RecordId para
uma conta, basta abrir qualquer registro de conta em sua organização e copiar o RecordId do URL
⁃ Objects
⁃ Fórmula
⁃ Fields
⁃ Op:ons
⁃ Preview
⚠ As Guias de Fórmula e Op>ons tem as mesmas funcionalidades dos DataRaptor já vistos.
🔽Objects tab
Clique em +Add Object para adicionar o sObject que deseja atualizar, é possível atualizar mais de
um objeto.
🔽Fields tab
Na guia Campos, mapeie os dados de entrada para os campos do sObject que você deseja
atualizar, neste caso “Account”.
Para cada campo que deseja mapear, clique em + e defina estas configurações:
• Input JSON Path — especifica a chave do nó JSON, ou seja, o nome que será gravado
aquele valor vindo do objeto Salesforce.
⚠ Para controlar como a atualização é realizada, você pode definir configurações opcionais:
• Is Disabled
• Upsert Key
• Is Required for Upsert
• Is Lookup
• Output Data Type
• Default Value
Os campos Upsert Key e Is Required for Upsert foram selecionados, por que o campo mapeado se
trata de um “Id”
• Upsert Key
Especifica que o campo é uma chave para o objeto Salesforce (Id de Account). O DataRaptor usa
o valor para determinar se ele atualiza um registro existente ou insere um novo.
• Is Required for Upsert
Impede que um registro de objeto seja atualizado se este campo for nulo.
⚠ É possível designar qualquer campo no mapeamento DataRaptor Fields como uma Upsert
Key marcando a caixa de seleção, o que significa que é necessário corresponder a um registro
exclusivo no Salesforce.
Na Field Tab é possível realizar o mapeamento dos campos pelo input JSON.
Determinei uma entrada, sendo “Name” e um valor “Laryssa” de uma conta existente.
{
"Name": "Laryssa",
"Phone": "(11) 98124-5054",
"Cep": "04832-180",
"Website": "www.consultantpass.com",
"Id": "001Hn00001uLsKdIAK"
}
Quando clicamos em “Quick Match” podemos relacionar as entradas aos campos do Objeto
Salesforce em que estamos atualizando, neste caso Account.
Cep:Account:BillingPostalState
🔽Preview tab
Em Input passe os parâmetros em JSON, no exemplo abaixo foi configurado todos os campos da
guia FIELDS.
{
"Name": "Laryssa",
"Phone": "(11) 98124-5054",
"Cep": "04832-180",
"Website": "www.consultantpass.com",
"Id": "001Hn00001uLsKdIAK"
Observe o campo PHONE, se retornarmos ao nosso DataRaptor Load e alterar o valor da chave
“Phone” para: (99) 9999-9999 e executar, é possível ver a atualização no objeto Account.
🏋 Pra:que:
h€ps://developer.salesforce.com/files/OmniStudio/pdf/OmniStudio_Build_a_DataRaptor_Turbo_
Extract_and_a_DataRaptor_Load.pdf?_ga=2.171010656.1503207957.1688148490-
242827117.1655918874
🎛 Lightning Web Components
Lightning Web Components (LWC) é uma estrutura de interface do usuário (IU) que os
desenvolvedores do Salesforce usam para criar páginas e funções personalizadas na plataforma
Salesforce.
Os LWCs usam o padrão comum de JavaScript, HTML e CSS, para criar componentes para sua
organização do Salesforce.
Após instalação vamos cria um projeto, clique em Explore e pressione Ctrl+Shi•+P (Windows) ou
Cmd+Shi•+P (macOS).
Observe a mensagem de erro informando que ainda não temos uma organização conectado.
⚠Para que seja possível conectar a org é necessário instalar o Salesforce CLI:
hUps://developer.salesforce.com/tools/sfdxcli.
Para uma melhor praQca o nome para o Alias será o nome do nosso projeto e “LWC” ao final,
ficando “CaseManagemenLWC”. Aperte enter.
Uma nova janela de login do Salesforce é aberta, entre com a org desejada e permita o acesso.
Depois de auten:car no navegador, a CLI lembra suas credenciais. É possível vê uma mensagem
de sucesso no Output do VSCode.
Esta organização agora é a organização padrão para seu projeto.
• <isExposed> é um elemento booleano que indica se o componente está exposto para uso
externo. Neste caso, está definido como "true", o que significa que o componente pode ser
acessado e u:lizado em outros contextos.
Depois de criarmos o nosso LWC vamos realizar o deploy para nossa org.
Neste exemplo estou u:lizando um Omniscript com um Input Lookup que u:lizará o LWC
personalizado.
Nas propriedades do elemento Input Lookup é possível chamar o LWC que criamos no Campo
“LWC Componente Override”.
Para que seja possível visualizar o Componente LWC que criamos funcionando é necessário a:var
o Omniscript.
🏋 Pra:que:
h€ps://developer.salesforce.com/files/OmniStudio/pdf/OmniStudio_Design_and_Build_a_Case_
Management_OmniScript.pdf?_ga=2.95949982.307288174.1688737315-242827117.1655918874
h€ps://developer.salesforce.com/files/OmniStudio/pdf/OmniStudio_Extend_a_Standard_Lookup_
Component_to_Display_Accounts_and_Cases.pdf?_ga=2.99096476.307288174.1688737315-
242827117.1655918874
h€ps://developer.salesforce.com/files/OmniStudio/pdf/OmniStudio_Build_OmniStudio_Compone
nts_for_Cases.pdf?_ga=2.86324378.307288174.1688737315-242827117.1655918874
O Business Rules Engine é um conjunto de serviços, componentes e objetos que aplicam lógica
avançada e automa:zam a tomada de decisões.
O Existem três ferramentas principais: expression sets, decision matrices, and decision tables.
➡ Expression set
Um Expression set é uma série de regras. Cada elemento em um conjunto forma uma etapa
lógica que é executada sequencialmente.
Você pode adicionar conjuntos de expressões a fluxos de trabalho criados com Flow, OmniStudio e
ferramentas de terceiros.
Exemplo:
Aqui está um exemplo de uma série de regras u:lizando a estrutura "caso" (case) em um
conjunto de expressões para um sistema de atendimento ao cliente:
Regras:
• Realizar um diagnósQco remoto do sistema do cliente.
• Caso o problema seja idenQficado, agendar uma visita técnica.
• Caso o problema não possa ser resolvido remotamente, oferecer assistência via chat ou
telefone.
Regras:
• Verificar o moQvo do cancelamento informado pelo cliente.
• Caso seja um problema específico, oferecer uma solução alternaQva ou desconto.
• Caso o cliente insista no cancelamento, fornecer instruções para o procedimento de
cancelamento.
Nesse exemplo, foi avaliado o :po de solicitação do cliente e, em cada caso, o conjunto de
expressões determina o comportamento e as operações a serem realizadas sequencialmente.
➡Decision matrix
Uma matrix de decisão combina os valores de entrada com uma linha da tabela e
retorna os valores de saída da linha.
Você criar uma matriz de decisão para determinar qual atividade recomendar com
base no estado de espírito do usuário (entrada) e no clima atual (entrada).
➡Decision table
Vamos supor que uma empresa oferece descontos em produtos com base na
categoria e no preço do produto.
Regra 1:
Regra 2:
Regra 3:
A Decision matrix não possui uma lógica embutida para realizar cálculos ou
validações automáticas com base nos valores inseridos.
Ela é apenas uma representação visual dos dados, e qualquer cálculo ou validação
relacionada aos operadores ou regras deve ser feito externamente.
Diferente da Decision matrix, a Decision table é usada para criar regras utilizando
operadores.
Ela permite definir condições e ações associadas a essas condições por meio de
regras predefinidas.
2. Intuitive
3. Agile
4. Functional
5. Flexible
6. Transparent
7. Performant
🔹Aggregate
Exemplo:
Suponha que você tenha uma tabela chamada "Vendas" com as seguintes colunas:
"Produto", "Quantidade" e "Preço". Você pode usar o elemento "Aggregate" para
obter a soma total das quantidades vendidas e a média dos preços dos produtos.
🔹Aggregate Group
Executa as etapas anteriores do conjunto de expressões uma vez para cada conjunto de
valores de entrada e, em seguida, executa as etapas de Agregação.
Exemplo:
Continuando com o exemplo da tabela "Vendas", suponha agora que você queira obter
a soma total das quantidades vendidas e a média dos preços dos produtos para
cada categoria de produtos.
Nesse caso, você pode usar o elemento "Aggregate Group" para agrupar os dados
por categoria e, em seguida, calcular as estatísticas para cada grupo.
🔹Branch
Uma ramificação pode ter até seis caminhos condicionais, incluindo o caminho
padrão.
Todos os caminhos não padrão requerem uma etapa de condição, que avalia os
critérios de entrada para o caminho.
🔹Business Elements
🔹Condition
Permite que as etapas a seguir sejam executadas se sua expressão for avaliada
como verdadeira.
🔹Conditional Group
🔹Lookup Table
🔹 Sub Expression
3. Após definir uma série de regras, salve e ative seu Expression Set.
➡ Decision Explainer
O Decision Explainer é um serviço que fornece informações sobre por que uma regra
de negócios gera um resultado específico.
🔹Salesforce Flow
Expression sets, decision matrices, and decision table estão disponíveis como ações
no Salesforce Flow.
🔹OmniStudio
Use as APIs do Connect para invocar expression sets, decision matrices, and
decision tables em fluxos de trabalho criados com ferramentas personalizadas ou de
terceiros.
OmniStudio Best Practices
➡ Pense em simplicidade e reutilização
• Configure e crie com recursos Salesforce padrão prontos para uso (OOTB)
sempre que possível e reutilize componentes sempre que possível. Considere o que
você já tem para atender aos requisitos do caso de uso.
5. Lembre-se de entender a escala da função que você está construindo – ela será
complexa, mas raramente usada ou será executada milhares de vezes por hora?
Quando se fala em dimensionar em quantidades de produção, significa que as soluções
devem ser capazes de lidar com volumes maiores de dados e transações.
📦OmniStudio: DevOps
🔽 O IDX Workbench
É uma ferramenta de linha de comando que faz tudo o que o IDX Workbench faz, mas sem uma
interface do usuário.
⚠ Ao selecionar um componente para migração, o IDX Build Tool assegura que todos os
componentes dependentes sejam incluídos automa:camente.
Por exemplo, ao migrar um OmniScript que requer um DataRaptor, o DataRaptor é
automaQcamente empacotado para migração junto com o OmniScript.