Conhecendo a estrutura de um componente
Um componente é uma função predefinida no Evolux que dá ao Studio, a possibilidade de executar uma tarefa complexa de forma rápida e intuitiva.
O Studio possui vários componentes já instalados. Para utilizá-los, precisamos entender o resultado que cada um nos traz e aprendermos a preencher corretamente os seus campos configuráveis.
Tipos
Existem componentes que necessitam de uma entrada, ou seja, receber a ligação de algum ponto, e possuem uma ou mais saídas, ou seja, entregam a chamada para outro componente.
Existem também componentes terminais, que retiram a chamada daquele fluxo, seja para transferir a um outro local dentro do Evolux (fluxo, fila, ramal, URA), ou para que a ligação seja finalizada (desligar).
Por fim, temos os componentes de configurações múltiplas, onde o usuário define quantas regras ele terá e ordena a execução de acordo com o posicionamento delas (executa de cima para baixo e finaliza a execução ao dar match na condição/rota).
Os componentes são de livre posicionamento dentro do espaço de criação e as entradas e saídas podem ser conectadas à esquerda ou direita, para facilitar a organização do fluxo:
Todos os nós disponíveis na caixinha devem estar conectados à outro componente.
As entradas podem receber várias conexões, porém a saída é individual.
Algumas opções são comuns a maioria dos componentes, são elas:
A Classificação de Desligamento pelo Originador se trata de uma marcação de Sucesso ou Fracasso, que será inserida na chamada, caso o cliente encerre a ligação (voluntariamente ou não) no momento em que ela estiver passando pela respectiva caixinha.
Essa sinalização terá reflexo no Relatório de Eficiência do Projeto, que calcula quantas chamadas tiveram sucesso, fracasso ou foram transferidas.
O Com Itens, que transforma a ação da caixinha em um laço de repetições, capturando no campo “Com Itens” uma lista ou tupla (caso tenha algum objeto de outro tipo, retornará erro) e inserindo o item da vez onde estiver declarada a variável {{item}} .
O Quando, que cria um controle lógico, e só deixará o componente ser executado, caso essa condição seja satisfeita.
Esse recurso permite que o usuário escolha variáveis já declaradas no escopo da chamada, ou crie novas, que serão definidas durante o fluxo.
E por último os controles de exposição de dados sensíveis, onde você pode habilitar, tanto para a requisição, quanto para a resposta, e definir os campos que, se presentes, devam ser suprimidos nos arquivos de CDR (Logs da chamada)
Exemplo
Cada componente tem suas características e portanto também possui campos próprios de configuração. À seguir um exemplo de componente (HTTP):
Ao exportar o fluxo em JSON, esse arquivo conterá todos os componentes que estiverem ali no momento.
Código referente ao tipo de componente, posição e parâmetros externos deste:
"nodes": {
"26176810-b9b3-411e-8d1a-59aa8e6b8643": {
"id": "26176810-b9b3-411e-8d1a-59aa8e6b8643",
"name": "play_and_get_digits",
"point": {
"x": 490,
"y": 238.125
},
"icon": "icon icon-keyboard",
"title": "Play And Get Digits",
"description": "Play And Get Digits",
"ports": [
{
"id": "4d475809-0fe3-4949-94d5-9eeac8bd423b",
"parentId": "26176810-b9b3-411e-8d1a-59aa8e6b8643",
"name": "next_task_id",
"title": "Padrão",
"value": "next_task_id",
"type": "default"
}
],
"dynamicPorts": []
}
Código referente aos parâmetros internos do componente:
"formValues": {
"26176810-b9b3-411e-8d1a-59aa8e6b8643": {
"variable_name": "digite_cpf_cnpj",
"prompt_file": "8",
"error_file": "9",
"max_attempts": 3,
"timeout": 5000,
"digit_timeout": 5000
}
}