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âmetro

O 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 retorno

OBS: 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 ContactFilter

O 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