A função GO_TO() é para ser utilizada quando queremos saltar o script. Ela será útil para futuras manutenções do código, evitando assim que o mesmo fique muito extenso. O uso de exemplo ideal seria usá-la somente quando o outro script tiver alguma automação. Evitando assim a criação de vários outros scripts desnecessários.
Ex: A qualificação do seu lead, é um exemplo onde pode ser implementado, onde o script anterior faz um "salto" para o GO_TO("Nome Do Script"); script de qualificação.
//Exemplo de uso, após finalizar o fluxo de atendimento, reinicia o fluxo
GO_TO();
//Usado para ir para o outro script
GO_TO("Nome do novo Script");
Podemos transferir um atendimento do bot para um usuário ou setor por meio da função TRANSFER(). Seus parâmetros são: ”destino”, “identificador”.
Destinos podem ser “user” (para usuários) ou “sector” (para setores). O identificador de user pode ser o email do usuário ou o id, já para o sector pode ser o nome do setor ou seu id.
Exemplo:
TRANSFER(
"user",
“user@email.com”
);
TRANSFER(
"sector",
“comercial”
);
Essa função tem por finalidade captar os dados de uma possível qualificação e armazena-la, exibindo-a como uma atividade no painel de atividades do operador posteriormente.
É necessário atribuir variáveis de padrão let e de tipo string no início da aplicação, deixando-as vazias.
let site = "";
let usuario = "";
let eh_franquia = "";
let franqueados = "";
let tem_loja = "";
let setor = "";
let response = false;
O nome das variáveis nas QUESTIONS (criadas para fazerem perguntas e armazenar os dados) deverão ser os mesmos nomes das variáveis atribuídas anteriormente pela let.
//Verificar se é franquia e adicionar nas atividades
if (notExists(data?.person?.custom_fields?.franchise)) {
QUESTION('Sua empresa é Franchising?','franchise','VALID_BUTTONS', ['Sim', 'Não']);
franchise= data?.franchise;
response = true;
} else {
franchise= data?.person?.custom_fields?.franchise;
}
Posteriormente deverá ser feito um UPDATE_PERSON com as variáveis criadas para que os dados sejam atualizados no Tag Center.
//Atualiza Person no TagCenter
UPDATE_PERSON({
"generic": {
email
},
"custom": {
eh_franquia,
franqueados,
usuarios,
tem_loja,
site
}
});
Para que seja criada uma tarefa na tela do operador, criamos a função ACTIVITY_SCREEN com as mesmas variáveis criadas anteriormente.
ACTIVITY_SCREEN({
"Nome": data?.name ? data?.name : "Não encontrado",
"Email": email ? email : "Não encontrado",
"Celular": data?.whatsapp?.phone_number ? data?.whatsapp?.phone_number : "Não encontrado",
"É franquia": eh_franquia ? eh_franquia : "Não encontrado",
"Quantos Franqueados": franqueados ? franqueados : "Não encontrado",
"Usuários": usuarios ? usuarios : "Não encontrado",
"Site": site ? site : "Não encontrado"
});
Onde o primeiro campo, será apresentado como forma de texto, e o segundo as variáveis.
A função CREATE_PERSON() é uma trigger, e por padrão, ela é ativada após um gatilho no sistema, você pode conferir seu funcionamento acessando a documentação.
A função CREATE_ACTIVITY() também é uma trigger, e por padrão, ela é ativada após um gatilho no sistema, você pode conferir seu funcionamento acessando sua documentação.
Função para verificar se existe exists(variavel) ou não notExists(variavel) valor em uma variável.
Aqui verificamos se person é diferente de null e diferente de undefined, ou seja, ele existe no Tag Center
if (exists(data?.person)) {
Verifica se o contato já tem email cadastrado, se não, pede que informe
if (notExists(data?.person?.email)) {
QUESTION('Qual o seu e-mail?', 'email', 'VALID_EMAIL');
}
Verifica se o contato já tem dono, ou seja, se está com algum atendente
if (exists(data?.person?.owner?.name)) {
Pergunta se quer falar com o atendente e preenche a variável 'novo'
QUESTION(`Vi aqui que já falou com ${data?.person?.owner?.name}, quer voltar a falar ou pode ser um novo atendente ?`,
'novo', 'VALID_BUTTONS', [`Falar com ${data?.person?.owner?.name}`, 'Novo Atendente']);
Verifica o que foi informado na variável data?.novo
if (data?.novo == 'Novo Atendente') {
MESSAGE('Aguarde um instante que vou te transferir para um novo atendente');
} else {
MESSAGE(`Ótimo, vou te transferir para ${data?.person?.owner?.name}`);
}
} else {
MESSAGE('Aguarde um instante que vou te transferir para um atendente');
}
}
Dados básicos que podem ser acessados do contato.
Exemplo: telefone do atendente do contato: data?.owner?.phoneNumber
Abaixo outros campos que podem ser acessados
"id": "1234",
"email": "person@gmail.com",
"phoneNumber": "5511988880000",
"firstName": "Maria",
"lastName": "da Silva",
"isEmailConfirmed": false,
"isPhoneNumberConfirmed": false,
"isWhatsappConfirmed": false,
"facebook": null,
"linkedin": null,
"instagram": null,
"twitter": null,
"integration_id": null,
"sector_id": null,
"enriched_topics": null,
"origin": null,
"opts": null,
"custom_fields": null,
"taxIdNumber": '12345678900',
"address": null,
"avatar": null,
"owner": {
"id": "1",
"email": "operador@gmail.com",
"phoneNumber": "5517955551111",
"name": "Nome do usuário",
"active": true,
"user_language": "pt-BR",
"integration_id": {
"rdstation_id": "626950fdb657d0001ef09cbb"
},
"is_working": true,
"address": null,
"avatar": {
"id": "7",
"url": "https://cdn.tagchat.online/users/1/123.png",
"key": "eu.png",
"type": "file",
"mimetype": "image/png",
"path": "/",
"fileSize": "510216"