GetContacts


Descrição do serviço

Este serviço é responsável pela obtenção dos atendimentos realizados na Plataforma DT a partir de um filtro e campos do atendimento retornando um XML contendo tais atendimentos. Também é chamado informalmente de exportador de atendimentos.Parâmetros do serviço (entrada)

  • OpId = Nome da operação (usando método HTTP/GET)
  • Token = Código (fixo), de autenticação do usuário do serviço = XML contendo os campos dos atendimentos a serem retornados (vide cap. 2.1)
  • ContactFilter = XML contendo os filtros para seleção dos atendimentos (vide cap. 2.2)Para executar a operação, é necessário passar tais parâmetros usando o método HTTP/POST, para uma página chamada Default.aspx, como mostra o exemplo HTML abaixo :

<html>
<head>
<title>Teste Operação de Exportação de Atendimentos</title>
</head>
<body>
<form method="post"action="http://exemplo.directtalk.com.br/services/http/Default.aspx?OpId=Platform.Contact.GetContacts">
<b>Token:</b><br>
<input type="text" id="txtToken" name="Token"></input><br>
<b>Filtro de campos do atendimento (tipo XML) (parâmetro Fields):</b>
<br>
<textarea id="txt" name="Fields"></textarea><br>
<b>Filtro de registros (intervalo de atendimentos) (tipo XML) (parâmetro ContactFilter) :
</b>
<br>
<textarea id="txtContactFilter" name="ContactFilter"></textarea><br>
<input type="submit" value="Executar Operação GetContacts">
</form>
</body>
</html>
Token:Filtro de campos do atendimento (tipo XML) (parâmetro Fields):Filtro de registros (intervalo de atendimentos) (tipo XML) (parâmetro ContactFilter) : Descrição do parâmetroO parâmetro Fields é uma estrutura em XML que representa os campos que se deseja obter de um atendimento. Cada tag pode receber um valor true ou o false.* true = indica que o campo deve aparecer no XML de retorno* false = suprime o campo no XML de retornoOBS: Se uma tag for suprimida, assume-se valor false como padrão.Os campos ou conjuntos de dados de um atendimento possíveis de serem selecionados são:

Agents = Lista de dados dos operadores que realizaram o atendimento

Customers = Lista de dados dos clientes atendidos (chaves)

Classifications = Lista das classificações atribuídas ao atendimento (incluindo a estrutura da árvore das classificações atribuídas)

Classification

Forms = Lista de dados dos formulários de classificação

Process = Lista de dados dos processos do Workflow (NÃO IMPLEMENTADO)

Survey

Initial = Dados da pesquisa inicial

Contact = Lista de dados das pesquisas de meio

Final = Dados de pesquisa final

ContactDetail

Chat = Detalhes do atendimento feito no canal CHAT

Mail = Detalhes do atendimento feito no canal MAIL

Phone = Detalhes do atendimento feito no canal PHONE (NÃO IMPLEMENTADO)

ChatDetails

Dialog = Dados do diálogo do CHAT

MailDetails

Body = Dados do corpo do EMAIL

Attachments = Lista de anexos do EMAIL (NÃO IMPLEMENTADO)

Segue exemplo abaixo:<?xml version="1.0" encoding="utf-8" ?>
<Fields xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Agents>true</Agents>
<Customers>true</Customers>
<Classifications>true</Classifications>
<Classification>
<Forms>true</Forms>
<Processes>true</Processes>
</Classification>
<Survey>
<Initial>true</Initial>
<Contact>true</Contact>
<Final>true</Final>
</Survey>
<ContactDetail>
<Chat>true</Chat>
<Mail>true</Mail>
<Phone>true</Phone>
<ChatDetails>
<Dialog>true</Dialog>
</ChatDetails>
<MailDetails>
<Body>true</Body>
<Attachments>true</Attachments>
</MailDetails>
<PhoneDetails></PhoneDetails>
</ContactDetail>
</Fields>
Descrição do parâmetro ContactFilterO parâmetro ContactFilter representa os filtros possíveis para a seleção dos atendimentos a serem obtidos pelo serviço. Cada tag possui um tipo específico para reprentar cada campo sobre os quais são feitos os filtros para seleção.Os campos para seleção dos atendimentos são:

