Acessar artigos

GO_TO

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");

TRANSFER

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”
);

ACTIVITY_SCREEN

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.

CREATE_PERSON

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.

CREATE_ACTIVITY

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.

EXISTS e NOTEXISTS

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"
crosslistmenu-circle