<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Liz Vidotti</title>
    <description>The latest articles on Forem by Liz Vidotti (@lizvidotti).</description>
    <link>https://forem.com/lizvidotti</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F910014%2F51f4e96c-85f0-43be-812d-abd47d6e87b0.jpg</url>
      <title>Forem: Liz Vidotti</title>
      <link>https://forem.com/lizvidotti</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/lizvidotti"/>
    <language>en</language>
    <item>
      <title>Criando Salesforce Sanboxes</title>
      <dc:creator>Liz Vidotti</dc:creator>
      <pubDate>Mon, 06 Oct 2025 13:38:11 +0000</pubDate>
      <link>https://forem.com/lizvidotti/criando-salesforce-sanboxes-l36</link>
      <guid>https://forem.com/lizvidotti/criando-salesforce-sanboxes-l36</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;No artigo anterior &lt;a href="https://dev.toURL"&gt;Configurar o DevOps Center&lt;/a&gt;, fizemos o passo a passo para a instalação e configuração do nosso aplicativo &lt;em&gt;DevOps Center&lt;/em&gt; em nossa organização &lt;em&gt;Salesforce&lt;/em&gt;. Agora, vamos criar algumas &lt;em&gt;sandboxes&lt;/em&gt; que simulam o nosso &lt;em&gt;pipeline&lt;/em&gt; do projeto.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Agora que o nosso DevOps Center foi configurado em nossa org e já temos as permissões necessárias para o nosso usuário, vamos criar algumas sandboxes para simular o processo de implementação em nossa org de produção.&lt;/p&gt;

&lt;p&gt;Como já vimos no tópico &lt;a href="https://dev.to/lizvidotti/introducao-ao-salesforce-devops-center-2k5i"&gt;O que são sanboxes?&lt;/a&gt;, em um projeto real, normalmente temos desenvolvedores trabalhando em suas tarefas nas &lt;em&gt;sandboxes&lt;/em&gt; de desenvolvimento; estas tarefas são então mescladas no repositório e enviados para uma &lt;em&gt;sandbox&lt;/em&gt; de testes; após as tudo ser devidamente testado, as alterações são encaminhadas para a &lt;em&gt;sandbox&lt;/em&gt; de homologação, onde somos capazes de testar os pacotes de funcionalidades desenvolvidos por times diferentes, sem que elas comprometam o funcionamento do ambiente; após a homologação, levamos as alterações para uma &lt;em&gt;sandbox&lt;/em&gt; de pré-produção (ou &lt;em&gt;stagin&lt;/em&gt;), que é o ambiente mais próximo do ambiente de produção e nele podem ser feitos testes mais robustos, como testes de performance. Só ao final, temos a implantação no ambiente de produção.&lt;/p&gt;

&lt;p&gt;Dessa forma, vamos criar algumas &lt;em&gt;sandboxes&lt;/em&gt; e simular nosso &lt;em&gt;pipeline&lt;/em&gt;, seguindo o fluxograma:&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F79y9fcd7iul9lhwb81zq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F79y9fcd7iul9lhwb81zq.png" alt="Fluxograma com a hierarquia das sanboxes e org de produção" width="800" height="165"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para criação e gerenciamento de &lt;em&gt;sandboxes&lt;/em&gt;, os usuários devem ter as seguintes permissões: nas configurações do perfil ou &lt;em&gt;permission set&lt;/em&gt;, navegue até a seção &lt;em&gt;System Permissions&lt;/em&gt; (permissões do sistema) e garanta que as opções estejam marcadas de acordo as necessidades de cada usuário.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Manage Dev Sandboxes: criar/editar apenas os metadados das &lt;em&gt;sandboxes&lt;/em&gt; do tipo &lt;em&gt;Developer&lt;/em&gt; e &lt;em&gt;Developer Pro&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Manage Sandboxes: criar/editar &lt;em&gt;sandboxes&lt;/em&gt; and &lt;em&gt;sandboxes templates&lt;/em&gt; para todos os tipos de &lt;em&gt;sandboxes&lt;/em&gt;.
&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4j25xozou1e61bhq3x67.png" alt="System Permissions nas configurações de perfil ou permission sets no Salesforce" width="800" height="315"&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No menu &lt;em&gt;setup&lt;/em&gt;, procurar por &lt;em&gt;Sandboxes&lt;/em&gt;. Na página, clicar no botão_ New Sandbox_. Você pode ver o número de licenças disponíveis para cada tipo, gerenciar as &lt;em&gt;sandboxes&lt;/em&gt; existentes e visualizar o histórico de atividades.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fork055h3w98zzeij6m6d.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fork055h3w98zzeij6m6d.png" alt="Página Sandboxes" width="800" height="349"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Na página de criação, insira o nome da sua &lt;em&gt;sandbox&lt;/em&gt;. Escolha um nome curto que reflita o propósito da criação do seu novo ambiente. Tenha em mente que o &lt;em&gt;username&lt;/em&gt; dos usuários será o mesmo do de produção, mais o sufixo ".nomesandbox", então escolha nomes curtos que facilitem o preenchimento do &lt;em&gt;username&lt;/em&gt;. No campo &lt;em&gt;Create From&lt;/em&gt;, você pode escolher qual a origem da sua &lt;em&gt;sandbox&lt;/em&gt;. Por padrão, a opção &lt;em&gt;Production&lt;/em&gt; virá selecionada, mas se você tiver outras sandboxes criadas, elas também aparecerão nas opções. Por fim, selecione qual o tipo de &lt;em&gt;sandbox&lt;/em&gt; você deseja criar. Em nosso caso, ela será a &lt;em&gt;Developer&lt;/em&gt;. Então clique no botão &lt;em&gt;Next&lt;/em&gt; correspondente a este tipo.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F65nbgwspwzj05fank8k5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F65nbgwspwzj05fank8k5.png" alt="Página de criação da sandbox com destaque para os campos preenchidos e botão Next" width="800" height="378"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Selecione o tamanho do espaço de armazenamento da sua &lt;em&gt;sandbox&lt;/em&gt;. Se você tiver &lt;em&gt;upgrades&lt;/em&gt; disponíveis, poderá selecionar o maior valor (para nossa &lt;em&gt;Developer&lt;/em&gt;, o &lt;em&gt;upgrade&lt;/em&gt; é de 400MB e o padrão de 200MB). Eu deixarei o valor padrão de 200MB. Se você precisa que alguns &lt;em&gt;scripts&lt;/em&gt; sejam executados após a criação ou atualização do seu ambiente, selecione a classe &lt;em&gt;Apex&lt;/em&gt; que você criou previamente para essa função. Selecione também o grupo público de usuários que devem acessar este ambiente. É uma boa prática criar previamente os grupos públicos que devem acessar as &lt;em&gt;sandboxes&lt;/em&gt;, e atribuir corretamente à medida que você cria uma nova &lt;em&gt;sandbox&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Para as licenças &lt;em&gt;Partial Copy&lt;/em&gt; e &lt;em&gt;Full Sandbox&lt;/em&gt;, você tem a opção de dar acesso à todos os usuários ativos. Porém, isso impacta o tempo de criação da &lt;em&gt;sandbox&lt;/em&gt; e a experiência de &lt;em&gt;login&lt;/em&gt; dos usuários. Então, mantenha sempre as boas práticas de dar o &lt;strong&gt;mínimo acesso necessário&lt;/strong&gt; para o cumprimento de suas tarefas. &lt;/p&gt;

&lt;p&gt;Para a licença do tipo &lt;em&gt;Partial&lt;/em&gt;, é obrigatória a seleção de um &lt;em&gt;sandbox template&lt;/em&gt; na criação do ambiente. Já para a licença do tipo &lt;em&gt;Full&lt;/em&gt;, você pode escolher entre um template ou copiar todos os dados. O &lt;em&gt;Sandbox Template&lt;/em&gt; permite que você selecione objetos &lt;em&gt;Salesforce&lt;/em&gt; e dados específicos que devem ser copiados, controlando o tamanho e conteúdo do seu ambiente.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2g7393t8w8f92q5d85s3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2g7393t8w8f92q5d85s3.png" alt="Criação de sandbox do tipo Partial" width="800" height="348"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Por fim, clique no botão &lt;em&gt;Create&lt;/em&gt;. A criação do ambiente levará algumas horas, dependendo do tipo de &lt;em&gt;sandbox&lt;/em&gt;. Você receberá um e-mail quando tudo estiver pronto, e também pode acompanhar o progresso na página &lt;em&gt;Sandboxes&lt;/em&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpdrd3q2y1tn7ekf74o9b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpdrd3q2y1tn7ekf74o9b.png" alt="Segunda página de criação da sandbox" width="800" height="233"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ao final, teremos os ambientes criados, de acordo com o nosso fluxograma.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F68d7elagq2eqk1bf8a8w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F68d7elagq2eqk1bf8a8w.png" alt="Lista de sandboxes criadas na organização" width="800" height="328"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora já temos tudo preparado! Vamos criar nosso projeto no &lt;em&gt;DevOps Center&lt;/em&gt; e estabelecer a conexão com o &lt;em&gt;Github&lt;/em&gt;, onde guardaremos o repositório do nosso projeto Salesforce. Bons estudos!&lt;/p&gt;

&lt;h2&gt;
  
  
  Referências
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://help.salesforce.com/s/articleView?id=platform.data_sandbox_create.htm&amp;amp;type=5" rel="noopener noreferrer"&gt;Create a Sanbox&lt;/a&gt;&lt;br&gt;
&lt;a href="https://help.salesforce.com/s/articleView?id=platform.data_sandbox_templates.htm&amp;amp;type=5" rel="noopener noreferrer"&gt;Create or Edit Sandbox Templates&lt;/a&gt;&lt;/p&gt;

</description>
      <category>salesforce</category>
      <category>sanboxes</category>
      <category>devops</category>
      <category>devopscenter</category>
    </item>
    <item>
      <title>Configurar o DevOps Center</title>
      <dc:creator>Liz Vidotti</dc:creator>
      <pubDate>Fri, 03 Oct 2025 11:47:29 +0000</pubDate>
      <link>https://forem.com/lizvidotti/configurar-o-devops-center-1ap5</link>
      <guid>https://forem.com/lizvidotti/configurar-o-devops-center-1ap5</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;No artigo anterior - &lt;a href="https://dev.to/lizvidotti/introducao-ao-salesforce-devops-center-2k5i"&gt;Introdução ao Salesforce Devops Center&lt;/a&gt; -, aprendemos sobre os conceitos da prática &lt;em&gt;devops&lt;/em&gt; e o &lt;em&gt;DevOps Center&lt;/em&gt;, produto &lt;em&gt;Salesforce&lt;/em&gt; destinado ao gerenciamento da esteira de desenvolvimento de um projeto Salesforce. Agora, vamos instalar o pacote do DevOps Center em nossa organização de estudos.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Aqui estarei utilizando uma organização &lt;em&gt;Salesforce&lt;/em&gt; do tipo &lt;em&gt;Partner Developer Edition&lt;/em&gt;. Ela simula uma organização de produção e me permite criar algumas &lt;em&gt;sandboxes&lt;/em&gt;, ideal para nosso estudo de compreender como funciona um fluxo real de um projeto. Mas podemos utilizar a &lt;em&gt;Salesforce Developer Edition&lt;/em&gt;, que é gratuita e também nos permite experimentar o &lt;em&gt;DevOps Center&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;No menu &lt;em&gt;Setup&lt;/em&gt;, buscar por &lt;em&gt;DevOps Center&lt;/em&gt;. Então, na página &lt;em&gt;DevOps Center&lt;/em&gt;, marcar a opção &lt;em&gt;Enable Devops Center&lt;/em&gt;. Logo abaixo, o botão &lt;em&gt;Install Package&lt;/em&gt; estará disponível para instalação do pacote. Daí só seguir os passos de instalação. Eu estarei instalando o produto apenas para os Administradores do Sistema, então basta escolher a opção &lt;em&gt;Install for Admins Only&lt;/em&gt; e clicar no botão &lt;em&gt;Install&lt;/em&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frfmh3iigei800mo5osan.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frfmh3iigei800mo5osan.png" alt="Página Devops Center no menu Setup com marcações em vermelho das opções que devem ser selecionadas para instalação do pacote na org" width="800" height="307"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A instalação deve levar algum tempo. Você deve receber a notificação no seu e-mail, mas você também pode acompanhar o progresso de instalação no menu &lt;em&gt;Setup &amp;gt; Installed Packages&lt;/em&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe9hxppzv4ycbgbmqigin.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe9hxppzv4ycbgbmqigin.png" alt="Página Installed Packages no menu Setup com marcações em vermelho mostrando que o pacote DevOps Center foi instalado com sucesso na organização" width="800" height="241"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora precisamos criar um &lt;em&gt;Connected App&lt;/em&gt;. O &lt;em&gt;connected app&lt;/em&gt; permite que aplicações externas possam integrar com o &lt;em&gt;Salesforce&lt;/em&gt;, utilizando &lt;em&gt;APIs&lt;/em&gt; e outros protocolos. Dessa forma, podemos, por exemplo, executar aplicações externas utilizando o &lt;em&gt;Salesforce&lt;/em&gt;, ou podemos ler dados do &lt;em&gt;Salesforce&lt;/em&gt; utilizando aplicações externas.&lt;/p&gt;

&lt;p&gt;Ainda no menu &lt;em&gt;Setup&lt;/em&gt;, vamos buscar pela seção &lt;em&gt;External Client Apps&lt;/em&gt;, e clicar na opção &lt;em&gt;Settings&lt;/em&gt;, logo abaixo dela. Se certifique que a opção &lt;em&gt;Allow creation of connected apps&lt;/em&gt; está marcada e vamos clicar no botão &lt;em&gt;New Connected App&lt;/em&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdj1tnpq5fp7997mfgsno.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdj1tnpq5fp7997mfgsno.png" alt="Página External Cliente App Settings, com marcações em vermelho mostrando onde criar um novo Connected App" width="800" height="280"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Crie o &lt;em&gt;Connected App&lt;/em&gt; com as seguintes configurações e clique no botão &lt;em&gt;Save&lt;/em&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwcfle4fxgvkvt6jztk5o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwcfle4fxgvkvt6jztk5o.png" alt="Página de criação do Connected App" width="800" height="313"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Na página do &lt;em&gt;connected app&lt;/em&gt; criado, clique no botão &lt;em&gt;Manage&lt;/em&gt;. Então vá na seção &lt;em&gt;Permission Sets&lt;/em&gt;, clique no botão &lt;em&gt;Manage Permissions Sets&lt;/em&gt; e selecione a opção &lt;em&gt;sf_devops_NamedCredentials&lt;/em&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjgebs0tx3mgdzjx5gtk5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjgebs0tx3mgdzjx5gtk5.png" alt="Página do connected app DevOps Center" width="800" height="277"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd52zl5elgcf798int26v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fd52zl5elgcf798int26v.png" alt="Página de gerenciamento do connected app DevOps Center" width="800" height="342"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ainda no menu &lt;em&gt;Setup&lt;/em&gt;, navegue até a página &lt;em&gt;Session Settings&lt;/em&gt; e garanta que a opção &lt;em&gt;Lock sessions to the IP address from which they originated&lt;/em&gt; esteja desmarcada.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fre4bgebf4nt8bno5q3ke.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fre4bgebf4nt8bno5q3ke.png" alt="Página Session Settings com opção Lock sessions to the IP address from which they originated desmarcada" width="800" height="197"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Agora, vamos atribuir algumas permissões para o nosso usuário. A &lt;em&gt;Salesforce&lt;/em&gt; disponiliza algumas &lt;em&gt;permission sets&lt;/em&gt; para o &lt;em&gt;DevOps Center&lt;/em&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;DevOps Center&lt;/em&gt;: permissão base para utilização do &lt;em&gt;DevOps Center&lt;/em&gt;. Ela permite gerenciar e criar &lt;em&gt;Work Items&lt;/em&gt;, visualizar os ambientes conectados e o &lt;em&gt;pipeline&lt;/em&gt;. Todos os usuários que devem acessar o &lt;em&gt;DevOps Center&lt;/em&gt; precisam dessa permissão;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;DevOps Center Manager&lt;/em&gt;: permite configurar e gerenciar os projetos, ambientes e usuários. Necessário para os líderes do projeto ou do time;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;DevOps Center Release Manager&lt;/em&gt;: permite que o usuário possa realizar implementações através do &lt;em&gt;pipeline&lt;/em&gt;. Ideal para os usuários responsáveis pelas implementações e outros usuários que precisam de permissão para gerenciar as mudanças ao longo do &lt;em&gt;pipeline&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;sf_devops_InitializeEnvironments&lt;/em&gt;: gerenciar as conexões entre os diversos ambientes. Ideal para os líderes do projeto ou do time;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;sf_devops_NamedCredentials&lt;/em&gt;: acesso às credenciais necessárias para autenticação dos ambientes conectados. Ideal para todos os usuários que precisam acessar o &lt;em&gt;DevOps Center&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Dessa forma, garanta que estas permissões estejam atribuídas ao seu usuário. Ao adicionar novos usuários, é importante levar em consideração os papéis de cada um ao atribuir as &lt;em&gt;permission sets&lt;/em&gt;. Lembre sempre das boas práticas: &lt;strong&gt;os usuários devem ter o mínimo acesso necessário&lt;/strong&gt; para executar suas tarefas.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb07tukzc771xnilt6ak0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb07tukzc771xnilt6ak0.png" alt="Atribuir as permissões necessárias para o seu usuário no Salesforce" width="714" height="392"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tudo configurado! Agora você pode atualizar o seu navegador, e procurar o aplicativo &lt;em&gt;DevOps Center&lt;/em&gt; no &lt;em&gt;App Launcher&lt;/em&gt;. Ao clicar no item, você será direcionado para outra guia, onde verá página inicial do &lt;em&gt;DevOps Center&lt;/em&gt;. &lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6hz602aw6i2kd788fb1v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6hz602aw6i2kd788fb1v.png" alt="Busca do aplicativo DevOps Center na org" width="800" height="145"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fczb6dz9o772mgz3fzidb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fczb6dz9o772mgz3fzidb.png" alt="Página Inicial do DevOps Center, logo após instalação e configuração" width="800" height="299"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Nosso próximo passo será configurar algumas &lt;em&gt;sandboxes&lt;/em&gt; para simular o nosso &lt;em&gt;pipeline&lt;/em&gt; no &lt;em&gt;DevOps Center&lt;/em&gt; e criar uma conexão com nosso &lt;em&gt;Github&lt;/em&gt;. Bons estudos!&lt;/p&gt;

&lt;h2&gt;
  
  
  Referências
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://developer.salesforce.com/blogs/2024/08/get-up-and-running-with-devops-center-today" rel="noopener noreferrer"&gt;Get Started with DevOps Center&lt;/a&gt;&lt;br&gt;
&lt;a href="https://help.salesforce.com/s/articleView?id=platform.devops_center_setup_install.htm&amp;amp;type=5" rel="noopener noreferrer"&gt;Enable and install DevOps Center in the org&lt;/a&gt;&lt;br&gt;
&lt;a href="https://help.salesforce.com/s/articleView?id=platform.devops_center_assign_permsets.htm&amp;amp;type=5" rel="noopener noreferrer"&gt;Assign the DevOps Center Permission Sets&lt;/a&gt;&lt;br&gt;
&lt;a href="https://help.salesforce.com/s/articleView?id=xcloud.connected_app_overview.htm&amp;amp;type=5" rel="noopener noreferrer"&gt;Connected Apps&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>devopscenter</category>
      <category>salesforce</category>
      <category>projectmanagement</category>
    </item>
    <item>
      <title>Introdução ao Salesforce Devops Center</title>
      <dc:creator>Liz Vidotti</dc:creator>
      <pubDate>Thu, 02 Oct 2025 12:09:11 +0000</pubDate>
      <link>https://forem.com/lizvidotti/introducao-ao-salesforce-devops-center-2k5i</link>
      <guid>https://forem.com/lizvidotti/introducao-ao-salesforce-devops-center-2k5i</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Este breve artigo é resultado dos estudos sobre o &lt;em&gt;DevOps Center&lt;/em&gt; da &lt;em&gt;Salesforce&lt;/em&gt;. Aqui exploro alguns conceitos iniciais da prática &lt;em&gt;DevOps&lt;/em&gt; e como o &lt;em&gt;DevOps Center&lt;/em&gt; traz essas práticas para projetos Salesforce.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  O que é DevOps
