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:

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:

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:

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:

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: