Cartas de decisão
Atualizado por Manu da Silva
As cartas de decisão são parte muito importante para as construções lógicas dos nossos fluxos. Na introdução a fluxos conversamos um pouco sobre o conceito dessas cartas, e agora vamos entender um pouco mais sobre sua anatomia e os tipos que existem dentro da plataforma.
Para facilitar a navegação por esse artigo, caso queira ir diretamente para algum tópico em especifico, basta clicar no nome dele baixo:
- Rotas e regras de decisão
- Resultados de fluxo
- Wait for the contact to respond
- Split by custom expression
- Split by contact field
- Split by result in the flow
- Split by random chance
- Split by group membership
- Split by URN type
- Split by Intent
Rotas e regras de decisão
O que são rotas?
O maior diferencial entre as cartas de decisão e as cartas de ação são a criação de rotas. Essas rotas são possíveis caminhos que uma conversa pode tomar de acordo com alguma resposta ou algum dado do contato, ou seja, a finalidade de todas as cartas de decisão é criar rotas para cada regra, e assim criar as ramificações do nosso fluxo.
Cada rota possui um nome/categoria e obedece uma regra de decisão. Você pode ver nas conexões de suas rotas a quantidade de contatos que já seguiram aquele caminho pelo seu fluxo.
A rota Other é uma rota padrão, que existe para o caso de o valor analisado não corresponder a nenhuma das regras de decisão criadas. Todas as cartas de decisão, ao terem uma regra definida, também criam a rota Other.
Regras de decisão
As regras de decisão são um conjunto de regras que utilizamos para criar rotas, ou seja, parâmetros que vão ser verificados para decidir se um contato deve ou não deve passar por aquele caminho.
Para utilizar uma regra de decisão, basta selecionar o tipo da regra, depois, colocar o valor para comparação e por último definir a categoria/nome da rota a qual essa regra pertence. Cada nome diferente de categoria, gerará uma nova rota com aquele mesmo nome. Caso você crie mais de uma regra, mas nomeie ela com a mesma categoria, todas as regras apontarão para a rota com aquele nome.
As regras são testadas pela plataforma em forma de pilha, de cima para baixo. Caso você tenha regras mais especificas, mas que possam ser englobadas por opções mais genéricas, é importante que você coloque as suas regras especificas no topo e as mais genéricas no fim da lista.
Atualmente, existem 24 regras de decisão na plataforma, que podem ser agrupadas em 4 categorias. Confira abaixo:
- Palavras e frases:
São as regras que analisam frases e/ou palavras, comparando a resposta/valor do contato com as frases/palavras escolhidas.
São essas:
- has any of the words: Caso a resposta/valor possua qualquer uma das palavras escolhidas, ele irá seguir a rota indicada. Todas as palavras devem ser separadas por um espaço.
- has all of the words: Caso a resposta/valor possua todas as palavras escolhidas, ele irá seguir a rota indicada. Todas as palavras devem ser separadas por um espaço.
- has the phrase: Caso a resposta/valor possua aquela frase em algum momento do seu texto, ele seguirá rota indicada
- has only the phrase: Caso a resposta/valor seja exatamente aquela frase, ele seguirá a rota indicada.
- starts with: Caso a resposta/valor comece com aquela frase, ele seguirá a rota indicada.
- has some text: Caso a resposta/valor esteja preenchida (não esteja vazia), independentemente da informação contida, ele seguirá a rota indicada.
- Números e operações:
São as regras que envolvem números e/ou operações numéricas, comparando a resposta/valor do contato com os números/regras numéricas escolhidas.
São essas:
- has a number: Caso a resposta/valor seja um número, independentemente do número, ele seguirá a rota indicada.
- has a number between: Caso a resposta/valor esteja entre os 2 números escolhidos, ele seguirá a rota indicada.
- has a number below: Caso a resposta/valor for menor que o número escolhido, ele seguirá a rota indicada.
- has a number at or below: Caso a resposta/valor for menor ou igual ao número escolhido, ele seguirá a rota indicada.
- has a number equal to: Caso a resposta/valor for igual ao número escolhido, ele seguirá a rota indicada.
- has a number at or above: Caso a resposta/valor for maior ou igual ao número escolhido, ele seguirá a rota indicada.
- has a number above: Caso a resposta/valor for maior que o número escolhido, ele seguirá a rota indicada.
- Data e hora:
São as regras que envolvem data e hora, comparando as datas inseridas pelo usuário ou de outros acontecimentos com as datas escolhidas.
Um detalhe importante sobre as regras de comparação de data (before, equal to e after) é que todas as comparações não são feitas por uma data absoluta, mas sim por uma data em relação ao dia atual, no formato (today + n) onde today é o dia de hoje e n é a quantidade de dias para frente ou para trás.
As regras são:
- has a date: Caso a resposta/valor do contato possua uma data, independentemente da data, ele seguirá a rota indicada. A data deve possuir um formato de data válido (exemplo: DD/MM/AAAA).
- has a date before: Caso a resposta/valor possua uma data anterior a data escolhida, ele seguirá a rota indicada.
- has a date equal to: Caso a resposta/valor possua uma data igual a data escolhida, ele seguirá a rota indicada.
- has a date after: Caso a resposta/valor possua uma data após a data escolhida, ele seguirá a rota indicada.
- has a time: Caso a resposta/valor possua um horário, independentemente do horário, ele seguirá a rota indicada. O horário deve possuir um formato de hora válido (exemplo: HH:MM).
- Formatos personalizados:
São regras utilizadas para validar formatações de texto personalizadas, seja para obedecer alguma regra de formatação de números, documentos, etc.
A plataforma nos dá suporte ao uso de expressões regulares, ou regex, que é uma linguagem de busca de padrões. Assim, conseguimos criar regras de padrões personalizados para vários tipos de formatação, como CPF, CNPJ, CNH, etc. Um bom site para criar suas regex é o https://regex101.com/.
As regras são:
- has a phone number: Caso a resposta/valor possua um formato válido para telefone celular (exemplo: 5582999999999), ele seguirá rota indicada.
- has an email: Caso a resposta/valor possua um formato válido para e-mail (exemplo: no-reply@ilhasoft.com.br), ele seguirá a a rota indicada.
- matches regex: Caso a resposta/valor siga a regra da expressão regular escolhida, ele seguirá a rota indicada.
Resultados de fluxo
Toda carta de decisão, escolhe uma rota no fim da sua execução, e isso gera para nós um resultado de fluxo. Cada resultado de fluxo contém informações como:
- Valor que foi utilizado para a decisão;
- Categoria de rota escolhida após as regras;
- Data e hora que esse resultado foi salvo;
- Conteúdos extras e anexos enviados junto com o valor;
- Entre outros.
Você pode acessar esses valores de fluxo utilizando as variáveis da plataforma (para saber mais acesse o artigo sobre expressões e variáveis ) e também pode ver esses resultados em forma de gráficos na área de resultados no editor de fluxo (para saber mais acesse o artigo sobre o editor de fluxo e suas ferramentas).
Por padrão, os nomes dos resultados serão sempre (Result + n) onde n é o número de resultados que existem no seu fluxo, porém, isso pode ser facilmente mudado no campo de Result name.
Wait for the contact to respond
A primeira e mais usada das cartas de decisão. As rotas são decididas a partir do texto inserido por um contato. Além disso, possui a opção para criar uma rota caso o usuário não responda, marcando a caixa de seleção no rodapé da carta e escolhendo o tempo de espera para a resposta.
Split by custom expression
As rotas são decididas a partir de uma expressão customizada criada pelo usuário. Essa expressão customizada pode ser construída a partir do uso de variáveis e funções. (Para saber mais sobre variáveis e funções vá para o artigo sobre)
Split by contact field
Aqui, todas as regras de decisão analisam um campo do contato. Basta selecionar qual campo do contato você pretende verificar, e assim definir as regras em questão.
Split by result in the flow
O foco aqui é criar rotas a partir dos resultados de fluxo, podendo ser tanto os criados por outras cartas de decisão quanto os criados manualmente pela carta de ação responsável. Basta selecionar o nome do resultado de fluxo que vai ser analisado.
Split by random chance
Aqui, a rota escolhida é feita de forma aleatória, basta escolher a quantidade de rotas que você deseja e esperar o resultado. Nesse caso, não existe regra de decisão, e apenas o nome da rota pode ser personalizado, junto com a quantidade de rotas que vão existir.
Split by group membership
Cria rotas a partir de grupos que o contato participa. Para isso, basta selecionar um dos grupos de contato existentes na organização.
Split by URN type
Cria rotas baseadas em qual canal o contato está utilizando no momento. Basta selecionar o tipo do canal que estão entre os disponíveis e salvar.