StartID = Identificação inicial a partir da qual os atendimentos são retornados

Quantity = Quantidade de atendimento a serem retornados a partir do StartID. Máximo de 10 atendimentos por consulta.

StartedBetween = Intervalo de datas baseado na data de início do atendimento

Initial = Data inicial do intervalo

Final = Data final do intervalo (NÃO IMPLEMENTADO)

FinishedBetween = Intervalo de datas baseado na data de finalização do atendimento

Initial = Data inicial do intervalo (NÃO IMPLEMENTADO)

Final = Data final do intervalo

Agent = Restringe os atendimentos pelos operadores que o realizaram

IDs = Lista de identificações dos operadores desejados

Channel = Restringe os atendimentos pelos canais de atendimento

IDs = Lista de identificações dos canais desejados

State = Restringe os atendimentos pelos estados (status)

IDs = Lista de identificações dos estados (status) desejados

OBS: Se uma tag for suprimida, assume-se que não haverá filtro pelo campo representado pela tag suprimida.Segue exemplo abaixo:<?xml version="1.0" encoding="utf-8" ?>
<ContactFilter xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<StartID>1</StartID>
<Quantity>10</Quantity>
<StartedBetween>
<Initial>008-01-31T00:00:00.000</Initial>
<Final>2008-01-31T00:00:00.000</Final>
</StartedBetween>
<FinishedBetween>
<Initial>2008-02-29T23:59:59.000</Initial>
<Final>2008-02-29T23:59:59.000</Final>
</FinishedBetween>
<Agent>
<IDs>
<ID>1</ID>
<ID>2</ID>
<ID>3</ID>
</IDs>
</Agent>
<Channel>
<IDs>
<ID>1</ID>
<ID>2</ID>
<ID>3</ID>
</IDs>
</Channel>
<State>
<IDs>
<ID>1</ID>
<ID>2</ID>
<ID>3</ID>
</IDs>
</State>
</ContactFilter>
Resposta do serviço (XML)Como resposta, a operação Platform.Contact.GetContacts oferece um XML sempre iniciado por uma TAG , quando a operação foi bem sucedida, ou uma TAG , em caso de falha, como mostram os exemplos abaixo:

  • Exemplo do XML de resposta em caso de falha

<rsp status="fail">
<err type="AutorizationError" code="0" msg="Token inválido."/>
</rsp>
Descrição detalhadas do campos aqui:

ArrayOfContact = Lista de atendimentos

Contact = Um Atendimento

ID = Identificador único do atendimento

ChannelContactID = Identificador do canal de atendimento

StartDate = Data/Hora do início do atendimento

FinalDate = Data/Hora do fim do atendimento

ContactDetail = TAG para que agrupa dados específicos de um canal de atendimento (no caso do exemplo abaixo, canal Chat)

xsi:type = Canal de Atendimento que pode ser: “Chat”, “Phone”, “Mail”, “ActivePhone”

CustomerName = Nome do cliente informado na pesquisa inicial, antes do atendimento

Browser = Nome do browser utilizado pelo cliente

Version = Versão do browser utilizado pelo cliente

Platform = Sistema operacional utilizado pelo cliente

SourceUrl = Origem da entrada no atendimento via Chat

State = Estado do atendimento

Date = Data/Hora de início do atendimento

IP = Endereço IP do cliente

Dialog = Diálogo do Chat entre cliente e operador

Messages = Lista das mensagens trocadas

Message = Dados da mensagem trocada

Description = Texto da mensagem

Agent = Informa ID, Nome e Status do operador

MessageSource = Informa a direção da mensagem, podendo ser “AGENT_TO_USER”, “USER_TO_AGENT”, “AGENT_TO_AGENT”, “SENDING_SURVEY”, “SENDING_URL”

Channel = Informa o ID e o Nome do canal de atendimento

DefaultForm = Dados do formulário padrão apresentado ao operador

ID = Identificador do formulário padrão

Name = Nome do formulário

Description = Descrição do formulário

Date = Data/Hora de preenchimento do formulário

Questions = Perguntas do formulário

Question = Pergunta do formulário

ID = Identificador da pergunta

Name = Texto da pergunta

Answer = Resposta da pergunta

ID = Identificador da resposta

