Combinar o poder do Process Builder e do Flow Builder
Objetivos de aprendizagem
Após concluir esta unidade, você estará apto a:
- Descrever um processo comercial que pode ser automatizado usando um processo e um fluxo.
- Definir o que é uma variável de fluxo.
- Criar um fluxo que é iterado por um grupo de registros.
- Criar um processo que inicia um fluxo.
Quando o Process Builder não é suficiente
O Process Builder não foi criado para lidar com todos os casos de uso possíveis e, portanto, você pode descobrir que dá para automatizar partes do seu processo comercial, mas não tudo. Por exemplo, o Process Builder não é capaz de:
- Publicar no feed de uma comunidade.
- Enviar um registro relacionado para aprovação.
- Excluir registros.
- Criar vários registros e associá-los uns aos outros.
- Realizar lógicas complexas.
Mas há boas notícias! Você não precisa recriar toda a automação em outra ferramenta. Configure as funções mais complexas em um fluxo e adicione uma ação de fluxo ao seu processo. Se um fluxo não puder fazer o que é necessário, você ou um desenvolvedor poderão escrever Apex para fazê-lo. E adicionar uma ação do Apex ao processo.
Clonar registros com filhos (acessórios)
Você deve criar oportunidades de renovação automaticamente quando uma oportunidade é fechada e ganha. A renovação deveria ser um clone da oportunidade original. Podemos clonar registros no Process Builder, mas também precisamos clonar os produtos e associá-los à oportunidade de renovação.
No Process Builder, você não pode pegar a ID do registro criado e usá-la em outro lugar. Por sorte, isso é possível em um fluxo. Crie um fluxo que clona a oportunidade e seus produtos, e crie um processo que chama o fluxo quando uma oportunidade é fechada e ganha.
Ir além das noções básicas
Na última unidade, falamos sobre fluxos que guiam os usuários por um processo comercial com telas. Chamamos isso de fluxos de tela. Você também pode criar fluxos de inicialização automática, que são executados em segundo plano como um processo. A principal diferença é que os fluxos de inicialização automática não podem ter telas, que exigem interação do usuário. Como eles não têm telas, você pode chamar fluxos de inicialização automática do back-end, como processos e classes do Apex.
Criar um processo

No processo Oportunidades fechadas ganhas, adicione um nó de critérios chamado Fechado e ganho com essa condição de filtro.
Campo | Valor |
---|---|
Oportunidade > Estágio | Fechado e ganho |
Não podemos configurar as ações no Process Builder e, portanto, vamos salvar e mudar para o Flow Builder.
Criar um fluxo
Estamos criando um fluxo que:
- Clona uma oportunidade.
- Clona produtos de oportunidade.
- Associa os produtos clonados à oportunidade clonada.
Para fazer tudo isso, o fluxo precisa de alguns dados do processo: a oportunidade original e seus produtos de oportunidade.
Existem quatro tipos de variável de fluxo.
Tipo | Pode armazenar... | Exemplo |
---|---|---|
Variável | Um único valor | “Hello World”, true, 6 |
Variável da coleção | Vários valores do mesmo tipo de dados | [1, 2, 3, 5, 8, 13] |
Variável de registro | Um conjunto de valores de campo para um único registro | Classificação, ID e nome de uma conta |
Variável da coleção de registros | Um conjunto de valores de campo para vários registros do mesmo tipo de objeto | Classificação, ID e nome de várias contas |
Para armazenar a oportunidade e seus produtos de oportunidade, criamos uma variável de registro e uma variável da coleção de registros. Depois, quando adicionamos o fluxo como uma ação no processo, transmitimos dados nessas variáveis, para que elas possam permitir a entrada.
- Em Gerenciador na Caixa de ferramentas, clique em Novo recurso e defina esses valores.
Campo Valor Tipo de recurso Variável Nome da API opportunity Tipo de dados Registro Objeto Oportunidade Disponível para entrada Selecionado - Clique em Concluído.
- Clique em Novo recurso e defina esses valores.
Campo Valor Tipo de recurso Variável Nome da API oppProducts_Original Tipo de dados Registro Permitir diversos valores (coleção) Selecionado Objeto Produto de oportunidade Disponível para entrada Selecionado - Clique em Concluído.
Clonar a oportunidade
- Em Elementos, na Caixa de ferramentas, arraste um elemento Atribuição para a tela.
- Em Rótulo, dê o nome de Atualizar campos de oportunidade.
- Defina o estágio como Prospecção.
- Em Variável, selecione VARIÁVEIS DE REGISTRO (ÚNICO) | opportunity | StageName.
- Em Operador, selecione Igual a.
- Em Valor, selecione VALORES DA LISTA DE OPÇÕES | Prospecção.
- Defina Data de fechamento como 90 dias a contar de hoje.
- Clique em Adicionar atribuição.
- Em Variável, selecione VARIÁVEIS DE REGISTRO (ÚNICO) | opportunity | CloseDate.
- Em Operador, selecione Igual a.
- Em Valor, selecione Novo recurso e defina esses valores.
Campo Valor Tipo de recurso Fórmula Nome da API ninetyDays Tipo de dados Data
- Em Fórmula, deixe Inserir um recurso... em branco e insira HOJE() + 90 na caixa de texto.
- Clique em Concluído e em Concluído.
- Para criar a oportunidade, arraste um elemento Criar registros para a tela e defina esses valores.
Campo Valor Label (Rótulo) Clonar oportunidade Registro VARIÁVEIS DE REGISTRO (ÚNICO) > opportunity
- Clique em Concluído.
- Clique no nó na parte inferior de Iniciar e arraste-o até Atualizar campos de oportunidade.
- Clique no nó na parte inferior de Atualizar campos de oportunidade e arraste-o até Clonar oportunidade.
Quando a oportunidade é criada, o campo de ID nessa variável ({!opportunity.Id}) é preenchido com a ID do novo registro. Faremos referência a esse valor mais adiante para associar os novos produtos à oportunidade de renovação.
Clonar os produtos de oportunidade
Quando o fluxo é chamado pelo processo, a variável {!oppProducts_Original} contém campos dos produtos da oportunidade original. Antes de clonarmos esses produtos, precisamos associá-los à oportunidade de renovação em vez de associá-los à oportunidade original e definir o preço total de cada produto como nulo. (Os produtos de oportunidade não podem ter um preço unitário e um preço total ao mesmo tempo.)
A única maneira de atualizar itens em uma coleção é iterar a coleção com um loop. Um loop diz ao fluxo para processar os itens da coleção um de cada vez, executando a mesma lógica em cada item até que toda a coleção tenha sido processada.
Cada produto de oportunidade em nossa coleção de registros {!oppProducts_Original} deve ser associado à oportunidade de renovação, e o preço total deve ser definido como nulo.
Cada vez que o loop é iterado, a variável de loop representa um item na coleção. Quando o loop começa, o primeiro item na variável de coleção é copiado para a variável de loop. Depois que a iteração é concluída, a variável de loop é substituída pelos valores do item seguinte. E por aí vai até não existirem mais itens na coleção.

