Nossos robôs de atendimento utilizam a linguagem de programação LarBot XML. Uma linguagem simplificada para controlar o fluxo das conversas. A linguagem possui esse nome porque é totalmente baseada em XML. A estrutura é a seguinte:
<?xml version='1.0' encoding='UTF-8'?> <Script> <Linha> <id>Número da Linha</id> <Acao>Comando</Acao> <Conteudo>Conteúdo do comando</Conteudo> <Variavel>Nome da variável</Variavel> <Proximo>Número da próxima linha</Proximo> </Linha> </Script>
Comandos
Cada tupla do script deverá conter um comando. Este comando deverá vir especificado dentro da chave <Acao> do XML. Os comandos válidos são:
Interação com o Usuário
Info – Envia mensagem.
Msg – Envia mensagem e aguarda resposta do usuário.
MidiaInfo – Envia arquivo de mídia (áudio, vídeo ou foto).
Midia – Envia arquivo de mídia (áudio, vídeo ou foto) e aguarda resposta do usuário.
Desvio Condicional
Caso – Desvia o fluxo do script mediante alguma condição.
Operações com Usuários
VerificaUsuario – Verifica se um usuário existe no banco de dados a partir do número do telefone.
VerificaEMail – Verifica se um usuário existe no banco de dados a partir do endereço de e-mail.
CadastraUsuario – Cadastra usuário no banco de dados.
Execução de Procedimentos
SolicitaAtendimento – Envia solicitação de atendimento ao grupo de agentes.
Executa – Executa conjunto de funções.
Encerra – Encerra execução do script e fecha a sessão.
Participações em Eventos
ParticipaEvento – Cadastra a participação do usuário em um evento.
Sorteio – Realiza sorteio de brinde dentro de um evento e notifica o usuário vencedor.
Voto – Coleta voto do usuário dentro de uma eleição.
EncerraVoto – Encerra eleição e envia resultado a todos os participantes.
Funções
As funções utilizam a seguinte sintaxe:
{Nome da função|Parâmetro 1|Parâmetro 2|…}
Por exemplo, para se extrair o primeiro nome de uma pessoa utiliza-se a função {PrimN|João Carlos da Silva}.
A linguagem é do tipo case insensitive, ou seja, interpretador não diferencia letras minúsculas e maiúsculas.
Manipulação de Nomes e Textos
PrimN – Seleciona o primeiro nome de um nome completo.
ACase – Transforma um texto para o formato Letras Alternadas (primeira letra maiúscula, resto minúscula).
LCase – Transforma um texto em letras minúsculas.
UCase – Transforma um texto em letras maiúsculas.
RmPto – Remove o ponto final de uma frase, caso haja.
InStr – Verifica a ocorrência de um texto dentro de outro texto.
Manipulação de Datas
CDate – Converte um texto em data.
DtPrt – Converte uma data em texto.
EData – Verifica se uma data é válida.
Manipulação de Variáveis
DefVr – Define uma variável e seu valor.
Manipulação de Gênero e Nome Próprio
DefGn – Descobre o gênero de um determinado nome.
SelGn – Exibe um texto que varia confome o gênero.
ENome – Verifica se um nome próprio completo é válido.
ONome – Abre opções de tratamento de nome próprio.
SNome – Seleciona um nome na matriz de nomes.
VMail – Verifica se um endereço de e-mail é válido.
Variáveis de Sistema
Uma variável deve ser escrita entre chaves. Algumas variáveis possuem função estratégica para o interpretador. Você deve manipulá-las com cuidado. Essas variáveis são:
Ambiente
{Lang} – Cultura (idioma) do script. Pode ser qualquer string mas recomendamos que seja utilizada a tabela internacional de culturas. Clique aqui para ter acesso a uma tabela de culturas.
Usuário Atual
{RSocial} ou {Nome} – Nome completo do usuário atual.
{Tratamento} – Forma como o usuário prefere ser chamado.
Dica: para obter o primeiro nome do usuário, utilize a função {PrimN|{RSocial}}.
{Genero} – Gênero (sexo) do usuário atual, que pode ser “M”, “F”, “N” ou “” quando ainda não inicializada.
{DataNasc} – Data de nascimento do usuário atual em formato ANSI, ou seja, “yyyy-MM-dd HH:mm:ss”.
{Grupo} – Classificação do usuário dentro do cadastro. Este campo possui formato GUID e para se obter o seu valor deve-se recorrer à função grupos do Larsoft Shiromail.
{EMail} – Endereço de e-mail do usuário.
Sorteio
{Sorteio.Premio} – Prêmio que foi sorteado.
{Sorteio.Vencedor.Nome} – Nome da pesoa contemplada.
{Sorteio.Vencedor.Controle} – Código de controle interno que aponta para o registro do contemplado.
{Sorteio.Vencedor.Telefone} – Telefone do contemplado.
{Sorteio.Vencedor.EMail} – Endereço de e-mail do contemplado.
Sistema de Chamados
{Atendimento.Departamento} – Setor para o qual será encaminhado um chamado.
{Atendimento.Tipo} – Tipo do chamado.
{Atendimento.Titulo} – Título do chamado.
{Atendimento.Relato} – Solicitação inicial do chamado.
{Atendimento.Id} – Código de identificação do atendimento.
Reservadas – Não manipule estas variáveis
{Controle} – Código de identificação do usuário em formato GUID (Global Unique Identifier).
2 comentários
carlos henrique · 14/05/2021 às 10:23
Se você mandasse escrito em grego, com o auxílio do google, eu daria uma resposta.
Luciano Reis · 14/05/2021 às 10:27
Uahahah… Boa! Mas para quem conhece XML isso aí é molezinha. Tão natural quanto ler esta sentença que você está lendo agora.