Text = Texto da resposta

Type = Tipo da reposta

xsi:type = Pode conter “SingleLineText”, “MultipleLineText”, “SingleChoiceList”, “MultipleChoiceList”, “DateTime”, “Date”, “Time”

States = Lista de estados do atendimento

State = Estado do atendimento

ID = Identificador do estado

InitialDate = Data/Hora inicial do estado

FinalDate = Data/Hora final do estado

Description = Descrição do estado

Agents = Lista de operadores que atenderam o atendimento

Agent = Operador

ID = Identificador

Name = Nome

Status = Status

Areas = Lista de departamentos do atendimento

Area = Departamento

Site = Site do cliente

Exemplo do XML de resposta em caso de sucesso<?xml version="1.0" encoding="UTF-8"?>
<rsp status="ok">
<ArrayOfContact
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Contact>
<ID>10321</ID>
<ChannelContactID>10009675</ChannelContactID>
<StartDate>2008-01-01T08:03:45.197</StartDate>
<FinalDate>2008-01-01T08:10:21.067</FinalDate>
<ContactDetail xsi:type="q1:Chat">
<q1:CustomerName>João da Silva</q1:CustomerName>
<q1:CustomerIntegrationCode>XYZ-234235</q1:CustomerIntegrationCode>
<q1:Browser>Microsoft Internet Explorer</q1:Browser>
<q1:Version>4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2</q1:Version>
<q1:Platform>Win32</q1:Platform>
<q1:SourceUrl>Atendimento On Line</q1:SourceUrl>
<q1:State>1</q1:State>
<q1:Date>1/1/2008 08:03:45</q1:Date>
<q1:IP>219.66.11.47</q1:IP>
<q1:Dialog>
<q1:Messages>
<q1:Message>
<q1:Description>Bem-vindo ao atendimento on-line da Direct Talk. Em que posso ajudar?</q1:Description>
<q1:Agent ID="11" Name="Maria de Souza" Status="0" IntegrationID="401" />
<q1:MessageSource>AGENT_TO_USER</q1:MessageSource>
</q1:Message>
<q1:Message>
<q1:Description>Bom dia. eu gostaria de informações sobre a exportação de dados, você pode me ajudar ?</q1:Description>
<q1:Agent ID="11" Name="Maria de Souza" Status="0" IntegrationID="401"/>
<q1:MessageSource>USER_TO_AGENT</q1:MessageSource>
</q1:Message>
<q1:Message>
<q1:Description>Bom dia, o Sr. pode acessar a exportação de dados por meio de um acesso Internet.</q1:Description>
<q1:Agent ID="11" Name="Maria de Souza" Status="0" IntegrationID="401"/>
<q1:MessageSource>AGENT_TO_USER</q1:MessageSource>
</q1:Message>
<q1:Message>
<q1:Description>Ok, existe alguma restrição de segurança ?</q1:Description>
<q1:Agent ID="11" Name="Maria de Souza" Status="0" IntegrationID="401"/>
<q1:MessageSource>USER_TO_AGENT</q1:MessageSource>
</q1:Message>
<q1:Message>
<q1:Description>Sim, o sistema possui SSL e um Token único para acesso.</q1:Description>
<q1:Agent ID="11" Name="Maria de Souza" Status="0" IntegrationID="401"/>
<q1:MessageSource>AGENT_TO_USER</q1:MessageSource>
</q1:Message>
<q1:Message>
<q1:Description>Ok, obrigado. Bom dia.</q1:Description>
<q1:Agent ID="11" Name="Maria de Souza" Status="0" IntegrationID="401"/>
<q1:MessageSource>USER_TO_AGENT</q1:MessageSource>
</q1:Message>
<q1:Message>
<q1:Description>Posso auxiliar com mais alguma informação?</q1:Description>
<q1:Agent ID="11" Name="Maria de Souza" Status="0" IntegrationID="401"/>
<q1:MessageSource>AGENT_TO_USER</q1:MessageSource>
</q1:Message>
<q1:Message>
<q1:Description>Não obrigado, era só isso mesmo.</q1:Description>
<q1:Agent ID="11" Name="Maria de Souza" Status="0" IntegrationID="401"/>
<q1:MessageSource>USER_TO_AGENT</q1:MessageSource>
</q1:Message>
<q1:Message>
<q1:Description>A Direct Talk agradece seu contato.&lt;br&gt;&lt;br&gt;Após clicar em "Sair", aparecerá um formulário com uma breve pesquisa. Por gentileza, avalie o meu atendimento, para que a &lt;br&gt;Direct Talk possa aprimorar cada vez mais seus serviços.</q1:Description>
<q1:Agent ID="11" Name="Maria de Souza" Status="0" IntegrationID="401"/>
<q1:MessageSource>AGENT_TO_USER</q1:MessageSource>
</q1:Message>
<q1:Message>
<q1:Description>Envio de pesquisa.Encerramento</q1:Description>
<q1:Agent ID="11" Name="Maria de Souza" Status="0" IntegrationID="401"/>
<q1:MessageSource>SENDING_SURVEY</q1:MessageSource>
</q1:Message>
</q1:Messages>
</q1:Dialog>
</ContactDetail>
<Channel ID="1" Name="Interactive"/>
<DefaultForm>
<ID>1</ID>
<Name>Formulário Padrão</Name>
<Description/>
<Date>2008-01-01T08:10:21.067</Date>
<Questions>
<Question>
<ID>1</ID>
<Name>Descrição do atendimento:</Name>
<Answer>
<ID>6985</ID>
<Text>Cliente queria informações sobre o sistema de exportação de dados</Text>
<Type xsi:type="SingleLineText" />
</Answer>
</Question>
</Questions>
</DefaultForm>
<States>
<State xsi:type="Customer">
<ID>10</ID>
<InitialDate>2008-01-01T08:51:33.49</InitialDate>
<FinalDate xsi:nil="true" />
<Description>usuário terminou a conversa</Description>
</State>
</States>
<Agents>
<Agent ID="11" Name="Maria Aparecida de Souza" Status="0" IntegrationID="401"/>
</Agents>
<Areas>
<Area areaID="9" name="Departamento de Tecnologia" showTicketNumber="0">
<Site>
<ID>1</ID>
</Site>
</Area>
</Areas>
<Classifications>
<Classification>
<ID>239</ID>
<IntegrationID>0</IntegrationID>
<Name>Informação</Name>
<Classification>
<ID>282</ID>
<IntegrationID>0</IntegrationID>
<Name>Sistemas</Name>
<Classification>
<ID>315</ID>
<IntegrationID>0</IntegrationID>
<Name>Integração com outros sistemas</Name>
<Form>
<ID>60000350</ID>
<Name>VENDAS EMPRESAS</Name>
<Description/>
<Date>2008-01-01T08:51:33.49</Date>
<Questions>
<Question>
<ID>60001137</ID>
<Name>CONTRATO</Name>
<Answer>
<ID>186822866</ID>
<Text>CRTRl9383</Text>
</Answer>
</Question>
<Question>
<ID>60001142</ID>
<Name>SERVIÇO 1 (PRINCIPAL)</Name>
<Answer>
<ID>186822867</ID>
<Text>Comercial Suporte Telefônico (Turbo) </Text>
</Answer>
</Question>
<Question>
<ID>60001143</ID>
<Name>SERVIÇO 2</Name>
<Answer>
<ID>186822868</ID>
<Text/>
</Answer>
</Question>
</Questions>
</Form>
</Classification>
</Classification>
</Classification>
</Classifications>
<Customers>
<Customer>
<ID>9915</ID>
<keys>
<Key>
<ID>1</ID>
<Name>Interactive</Name>
<Value>10009676</Value>
<Description>Chave de sistema unica do Interactive</Description>
</Key>
<Key>
<ID>4</ID>
<Name>LOGIN</Name>
<Value>joao_silva_123</Value>
<Description>Login</Description>
</Key>
<Key>
<ID>22</ID>
<Name>TIPO_CLIENTE</Name>
<Value>Call Center</Value>
<Description>Cliente que fornece infraestrutura de atendimento</Description>
</Key>
<Key>
<ID>25</ID>
<Name>ASSUNTO</Name>
<Value>Exportação de dados</Value>
<Description>Exportação de dados de atendimento em XML</Description>
</Key>
</keys>
</Customer>
</Customers>
<Surveys>
<Survey xsi:type="Initial">
<ID>10000001</ID>
<Name>Pesquisa Inicial</Name>
<Date>2008-01-01T08:44:58.007</Date>
<Questions />
</Survey>
<Survey xsi:type="Final">
<ID>10000000</ID>
<Name>Encerramento</Name>
<Date>2008-01-01T08:52:41.003</Date>
<Questions>
<Question>
<ID>10000007</ID>
<Name>Esclarecimento da dúvida/Solução do problema:</Name>
<Answer>
<ID>10000001</ID>
<Text>Bom</Text>
<Type xsi:type="MultipleLineText"/>
</Answer>
</Question>
<Question>
<ID>10000008</ID>
<Name>Tempo total do atendimento:</Name>
<Answer>
<ID>10000005</ID>
<Text>Razoável</Text>
<Type xsi:type="MultipleLineText"/>
</Answer>
</Question>
<Question>
<ID>10000009</ID>
<Name>Nível de conhecimento do atendente:</Name>
<Answer>
<ID>10000010</ID>
<Text>Ótimo</Text>
<Type xsi:type="MultipleLineText"/>
</Answer>
</Question>
<Question>
<ID>10000011</ID>
<Name>Avaliação geral deste atendimento:</Name>
<Answer>
<ID>10000018</ID>
<Text>Bom</Text>
<Type xsi:type="MultipleLineText"/>
</Answer>
</Question>
<Question>
<ID>10000012</ID>
<Name>Utilizará este canal novamente se precisar:</Name>
<Answer>
<ID>10000022</ID>
<Text>Sim</Text>
<Type xsi:type="MultipleLineText"/>
</Answer>
</Question>
</Questions>
</Survey>
</Surveys>
</Contact>
<Contact>
<ID>10321</ID>
<ChannelContactID>10009675</ChannelContactID>
<StartDate>2008-01-01T08:03:45.197</StartDate>
<FinalDate>2008-01-01T08:10:21.067</FinalDate>
<ContactDetail
xmlns="DT.Server.Communication.Model.Platform.GetContacts.Contact" xsi:type="q1:Mail"
xmlns:q1="DT.Server.Communication.Model.Platform.GetContacts.Contact.Detail.Mail">
<q1:Dialog>
<q1:Messages>
<q1:Message>
<q1:Description>
MENSAGEM DO EMAIL
</q1:Description>
<q1:MessageSource>USER_TO_AGENT</q1:MessageSource>
</q1:Message>
<q1:Message>
<q1:Description>
RESPOSTA DA MENSAGEM
</q1:Description>
<q1:MessageSource>AGENT_TO_USER</q1:MessageSource>
</q1:Message>
</q1:Messages>
</q1:Dialog>
</ContactDetail>
</Contact>
</ArrayOfContact>
</rsp>
State (Status dos atendimentos)