No loop, atualizamos a ID de oportunidade e o Preço total de cada item e adicionamos o item a uma nova variável de coleção. Após o loop, usamos a nova variável de coleção para criar os produtos de oportunidade.
- Arraste um elemento Loop para a tela e defina esses valores.
- Em Rótulo, dê o nome de Iterar pelos produtos.
- Para a Variável da coleção, selecione VARIÁVEIS DA COLEÇÃO DE REGISTRO | oppProducts_Original. Essa opção indica ao loop que coleção deve ser iterada na hora de atribuir itens à variável de loop.
- Clique em Concluído.
- Conecte o loop ao elemento Clonar oportunidade.
- Defina a ID de oportunidade da variável de loop como a ID da nova oportunidade e seu preço total como nulo. Arraste um elemento Atribuição para a tela.
- Em Rótulo, dê o nome de Atualizar produto de oportunidade.
- Em Defina valores de variável, configure essas atribuições. Clique em Adicionar atribuição para adicionar uma segunda linha.
Variável Operador Valor VARIÁVEIS DE REGISTRO (ÚNICO) > Item atual do loop Iterate_Over_Products > OpportunityId Igual a VARIÁVEIS DE REGISTRO (ÚNICO) > opportunity > Id VARIÁVEIS DE REGISTRO (ÚNICO) > Item atual do loop Iterate_Over_Products > TotalPrice Igual a Deixe em branco
- Clique em Concluído.
- Conecte o loop ao elemento Atualizar produto de oportunidade. A janela Selecionar conector de loop aparece.
- Verifique se a opção Para cada item na coleção está selecionada no campo Conector de loop e clique em Concluído.
- Adicione a variável de loop atualizada a uma nova variável da coleção de registro.
- Arraste outro elemento Atribuição para a tela.
- Em Rótulo, dê o nome de Adicionar à nova coleção.
- Para Variável, selecione Novo recurso e crie uma nova variável de recurso com esses valores.
Campo Valor Tipo de recurso Variável Nome da API oppProducts_new Tipo de dados Registro Objeto Produto de oportunidade Permitir diversos valores (coleção) Selecionado - Clique em Concluído.
- Em Operador, selecione Adicionar.
- Em Valor, selecione VARIÁVEIS DE REGISTRO (ÚNICO) | Item atual do loop Iterate_Over_Products. Exclua o período entre {! Iterate_Over_Products e o colchete direito} e clique fora do campo Valor.
- Clique em Concluído.
- Conecte o elemento Atualizar produto de oportunidade ao elemento Adicionar à nova coleção. Em seguida, conecte o elemento Adicionar à nova coleção ao loop.
- Para clonar os produtos de oportunidade, arraste um elemento Criar registros para a tela e defina esses valores.
Campo Valor Label (Rótulo) Clonar produtos Quantos registros criar Selecione Vários. Variável da coleção de registros VARIÁVEIS DA COLEÇÃO DE REGISTRO > oppProducts_new - Clique em Concluído.
- Conecte o loop ao elemento Clonar produtos.

Concluir o fluxo
- Clique em Salvar.
- Salve o fluxo e dê o nome de Renovar oportunidade. Clique em Mostrar avançado e defina o Tipo como Fluxo iniciado automaticamente.
- Clique em Salvar.
Ative o fluxo para que você possa referenciá-lo no Process Builder. Feche o Flow Builder.
Terminar o processo
- Abra o processo Oportunidades fechadas e ganhas.
- No grupo de critérios Fechado e ganho, adicione uma ação imediata em que o tipo é Fluxos e o nome é Criar renovação.
- Em Fluxo, selecione Renovar oportunidade.
- Em Definir variáveis de fluxo, adicione duas linhas, defina esses valores e clique em Salvar.
Variável Tipo Valor opportunity Referência de campo Selecione o registro Oportunidade que iniciou seu processo oppProducts_original Referência de campo Oportunidade > OpportunityLineItems - Arraste o nó de critérios Fechado e ganho para cima de Fechado e ganho e Alto valor.
- No grupo de critérios Fechado e ganho, clique em PARAR.
- Selecione Avaliar os próximos critérios e clique em Salvar.
- Ative o processo para começar a utilizá-lo.
Recursos
- Projeto Trailhead: Criar uma calculadora de desconto