&lt;/h2&gt;

&lt;p&gt;&lt;em&gt;DevOps&lt;/em&gt; é um conjunto de práticas, culturas e ferramentas que visam a integração e automatização dos processos entre o desenvolvimento de &lt;em&gt;software&lt;/em&gt; e os times de TI. &lt;/p&gt;

&lt;p&gt;Sua origem se deu por volta de 2007, quando os times de desenvolvimento e de operações começaram a levantar preocupações sobre o modelo vigente até então, onde o trabalho era feito de forma completamente apartada; os desenvolvedores participavam apenas no processo de desenvolvimento e o time de operações trabalhava apenas com o processo de &lt;em&gt;deploy&lt;/em&gt; e &lt;em&gt;pós-deploy&lt;/em&gt;. Então veio a proposição de unir os times em um processo integrado e contínuo durante o ciclo de vida do produto, trazendo velocidade e qualidade nas implantações de &lt;em&gt;software&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu1i805x7n6hkrvtp5327.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fu1i805x7n6hkrvtp5327.png" alt="Fluxograma que demonstra as fases envolvidas no ciclo de vida do produto" width="800" height="389"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Fonte: &lt;a href="https://www.atlassian.com/devops" rel="noopener noreferrer"&gt;What Is DevOps?&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Segue uma pequena descrição das fases do fluxograma acima:&lt;br&gt;
&lt;strong&gt;1. Discover:&lt;/strong&gt; Fase de exploração, organização e priorização das ideias. Elas devem estar alinhadas com as metas gerais e entrega de valor do projeto para os usuários finais.&lt;br&gt;
&lt;strong&gt;2. Plan:&lt;/strong&gt; Planejamento e gerenciamento do projeto, a partir dos resultados da fase de &lt;em&gt;discover&lt;/em&gt;.&lt;br&gt;
&lt;strong&gt;3. Build:&lt;/strong&gt; Fase de desenvolvimento das soluções propostas nos estágios anteriores.&lt;br&gt;
&lt;strong&gt;4. Test:&lt;/strong&gt; Testes de &lt;em&gt;software&lt;/em&gt;, que garantem a qualidade e integridade das entregas, garantindo que os fluxos estejam de acordo com os critérios de aceitação descritos na fase de planejamento.&lt;br&gt;
&lt;strong&gt;5. Deploy:&lt;/strong&gt; Processo de implementação das soluções propostas em ambiente produtivo.&lt;br&gt;
&lt;strong&gt;6. Operate:&lt;/strong&gt; Gerenciamento das entregas das funcionalidades para os usuários finais do &lt;em&gt;software&lt;/em&gt;/sistema. Aqui também pode acontecer os treinamentos com os usuários do sistema.&lt;br&gt;
&lt;strong&gt;7. Observe:&lt;/strong&gt; Monitoramento para identificação dos problemas que possam afetar a qualidade do ambiente.&lt;br&gt;
&lt;strong&gt;8. Continuous feedback:&lt;/strong&gt; Coletar &lt;em&gt;feedbacks&lt;/em&gt; dos usuários finais para garantir novas entregas de valor que possam agregar o &lt;em&gt;software&lt;/em&gt;/sistema.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que é o DevOps Center
&lt;/h2&gt;

&lt;p&gt;Produto para gerenciamento de alterações e implantações, promovendo integração entre os diversos ambientes &lt;em&gt;Salesforce&lt;/em&gt;. Ele permite o uso das boas práticas de &lt;em&gt;DevOps&lt;/em&gt; através de uma interface centralizada e fácil de utilizar.&lt;/p&gt;

&lt;p&gt;O &lt;em&gt;DevOps Center&lt;/em&gt; permite Integração rápida com o &lt;em&gt;Github&lt;/em&gt; (a integração com o &lt;em&gt;Bitbucket&lt;/em&gt; ainda está em &lt;em&gt;BETA&lt;/em&gt; até o momento em que esse artigo está sendo escrito). A integração com o repositório permite a centralização do projeto, onde podemos facilmente retornar versões anteriores e manter a versão final completa e segura, atualizando os ambientes de desenvolvimento com as mudanças feitas por cada membro do time.&lt;/p&gt;

&lt;p&gt;O gerenciamento do projeto no &lt;em&gt;Devops Center&lt;/em&gt; é feito principalmente com o a utilização dos &lt;em&gt;work items&lt;/em&gt;. &lt;em&gt;Work Item&lt;/em&gt; é um objeto &lt;em&gt;Salesforce&lt;/em&gt; criado para o &lt;em&gt;DevOps Center&lt;/em&gt;. Ele permite que novas funcionalidades ou alterações propostas sejam enviadas e rastreadas durante todo o ciclo de desenvolvimento. Assim, podemos saber saber quais foram as mudanças e em quais estágios do &lt;em&gt;pipeline&lt;/em&gt; elas aconteceram.&lt;/p&gt;

&lt;p&gt;Quando &lt;em&gt;work items&lt;/em&gt; diferentes possuem informações conflitantes que precisam ser resolvidas, podemos facilmente identificar e mesclá-las corretamente num único fluxo, mantendo a integridade e consistência do projeto.&lt;/p&gt;

&lt;p&gt;Com seu uso, é possível verificar a lista de metadados e selecionar aqueles que devem ser migrados para os demais ambientes. A visualização do &lt;em&gt;pipeline&lt;/em&gt; de desenvolvimento é simples e você pode rapidamente implantar alterações de uma fase para outra, ou migrar as alterações entre ambientes.&lt;/p&gt;

&lt;p&gt;As atividades de desenvolvimento podem ser feitas tanto na interface do &lt;em&gt;DevOps Center&lt;/em&gt;, quanto localmente, com o uso do &lt;em&gt;Salesforce CLI&lt;/em&gt;. Isso permite que tanto desenvolvedores quanto administradores do sistema possam trabalhar de forma colaborativa, pois sua interface é amigável para aqueles profissionais que não estão acostumados com o uso do &lt;em&gt;Salesforce CLI&lt;/em&gt; e &lt;em&gt;IDEs&lt;/em&gt; de desenvolvimento.&lt;/p&gt;

&lt;h2&gt;
  
  
  O que são Sandboxes?
&lt;/h2&gt;

&lt;p&gt;Durante o processo de desenvolvimento, normalmente seguimos uma ordem: o desenvolvedor constrói e realiza seus testes unitários sobre os componentes criados. Então, as atividades de cada desenvolvedor do time são reunidas num ambiente integrado, onde são realizados os testes manuais ou automatizados que garantam a qualidade e estejam de acordo com os requisitos mapeados durante a fase de descobrimento e planejamento. Então, após a fase de testes, normalmente são feitas implantações em ambientes de homologação e pré-produção, onde temos testes mais robustos de integração e performance, pois estes ambientes são os mais próximos do ambiente produtivo. Por fim, chega a hora de implantação em produção.&lt;/p&gt;

&lt;p&gt;Cada fase de desenvolvimento é feita em ambientes diferentes, ou &lt;em&gt;sandboxes&lt;/em&gt;. &lt;em&gt;Salesforce Sandboxes&lt;/em&gt; são cópias isoladas do ambiente de produção, que permitem que os times de desenvolvimento testem as mudanças de forma isolada e conduzam implementações sem comprometer os dados reais. Múltiplas &lt;em&gt;sandboxes&lt;/em&gt; permitem a colaboração entre os times, controle de versões, minizando riscos no sistema.&lt;/p&gt;

&lt;p&gt;A &lt;em&gt;Salesforce&lt;/em&gt; disponibiliza alguns tipos de &lt;em&gt;sandbox&lt;/em&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Developer Sandbox&lt;/em&gt;
Pode ser atualizada diariamente, possui 200MB para armazenamento de dados e 200MB para armazenamento de arquivos. Todos os metadados de produção são copiados para esse ambiente. Mais comumente utilizada para desenvolvimento e testes unitários.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Developer Pro Sandbox&lt;/em&gt;
As mesmas configurações da &lt;em&gt;sandbox Developer&lt;/em&gt;, com exceção do limite de armazenamento: 1GB para dados e 1BG para arquivos.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Partial Copy Sandbox&lt;/em&gt;
Pode ser atualizada a cada 5 dias, possui 5GB para armazenamento de dados, e o armazenamento de arquivos é o mesmo da organização de produção. Todos os metadados e alguns dados são copiados da organização de produção. Mais comumente utilizada para testes, como: testes de aceite e testes de integração, e treinamento com os usuários finais.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Full Sandbox&lt;/em&gt;
Pode ser atualizada a cada 29 dias, possui os mesmos espaços de armazenamento de dados e arquivos da organização de produção. Todos os metadados e dados são copiados da organização de produção. Mais comumente utilizada para testes de performance e carregamento.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Referências
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://www.atlassian.com/devops" rel="noopener noreferrer"&gt;What Is DevOps?&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.geeksforgeeks.org/devops/devops-tutorial/" rel="noopener noreferrer"&gt;DevOps Tutorial&lt;/a&gt;&lt;br&gt;
&lt;a href="https://trailhead.salesforce.com/content/learn/modules/devops-center-quick-look" rel="noopener noreferrer"&gt;DevOps Center: Quick Look&lt;/a&gt;&lt;br&gt;
&lt;a href="https://www.salesforce.com/platform/sandboxes-environments/" rel="noopener noreferrer"&gt;Salesforce Sandboxes&lt;/a&gt;&lt;br&gt;
&lt;a href="https://help.salesforce.com/s/articleView?id=platform.create_test_instance.htm&amp;amp;type=5" rel="noopener noreferrer"&gt;Sandbox Types and Templates&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devops</category>
      <category>salesforce</category>
      <category>projectmanagement</category>
    </item>
    <item>
      <title>Gerador de documentos para o Salesforce Industries</title>
      <dc:creator>Liz Vidotti</dc:creator>
      <pubDate>Mon, 29 Jan 2024 18:53:37 +0000</pubDate>
      <link>https://forem.com/lizvidotti/gerador-de-documentos-para-o-salesforce-industries-5876</link>
      <guid>https://forem.com/lizvidotti/gerador-de-documentos-para-o-salesforce-industries-5876</guid>
      <description>&lt;p&gt;O Gerador de Documentos para Industries é uma aplicação que permite que o usuário crie documentos a partir de templates pré-definidos ou templates customizados. Dessa forma, os documentos são gerados de forma rápida, consistente e precisa.&lt;/p&gt;