id estado canal
1 aberto – não atribuído a um operador Mail Manager
2 aberto – atribuído a um operador Mail Manager
3 respondido Mail Manager
4 aberto – não atribuído a um operador Mail Manager
5 aberto – não atribuído a um operador Mail Manager
6 excluídos Mail Manager
7 chat não iniciado Interactive
8 chat não iniciado – usuário na fila Interactive
9 chat em andamento Interactive
10 usuário terminou a conversa Interactive
11 desconectado pelo operador Interactive
12 timeout de reload Interactive
13 timeout de mensagem Interactive
14 Desconectado pelo Sistema Interactive
15 timeout de usuário na fila de espera Interactive
16 logout da fila de espera Interactive
17 fechado Interactive
18 fechado Interactive
19 fechado Interactive
20 chamada em andamento Phone
21 chamada finalizada Phone
22 respondido Mail Manager
23 aberto – atribuído a um especialista Mail Manager
24 aberto – não atribuído a um operador Mail Manager
25 Usuário deslogado durante escolha de operador por não haver mais operadores logados Interactive
26 Usuário requisitou callback Interactive
27 Usuário que requisitou callback já contatado via e-mail Interactive
28 Estado inicial do auto atendimento eService
29 Usuário não conseguiu entrar pois a fila estava lotada Interactive
30 chamada em andamento Phone Ativo
31 chamada finalizada Phone Ativo