API de Extração de Dados (Data Extract API)
A Data Extract API permite exportar dados completos dos seus tickets direto da sua conta no CloudChat, com datas,
status, responsáveis, tempos de resposta e muito mais. Ideal para relatórios personalizados e integrações externas.
Requisição base:
curl --location 'https://{CLOUDCHAT_DOMAIN}/api/v2/accounts/{ACCOUNT_ID}/data_extracts?startDate=2025-03-27T01:58:59&endDate=2025-03-28T01:59:00&type=BASE_TICKET_METRICS' \
--header 'Accept: application/json' \
--header 'api_access_token: {API_TOKEN}'
O que você precisa substituir:
1. {CLOUDCHAT_DOMAIN}: seu domínio CloudChat (ex: app.cloudchat.cloudhumans.com)
2. {ACCOUNT_ID}: ID da conta
3. {API_TOKEN}: token de acesso gerado no perfil de um administrador ou supervisor
Como obter essas informações?
{CLOUDCHAT_DOMAIN} - Você pode obter seu domínio ao fazer login na sua conta no CloudChat. É a parte que aparece na URL
do navegador, por exemplo:
{ACCOUNT_ID} - Após o login, verifique a URL da sua dashboard inicial. O ID da conta aparece na URL como:
app/accounts/1/dashboard. Encontrado na URL do seu Cloud Chat, após "accounts"; ex.:
https://cloudchat.cloudhumans.com/app/accounts/**1**/conversations/6341 (nesse caso, o account_id é 1)
{API_TOKEN} - O token de API deve ser gerado a partir do perfil de um usuário com permissão de administrador ou
supervisor (na configuração de perfil):
Quais parâmetros são obrigatórios?
Ao fazer a requisição para a API, você deve informar os seguintes parâmetros:
- startDate:
Data e hora de início da extração.
Formato esperado: yyyy-MM-ddTHH:mm:ss
Exemplo: 2025-03-27T01:58:59
- endDate:
Data e hora de término da extração.
Deve ser posterior ao startDate e o intervalo entre as duas datas não pode ultrapassar 5 dias (120 horas).
Exemplo: 2025-03-28T01:59:00
- type:
O tipo de dados que deseja exportar.
Tipos disponíveis:
BASE_TICKET_METRICS, TICKET_METRICS_WITH_AGENT_INFORMATION, TICKET_SUMMARY, CAMPAIGN_DELIVERY_EVENTS
- account_id:
ID da sua conta no CloudChat.
Esse valor é informado no caminho da URL (ex: /accounts/1/data_extracts, onde o ID da conta é 1).
Observação sobre o intervalo de datas
Para garantir estabilidade e performance, o intervalo máximo permitido por requisição é de 5 dias.
Se você deseja exportar dados de um período maior (por exemplo, 30 dias), é possível dividir a consulta em múltiplas
requisições.
Exemplo: Para extrair dados de um mês completo, você pode fazer 6 requisições consecutivas com intervalos de até 5 dias
cada, variando o startDate e endDate de acordo com o período desejado.
Tipos de extração disponíveis via API
A Data Extract API agora suporta os seguintes valores para o parâmetro type:
- BASE_TICKET_METRICS
- TICKET_METRICS_WITH_AGENT_INFORMATION
- TICKET_SUMMARY
- CAMPAIGN_DELIVERY_EVENTS (novo)
1. BASE_TICKET_METRICS
Retorna dados básicos dos tickets, como:
- ticketId: identificador interno e único do ticket
- displayTicketId: ID visível na interface (o número do ticket que aparece na URL)
- inboxId: ID da caixa de entrada usada
- accountId e accountName: ID e nome da sua conta no Cloud Chat
- ticketStatus: status do ticket (ex: resolved, open, pendente)
- teamName: Nome do time atribuído ao ticket
- ticketPriorityName: Prioridade atribuída ao ticket (ex: low, mediu, high, urgent)
- ticketType: é a primeira tag colocada no ticket
- inboxName: nome da Inbox usada
- ticketTitle: título do ticket: uma concatenação do título do ticket (quando existir, pra email, por exemplo),
telefone do contato e nome do contato
- channel: canal usado (ex: WhatsApp, e-mail)
- createdAt: timestamp de criação do ticket
- firstReplyAt: timestamp da primeira resposta
- firstReplyTime: tempo até a primeira resposta (em minutos)
- resolvedAt: timestamp de resolução (se o ticket foi reaberto e, portanto, contém mais de uma resolução, é
considerado a última data de resolução)
- totalResolutionTimeMin: tempo total de resolução (em minutos)
- tags: tags associadas ao ticket
- agentId, ticketOwner e ticketOwnerEmail: ID, nome e email do agente responsável
- contactId, contactName, contactEmail, contactPhone ID, nome do contato, email do contato e telefone do contato
(cliente que abriu o ticket)
⚠️ IMPORTANTE: o timestamp é o que você definiu na configuração da conta (link da FAQ de como definir o timestamp / fuso
horário aqui). Caso não tenha feito, o timestamp será em UTC
Exemplo de resposta:
[
{
"ticketId": 123456,
"displayTicketId": 7890,
"inboxId": 101,
"accountId": 42,
"accountName": "Minha Empresa",
"ticketStatus": "resolved",
"teamName": "Meu Time",
"ticketPriorityName": "High",
"ticketType": "suporte",
"inboxName": "WhatsApp",
"ticketTitle": "+5511999999999",
"channel": "Whatsapp",
"createdAt": "2025-03-27T09:53:14.791Z",
"firstReplyAt": "2025-03-27T10:09:29.225Z",
"firstReplyTime": 16.24,
"resolvedAt": "2025-03-27T13:20:15.830Z",
"totalResolutionTimeMin": 207.01,
"tags": "suporte,prioridade_alta",
"agentId": 42,
"ticketOwner": "ClaudIA",
"ticketOwnerEmail": "[email protected]",
"contactId": 998877,
"contactName": "Contact Name",
"contactEmail": "[email protected]",
"contactPhone": "+5511887774411"
}
]
2. TICKET_METRICS_WITH_AGENT_INFORMATION
Inclui os dados com detalhes sobre o agente que respondeu e resolveu, como:
- ticketId: identificador interno e único do ticket
- displayTicketId: ID visível na interface (o número do ticket que aparece na URL)
- accountName: ID e nome da sua conta no Cloud Chat
- inboxName: nome da Inbox usada
- ticketLink: link do ticket para abrir diretamente ele no Cloud Chat
- agentOnResolutionId, agentOnResolutionName e agentOnResolutionEmail: ID, nome e email do agente humano que resolveu
o ticket
- firstAgentReplyId, firstAgentReplyName, firstAgentReplyEmail: ID, nome e email do agente humano que respondeu
primeiro
- firstAgentAssignmentTime: timestamp da atribuição ao primeiro agente humano a entrar no ticket
- firstAgentFirstReplyTime: timestamp da primeira resposta do primeiro agente humano a entrar no ticket
- firstReplierAgentAssignmentTime : timestamp da atribuição do agente humano que primeiro respondeu o ticket
- firstReplierAgentFirstReplyTime : tempo de primeira resposta humana ao ticket(caso o primeiro agente humano
atribuído não responda o ticket, esse dado será diferente ao firstAgentFirstReplyTime)
- firstAgentReplyTimeMin: tempo até a primeira resposta do primeiro agente humano a entrar no ticket desde sua
atribuição (minutos)
- firstAgentResolutionTimeMin: tempo entre a abertura do ticket até a última resolução do ticket (minutos)
- csatScore e csatFeedback: avaliação (nota) de satisfação do cliente (CSAT) e comentário do CSAT (se houver)
- contactCustomFields: campos personalizados do contato (JSON)
- conversationCustomFields: campos personalizados da conversa (JSON)
- conversationAdditionalFields: outros campos complementares que podem ou não vir no canal que o cliente entrou
(JSON). Esse campo vêm preenchido se:
- O canal é passível de passar essa informação
- O cliente habilitou para passar essa informação no canal
Exemplo de resposta:
[
{
"ticketId": 11111,
"displayTicketId": 11111,
"accountName": "account name",
"inboxName": "WhatsApp",
"ticketLink": "https://cloudchat.cloudhumans.com/app/accounts/99999/conversations/11111",
"ticketStatus": "resolved",
"createdAt": "2025-03-27T13:00:40.897954",
"resolvedAt": "2025-03-27T15:38:02.743726",
"agentOnResolutionId": 225,
"agentOnResolutionName": "ClaudIA",
"agentOnResolutionEmail": "[email protected]",
"firstAgentReplyId": 111,
"firstAgentReplyName": "ClaudIA",
"firstAgentReplyEmail": "[email protected]",
"firstAgentAssignmentTime": "2025-03-27T13:16:13.001269",
"firstAgentFirstReplyTime": "2025-03-27T13:17:01.344971",
"firstAgentReplyTimeMin": 0.81,
"firstAgentResolutionTimeMin": 141.83,
"csatScore": null,
"csatFeedback": "",
"contactCustomFields": "{}",
"conversationCustomFields": "{}",
"conversationAdditionalFields": "{}"
}
]
⚠️ Importante:
1. firstAgentReplyTimeMin — Calculado como o tempo entre o momento de atribuição do primeiro agente do ticket
(firstAgentAssignmentTime) até sua primeira resposta (firstAgentFirstReplyTime).
2. firstAgentResolutionTimeMin — Calculado como o tempo entre a atribuição do primeiro agente do ticket
(firstAgentAssignmentTime) até o momento em que o ticket foi resolvido (resolvedAt).
3. TICKET_SUMMARY
Retorna um resumo textual (é a conversa inteira) da conversa dentro do ticket. Inclui ticketId, displayTicketId,
ticketLink e summary.
Exemplo de resposta:
[
{
"ticketId": 1111,
"displayTicketId": 1111,
"ticketLink": "https://cloudchat.cloudhumans.com/app/accounts/99999/conversations/1111",
"summary": "CONTATO: Oi\nUSUÁRIO: Olá!"
}
]
4. CAMPAIGN_DELIVERY_EVENTS
Retorna eventos de entrega de campanhas do WhatsApp no CloudChat, centralizando e rastreando, por contato e campanha, o
status de mensagens enviadas.
O objetivo é consolidar em um único ponto dados de eventos de campanha como envio, recebimento, leitura, resposta e
erros.
Campos retornados:
- id: Identificador único do evento de entrega da campanha
- campaignId: ID da campanha
- campaignTitle: Título da campanha
- audience: Nome do público da campanha
- contactId: ID do contato
- contactName: Nome do contato
- contactEmail: E-mail do contato
- contactPhoneNumber: Número de telefone do contato
- ticketId: ID interno do ticket vinculado
- displayTicketId: ID visível do ticket (exibido na URL da conversa / ticket)
- messageSent: Indica se a mensagem foi enviada com sucesso para a API do WhatsApp (Meta)
- sentAt: Data/hora em que a mensagem foi efetivamente enviada para a API do WhatsApp
- messageReceived: Indica se o WhatsApp confirmou que a mensagem foi entregue ao dispositivo do contato
- receivedAt: Data/hora em que a confirmação de entrega foi recebida
- messageRead: Indica se o WhatsApp confirmou que a mensagem foi lida pelo contato.
⚠ Esse evento só será registrado se o contato tiver o status de leitura habilitado nas configurações de privacidade
do WhatsApp
- readAt: Data/hora em que a confirmação de leitura foi recebida (ou null caso não tenha ocorrido)
- messageReplied: Indica se o contato enviou alguma resposta após receber a mensagem da campanha
- repliedAt: Data/hora em que a primeira resposta foi registrada
- error: Mensagem de erro retornada, caso o envio não tenha sido realizado ou tenha falhado em alguma etapa (por
exemplo: número inválido, contato sem WhatsApp, bloqueio, etc.)
- createdAt: Data/hora de criação do registro na base de dados do CloudChat
- updatedAt: Data/hora da última atualização do registro (por exemplo, quando novos eventos de entrega ou leitura
foram recebidos)
Exemplo de resposta:
[
{
"id": 103,
"campaignId": 5502,
"campaignTitle": "Natal 2025 - Promoção Especial",
"audience": "lista_fidelidade_natal",
"contactId": 9003,
"contactName": "Carla Souza",
"contactEmail": "[email protected]",
"contactPhoneNumber": "+55 31 99999-99999",
"ticketId": 78414,
"displayTicketId": "2027",
"messageSent": false,
"sentAt": null,
"messageReceived": false,
"receivedAt": null,
"messageRead": false,
"readAt": null,
"messageReplied": false,
"repliedAt": null,
"error": "Número de telefone inválido ou não registrado no WhatsApp",
"createdAt": "2025-12-10T09:00:00.000Z",
"updatedAt": "2025-12-10T09:00:00.000Z"
}
]