&lt;p&gt;Com esta aplicação, podemos mesclar arquivos de texto, como editor de textos ou de slides com outras fontes de dados, como registros de objetos Salesforce, para criar contratos, propostas, cotações e relatórios. Os documentos gerados podem ser exportados no formato .docx, .ppt e .pdf.&lt;/p&gt;

&lt;h3&gt;
  
  
  Vantagens
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Gerar documentos de forma rápida e precisa;&lt;/li&gt;
&lt;li&gt;Controle de versões, onde podemos criar diversas versões de um único template, de acordo com as mudanças que atendam as necessidades de negócio;&lt;/li&gt;
&lt;li&gt;Contratos de venda com a capacidade de mesclar dados de mais de um objeto Salesforce;&lt;/li&gt;
&lt;li&gt;Documentos de proposta detalhados, que mesclam diversos segmentos de dados em um único documento;&lt;/li&gt;
&lt;li&gt;Cotações complexas e integradas;&lt;/li&gt;
&lt;li&gt;Criação de relatórios simples e/ou complexos.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Document Template Designer
&lt;/h2&gt;

&lt;p&gt;Esta ferramenta permite criar templates de documentos a partir de templates existentes ou completamente novos, de forma declarativa, ou seja, sem a necessidade de códigos. Podemos configurar parágrafos, colunas, mesclar textos e imagens, etc. Os templates ajudam a otimizar os processos de negócio.&lt;/p&gt;

&lt;p&gt;Ela permite que os documentos sejam gerados em formato HTML, Microsoft Word (.docx) e Microsoft PowerPoint (.pptx). Para a criação de documentos complexos, que necessitam de cálculos, lógica e inserção de dados dinâmicos, podemos configurar tokens para os templates, que suportam diversos tipos e funções:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Variáveis: podemos passar as informações necessárias, em formato JSON, para o preenchimento do documento. Essas informações são armazenadas em variáveis e permitem que os dados sejam preenchidos de forma dinâmica;&lt;/li&gt;
&lt;li&gt;Conteúdo de repetição: podemos inserir, por exemplo, listas de produtos em um único documento;&lt;/li&gt;
&lt;li&gt;Condicionais: podemos inserir determinada informação quando condições pré-definidas no template são atendidas;&lt;/li&gt;
&lt;li&gt;Imagens;&lt;/li&gt;
&lt;li&gt;Editor de textos: podemos configurar cor, fonte, parágrafos, etc;&lt;/li&gt;
&lt;li&gt;Hyperlink: podemos inserir URLs dinâmicas para a criação de documentos.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Mapeamento de dados
&lt;/h2&gt;

&lt;p&gt;Podemos mesclar dados de registros de objetos Salesforce para a criação de documentos. Os objetos que podem ser utilizados são: Contract, Opportunity, Order e Quote. Podemos criar diversas seções no mesmo documento, onde cada seção importa dados de um único objeto.&lt;/p&gt;

&lt;p&gt;O mapeamento de dados baseado em objetos é tipicamente usado para criar documentos no formato HTML. Ele é de fácil construção, porém é menos flexível do que o mapeamento de dados JSON.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjy1ls59w85v2jg9rfvgb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjy1ls59w85v2jg9rfvgb.png" alt=" " width="514" height="309"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Também é possível mesclar dados de sistemas externos ao Salesforce. Esses dados devem ser integrados ao Salesforce no formato JSON. Podemos criar um componente DataRaptor ou classe Apex para extração e formatação dos dados que serão enviados para o gerador de documentos.&lt;/p&gt;

