Teleguiado Interatividade Última atualização: 05-10-2021
Bem vindo a API de interatividade do Teleguiado. Com ela você pode buscar informações da interatividade dos usuários.
Nossa API suporta nativamente o formato: REST
O sistema deve realizar uma chamada enviando os parâmetros por meio de GET ou POST.
O retorno para cada chamada será um JSON cujo formato é detalhado ao longo desta documentação.
Padrão da URL dos Web Services:
Todos as requisições são disponibilizadas via REST pela seguinte url:
{protocolo}://{servidor}:{porta}/{módulo}/rest/api/{serviço}
Dados da url:
- protocolo:
http ou https
- servidor:
{HOST}
- porta:
8080 (8443 para https)
- módulo:
sms-main-module/rest/api
- Exemplo:
https://{HOST}:8443/sms-main-module/rest/api/{serviço}
1.1 Autenticação
Todas as requisições da API do Teleguiado devem utilizar cabeçalhos incluíndo o Token de acesso.
Existem dois tipos de Tokens o baseado no usuário e senha e o Token de login.
Caso haja erro na autenticação, o respectivo código de erro será retornado.
Tokens baseados no usuário e senha:
É formado pela chave Base64 da sua conta e senha. Exemplo para obter o valor, utilizando o comando base64 do linux:
O formato é: usuário:senha
- $ echo -n usuário:senha | base64
Y29udGE6c2VuaGE=
O site base64Encode também faz essa codificação gratuitamente.
Token de Acesso Baseado no login:
É recebido no momento em que o login é efetuado através do serviço de login que será descrito no respectivo item.
O Token é codificado no formato Base64 e criptografado.
Quando a utilização dos serviços for finalizada, ao usar a requisição com o Token baseado no login, pode-se efetuar o logout da aplicação utilizando o serviço de logout. Caso não seja feito o logout, o timeout é de 30 minutos. Caso nenhuma requisição seja feita neste período, o usuário é automaticamente desconectado. E as requisições receberão o código de retorno 419 (Authentication Timeout).
1.2 Interatividade de Usuários (POST)
Cabeçalho:
- Content-Type:
application/x-www-form-urlencoded
- Token:
ExemploM2MC5uZXQuYnI6dGVzdA== Token de usuário e senha (Base64 => user:password)
Parâmetros:
- status (opcional):
- DISABLED:
Usuário atendido
- ENABLED:
Usuário na fila de atendimento
- ATTENDING:
Usuário em atendimento
- initialRange:
Início do intervalo de busca
- finalRange:
Fim do intervalo de busca
- iniAttendDate:
Intervalo inicial do atendimento
- endAttendDate:
Intervalo final do atendimento
- orders:
Opção de ordenação
- orderType:
Tipo da ordenação (asc) ou (desc)
Exemplo:
JSON da requisição:
{
"status": "DISABLED",
"initialRange": "0",
"finalRange": "100",
"iniAttendDate": "2021-09-01T00:00:00-03:00",
"endAttendDate": "2021-09-30T23:59:59-03:00",
"orders": "["chatType", "status", "phoneNumber", "account", "iniAttendDate", "endAttendDate"]",
"orderType": "desc"
}
JSON da resposta:
[{
"id": 9999,
"phone": "5548998278678",
"chatType": "WB",
"chatId": "905fd64cb3c3",
"status": "DISABLED",
"account": {"id": 24, "name": "Empresa Fictícia"},
"iniAttendDate": 1632353648552,
"endAttendDate": 1632542595782,
"activeDate": 1631803739316,
"lastAnswerTime": 1631803739316,
"lastMessage": "Mensagem de encerramento",
"profileName": "Pesquisa - Convite",
"attendant":{
"id": 5,
"account": "Empresa Fictícia",
"user":{
"id": 5,
"name": "Atendente",
"email": "atendente@box360.net.br",
"profile": {"id": 35, "name": "Atendente"}
}
},
"department":{
"id": 19,
"name": "Padrão",
"account": {"id": 99, "name": "Empresa Fictícia"},
"unit": {"id": 99, "name": "Padrão"}
}
}]
Imagem de exemplo:
![](assets/images/features/interactivity-users.png)
1.3 Histórico de Interatividade (POST)
Cabeçalho:
- Content-Type:
application/json
- Token:
ExemploM2MC5uZXQuYnI6dGVzdA== Token de usuário e senha (Base64 => user:password)
Parâmetros:
- interactivityUser (opcional):
ID do usuário interativo
- phone (opcional):
número de telefone
- startDate:
Início da interatividade
- endDate:
Fim da interatividade
- orders:
Opção de ordenação
- orderType:
Tipo da ordenação (asc) ou (desc)
- initialRange:
Início do intervalo de busca
- finalRange:
Fim do intervalo de busca
Exemplo:
JSON da requisição:
{
"interactivityUser": 19692,
"phone": "5549991759978",
"startDate": "2021-09-01T00:00:00-03:00",
"endDate": "2021-09-30T23:59:59-03:00",
"orders": ["receiveTime", "phonenumber"],
"orderType": "asc",
"initialRange": 0,
"finalRange": 100
}
JSON da resposta:
[{
"interactivityMessageId": 0,
"message": "Message sent",
"profileName": 321654,
"phone": "5551999998888",
"replyMethod": "WHATSAPP" ,
"messageCategory": "ANSWER",
"attendant":{
"id": 5,
"account": "Empresa Fictícia",
"user":{
"id": 5,
"name": "Atendente",
"email": "atendente@box360.net.br",
"profile": {"id": 35, "name": "Atendente"}
}
},
"department":{
"id": 19,
"name": "Padrão",
"account": {"id": 99, "name": "Empresa Fictícia"},
"unit": {"id": 99, "name": "Padrão"}
},
"attendanceStatus": "ATTENDING"
}]
Parâmetros:
- replyMethod:
Tipo de resposta
- SMS:
SMS
- CHAT:
Web Chat
- FACEBOOK:
Facebook
- WHATSAPP:
WhatsApp Service
- PROVIDER:
WhatsApp Provider
- messageCategory:
Tipo da mensagem
- ANSWER:
Resposta do cleinte
- ATTENDANT:
Mensagem do atendente
- SYSTEM:
Mensagem automática do sistema
- PASSIVE_INTERACTIVITY:
Mensagem de interatividade do bot
- attendanceStatus:
Status do atendimento
- DISABLED:
Usuário atendido
- ENABLED:
Usuário na fila de atendimento
- ATTENDING:
Usuário em atendimento
Imagem de exemplo:
![](assets/images/features/interactivity-history.png)
1.4 Dados Gerais de Interatividade (POST)
Cabeçalho:
- Content-Type:
application/json
- Token:
ExemploM2MC5uZXQuYnI6dGVzdA== Token de usuário e senha (Base64 => user:password)
Parâmetros:
- startDate:
Início da interatividade
- endDate:
Fim da interatividade
Exemplo:
JSON da requisição:
{
"startDate": "2021-09-01T00:00:00",
"endDate": "2021-09-30T23:59:59"
}
JSON da resposta:
{
"attendedOnlyByBot": 2336,
"sentToQueue": 12,
"attendedByHuman": 321654,
"withoutAttended": 6,
"totalAttended": 2341
}
Parâmetros:
- attendedOnlyByBot:
Interação somente com o Bot
- sentToQueue:
Usuários enviados para a fila
- attendedByHuman:
Atendidos por um humanos
- withoutAttended:
Finalizados sem atendimento
- totalAttended:
Total de atendidos
Imagem de exemplo:
![](assets/images/features/flow-info.png)
1.5 Usuários Logados (GET)
Cabeçalho:
- Content-Type:
application/json
- Token:
ExemploM2MC5uZXQuYnI6dGVzdA== Token de usuário e senha (Base64 => user:password)
Exemplo:
JSON da resposta:
[{
"id": 2336,
"name": "User",
"email": "user@box360.net.br",
"account": {"id": 9999, "name": "Empresa Fictícia"},
"profile": {"id": 12,"name": "Atendente"}
}]
Imagem de exemplo:
![](assets/images/features/loggedin.png)
1.6 Mensagens Interativas (POST)
Cabeçalho:
- Content-Type:
application/json
- Token:
ExemploM2MC5uZXQuYnI6dGVzdA== Token de usuário e senha (Base64 => user:password)
Parâmetros:
- startDate:
Início da interatividade
- endDate:
Fim da interatividade
Exemplo:
JSON da requisição:
{
"startDate": "2021-10-18T00:00:00",
"endDate": "2021-10-18T23:59:59"
}
JSON da resposta:
[{
"messages":[{
"sentNumber": "555149991759999",
"receiveNumber": "555130229999",
"sendTime": 1634563523000,
"message": "Olá"
},{
"sentNumber": "555130229999",
"receiveNumber": "555149991759999",
"sendTime": 1634563523000,
"message": "Olá, como posso ser útil?"
}]
}]
Imagem de exemplo:
![](assets/images/features/interactivity-messages.png)