&lt;p&gt;O mapeamento de dados baseado em dados JSON é usado para a criação de documentos HTML, Microsoft Word e Microsoft PowerPoint, e a fonte de dados pode ser interna ou externa ao Salesforce.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkpua7ur3621ngftz59dy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkpua7ur3621ngftz59dy.png" alt=" " width="653" height="292"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para que possamos inserir as informações necessárias para a geração de documentos, utilizamos os chamados &lt;em&gt;tokens&lt;/em&gt;. Esses &lt;em&gt;tokens&lt;/em&gt; podem ser de vários tipos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Variável:&lt;/strong&gt; mostra o valor da variável que é passada para o template através de elemento no formato &lt;em&gt;JSON&lt;/em&gt;;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{{token_name}}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Conteúdo de repetição:&lt;/strong&gt; repete o conteúdo de uma seção;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{{#token_name}} //o sinal # indica que o conteúdo se repete tantas vezes forem a quantidade de itens dos dados de entrada no formato JSON
{{/token_name}} //aqui é indicada a _tag_ de fechamento
AND
{{^token_name}} //o sinal ^ indica o que deve ser exibido caso o item não exista ou esteja vazio.
{{/token_name}} //aqui é indicada a _tag_ de fechamento
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Condicionais:&lt;/strong&gt; se determinada condição é verdadeira, a seção é mostrada no documento;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{{#IF_token_name}} //aqui, a seção aparecerá somente se a condição for VERDADEIRA
{{/IF_token_name}} //tag de fechamento
AND
{{^IF_token_name}} //aqui, a seção aparecerá somente se a condição for FALSA
{{/IF_token_name}} //tag de fechamento
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Imagem:&lt;/strong&gt; inserir imagem de forma dinâmica;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{{IMG_&amp;lt;imagetokenname&amp;gt;}}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Rich text&lt;/em&gt;:&lt;/strong&gt; mostra o conteúdo &lt;em&gt;rich text&lt;/em&gt; em seu formato original;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{{RTB_&amp;lt;richtexttokenname&amp;gt;}}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;&lt;em&gt;Hyperlinks&lt;/em&gt;:&lt;/strong&gt; inserir &lt;em&gt;URL&lt;/em&gt; dinâmica;
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{{HYP_&amp;lt;hyperlinktokenname&amp;gt;}}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Os dados recebidos podem vir de uma classe Apex ou do componente DataRaptor.&lt;/p&gt;

&lt;h2&gt;
  
  
  Client-side &amp;amp; server-side
&lt;/h2&gt;

&lt;p&gt;Podemos criar processos para geração de documentos através de componentes Omniscript, Integration Procedure e classes Apex. O processo pode ser client-side ou server-side.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Client-side: o processo é tipo síncrono, através de um componente Omniscript, onde o usuário precisa executar ações, como preenchimento de informações necessárias para a geração do documento. Este processo utiliza recursos do navegador web e, por estes motivos, funciona com arquivos menores.&lt;/li&gt;
&lt;li&gt;Server-side: o processo é tipo assíncrono, ou seja, ocorre através de um processo automático, sem a necessidade de interação do usuário. Este processo utiliza recursos do próprio Salesforce, o que permite a criação de arquivos maiores e criação de arquivos em lote.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Client-side
&lt;/h3&gt;

&lt;p&gt;Para preencher as informações necessárias na criação de documentos client-side, podemos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Criar um Omniscript: podemos criar um &lt;em&gt;Omniscript&lt;/em&gt; que capture os dados de entrada do usuário em um formulário e leve os dados para o &lt;em&gt;document template&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;Customizar o Omniscript padrão na plataforma: para que o Omniscript seja capaz de gerar o documento, o &lt;em&gt;template&lt;/em&gt; configurado deve ter sempre dois &lt;em&gt;DataRaptors&lt;/em&gt; relacionados; o &lt;em&gt;DataRaptor Extract&lt;/em&gt; e o &lt;em&gt;DataRaptor Transform&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;Uitilizar a entrada de dados do tipo JSON: podemos criar um classe Apex que extraia os dados do Salesforce e leve os dados no formato JSON para o document template. Este processo é ideal para documentos que possuam mais de 200 itens.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Server-side
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Automatizar a geração de documentos com APIs;&lt;/li&gt;
&lt;li&gt;Utilizar diversas ferramentas, como classes Apex, Integration Procedures  e Omniscripts;&lt;/li&gt;
&lt;li&gt;Gerar documentos mais pesados e/ou múltiplos documentos através de processos batch, que utilizam os recursos do Salesforce, ao invés dos recursos do navegador. Documentos mais pesados normalmente possuem muitas linhas, tabulação complexa e muitos tokens;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Fonte:&lt;br&gt;
&lt;a href="https://trailhead.salesforce.com/content/learn/modules/working-with-industries-document-generation" rel="noopener noreferrer"&gt;Deep Dive into Salesforce Document Generation&lt;/a&gt;&lt;br&gt;
&lt;a href="https://trailhead.salesforce.com/content/learn/modules/industries-document-generation-foundations?trail_id=optimize-your-business-with-industries-contract-lifecycle-management" rel="noopener noreferrer"&gt;Industries Document Generation Foundation&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Introdução ao Business Rules Engine</title>
      <dc:creator>Liz Vidotti</dc:creator>
      <pubDate>Thu, 18 Jan 2024 17:50:11 +0000</pubDate>
      <link>https://forem.com/lizvidotti/introducao-ao-business-rules-engine-2k5a</link>
      <guid>https://forem.com/lizvidotti/introducao-ao-business-rules-engine-2k5a</guid>
      <description>&lt;p&gt;Este conjunto de componentes, objetos e serviços é utilizado para desenhar regras de negócio que irão compor processos de negócio automatizados em um fluxo de trabalho. O &lt;em&gt;Business Rule Engine&lt;/em&gt; (BRE) é capaz de fazer cálculos e pesquisas complexas.&lt;/p&gt;

&lt;p&gt;O &lt;em&gt;BRE&lt;/em&gt; está disponível para o &lt;em&gt;Flow&lt;/em&gt; e o &lt;em&gt;Omnistudio&lt;/em&gt; nas nuvens de &lt;em&gt;Industries&lt;/em&gt;. Também é possível integrar &lt;em&gt;APIs&lt;/em&gt; com fluxos de trabalhos criados a partir de ferramentas de terceiros ou customizadas, como códigos &lt;em&gt;Apex&lt;/em&gt;. O fluxo de trabalho criado passa os dados necessários para acionar o &lt;em&gt;BRE&lt;/em&gt; e este retorna os dados para o fluxo.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc1neuruyilfefyh5tj4l.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc1neuruyilfefyh5tj4l.png" alt=" " width="771" height="291"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Os componentes chave do BRE são:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Expressions sets&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Lookup tables&lt;/em&gt;;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Decision matrices&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Decision tables&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  Como o &lt;em&gt;BRE&lt;/em&gt; interage com as ferramentas de fluxo de trabalho?
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Flow&lt;/em&gt;
Os componentes do &lt;em&gt;BRE&lt;/em&gt; (&lt;em&gt;decision matrices&lt;/em&gt;, &lt;em&gt;decision tables&lt;/em&gt; e &lt;em&gt;expression sets&lt;/em&gt;) estão disponíveis através de componentes de ação no &lt;em&gt;Flow&lt;/em&gt;. As &lt;em&gt;decision tables&lt;/em&gt; podem ser acionadas a partir de um &lt;em&gt;expression set&lt;/em&gt; ou diretamente através do &lt;em&gt;Flow&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;OmniStudio&lt;/em&gt;
Os &lt;em&gt;Expression Sets&lt;/em&gt; e &lt;em&gt;Decision matrices&lt;/em&gt; estão disponíveis através de elementos de ação nas &lt;em&gt;Integration Procedures&lt;/em&gt; e &lt;em&gt;Omniscripts&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;Ferramentas customizadas ou de terceiros
Podemos utilizar as &lt;em&gt;Connect APIs&lt;/em&gt; para acionar as &lt;em&gt;Expression sets&lt;/em&gt; e as &lt;em&gt;Lookup tables&lt;/em&gt; através dos fluxos de trabalhos criados com estas ferramentas.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;em&gt;Expression Set&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;Consiste num fluxo lógico, dividido em diversos passos, construído com variáveis, constantes, condições, cálculos, pesquisas, etc.&lt;/p&gt;

&lt;p&gt;Os dados de entrada e de saída são em formato &lt;em&gt;JSON&lt;/em&gt;. Assim como a ferramenta &lt;em&gt;Flow&lt;/em&gt;, podemos criar diversas versões do mesmo &lt;em&gt;Expression Set&lt;/em&gt;. Ao criar uma nova versão, devemos informar a data e hora de início e o &lt;em&gt;Rank&lt;/em&gt;. Duas versões diferentes podem estar ativas, e o fluxo que será acionado será com o de maior data e hora de início e maior &lt;em&gt;Rank&lt;/em&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Variáveis e constantes:&lt;/strong&gt; são usadas para armazenar valores dinâmicos no fluxo. Ele pode ser usado para armazenar informações dos valores de entrada e saída, além de valores que precisam passar de uma etapa a outra no mesmo fluxo;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Variáveis de objeto:&lt;/strong&gt; para trabalhar com valores dos campos de um objeto &lt;em&gt;Salesforce&lt;/em&gt;, devemos configurar &lt;em&gt;aliases&lt;/em&gt; para os objetos e os campos. Eles estão disponíveis para criação no menu de configuração e podem ser categorizados;&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tipos de dados:&lt;/strong&gt; os tipos de dados que podem ser utilizados em um &lt;em&gt;expression set&lt;/em&gt; podem ser

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Text&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Number&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Percent&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Currency&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Date&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Date &amp;amp; Time&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Boolean&lt;/em&gt;;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;em&gt;Operadores e funções:&lt;/em&gt; podemos utilizar operadores lógicos, de comparação, matemáticos e de &lt;em&gt;string&lt;/em&gt;, além de funções de data e numéricas.&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;em&gt;Decision Explainer&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;Podemos utilizar este serviço para mostrar ao usuário explicações de cada etapa do &lt;em&gt;Expression Set&lt;/em&gt;, e para armazenar &lt;em&gt;logs&lt;/em&gt; de ação.&lt;/p&gt;

&lt;p&gt;As mensagens explicativas devem ser configuradas como &lt;em&gt;templates&lt;/em&gt;, no menu de configurações (&lt;em&gt;Explainability templates&lt;/em&gt;). Por sua vez, os &lt;em&gt;templates&lt;/em&gt; devem ser adicionadas em cada etapa desejada do seu &lt;em&gt;Expression Set&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Quando você utiliza o simulador do &lt;em&gt;Expression Set&lt;/em&gt; para os testes, você poderá ver as mensagens na opção &lt;em&gt;Concise View&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;em&gt;Decision Matrix&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;Com base no(s) valor(es) de entrada, recebemos o valor de saída correspondente da linha da tabela. Ela é útil para implementar regras complexas de uma maneira sistemática e de fácil leitura. Os dados de entrada e saída são no formato &lt;em&gt;JSON&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  &lt;em&gt;Decision Table&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;Com base no(s) valor(es) de entrada, recebemos o(s) valor(es) de saída. Os valores de saída podem ser com base com os valores especificados na tabela, ou com base nos registros do Salesforce.&lt;/p&gt;

&lt;p&gt;Na criação de uma &lt;em&gt;decision table&lt;/em&gt;, devemos escolher o objeto de origem, e até quatro objetos relacionados ao objeto de origem. Os objetos relacionados devem estar até três níveis adjacentes do objeto de origem.&lt;/p&gt;

&lt;p&gt;Fonte: &lt;a href="https://help.salesforce.com/s/articleView?id=sf.business_rules_engine.htm&amp;amp;type=5" rel="noopener noreferrer"&gt;Documentação oficial: Business Rule Engine&lt;/a&gt;&lt;/p&gt;

</description>
      <category>salesforce</category>
      <category>omnistudio</category>
      <category>lowcode</category>
      <category>businessrulesengine</category>
    </item>
    <item>
      <title>DataRaptor Load</title>
      <dc:creator>Liz Vidotti</dc:creator>
      <pubDate>Mon, 18 Sep 2023 13:22:29 +0000</pubDate>
      <link>https://forem.com/lizvidotti/dataraptor-load-209j</link>
      <guid>https://forem.com/lizvidotti/dataraptor-load-209j</guid>
      <description>&lt;p&gt;DataRaptor é um componente do &lt;em&gt;Salesforce Omnistudio&lt;/em&gt;, que faz parte da camada &lt;em&gt;Service Management&lt;/em&gt;. Ele é essencialmente um componente de &lt;em&gt;backend&lt;/em&gt;, que permite leitura, escrita e transformação de dados no &lt;em&gt;Salesforce&lt;/em&gt;. Ele é dividido em quatro tipos: &lt;em&gt;Extract&lt;/em&gt;, &lt;em&gt;Turbo Extract&lt;/em&gt;, &lt;em&gt;Load&lt;/em&gt; e &lt;em&gt;Transform&lt;/em&gt;. Nesse artigo, irei explicar um pouco sobre o &lt;em&gt;&lt;strong&gt;DataRaptor Load&lt;/strong&gt;&lt;/em&gt;, utilizando um exemplo prático.&lt;/p&gt;

&lt;p&gt;O DataRaptor Load permite a criação e edição de dados no Salesforce. Os dados de entrada podem ser dos tipos: &lt;em&gt;JSON&lt;/em&gt;, &lt;em&gt;XML _ou formato customizado. Estes dados podem ser obtidos através de: outros componentes do _Omnistudio&lt;/em&gt;, como &lt;em&gt;Omniscripts&lt;/em&gt; e &lt;em&gt;Integration Procedures&lt;/em&gt;; &lt;em&gt;DataRaptor API Rest call&lt;/em&gt;; classes &lt;em&gt;Apex&lt;/em&gt;. &lt;/p&gt;

&lt;p&gt;Apenas o Omnistudio for Vlocity têm suporte para receber dados através de objetos de Interface, como o Salesforce Bulk Loader e outras ferramentas similares.&lt;/p&gt;

&lt;p&gt;Os dados de saída contém os registros e Ids dos registros criados e/ou atualizados. Esses registros serão sempre de &lt;em&gt;sObjects&lt;/em&gt;, ou objetos do Salesforce, que podem ser os objetos padrão, como Contas e Oportunidades, ou objetos customizados.&lt;/p&gt;

&lt;p&gt;Durante o processamento do DataRaptor Load, temos as seguintes etapas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Etapa de Fórmula: funções matemática e de Strings são processadas para atender a resultados de fórmulas específicas, quando criadas;&lt;/li&gt;
&lt;li&gt;Etapa de Transformação: é quando os dados de entrada são mapeados para os dados de saída correspondentes;&lt;/li&gt;
&lt;li&gt;Etapa de Carregamento: quando os dados são persistidos em um sObject.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Hands-on
&lt;/h2&gt;

&lt;p&gt;Criar um componente DataRaptor Load que receba uma lista de gêneros de filmes, e grave os dados em um objeto customizado Genre__c.&lt;/p&gt;

&lt;p&gt;Para este projeto, estarei usando os dados da API do &lt;a href="https://developer.themoviedb.org/" rel="noopener noreferrer"&gt;DB Movies&lt;/a&gt;. Estou usando também a &lt;em&gt;org&lt;/em&gt; &lt;em&gt;Developer Edition&lt;/em&gt; com o pacote do &lt;em&gt;Omnistudio&lt;/em&gt; já instalado.&lt;/p&gt;

&lt;p&gt;Antes de iniciar a construção do componente, criei o objeto Genre (Genre_&lt;em&gt;c), e dois campos do tipo Texto, Id (Id&lt;/em&gt;_c) e Name. O perfil de usuário Administrador do Sistema terá acesso de criação, leitura e edição para o objeto e seus campos.&lt;/p&gt;

&lt;p&gt;No aplicativo &lt;em&gt;Omnistudio&lt;/em&gt;, vamos acessar a guia &lt;em&gt;DataRaptor&lt;/em&gt; e criar um novo componente, com a interface &lt;em&gt;Load&lt;/em&gt;.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi168oxtm393ezg7lf44w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fi168oxtm393ezg7lf44w.png" alt="Setup component" width="800" height="361"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Na guia &lt;em&gt;Objects&lt;/em&gt;, selecionar o objeto Genre__c.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1w6w2qu50mc3spo4v88b.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1w6w2qu50mc3spo4v88b.png" alt="Setup Genre sObject" width="800" height="359"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Na guia Fields, vamos copiar a lista de gêneros e colar na seção Input JSON. Logo após, vamos clicar em Quick Match.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{
  "genres": [
    {
      "id": 28,
      "name": "Action"
    },
    {
      "id": 12,
      "name": "Adventure"
    },
    {
      "id": 16,
      "name": "Animation"
    },
    {
      "id": 35,
      "name": "Comedy"
    },
    {
      "id": 80,
      "name": "Crime"
    },
    {
      "id": 99,
      "name": "Documentary"
    },
    {
      "id": 18,
      "name": "Drama"
    },
    {
      "id": 10751,
      "name": "Family"
    },
    {
      "id": 14,
      "name": "Fantasy"
    },
    {
      "id": 36,
      "name": "History"
    },
    {
      "id": 27,
      "name": "Horror"
    },
    {
      "id": 10402,
      "name": "Music"
    },
    {
      "id": 9648,
      "name": "Mystery"
    },
    {
      "id": 10749,
      "name": "Romance"
    },
    {
      "id": 878,
      "name": "Science Fiction"
    },
    {
      "id": 10770,
      "name": "TV Movie"
    },
    {
      "id": 53,
      "name": "Thriller"
    },
    {
      "id": 10752,
      "name": "War"
    },
    {
      "id": 37,
      "name": "Western"
    }
  ]
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpe72jxfgo2llwnhhe7yq.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpe72jxfgo2llwnhhe7yq.png" alt="Input JSON" width="800" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;No popup que se abre, vemos na esquerda, a lista de paths do JSON de entrada; no meio, os campos do referido objeto (Genre__c); e, na direita, ficarão os campos mapeados. Podemos clicar em Auto Match, ou arrastar o path da esquerda para o campo correspondente. Se os campos estiverem mapeados corretamente, clicar em Save.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0rtb0rmth8o1he54t88a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0rtb0rmth8o1he54t88a.png" alt="Mapping fields" width="800" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Vamos editar o mapeamento para o path genre:id, e marcá-lo como Upsert Key; desta forma, se o Salesforce encontrar um gênero com o mesmo genre:id, ele irá atualizar o registro, ao invés de criar um novo.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcnq403ifytks605ritei.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcnq403ifytks605ritei.png" alt="Enter insert key" width="800" height="360"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Na aba preview, vamos testar o componente. Colamos o JSON de entrada na seção input, e clicamos em Execute.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhdro9gqxq60ggxuulvs8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhdro9gqxq60ggxuulvs8.png" alt="Preview" width="800" height="363"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Quando a operação é executada com sucesso, vemos a lista de registros criados, junto com os Ids do Salesforce.&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnxsph548d4jxt9lhec1i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnxsph548d4jxt9lhec1i.png" alt="Success" width="800" height="362"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>omnistudio</category>
      <category>dataraptor</category>
      <category>lowcode</category>
    </item>
    <item>
      <title>OmniStudio DataRaptors</title>
      <dc:creator>Liz Vidotti</dc:creator>
      <pubDate>Wed, 08 Mar 2023 17:15:39 +0000</pubDate>
      <link>https://forem.com/lizvidotti/omnistudio-dataraptors-38dh</link>
      <guid>https://forem.com/lizvidotti/omnistudio-dataraptors-38dh</guid>
      <description>&lt;p&gt;Nesse artigo, vamos aprender sobre um dos componentes da camada &lt;em&gt;Service Management&lt;/em&gt; do &lt;em&gt;OmniStudio&lt;/em&gt;. O &lt;em&gt;DataRaptor&lt;/em&gt; é uma ferramenta de mapeamento de dados que nos permite ler, transformar e escrever dados no &lt;em&gt;Salesforce&lt;/em&gt;. Este componente pode enviar e receber dados de outros componentes do &lt;em&gt;OmniStudio&lt;/em&gt;, como &lt;em&gt;FlexCards&lt;/em&gt;, &lt;em&gt;OmniScripts&lt;/em&gt; e &lt;em&gt;Integration Procedures&lt;/em&gt;, além de aplicativos e &lt;em&gt;APIs&lt;/em&gt; externas. Também pode acessar objetos externos, metadados customizados e objetos &lt;em&gt;Salesforce&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Podemos pensar: mas podemos fazer a mesma coisa utilizando classes &lt;em&gt;Apex&lt;/em&gt;. Porque eu deveria utilizar um &lt;em&gt;DataRaptor&lt;/em&gt;?&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Utilizar o DataRaptor torna o desenvolvimento mais rápido, além de facilitar as futuras manutenções em sua Organização.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Por ser uma ferramenta de desenvolvimento declarativo, sem a necessidade de código, o desenvolvimento e manutenção se tornam mais rápidos do que o desenvolvimento de uma classe &lt;em&gt;Apex&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tipos de DataRaptor
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;DataRaptor Turbo Extract&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Capaz de fazer a leitura de apenas um objeto Salesforce;&lt;/li&gt;
&lt;li&gt;Capaz de fazer a leitura de campos de objeto relacionado;&lt;/li&gt;
&lt;li&gt;Podemos filtrar quais registros queremos exibir baseados em critérios de campos;&lt;/li&gt;
&lt;li&gt;Não suporta a utilização de fórmulas ou dados de saída complexos;&lt;/li&gt;
&lt;li&gt;Os dados de entrada (&lt;em&gt;input&lt;/em&gt;) são sempre um &lt;em&gt;sObject&lt;/em&gt; (objeto &lt;em&gt;Salesforce&lt;/em&gt;) e os dados de saída (&lt;em&gt;output&lt;/em&gt;) podem ter o formato &lt;em&gt;JSON&lt;/em&gt; ou customizado;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;DataRaptor Extract&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Capaz de fazer a leitura de um ou mais objetos Salesforce, não importa se são objetos relacionados;&lt;/li&gt;
&lt;li&gt;Capaz de extrair dados de até três objetos relacionados;&lt;/li&gt;
&lt;li&gt;Os dados de entrada (&lt;em&gt;input&lt;/em&gt;) e os dados de saída (&lt;em&gt;output&lt;/em&gt;) podem ser em formato JSON, XML ou customizado;&lt;/li&gt;
&lt;li&gt;Capaz de organizar os dados através de paginação, utilizando o &lt;em&gt;offset&lt;/em&gt;. Com esse recurso, podemos recuperar os dados da requisição a cada vez, baseados em valores de campos ou outros critérios;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;DataRaptor Load&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Capaz de criar e/ou atualizar registros para um ou mais objetos &lt;em&gt;Salesforce&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;Os dados de entrada (&lt;em&gt;input&lt;/em&gt;) podem estar no formato JSON, XML ou customizado, e os dados de saída (&lt;em&gt;output&lt;/em&gt;) são sempre um &lt;em&gt;sObject&lt;/em&gt;;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;

&lt;strong&gt;DataRaptor Transform&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Capaz de manipular dados internos ou externos ao &lt;em&gt;Salesforce&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;Capaz de dividir, reestruturar e transformar dados nos formatos &lt;em&gt;JSON&lt;/em&gt;, &lt;em&gt;XML&lt;/em&gt; ou &lt;em&gt;schemas&lt;/em&gt; customizados;&lt;/li&gt;
&lt;li&gt;Capaz de renomear nomes de campos;&lt;/li&gt;
&lt;li&gt;Podemos usar fórmulas e funções para a transformação dos dados;&lt;/li&gt;
&lt;li&gt;Podemos preencher modelos de documentos para o &lt;em&gt;Docusign&lt;/em&gt; ou PDF.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

</description>
      <category>salesforce</category>
      <category>omnistudio</category>
      <category>lowcode</category>
      <category>nocode</category>
    </item>
    <item>
      <title>OmniStudio Omniscripts</title>
      <dc:creator>Liz Vidotti</dc:creator>
      <pubDate>Wed, 01 Mar 2023 11:33:35 +0000</pubDate>
      <link>https://forem.com/lizvidotti/omnistudio-omnicripts-38oh</link>
      <guid>https://forem.com/lizvidotti/omnistudio-omnicripts-38oh</guid>
      <description>&lt;p&gt;O &lt;em&gt;Omniscritpt&lt;/em&gt; é o segundo componente que encontramos na camada &lt;em&gt;Digital Experience&lt;/em&gt; do &lt;em&gt;OmniStudio&lt;/em&gt;. Podemos defini-lo como um caminho guiado para completar um processo do negócio. Ele funciona como um conjunto de &lt;em&gt;Flexcards&lt;/em&gt; usados para atender um processo, como criar uma nova cotação de um seguro de automóvel.&lt;/p&gt;

&lt;p&gt;Este componente tem o foco na experiência e na interface do usuário, permitindo maior engajamento e tornando a experiência do usuário dinâmica e personalizada.&lt;/p&gt;

&lt;h2&gt;
  
  
  Características
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Desenvolvimento de forma declarativa ou &lt;em&gt;drag-and-drop&lt;/em&gt;. Podemos visualizar a prévia do componente e utilizar o &lt;em&gt;debbuger&lt;/em&gt; para testar o funcionamento do componente antes de ativá-lo;&lt;/li&gt;
&lt;li&gt;Podemos implementar o componente em qualquer canal ou dispositivo;&lt;/li&gt;
&lt;li&gt;Possui arquitetura modular, que permite a separação das camadas de backend e frontend;&lt;/li&gt;
&lt;li&gt;As informações disponíveis de um &lt;em&gt;Omniscript&lt;/em&gt; podem vir de diversas origens de dados: do próprio &lt;em&gt;Salesforce&lt;/em&gt;, de um &lt;em&gt;website&lt;/em&gt; ou sistema legado;&lt;/li&gt;
&lt;li&gt;Grande capacidade de customização do componente. Temos a opção de customização em dois &lt;em&gt;frameworks&lt;/em&gt;: o &lt;em&gt;Lightning StyleShhet&lt;/em&gt; e o &lt;em&gt;Newport Design System&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;Podemos gerenciar a assinatura de documentos com o &lt;em&gt;OmniScript&lt;/em&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Templates&lt;/em&gt; para a criação de documentos;&lt;/li&gt;
&lt;li&gt;Mesclar informações de diversas fontes de dados;&lt;/li&gt;
&lt;li&gt;Anexar documentos aos registros de objetos &lt;em&gt;Salesforce&lt;/em&gt; ou enviá-los por &lt;em&gt;email&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;Utilizar o &lt;em&gt;DocuSign&lt;/em&gt; para assinatura eletrônica.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  OmniScripts vs. Screen Flows
&lt;/h2&gt;

&lt;p&gt;Podemos pensar que o &lt;em&gt;OmniScript&lt;/em&gt; é um tipo de &lt;em&gt;Screen Flow&lt;/em&gt; para as nuvens de &lt;em&gt;Industries&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Ambas ferramentas são usadas para a criação de processos guiados, que fazem a leitura e permitem a inserção de informações. Também possuem outras similaridades:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;O fluxo pode seguir diferentes ramificações, dependendo de condicionais estabelecidas;&lt;/li&gt;
&lt;li&gt;Componentes modulares;&lt;/li&gt;
&lt;li&gt;Leitura e/ou edição de dados do &lt;em&gt;Salesforce&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;O fluxo pode disparar a execução de uma classe &lt;em&gt;Apex&lt;/em&gt; ou componente do &lt;em&gt;Lightning Web Component&lt;/em&gt; (LWC);&lt;/li&gt;
&lt;li&gt;Podem ser incorporados em páginas &lt;em&gt;web&lt;/em&gt; externas;&lt;/li&gt;
&lt;li&gt;São componentes responsivos;&lt;/li&gt;
&lt;li&gt;Possui ferramenta para execução de testes sobre o funcionamento do fluxo (&lt;em&gt;debugger&lt;/em&gt;).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Porém, com o OmniScript, podemos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Trabalhar com hierarquia complexa de dados;&lt;/li&gt;
&lt;li&gt;Estilizar o componente com &lt;em&gt;CSS&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;Criar interações com dados internos e externos;&lt;/li&gt;
&lt;li&gt;Criar validações mais complexas;&lt;/li&gt;
&lt;li&gt;Criar formulários dinâmicos;&lt;/li&gt;
&lt;li&gt;Interface de usuário flexível para apresentar informações e capturar dados;&lt;/li&gt;
&lt;li&gt;Adicionar múltiplos registros.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Referências
&lt;/h2&gt;

&lt;p&gt;-[OminiScripts[(&lt;a href="https://trailhead.salesforce.com/pt-BR/content/learn/modules/omnistudio-omniscript?trail_id=get-to-know-omnistudio" rel="noopener noreferrer"&gt;https://trailhead.salesforce.com/pt-BR/content/learn/modules/omnistudio-omniscript?trail_id=get-to-know-omnistudio&lt;/a&gt;)&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://trailhead.salesforce.com/pt-BR/content/learn/modules/omniscripts-with-branching?trail_id=build-guided-experiences-with-omnistudio" rel="noopener noreferrer"&gt;OmniScripts with branching&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>salesforce</category>
      <category>omnistudio</category>
      <category>lowcode</category>
      <category>nocode</category>
    </item>
    <item>
      <title>OmniStudio Flexcards</title>
      <dc:creator>Liz Vidotti</dc:creator>
      <pubDate>Wed, 22 Feb 2023 11:37:53 +0000</pubDate>
      <link>https://forem.com/lizvidotti/omnistudio-flexcards-39jc</link>
      <guid>https://forem.com/lizvidotti/omnistudio-flexcards-39jc</guid>
      <description>&lt;p&gt;No último &lt;em&gt;post&lt;/em&gt;, falei sobre o que é o &lt;em&gt;Omnistudio&lt;/em&gt; e quais as camadas que o compõe. Saiba mais em &lt;a href="https://dev.to/lizvidotti/introducao-ao-salesforce-omnistudio-p10"&gt;Introdução ao OmniStudio&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Nesse artigo, vamos aprender sobre o componente &lt;em&gt;Flexcard&lt;/em&gt;. Ele faz parte da camada chamada &lt;em&gt;Digital Experience&lt;/em&gt;. Podemos conceituar o &lt;em&gt;&lt;strong&gt;Flexcard&lt;/strong&gt;&lt;/em&gt; como um &lt;strong&gt;componente&lt;/strong&gt; que mostra informações e ações rápidas de forma simples e objetiva. &lt;/p&gt;

&lt;p&gt;O Flexcard otimiza o tempo de desenvolvimento de soluções customizadas, que normalmente utilizam as tecnologias &lt;em&gt;HTML&lt;/em&gt;, &lt;em&gt;CSS&lt;/em&gt; e &lt;em&gt;Javascript&lt;/em&gt;, através do desenvolvimento declarativo, ou configurações baseadas em cliques. Com ela, podemos adicionar e estilizar campos, botões, &lt;em&gt;links&lt;/em&gt;, rótulos de campo (&lt;em&gt;labels&lt;/em&gt;), ícones, imagens e gráficos facilmente através do &lt;em&gt;designer canvas&lt;/em&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Características
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Ele combina informações e ações estratégicas ao negócio. Com poucos cliques, podemos obter informações e imputar dados de maneira eficiente e rápida;&lt;/li&gt;
&lt;li&gt;Ao editar/atualizar as informações, o &lt;em&gt;flexcard&lt;/em&gt; reflete as mudanças em tempo real;&lt;/li&gt;
&lt;li&gt;Podem ser implementados em qualquer canal ou dispositivo, como: &lt;em&gt;Lightning Page&lt;/em&gt;, &lt;em&gt;Community&lt;/em&gt;, Sistema de Gerenciamento de conteúdo externo ou &lt;em&gt;Container web&lt;/em&gt; customizado;&lt;/li&gt;
&lt;li&gt;As informações mostradas num &lt;em&gt;flexcard&lt;/em&gt; podem ter diversas origens de dados, como: o próprio &lt;em&gt;Salesforce&lt;/em&gt;, &lt;em&gt;website&lt;/em&gt; ou sistema legado;&lt;/li&gt;
&lt;li&gt;Ele é construído de forma declarativa ou &lt;em&gt;drag-and-drop&lt;/em&gt;. Para modificar o estilo do componente, podemos usar o editor ou &lt;em&gt;CSS&lt;/em&gt; customizado. As modificações são exibidas automaticamente no &lt;em&gt;canvas&lt;/em&gt;, que é o espaço que nos apresenta a prévia do componente;&lt;/li&gt;
&lt;li&gt;Podemos incluir botões de ações em um &lt;em&gt;FlexCard&lt;/em&gt;, como

&lt;ul&gt;
&lt;li&gt;Carregar um fluxo com processo guiado&lt;/li&gt;
&lt;li&gt;Exibir um &lt;em&gt;flyout&lt;/em&gt; com informações adicionais&lt;/li&gt;
&lt;li&gt;Navegar para outro registro&lt;/li&gt;
&lt;li&gt;Ouvir um evento de outro &lt;em&gt;flexcard&lt;/em&gt; e atualizar o &lt;em&gt;flexcard&lt;/em&gt; em questão quando o evento é disparado;&lt;/li&gt;
&lt;li&gt;Notificar um componente em outra página ou aplicação de que um evento ocorreu;&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;Podemos incorporar um ou mais componentes dentro de um &lt;em&gt;flexcard&lt;/em&gt; principal;&lt;/li&gt;

&lt;li&gt;Podemos incorporar o &lt;em&gt;flexcard&lt;/em&gt; em um &lt;em&gt;Omniscript&lt;/em&gt;, ou processo de interação guiada;&lt;/li&gt;

&lt;li&gt;Podemos incluir o &lt;em&gt;flexcard&lt;/em&gt; em um &lt;em&gt;flyout&lt;/em&gt;, que nos permite exibir informações adicionais ou secundárias em componentes separados;&lt;/li&gt;

&lt;li&gt;Podemos definir estados e condicionais para o flexcard, onde o conteúdo e ações disponíveis ao usuário podem mudar de acordo com o tipo ou &lt;em&gt;status&lt;/em&gt; da informação.&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;em&gt;Child Flexcard&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;Como vimos anteriormente, podemos incorporar um ou mais &lt;em&gt;flexcards&lt;/em&gt; em um único &lt;em&gt;flexcard&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Ao criar um novo componente, temos um campo chamado "&lt;em&gt;Is Child Flexcard&lt;/em&gt;". Quando este campo está marcado, significa que este componente pode ser utilizado em mais de um &lt;em&gt;flexcard&lt;/em&gt;. Não há limite para a quantidade de &lt;em&gt;child flexcards&lt;/em&gt; presentes num &lt;em&gt;parent flexcard&lt;/em&gt;. Para adicionar um novo &lt;em&gt;child flexcard&lt;/em&gt; no &lt;em&gt;flexcard&lt;/em&gt; principal, ele precisa estar ativo.&lt;/p&gt;

&lt;p&gt;Também podemos configurá-lo para que ele consuma fontes de dados oriundas de seu &lt;em&gt;parent&lt;/em&gt; ou componente principal, ou funcione de maneira independente, consumindo fontes de dados distintas. Isso nos permite utilizar diversas fontes de dados em um único componente. É importante lembrar que, ao configurar o &lt;em&gt;flexcard&lt;/em&gt; principal para enviar dados para os componentes relacionados, todas as origens de dados dos componentes relacionados são sobrescritas pela origem de dados do componente principal.&lt;/p&gt;

&lt;p&gt;O &lt;em&gt;flexcard&lt;/em&gt; pode consumir dados internos (do próprio &lt;em&gt;Salesforce&lt;/em&gt;) ou externos. Os dados externos incluem qualquer dado de fora da sua instância &lt;em&gt;Salesforce&lt;/em&gt;, ou Organização. É comum que as implementações requeiram o consumo de dados externos, como:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Origens de dados de sistemas legados;&lt;/li&gt;
&lt;li&gt;Origens de dados &lt;em&gt;on-premises (on-prem)&lt;/em&gt;. Ele se refere a &lt;em&gt;data centers&lt;/em&gt; privados mantidos pela própria empresa;&lt;/li&gt;
&lt;li&gt;Integrações de &lt;em&gt;API&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;em&gt;Flyout&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;O &lt;em&gt;flyout&lt;/em&gt; ajuda na organização das informações que você deseja exibir em tela. Ele pode ser usado na forma de um &lt;em&gt;popover&lt;/em&gt; ou &lt;em&gt;modal&lt;/em&gt;. Ele é normalmente usado quando há a necessidade de exibir informações longas, que não cabem em um único &lt;em&gt;flexcard&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Podemos incorporar o &lt;em&gt;child flexcard&lt;/em&gt; em um &lt;em&gt;flyout&lt;/em&gt;. Além de permitir a exibição de dados, também podemos incluir ações adicionais.&lt;/p&gt;

&lt;p&gt;Tipos de &lt;em&gt;flyout&lt;/em&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;em&gt;Child Flexcard;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Omniscript;&lt;/em&gt;&lt;/li&gt;
&lt;li&gt;&lt;em&gt;Lightning Web Component (LWC);&lt;/em&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  &lt;em&gt;Navigate action&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;Podemos incluir um botão de ação em nosso componente que direciona o usuário a uma outra página, que pode ser uma página do &lt;em&gt;Lightning Experience&lt;/em&gt; ou &lt;em&gt;Lightning Commmunity&lt;/em&gt; da própria organização, ou página &lt;em&gt;web&lt;/em&gt; externa.&lt;/p&gt;

&lt;h2&gt;
  
  
  Flexcard States
&lt;/h2&gt;

&lt;p&gt;Podemos definir estados e condicionais para o &lt;em&gt;flexcard&lt;/em&gt;, onde o conteúdo e ações disponíveis ao usuário podem mudar de acordo com o tipo ou &lt;em&gt;status&lt;/em&gt; da informação. Todo flexcard criado possui um estado, o estado padrão, ou &lt;em&gt;default&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Para criar um novo estado, basta adicionarmos um novo elemento &lt;em&gt;State&lt;/em&gt; ao &lt;em&gt;canvas&lt;/em&gt; ou clonarmos um estado existente. Não há limite para o número de estados que podemos adicionar a um &lt;em&gt;flexcard&lt;/em&gt;. A ordem dos estados é crucial para determinar qual tipo de informação será exibida. O processo começa no topo da lista e é percorrido até o último estado. Aquele que retornar as condições verdadeiras será exibido para o usuário final. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Melhores práticas&lt;/strong&gt;: devemos ter apenas um estado verdadeiro por registro, e o último estado da lista será o estado &lt;em&gt;default&lt;/em&gt;, ou padrão. Ele não tem condicionais, e é exibido se todos os outros estado anteriores a ele retornarem falso.&lt;/p&gt;

&lt;h2&gt;
  
  
  Publicando seu &lt;em&gt;FlexCard&lt;/em&gt;
&lt;/h2&gt;

&lt;p&gt;Ao ativar um &lt;em&gt;FlexCard&lt;/em&gt;, geramos um novo componente &lt;em&gt;LWC (Lightning Web Component)&lt;/em&gt; que pode ser publicado em uma &lt;em&gt;Lightning Page&lt;/em&gt; ou &lt;em&gt;Community Page&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Ao navegarmos no nosso editor do Lightning App Builder ou Experience Cloud, os componentes ficam disponíveis na seção Customizados (Custom).&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Opções de publicação&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Master label&lt;/em&gt;: esse é o nome que aparecerá na sua lista de componentes customizados no seu editor de páginas do &lt;em&gt;Lightning&lt;/em&gt; ou editor da sua comunidade &lt;em&gt;Salesforce&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;API Version&lt;/em&gt;: aqui fica a versão da API em que foi desenvolvido o componente;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Runtime Namespace&lt;/em&gt;: define o nome do pacote Vlocity;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Is Exposed&lt;/em&gt;: define se o seu componente é público;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Add SVG Resource/Drop it here&lt;/em&gt;: define o ícone customizado do seu componente. Esse ícone aparecerá na lista de componentes customizados do seu editor de páginas do &lt;em&gt;Lightning&lt;/em&gt; ou editor da sua comunidade &lt;em&gt;Salesforce&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Targets&lt;/em&gt;: define em quais lugares o seu componente está disponível para publicação. Por padrão, não definimos &lt;em&gt;targets&lt;/em&gt; para os &lt;em&gt;child flexcards&lt;/em&gt;. Podemos definir como locais:

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;App Page&lt;/em&gt;: página inicial do aplicativo&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Home Page&lt;/em&gt;: página inicial customizada&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Record Page&lt;/em&gt;: página de detalhes de registro de um objeto&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Community Page&lt;/em&gt;: site do &lt;em&gt;Experience Builder&lt;/em&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Community Default&lt;/em&gt;: site do &lt;em&gt;Experience Builder&lt;/em&gt; com propriedades configuráveis.&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;h2&gt;
  
  
  Versionamento vs. Clone
&lt;/h2&gt;

&lt;p&gt;O versionamento nos permite fazer alterações em nosso componente sem alterar a versão original. Um &lt;em&gt;flexcard&lt;/em&gt; pode ter múltiplas versões, mas apenas uma versão pode estar ativada por vez. Utilizamos o versionamento quando queremos realizar atualizações no componente, por exemplo, e temos necessidade de subsbtituí-lo.&lt;/p&gt;

&lt;p&gt;Quando clonamos um &lt;em&gt;flexcard&lt;/em&gt;, criamos um cópia independente do componente original, que pode ter um novo nome e autor, ao contrário do versionamento. Podemos ter vários clones ativados em uma organização Salesforce, mas apenas uma versão ativa de um único componente.&lt;/p&gt;

&lt;h2&gt;
  
  
  Referências
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://help.salesforce.com/s/articleView?id=sf.os_flexcards.htm&amp;amp;type=5" rel="noopener noreferrer"&gt;Documentação&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://trailhead.salesforce.com/en/content/learn/modules/omnistudio-flexcards" rel="noopener noreferrer"&gt;OmniStudio Flexcards&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://trailhead.salesforce.com/en/content/learn/modules/omnistudio-flexcards-building-and-publishing" rel="noopener noreferrer"&gt;OmniStudio FlexCard Building and Publishing&lt;/a&gt;&lt;/p&gt;

</description>
      <category>salesforce</category>
      <category>omnistudio</category>
      <category>lowcode</category>
      <category>nocode</category>
    </item>
    <item>
      <title>Introdução ao Salesforce OmniStudio</title>
      <dc:creator>Liz Vidotti</dc:creator>
      <pubDate>Wed, 15 Feb 2023 12:54:47 +0000</pubDate>
      <link>https://forem.com/lizvidotti/introducao-ao-salesforce-omnistudio-p10</link>
      <guid>https://forem.com/lizvidotti/introducao-ao-salesforce-omnistudio-p10</guid>
      <description>&lt;p&gt;O &lt;em&gt;OmniStudio&lt;/em&gt; se apresenta como um pacote de engajamento digital centrado no cliente, onde as interações se dão de maneira eficiente, precisa e personalizada. Ele é capaz de criar processos automáticos que fazem a integração de dados entre sistemas e podem ser implementados em diferentes canais e dispositivos, como uma página &lt;em&gt;web&lt;/em&gt;, &lt;em&gt;Salesforce Community&lt;/em&gt; ou &lt;em&gt;Lightning Page&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Com ele, podemos construir soluções altamente customizáveis de forma declarativa ou &lt;em&gt;drag-and-drop&lt;/em&gt;. Esse tipo de desenvolvimento permite que os componentes sejam desenvolvidos em um tempo menor, e permitam atualizações mais rápidas, que podem ser feitas por administradores da plataforma ou desenvolvedores.&lt;/p&gt;

&lt;p&gt;Sua arquitetura é orientada a microsserviços e modular, o que permite maior escalabilidade em picos de maior fluxo de dados. O OmniStudio utiliza a estrutura de dados JSON e interface RESTful, o que permite que os desenvolvedores possam utilizar outros serviços independentes, sem a necessidade de interação com outros desenvolvedores.&lt;/p&gt;

&lt;p&gt;É importante lembrar que o &lt;em&gt;OmniStudio&lt;/em&gt; só pode ser usado em organizações do &lt;em&gt;Salesforce _com licença para nuvens de segmentos específicos, ou _Salesforce Industries&lt;/em&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Financial Service&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Health Cloud&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Manufacturing&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Communications&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Media&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Energy &amp;amp; Utilities&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Public Sector&lt;/em&gt;;&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Insurance&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Podemos dividir o OmniStudio em três camadas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Digital Experience&lt;/em&gt;;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;É a camada de &lt;em&gt;frontend&lt;/em&gt;, responsável por promover experiências de interação eficientes, através de interfaces de usuário com alta performance. Ela é formada por dois tipos de interfaces de usuário, que são os &lt;em&gt;FlexCards _e _Omniscripts&lt;/em&gt;. Estes componentes são construídos com o &lt;em&gt;Lightning Web Components (LWC)&lt;/em&gt;, e configurados de maneira declarativa.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Service Management&lt;/em&gt;;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;É a cama de &lt;em&gt;backend&lt;/em&gt;, que inclui os serviços de dados responsáveis pela leitura, escrita, cálculo e rastreio dos dados dentro e fora do Salesforce. Ela é formada por: &lt;em&gt;OmniStudio DataRaptors&lt;/em&gt; e &lt;em&gt;Omnistudio Integration Procedures&lt;/em&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;em&gt;Developer Experience&lt;/em&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;São ferramentas do ciclo de vida do aplicativo para que os desenvolvedores gerenciem e movam as alterações de componentes do &lt;em&gt;OmniStudio _entre ambientes (desenvolvimento, testes e produção). Ela é formada por: _IDX Build Tool&lt;/em&gt; e &lt;em&gt;IDX WorkBench&lt;/em&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Esse artigo é resultado dos meus estudos sobre o OmniStudio. A ideia é que eu faça uma série de artigos, com o intuito de documentar os estudos enquanto avanço nos temas. Breve estarei publicando artigos que descrevam melhor cada camada do OmniStudio.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Referências
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://help.salesforce.com/s/articleView?id=sf.os_omnistudio.htm&amp;amp;type=5" rel="noopener noreferrer"&gt;Documentação&lt;/a&gt;&lt;br&gt;
&lt;a href="https://trailhead.salesforce.com/pt-BR/content/learn/trails/get-to-know-omnistudio" rel="noopener noreferrer"&gt;Get to Know OmniStudio&lt;/a&gt;&lt;/p&gt;

</description>
      <category>salesforce</category>
      <category>omnistudio</category>
      <category>lowcode</category>
      <category>nocode</category>
    </item>
  </channel>
</rss>
