API REST v1

Documentação da API REST

Integre o DeskPrime a qualquer sistema. Autenticação via Bearer Token, respostas em JSON.

REST Bearer Token JSON Webhooks
Como usar esta documentação

Para obter seu token de API, crie uma conta no DeskPrime e acesse Administração → Configurações da Conta → API para criar um novo token. Substitua SEU_TOKEN_AQUI pelo token gerado e https://suaempresa.deskprime.app pela URL da sua instância.

Autenticação

A API do DeskPrime utiliza autenticação via Bearer Token. Todas as requisições devem incluir o header Authorization com o token gerado no painel.

Como obter seu token
  1. Acesse seu painel DeskPrime em https://suaempresa.deskprime.app
  2. Vá em Configurações → API Tokens
  3. Clique em Gerar Token
  4. Escolha o nome e a permissão (Leitura ou Leitura e Escrita)
  5. Copie o token gerado — ele não será exibido novamente
Usando o token nas requisições

Inclua o header em todas as requisições:

Authorization: Bearer SEU_TOKEN_AQUI
Content-Type: application/json
curl -X GET https://suaempresa.deskprime.app/api/v1/tickets/ \
  -H "Authorization: Bearer SEU_TOKEN_AQUI" \
  -H "Content-Type: application/json"
import requests

headers = {
    "Authorization": "Bearer SEU_TOKEN_AQUI",
    "Content-Type": "application/json"
}

response = requests.get(
    "https://suaempresa.deskprime.app/api/v1/tickets/",
    headers=headers
)
print(response.json())
const axios = require('axios');

const api = axios.create({
  baseURL: 'https://suaempresa.deskprime.app',
  headers: { Authorization: 'Bearer SEU_TOKEN_AQUI' }
});

api.get('/api/v1/tickets/')
  .then(res => console.log(res.data));
using System.Net.Http;
using System.Net.Http.Headers;

using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
    new AuthenticationHeaderValue("Bearer", "SEU_TOKEN_AQUI");

var res = await client.GetAsync(
    "https://suaempresa.deskprime.app/api/v1/tickets/");
Console.WriteLine(await res.Content.ReadAsStringAsync());
Níveis de Permissão
PermissãoGETPOSTPUT/PATCHDELETE
Leitura
Leitura e Escrita
Segurança: Nunca exponha seu token em código público ou repositórios. Trate-o como uma senha. Tokens podem ser revogados a qualquer momento no painel.
Endpoints Disponíveis

Todos os endpoints são prefixados com https://suaempresa.deskprime.app/api/v1/

MétodoEndpointDescriçãoPermissão
GET/api/v1/Informações da API e usuário autenticadoLeitura
GET/api/v1/me/Dados do usuário autenticadoLeitura
GET/api/v1/tickets/Lista todos os tickets (com filtros)Leitura
POST/api/v1/tickets/Cria um novo ticketEscrita
GET/api/v1/tickets/{id}/Detalhes de um ticket específicoLeitura
PATCH/api/v1/tickets/{id}/Atualiza campos de um ticketEscrita
GET/api/v1/tickets/{id}/comentarios/Lista comentários de um ticketLeitura
POST/api/v1/tickets/{id}/comentarios/Adiciona comentário a um ticketEscrita
GET/api/v1/usuarios/Lista usuários da empresaLeitura
GET/api/v1/categorias/Lista categorias disponíveisLeitura
GET/api/v1/artigos/Lista artigos da base de conhecimentoLeitura
GET/api/v1/artigos/{id}/Detalhes de um artigoLeitura
Ativos e Inventário
GET/api/v1/ativos/Lista ativos de TILeitura
GET/api/v1/ativos/{id}/Detalhes de um ativoLeitura
POST/api/v1/ativos/heartbeat/Heartbeat do agente de inventárioEscrita
Telefonia e CTI
GET/api/v1/telefonia/chamadas/Lista histórico de chamadasLeitura
GET/api/v1/telefonia/contatos/search/Busca contatos por númeroLeitura
POST/api/v1/telefonia/webhook/yeastar/{id}/Webhook para PABX YeastarEscrita
POST/api/v1/telefonia/webhook/3cx/{id}/Webhook para PABX 3CXEscrita
Omnichannel (WhatsApp)
GET/chat/api/lista-conversas/Lista conversas ativasLeitura
POST/chat/api/conversa/{id}/enviar/Envia mensagem de textoEscrita
POST/chat/api/conversa/{id}/finalizar/Finaliza uma conversaEscrita
POST/chat/api/conversa/{id}/transferir/Transfere conversa para outro agenteEscrita
Dashboard TV
GET/dashboard/api/publico/{token}/Dados em tempo real para TVLeitura
Tickets
GET /api/v1/tickets/ — Listar Tickets

Retorna uma lista paginada de tickets. Suporta os seguintes filtros via query string:

ParâmetroTipoDescriçãoExemplo
statusstringFiltrar por statusaberto, em_andamento, resolvido, fechado
prioridadestringFiltrar por prioridadebaixa, media, alta, critica
categoria_idintegerFiltrar por categoria5
atribuido_a_idintegerFiltrar por agente responsável12
qstringBusca por título ou descriçãoservidor+fora
pageintegerPágina (padrão: 1)2
page_sizeintegerItens por página (padrão: 20, máx: 100)50
Ver exemplo de resposta
{
  "tickets": [
    {
      "id": 42,
      "numero": "SD-0042",
      "titulo": "Servidor fora do ar",
      "status": "aberto",
      "prioridade": "critica",
      "tipo": "incidente",
      "categoria": { "id": 3, "nome": "Infraestrutura" },
      "solicitante": { "id": 7, "nome": "João Silva", "email": "[email protected]" },
      "atribuido_a": null,
      "equipe": { "id": 2, "nome": "Infraestrutura" },
      "criado_em": "2026-03-13T10:30:00Z",
      "atualizado_em": "2026-03-13T10:30:00Z",
      "prazo": "2026-03-13T12:30:00Z",
      "resolvido_em": null,
      "sla": { "primeira_resposta_em": null },
      "avaliacao": null
    }
  ],
  "total": 1,
  "pagina": 1,
  "total_paginas": 1
}

POST /api/v1/tickets/ — Criar Ticket

Cria um novo ticket. Requer permissão de Escrita.

Campos do Body (JSON)
CampoTipoObrigatórioDescrição
titulostring✅ SimTítulo do ticket (máx. 255 caracteres)
descricaostring✅ SimDescrição detalhada do problema
prioridadestringNãobaixa, media (padrão), alta, critica
tipostringNãoincidente (padrão), requisicao, problema, mudanca
categoria_idintegerNãoID da categoria (use GET /api/v1/categorias/)
email_solicitantestringNãoE-mail do solicitante (cria usuário se não existir)
nome_solicitantestringNãoNome do solicitante (usado ao criar novo usuário)
empresa_cliente_idintegerNãoID da empresa cliente
empresa_tokenstringNãoToken de integração da empresa cliente. Identifica a empresa e atribui o ticket ao usuário de sistema automaticamente. Recomendado para integrações com RMM.
Exemplo de requisição
curl -X POST https://suaempresa.deskprime.app/api/v1/tickets/ \
  -H "Authorization: Bearer SEU_TOKEN_AQUI" \
  -H "Content-Type: application/json" \
  -d '{
    "titulo": "Servidor fora do ar",
    "descricao": "O servidor principal está inacessível.",
    "prioridade": "critica",
    "categoria_id": 3,
    "solicitante_email": "[email protected]"
  }'
import requests

headers = {
    "Authorization": "Bearer SEU_TOKEN_AQUI",
    "Content-Type": "application/json"
}

payload = {
    "titulo": "Servidor fora do ar",
    "descricao": "O servidor principal está inacessível.",
    "prioridade": "critica",
    "categoria_id": 3,
    "solicitante_email": "[email protected]"
}

response = requests.post(
    "https://suaempresa.deskprime.app/api/v1/tickets/",
    json=payload, headers=headers
)
print(response.json())
const axios = require('axios');

axios.post(
  'https://suaempresa.deskprime.app/api/v1/tickets/',
  {
    titulo: 'Servidor fora do ar',
    descricao: 'O servidor principal está inacessível.',
    prioridade: 'critica',
    categoria_id: 3,
    solicitante_email: '[email protected]'
  },
  { headers: { Authorization: 'Bearer SEU_TOKEN_AQUI' } }
).then(res => console.log(res.data));
 'Servidor fora do ar',
    'descricao' => 'O servidor principal está inacessível.',
    'prioridade' => 'critica',
    'categoria_id' => 3,
    'solicitante_email' => '[email protected]'
]);

$ch = curl_init('https://suaempresa.deskprime.app/api/v1/tickets/');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer SEU_TOKEN_AQUI',
    'Content-Type: application/json'
]);
$ticket = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($ticket);
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Text.Json;

using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
    new AuthenticationHeaderValue("Bearer", "SEU_TOKEN_AQUI");

var payload = new {
    titulo = "Servidor fora do ar",
    descricao = "O servidor principal está inacessível.",
    prioridade = "critica",
    categoria_id = 3,
    solicitante_email = "[email protected]"
};
var json2 = JsonSerializer.Serialize(payload);
var body = new StringContent(json2, Encoding.UTF8, "application/json");

var res = await client.PostAsync(
    "https://suaempresa.deskprime.app/api/v1/tickets/", body);
Console.WriteLine(await res.Content.ReadAsStringAsync());
Resposta de sucesso (HTTP 201)
{
  "id": 42,
  "numero": "SD-0042",
  "titulo": "Servidor fora do ar",
  "status": "aberto",
  "prioridade": "critica",
  "criado_em": "2026-03-13T10:30:00Z"
}
Comentários
POST /api/v1/tickets/{id}/comentarios/ — Adicionar Comentário

Adiciona um comentário a um ticket existente.

CampoTipoObrigatórioDescrição
textostring✅ SimConteúdo do comentário
internobooleanNãoSe true, comentário interno (não visível ao cliente). Padrão: false
curl -X POST https://suaempresa.deskprime.app/api/v1/tickets/42/comentarios/ \
  -H "Authorization: Bearer SEU_TOKEN_AQUI" \
  -H "Content-Type: application/json" \
  -d '{"texto": "Iniciando investigação do servidor.", "interno": false}'
import requests

headers = {
    "Authorization": "Bearer SEU_TOKEN_AQUI",
    "Content-Type": "application/json"
}

payload = {
    "texto": "Iniciando investigação do servidor.",
    "interno": False  # True = nota interna
}

response = requests.post(
    "https://suaempresa.deskprime.app/api/v1/tickets/42/comentarios/",
    json=payload, headers=headers
)
print(response.json())
const axios = require('axios');

axios.post(
  'https://suaempresa.deskprime.app/api/v1/tickets/42/comentarios/',
  { texto: 'Iniciando investigação do servidor.', interno: false },
  { headers: { Authorization: 'Bearer SEU_TOKEN_AQUI' } }
).then(res => console.log(res.data));
 'Iniciando investigação do servidor.',
    'interno' => false
]);

$ch = curl_init('https://suaempresa.deskprime.app/api/v1/tickets/42/comentarios/');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $payload);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'Authorization: Bearer SEU_TOKEN_AQUI',
    'Content-Type: application/json'
]);
$res = json_decode(curl_exec($ch), true);
curl_close($ch);
print_r($res);
using System.Net.Http;
using System.Net.Http.Headers;
using System.Text;
using System.Text.Json;

using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
    new AuthenticationHeaderValue("Bearer", "SEU_TOKEN_AQUI");

var payload = new { texto = "Iniciando investigação do servidor.", interno = false };
var body = new StringContent(JsonSerializer.Serialize(payload), Encoding.UTF8, "application/json");

var res = await client.PostAsync(
    "https://suaempresa.deskprime.app/api/v1/tickets/42/comentarios/", body);
Console.WriteLine(await res.Content.ReadAsStringAsync());
Categorias
GET /api/v1/categorias/ — Listar Categorias

Retorna todas as categorias disponíveis para uso ao criar tickets.

curl -X GET https://suaempresa.deskprime.app/api/v1/categorias/ \
  -H "Authorization: Bearer SEU_TOKEN_AQUI"
import requests

headers = {"Authorization": "Bearer SEU_TOKEN_AQUI"}
response = requests.get(
    "https://suaempresa.deskprime.app/api/v1/categorias/",
    headers=headers
)
for cat in response.json()["categorias"]:
    print(f"{cat['id']} - {cat['nome']}")
const axios = require('axios');

axios.get(
  'https://suaempresa.deskprime.app/api/v1/categorias/',
  { headers: { Authorization: 'Bearer SEU_TOKEN_AQUI' } }
).then(res => console.log(res.data.categorias));
using System.Net.Http;
using System.Net.Http.Headers;

using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
    new AuthenticationHeaderValue("Bearer", "SEU_TOKEN_AQUI");

var res = await client.GetAsync(
    "https://suaempresa.deskprime.app/api/v1/categorias/");
Console.WriteLine(await res.Content.ReadAsStringAsync());
Ver exemplo de resposta
{
  "categorias": [
    { "id": 1, "nome": "Suporte Geral", "descricao": "" },
    { "id": 2, "nome": "Infraestrutura", "descricao": "Servidores e redes" },
    { "id": 3, "nome": "Software", "descricao": "Instalações e configurações" }
  ]
}
Usuários
GET /api/v1/usuarios/ — Listar Usuários

Retorna os usuários (agentes e admins) da empresa.

curl -X GET https://suaempresa.deskprime.app/api/v1/usuarios/ \
  -H "Authorization: Bearer SEU_TOKEN_AQUI"
import requests

headers = {"Authorization": "Bearer SEU_TOKEN_AQUI"}
response = requests.get(
    "https://suaempresa.deskprime.app/api/v1/usuarios/",
    headers=headers
)
for user in response.json()["usuarios"]:
    print(f"{user['id']} - {user['nome']} ({user['email']})")
const axios = require('axios');

axios.get(
  'https://suaempresa.deskprime.app/api/v1/usuarios/',
  { headers: { Authorization: 'Bearer SEU_TOKEN_AQUI' } }
).then(res => console.log(res.data.usuarios));
using System.Net.Http;
using System.Net.Http.Headers;

using var client = new HttpClient();
client.DefaultRequestHeaders.Authorization =
    new AuthenticationHeaderValue("Bearer", "SEU_TOKEN_AQUI");

var res = await client.GetAsync(
    "https://suaempresa.deskprime.app/api/v1/usuarios/");
Console.WriteLine(await res.Content.ReadAsStringAsync());
GET /api/v1/me/ — Usuário Autenticado

Retorna os dados do usuário dono do token utilizado.

curl -X GET https://suaempresa.deskprime.app/api/v1/me/   -H "Authorization: Bearer SEU_TOKEN_AQUI"
Webhooks (Integração de Entrada)

Além da API REST, o DeskPrime aceita criação de tickets via HTTP POST direto no endpoint de tickets. Isso permite que qualquer sistema externo crie tickets automaticamente ao disparar um evento.

Endpoint de Webhook
POST https://suaempresa.deskprime.app/api/v1/tickets/
Authorization: Bearer SEU_TOKEN_AQUI
Content-Type: application/json
Payload Mínimo
{
  "titulo": "Alerta: CPU acima de 90% no servidor-01",
  "descricao": "CPU atingiu 95% às 14:32. Servidor: servidor-01.",
  "prioridade": "alta"
}
Payload Completo
{
  "titulo": "Alerta: CPU acima de 90% no servidor-01",
  "descricao": "CPU atingiu 95% às 14:32. Servidor: servidor-01.",
  "prioridade": "alta",
  "tipo": "incidente",
  "categoria_id": 2,
  "email_solicitante": "[email protected]",
  "nome_solicitante": "Sistema de Monitoramento"
}
Dica: Use tokens com permissão de Escrita para webhooks que criam tickets. Tokens de Leitura retornarão erro 403.
Códigos de Erro
Código HTTPSignificadoCausa comum
200 / 201SucessoRequisição processada com sucesso
400Bad RequestCampos obrigatórios ausentes ou inválidos
401UnauthorizedToken ausente, inválido ou expirado
403ForbiddenToken sem permissão de escrita
404Not FoundRecurso não encontrado (ticket, categoria, etc.)
500Server ErrorErro interno — entre em contato com o suporte
Formato de Resposta de Erro
{
  "erro": "Dados inválidos.",
  "detalhes": {
    "titulo": "Campo obrigatório.",
    "descricao": "Campo obrigatório."
  }
}
<-- Buscar em todos os CHANGELOG -->

▶ Playground

Teste a API diretamente nesta página. Cole seu token e a URL da sua instância para fazer chamadas reais sem sair da documentação.

API Playground LIVE

As requisições são feitas diretamente do seu navegador para a sua instância do DeskPrime.

📋 Changelog da API

Histórico de versões e alterações da API REST do DeskPrime.

v1.5.0 Maio 2026 Major
  • Novo: Endpoints de Ativos e Inventário (Heartbeat)
  • Novo: Endpoints de Telefonia e Webhooks (Yeastar, 3CX)
  • Novo: Endpoints do Omnichannel (WhatsApp, Transferência, Finalização)
  • Novo: Endpoints do MyNow (CAB, Mudanças, Recomendações IA)
  • Novo: Endpoint público para Dashboard TV
  • Atualização: Documentação de integração com Meta Cloud API
v1.4.0 Março 2026 Major
  • Novo: Endpoint /api/v1/tickets/{id}/comentarios/ para comentários e notas internas via API
  • Novo: Parâmetro interno (boolean) para notas internas
  • Novo: Filtro solicitante_email na listagem de tickets
  • Novo: Endpoint /api/v1/usuarios/me/ para consultar o usuário autenticado
  • Melhoria: Respostas de erro incluem campo detail em português
v1.3.0 Janeiro 2026 Minor
  • Novo: Webhook de entrada via POST /api/v1/webhook/entrada/
  • Novo: Campo tags (array) ao criar e listar tickets
  • Melhoria: Paginação com count, next e previous
  • Melhoria: Novos filtros: data_inicio, data_fim, agente_id
v1.2.0 Novembro 2025 Minor
  • Novo: Endpoint /api/v1/categorias/
  • Novo: Endpoint /api/v1/usuarios/
  • Melhoria: Tokens exibem data de criação e último uso
  • Correção: Tickets via API disparam regras de SLA corretamente
v1.1.1 Setembro 2025 Patch
  • Correção: Campo prioridade aceita valores em minúsculas
  • Correção: Erro 500 ao criar ticket sem categoria_id agora retorna 400
  • Correção: Headers CORS ajustados para origens externas
v1.0.0 Junho 2025 Lançamento
  • Lançamento: API REST pública para todos os planos pagos
  • Inicial: Endpoints GET e POST /api/v1/tickets/
  • Inicial: Autenticação via token Bearer
Manuais de Integração
Guias passo a passo para conectar sistemas externos ao DeskPrime via API

Os manuais abaixo descrevem como configurar cada sistema para enviar dados ao DeskPrime automaticamente. Todos utilizam a API REST com autenticação via Bearer Token.

RMM
Tactical RMM

O Tactical RMM suporta webhooks nativos que podem ser configurados para criar tickets no DeskPrime automaticamente quando alertas são disparados.

Passo 1 — Obter o Token de API

No DeskPrime, acesse Configurações > API Tokens, clique em Novo Token, nomeie como Tactical RMM e salve. Copie o token gerado.

Passo 2 — Criar o Campo Customizado no Tactical RMM

Para que o DeskPrime identifique automaticamente a empresa cliente e atribua o ticket ao usuário de sistema correto, é necessário criar um campo customizado no Tactical RMM:

  1. Acesse Settings > Global Settings > Custom Fields
  2. Clique em Add Custom Field
  3. Preencha os campos conforme abaixo e clique em Submit:
CampoValor
TargetClient
NameTokenEmpresa
Field TypeText

Após criar o campo, acesse cada cliente no Tactical RMM, clique em Edit e cole o Token de Integração da empresa correspondente no campo TokenEmpresa. O token de cada empresa está disponível na página de detalhes da empresa no DeskPrime (card Token de Integração (API)).

Passo 3 — Configurar o Webhook no Tactical RMM
  1. Acesse Settings > Global Settings > Web Hooks
  2. Clique em Add Web Hook
  3. Preencha os campos:
CampoValor
NameDeskPrime API
URL Pattern/api/v1/tickets/
MethodPOST
Passo 4 — Configurar o Header de Autenticação

Na aba Request Headers do webhook, adicione:

Authorization: Bearer SEU_TOKEN_AQUI
Content-Type: application/json
Passo 5 — Configurar o Body (Payload)

Na aba Request Body, insira o JSON abaixo. O campo empresa_token usa o campo customizado criado no Passo 2 para identificar automaticamente a empresa cliente:

{
  "titulo": "[RMM] {{agent.site.client.name}} - {{agent.hostname}}: {{alert.message}}",
  "descricao": "Alerta automático gerado pelo Tactical RMM.\n\n- **Cliente**: {{agent.site.client.name}}\n- **Site**: {{agent.site.name}}\n- **Agente**: {{agent.hostname}}\n- **Tipo de Alerta**: {{alert.alert_type}}\n- **Severidade**: {{alert.severity}}\n- **Mensagem**: {{alert.message}}\n- **Saída do Check**: {{alert.get_result.stdout}}",
  "empresa_token": "{{client.TokenEmpresa}}"
}
Atenção: O placeholder {{client.TokenEmpresa}} acessa o campo customizado do tipo Client diretamente. Certifique-se de que o campo foi criado com o nome exato TokenEmpresa (sem espaços, respeitando maiúsculas e minúsculas).
Variáveis Disponíveis
VariávelDescrição
{{agent.site.client.name}}Nome do cliente
{{agent.site.name}}Nome do site/localização
{{agent.hostname}}Nome do host do agente
{{agent.last_seen}}Último acesso do agente
{{alert.severity}}Severidade do alerta (info, warning, error)
{{alert.message}}Mensagem do alerta
{{alert.alert_type}}Tipo do alerta (availability, check, task)
{{alert.get_result.stdout}}Saída do check que gerou o alerta
{{client.TokenEmpresa}}Token de integração da empresa (campo customizado)
Passo 6 — Vincular o Webhook a um Alert Template
  1. Acesse Alerts > Alert Templates
  2. Crie ou edite um template de alerta
  3. Em Failure Action, selecione Run Webhook e escolha DeskPrime API
  4. Salve o template e vincule-o a agentes, sites ou clientes
Como funciona: Quando um alerta é disparado, o Tactical RMM envia o token da empresa no campo empresa_token. O DeskPrime identifica a empresa, cria o ticket automaticamente e o atribui ao usuário de sistema correspondente, mantendo o histórico organizado por cliente.
RMM
Datto RMM

O Datto RMM permite integração via API REST v2 e Webhooks de Alertas. A abordagem recomendada é usar os webhooks de alertas para criar tickets automaticamente.

Passo 1 — Acessar as Configurações de Webhook
  1. Acesse o painel do Datto RMM em https://<seu_subdominio>.centrastage.net
  2. Navegue até Setup > Integrations > Webhooks
  3. Clique em New Webhook
Passo 2 — Configurar o Webhook
CampoValor
NameDeskPrime Tickets
URL/api/v1/tickets/
MethodPOST
Content-Typeapplication/json
Payload de Exemplo
{
  "titulo": "Datto RMM: {{alertMessage}} — {{deviceHostname}}",
  "descricao": "Dispositivo: {{deviceHostname}}\nCliente: {{accountName}}\nSite: \nAlerta: {{alertMessage}}\nCategoria: {{alertCategory}}\nData: {{alertTimestamp}}",
  "prioridade": "alta",
  "empresa_token": "TOKEN_DA_EMPRESA_AQUI"
}
Substitua TOKEN_DA_EMPRESA_AQUI pelo token de integração da empresa cliente correspondente, disponível na página de detalhes da empresa no DeskPrime.
Variáveis Disponíveis
VariávelDescrição
{{alertMessage}}Mensagem do alerta
{{alertCategory}}Categoria do alerta
{{alertTimestamp}}Data/hora do alerta
{{deviceHostname}}Nome do dispositivo
{{accountName}}Nome da conta/cliente
Nome do site
{{deviceType}}Tipo do dispositivo
{{deviceOS}}Sistema operacional
RMM
NinjaRMM (NinjaOne)

O NinjaRMM suporta webhooks de notificação que podem ser configurados para criar tickets no DeskPrime quando condições de alerta são atendidas.

Passo 1 — Configurar Webhook no NinjaRMM
  1. Acesse Administration > Notifications > Channels
  2. Clique em Add Channel
  3. Selecione Webhook
  4. Preencha os campos:
CampoValor
NameDeskPrime
URL/api/v1/tickets/
Authorization HeaderBearer SEU_TOKEN_AQUI
Payload Recomendado
{
  "titulo": "NinjaRMM: {{activityType}} — {{deviceName}}",
  "descricao": "Dispositivo: {{deviceName}}\nCliente: {{organizationName}}\nLocalização: {{locationName}}\nAtividade: {{activityType}}\nMensagem: {{message}}\nData: {{timestamp}}",
  "prioridade": "alta",
  "empresa_token": "TOKEN_DA_EMPRESA_AQUI"
}
Substitua TOKEN_DA_EMPRESA_AQUI pelo token de integração da empresa cliente correspondente, disponível na página de detalhes da empresa no DeskPrime.
Passo 2 — Vincular a uma Política de Notificação
  1. Acesse Administration > Notifications > Policies
  2. Crie ou edite uma política
  3. Em Channels, adicione o canal DeskPrime
  4. Configure os eventos que devem disparar a notificação
  5. Aplique a política a dispositivos ou organizações
MONITORAMENTO
Zabbix

O Zabbix suporta integração via Media Type Webhook, que executa um script JavaScript para enviar alertas ao DeskPrime.

Passo 1 — Criar o Media Type Webhook
  1. Acesse Administration > Media Types
  2. Clique em Create media type
  3. Configure:
CampoValor
NameDeskPrime
TypeWebhook
Parâmetros do Media Type
NomeValor
deskprime_url/api/v1/tickets/
deskprime_tokenSEU_TOKEN_AQUI
empresa_tokenToken de integração da empresa cliente (obtido no DeskPrime)
trigger_name{TRIGGER.NAME}
trigger_severity{TRIGGER.SEVERITY}
trigger_status{TRIGGER.STATUS}
host_name{HOST.NAME}
host_ip{HOST.IP}
event_id{EVENT.ID}
event_date{EVENT.DATE}
event_time{EVENT.TIME}
Script JavaScript
var params = JSON.parse(value);

// Mapear severidade para prioridade do DeskPrime
var prioridadeMap = {
    'Disaster': 'critica',
    'High': 'alta',
    'Average': 'media',
    'Warning': 'baixa',
    'Information': 'baixa',
    'Not classified': 'baixa'
};

var prioridade = prioridadeMap[params.trigger_severity] || 'media';

var payload = {
    titulo: 'Zabbix: ' + params.trigger_name + ' — ' + params.host_name,
    descricao: [
        'Host: ' + params.host_name,
        'IP: ' + params.host_ip,
        'Severidade: ' + params.trigger_severity,
        'Status: ' + params.trigger_status,
        'Evento ID: ' + params.event_id,
        'Data/Hora: ' + params.event_date + ' ' + params.event_time
    ].join('\n'),
    prioridade: prioridade,
    empresa_token: params.empresa_token
};

var request = new HttpRequest();
request.addHeader('Content-Type: application/json');
request.addHeader('Authorization: Bearer ' + params.deskprime_token);

var response = request.post(params.deskprime_url, JSON.stringify(payload));

if (request.getStatus() != 201) {
    throw 'Erro ao criar ticket: ' + response;
}

return JSON.parse(response).id;
Passo 2 — Configurar Usuário de Notificação
  1. Acesse Administration > Users
  2. Crie um usuário DeskPrime Notifications
  3. Em Media, adicione o Media Type DeskPrime
  4. Configure os níveis de severidade desejados
Passo 3 — Configurar Action
  1. Acesse Configuration > Actions > Trigger Actions
  2. Clique em Create action
  3. Em Operations, adicione Send message to users
  4. Selecione o usuário DeskPrime Notifications
  5. Selecione o Media Type DeskPrime
MONITORAMENTO
Datadog

O Datadog suporta webhooks nativos que podem ser configurados para criar tickets no DeskPrime quando alertas (Monitors) são disparados.

Passo 1 — Criar a Integração de Webhook
  1. Acesse Integrations > Integrations no Datadog
  2. Pesquise por Webhooks e clique em Install
  3. Na aba Configuration, clique em New
  4. Preencha:
CampoValor
Namedeskprime
URL/api/v1/tickets/
Headers Customizados
{"Authorization": "Bearer SEU_TOKEN_AQUI", "Content-Type": "application/json"}
Payload
{
  "titulo": "Datadog: $EVENT_TITLE",
  "descricao": "Monitor: $ALERT_TITLE\nStatus: $ALERT_STATUS\nHost: $HOSTNAME\nMétrica: $METRIC_NAMESPACE\nLink: $LINK\nMensagem: $TEXT_ONLY_MSG",
  "prioridade": "alta",
  "empresa_token": "TOKEN_DA_EMPRESA_AQUI"
}
Substitua TOKEN_DA_EMPRESA_AQUI pelo token de integração da empresa cliente correspondente, disponível na página de detalhes da empresa no DeskPrime.
Variáveis Disponíveis
VariávelDescrição
$EVENT_TITLETítulo do evento
$ALERT_TITLETítulo do monitor de alerta
$ALERT_STATUSStatus: Triggered, Recovered, etc.
$HOSTNAMENome do host afetado
$METRIC_NAMESPACENamespace da métrica
$LINKLink para o evento no Datadog
$TEXT_ONLY_MSGMensagem do alerta sem formatação
$PRIORITYPrioridade: normal ou low
Passo 2 — Vincular ao Monitor

Na mensagem do Monitor, adicione @webhook-deskprime para que o webhook seja ticket quando o alerta disparar.

MONITORAMENTO
New Relic

O New Relic permite integração via Notification Channels com suporte a webhooks personalizados.

Passo 1 — Criar Destination
  1. Acesse Alerts > Destinations
  2. Clique em Add destination
  3. Selecione Webhook
  4. Configure:
CampoValor
NameDeskPrime
Endpoint URL/api/v1/tickets/

Em Custom Headers, adicione: Authorization: Bearer SEU_TOKEN_AQUI

Passo 2 — Criar Channel
  1. Acesse Alerts > Channels
  2. Clique em Add channel
  3. Selecione Webhook e escolha o Destination DeskPrime
  4. Configure o template do payload:
{
  "titulo": "New Relic: {{issueTitle}}",
  "descricao": "Política: {{policyName}}\nCondição: {{conditionName}}\nEntidade: {{entitiesData.names}}\nPrioridade: {{priority}}\nLink: {{issuePageUrl}}",
  "prioridade": "alta",
  "empresa_token": "TOKEN_DA_EMPRESA_AQUI"
}
Substitua TOKEN_DA_EMPRESA_AQUI pelo token de integração da empresa cliente correspondente, disponível na página de detalhes da empresa no DeskPrime.
Passo 3 — Vincular ao Workflow
  1. Acesse Alerts > Workflows
  2. Crie ou edite um workflow
  3. Em Notify, adicione o canal DeskPrime
  4. Configure os filtros de alerta desejados
CRM
Salesforce

A integração com o Salesforce permite criar tickets no DeskPrime automaticamente quando casos (Cases) são criados ou atualizados no Salesforce, usando Flow ou Apex Callout.

Método 1 — Salesforce Flow (Sem Código)
  1. Acesse Setup > Flow Builder
  2. Crie um novo Flow do tipo Record-Triggered Flow
  3. Configure o trigger: Object: Case, Trigger: A record is created
  4. Adicione um elemento HTTP Callout
  5. Configure:
CampoValor
URL/api/v1/tickets/
MethodPOST
Header: AuthorizationBearer SEU_TOKEN_AQUI
Header: Content-Typeapplication/json
Payload para o Flow
{
  "titulo": "Salesforce Case #{!$Record.CaseNumber}: {!$Record.Subject}",
  "descricao": "Caso: {!$Record.CaseNumber}\nCliente: {!$Record.Account.Name}\nContato: {!$Record.Contact.Name}\nPrioridade: {!$Record.Priority}\nDescrição: {!$Record.Description}",
  "prioridade": "media",
  "categoria": "Suporte"
}
Método 2 — Apex Callout
@future(callout=true)
public static void criarTicketDeskPrime(Id caseId) {
    Case c = [SELECT Id, CaseNumber, Subject, Description, Priority,
                     Account.Name, Contact.Name
              FROM Case WHERE Id = :caseId LIMIT 1];

    String payload = JSON.serialize(new Map<String, Object>{
        'titulo' => 'Salesforce Case #' + c.CaseNumber + ': ' + c.Subject,
        'descricao' => 'Caso: ' + c.CaseNumber + '\nCliente: ' + c.Account.Name + '\nDescrição: ' + c.Description,
        'prioridade' => 'media',
        'categoria' => 'Suporte'
    });

    Http http = new Http();
    HttpRequest req = new HttpRequest();
    req.setEndpoint('/api/v1/tickets/');
    req.setMethod('POST');
    req.setHeader('Authorization', 'Bearer SEU_TOKEN_AQUI');
    req.setHeader('Content-Type', 'application/json');
    req.setBody(payload);

    HttpResponse res = http.send(req);
    System.debug('DeskPrime response: ' + res.getStatusCode() + ' ' + res.getBody());
}
CRM
HubSpot

O HubSpot suporta webhooks via Workflows e Private Apps, permitindo criar tickets no DeskPrime quando eventos ocorrem no CRM.

Método 1 — HubSpot Workflow com Webhook
  1. Acesse Automation > Workflows
  2. Clique em Create workflow
  3. Selecione o tipo de objeto (ex: Contacts ou Tickets)
  4. Configure o trigger (ex: Contact submits a form)
  5. Adicione a ação Send a webhook
  6. Configure:
CampoValor
MethodPOST
Webhook URL/api/v1/tickets/
Authentication typeAPI key in header
Header nameAuthorization
API keyBearer SEU_TOKEN_AQUI
Payload Recomendado
{
  "titulo": "HubSpot: {{contact.firstname}} {{contact.lastname}} — {{contact.subject}}",
  "descricao": "Contato: {{contact.firstname}} {{contact.lastname}}\nE-mail: {{contact.email}}\nEmpresa: {{contact.company}}\nMensagem: {{contact.message}}",
  "prioridade": "media",
  "categoria": "Suporte"
}
Método 2 — HubSpot Private App (API)

Para integrações mais avançadas, use uma Private App do HubSpot para escutar eventos e criar tickets via API do DeskPrime:

import requests

def criar_ticket_deskprime(hubspot_contact):
    response = requests.post(
        '/api/v1/tickets/',
        json={
            'titulo': f"HubSpot: {hubspot_contact['firstname']} {hubspot_contact['lastname']}",
            'descricao': f"E-mail: {hubspot_contact['email']}\nEmpresa: {hubspot_contact.get('company', 'N/A')}",
            'prioridade': 'media',
            'categoria': 'Suporte'
        },
        headers={
            'Authorization': 'Bearer SEU_TOKEN_AQUI',
            'Content-Type': 'application/json'
        }
    )
    return response.json()
CRM
Zoho CRM

O Zoho CRM permite criar tickets no DeskPrime via Workflow Rules com ações de webhook.

Passo 1 — Criar Webhook no Zoho CRM
  1. Acesse Setup > Automation > Workflow Rules
  2. Clique em Create Rule
  3. Selecione o módulo (ex: Leads ou Cases)
  4. Configure o trigger e as condições
  5. Em Actions, adicione Webhook
Configuração do Webhook
CampoValor
URL/api/v1/tickets/
MethodPOST
User AuthenticationCustom Headers
Header: AuthorizationBearer SEU_TOKEN_AQUI
Header: Content-Typeapplication/json
Payload com Merge Fields
{
  "titulo": "Zoho CRM: ${leads.First Name} ${leads.Last Name}",
  "descricao": "Lead: ${leads.First Name} ${leads.Last Name}\nE-mail: ${leads.Email}\nEmpresa: ${leads.Company}\nTelefone: ${leads.Phone}\nFonte: ${leads.Lead Source}",
  "prioridade": "media",
  "categoria": "Comercial"
}
DEV
Jira

O Jira suporta webhooks nativos que podem ser configurados para criar tickets no DeskPrime quando issues são criadas ou atualizadas.

Passo 1 — Criar Webhook no Jira
  1. Acesse Settings > System > WebHooks (Jira Server) ou Project Settings > Automation (Jira Cloud)
  2. Clique em Create a WebHook
  3. Configure:
CampoValor
NameDeskPrime
URL/api/v1/tickets/
EventsIssue Created
Método Recomendado — Jira Automation

Para Jira Cloud, use Automation para mais controle:

  1. Acesse Project Settings > Automation
  2. Clique em Create rule
  3. Trigger: Issue created
  4. Action: Send web request
  5. Configure:
CampoValor
Web request URL/api/v1/tickets/
HTTP methodPOST
Web request bodyCustom data
{
  "titulo": "Jira: [{{issue.key}}] {{issue.summary}}",
  "descricao": "Projeto: {{issue.project.name}}\nTipo: {{issue.type.name}}\nPrioridade: {{issue.priority.name}}\nReporter: {{issue.reporter.displayName}}\nDescrição: {{issue.description.plainText}}\nLink: {{issue.url}}",
  "prioridade": "media",
  "categoria": "Desenvolvimento"
}
DEV
GitHub

O GitHub suporta webhooks de repositório que podem criar tickets no DeskPrime quando issues são abertas ou quando workflows de CI/CD falham.

Passo 1 — Criar Webhook no Repositório
  1. Acesse o repositório no GitHub
  2. Vá em Settings > Webhooks > Add webhook
  3. Configure:
CampoValor
Payload URL/api/v1/tickets/
Content typeapplication/json
EventsIssues, Workflow runs
Atenção: O GitHub envia um payload fixo que não pode ser customizado. É necessário usar um intermediário (como Pipedream, Make ou uma Cloud Function) para transformar o payload antes de enviar ao DeskPrime.
Exemplo com Pipedream como Intermediário

Configure o Pipedream para receber o webhook do GitHub e transformar o payload:

// Pipedream Step — Transformar payload do GitHub para DeskPrime
import axios from 'axios';

export default defineComponent({
  async run({ steps, $ }) {
    const github = steps.trigger.event.body;

    // Verificar se é uma issue criada
    if (github.action !== 'opened') return;

    const issue = github.issue;
    const repo = github.repository;

    await axios.post('/api/v1/tickets/', {
      titulo: `GitHub: [${repo.name}] ${issue.title}`,
      descricao: [
        `Repositório: ${repo.full_name}`,
        `Issue #${issue.number}`,
        `Autor: ${issue.user.login}`,
        `Labels: ${issue.labels.map(l => l.name).join(', ') || 'Nenhuma'}`,
        `Link: ${issue.html_url}`,
        '',
        issue.body || 'Sem descrição'
      ].join('\n'),
      prioridade: 'media',
      categoria: 'Desenvolvimento'
    }, {
      headers: {
        'Authorization': `Bearer ${process.env.DESKPRIME_TOKEN}`,
        'Content-Type': 'application/json'
      }
    });
  }
});
DEV
GitLab

O GitLab suporta webhooks de projeto e de grupo, com payload customizável e suporte a múltiplos eventos.

Passo 1 — Criar Webhook no GitLab
  1. Acesse o projeto no GitLab
  2. Vá em Settings > Webhooks
  3. Configure:
CampoValor
URL/api/v1/tickets/
Secret tokenOpcional — para validação
TriggerIssues events, Pipeline events
Assim como o GitHub, o GitLab envia um payload fixo. Use um intermediário para transformar os dados.
Exemplo de Transformação (Python)
from flask import Flask, request
import requests

app = Flask(__name__)
DESKPRIME_TOKEN = 'SEU_TOKEN_AQUI'

@app.route('/gitlab-webhook', methods=['POST'])
def gitlab_webhook():
    data = request.json
    event = request.headers.get('X-Gitlab-Event')

    if event == 'Issue Hook' and data.get('object_attributes', {}).get('action') == 'open':
        issue = data['object_attributes']
        project = data['project']

        requests.post(
            '/api/v1/tickets/',
            json={
                'titulo': f"GitLab: [{project['name']}] {issue['title']}",
                'descricao': f"Projeto: {project['name']}\nIssue #{issue['iid']}\nAutor: {data['user']['name']}\nLink: {issue['url']}\n\n{issue.get('description', '')}",
                'prioridade': 'media',
                'categoria': 'Desenvolvimento'
            },
            headers={'Authorization': f'Bearer {DESKPRIME_TOKEN}', 'Content-Type': 'application/json'}
        )

    return '', 200
COMUNICAÇÃO
Slack

A integração com o Slack permite criar tickets no DeskPrime a partir de mensagens em canais específicos, usando um Slash Command ou Workflow Builder.

Método 1 — Slash Command

Permite que usuários criem tickets digitando /ticket Descrição do problema no Slack.

  1. Acesse api.slack.com/apps e crie um novo App
  2. Vá em Slash Commands > Create New Command
  3. Configure:
CampoValor
Command/ticket
Request URLURL de um intermediário (Pipedream, Make, etc.)
Short DescriptionCriar ticket no DeskPrime
Intermediário para Processar o Slash Command
// Pipedream — Processar Slack Slash Command
import axios from 'axios';

export default defineComponent({
  async run({ steps, $ }) {
    const body = steps.trigger.event.body;

    // Responder imediatamente ao Slack (evitar timeout)
    await $.respond({ status: 200, body: { text: '⏳ Criando ticket...' } });

    // Criar ticket no DeskPrime
    const response = await axios.post('/api/v1/tickets/', {
      titulo: `Slack: ${body.text}`,
      descricao: `Criado por: ${body.user_name}\nCanal: #${body.channel_name}\nDescrição: ${body.text}`,
      prioridade: 'media',
      categoria: 'Suporte'
    }, {
      headers: {
        'Authorization': `Bearer ${process.env.DESKPRIME_TOKEN}`,
        'Content-Type': 'application/json'
      }
    });

    // Notificar no Slack via response_url
    await axios.post(body.response_url, {
      text: `✅ Ticket #${response.data.id} criado com sucesso!`,
      response_type: 'in_channel'
    });
  }
});
Método 2 — Workflow Builder
  1. No Slack, acesse Tools > Workflow Builder
  2. Crie um novo Workflow com trigger Emoji reaction added (ex: reação 🎫)
  3. Adicione o step Send a webhook
  4. Configure a URL: /api/v1/tickets/
COMUNICAÇÃO
Microsoft Teams

A integração com o Microsoft Teams permite criar tickets no DeskPrime via Power Automate ou Incoming Webhook.

Método Recomendado — Power Automate
  1. Acesse make.powerautomate.com
  2. Clique em Create > Automated cloud flow
  3. Trigger: When a new message is added to a channel (Teams)
  4. Adicione uma condição: Message contains "@suporte"
  5. Adicione a ação HTTP
  6. Configure:
CampoValor
MethodPOST
URI/api/v1/tickets/
Headers: AuthorizationBearer SEU_TOKEN_AQUI
Headers: Content-Typeapplication/json
Body do Flow
{
  "titulo": "Teams: @{triggerOutputs()?['body/subject']}",
  "descricao": "Canal: @{triggerOutputs()?['body/channelIdentity/channelId']}\nAutor: @{triggerOutputs()?['body/from/user/displayName']}\nMensagem: @{triggerOutputs()?['body/body/content']}",
  "prioridade": "media",
  "categoria": "Suporte"
}
E-COMMERCE
Shopify

A integração com o Shopify permite criar tickets no DeskPrime automaticamente quando pedidos são criados, cancelados ou quando clientes entram em contato.

Passo 1 — Criar Webhook no Shopify
  1. No painel do Shopify, acesse Settings > Notifications > Webhooks
  2. Clique em Create webhook
  3. Configure:
CampoValor
EventOrder creation ou Order cancellation
FormatJSON
URLURL de um intermediário (Pipedream, Make, etc.)
O Shopify não suporta headers customizados nos webhooks. Use um intermediário para adicionar o header de autenticação do DeskPrime.
Exemplo com Pipedream como Intermediário
import axios from 'axios';

export default defineComponent({
  async run({ steps, $ }) {
    const pedido = steps.trigger.event.body;

    await axios.post('/api/v1/tickets/', {
      titulo: `Shopify: Pedido #${pedido.order_number} — ${pedido.email}`,
      descricao: [
        `Pedido: #${pedido.order_number}`,
        `Cliente: ${pedido.billing_address?.first_name} ${pedido.billing_address?.last_name}`,
        `E-mail: ${pedido.email}`,
        `Total: ${pedido.currency} ${pedido.total_price}`,
        `Status: ${pedido.financial_status}`,
        `Itens: ${pedido.line_items?.map(i => i.name).join(', ')}`
      ].join('\n'),
      prioridade: 'media',
      categoria: 'E-commerce'
    }, {
      headers: {
        'Authorization': `Bearer ${process.env.DESKPRIME_TOKEN}`,
        'Content-Type': 'application/json'
      }
    });
  }
});
E-COMMERCE
WooCommerce

O WooCommerce suporta webhooks nativos com suporte a headers customizados, permitindo integração direta com o DeskPrime.

Passo 1 — Criar Webhook no WooCommerce
  1. No painel do WordPress, acesse WooCommerce > Settings > Advanced > Webhooks
  2. Clique em Add webhook
  3. Configure:
CampoValor
NameDeskPrime Tickets
StatusActive
TopicOrder created
Delivery URLURL de um intermediário (Pipedream, Make, etc.)
SecretChave para validar a origem do webhook
Plugin para Integração Direta (PHP)

Adicione o seguinte código ao functions.php do seu tema ou a um plugin customizado:

add_action('woocommerce_order_status_changed', 'criar_ticket_deskprime', 10, 3);

function criar_ticket_deskprime($order_id, $old_status, $new_status) {
    if ($new_status !== 'on-hold') return; // Apenas pedidos em espera

    $order = wc_get_order($order_id);

    $payload = json_encode([
        'titulo' => 'WooCommerce: Pedido #' . $order->get_order_number() . ' — ' . $order->get_billing_email(),
        'descricao' => implode("
", [
            'Pedido: #' . $order->get_order_number(),
            'Cliente: ' . $order->get_billing_first_name() . ' ' . $order->get_billing_last_name(),
            'E-mail: ' . $order->get_billing_email(),
            'Total: ' . $order->get_currency() . ' ' . $order->get_total(),
            'Status: ' . $new_status
        ]),
        'prioridade' => 'media',
        'categoria' => 'E-commerce'
    ]);

    wp_remote_post('/api/v1/tickets/', [
        'method' => 'POST',
        'headers' => [
            'Authorization' => 'Bearer SEU_TOKEN_AQUI',
            'Content-Type' => 'application/json'
        ],
        'body' => $payload
    ]);
}
AUTOMAÇÃO
Zapier

O Zapier conecta mais de 7.000 aplicativos ao DeskPrime sem necessidade de código, usando Webhooks by Zapier como ação.

Passo 1 — Criar um Zap
  1. Acesse zapier.com e clique em Create Zap
  2. Configure o Trigger (ex: Gmail > New Email, Typeform > New Entry)
  3. Configure a Action: selecione Webhooks by Zapier > POST
Passo 2 — Configurar a Action de Webhook
CampoValor
URL/api/v1/tickets/
Payload TypeJSON
Header: AuthorizationBearer SEU_TOKEN_AQUI
Header: Content-Typeapplication/json
Mapeamento de Campos (Data)
ChaveValor (mapeado do trigger)
tituloEx: E-mail:
descricaoEx: De: -
prioridademedia (ou mapeado)
categoriaSuporte (ou mapeado)
Exemplos de Zaps Úteis
  • Gmail → DeskPrime: Cria ticket para cada e-mail recebido em [email protected]
  • Typeform → DeskPrime: Cria ticket para cada resposta de formulário de suporte
  • Slack → DeskPrime: Cria ticket para mensagens com reação 🎫 em canais de suporte
  • Jira → DeskPrime: Sincroniza issues críticas do Jira como tickets no DeskPrime
AUTOMAÇÃO
Make (Integromat)

O Make é uma plataforma de automação visual avançada que permite criar fluxos complexos com lógica condicional, transformações de dados e roteamento.

Passo 1 — Criar um Cenário
  1. Acesse make.com e clique em Create a new scenario
  2. Adicione o módulo de trigger desejado
  3. Adicione o módulo HTTP > Make a request
Configuração do Módulo HTTP
CampoValor
URL/api/v1/tickets/
MethodPOST
Body typeRaw
Content typeJSON (application/json)
Header: AuthorizationBearer SEU_TOKEN_AQUI
Request Content
{
  "titulo": "{{1.subject}}",
  "descricao": "{{1.body}}",
  "prioridade": "media",
  "categoria": "Suporte"
}

Substitua {{1.subject}} e {{1.body}} pelos campos do módulo anterior.

Recurso Avançado — Router

Use o módulo Router para criar rotas diferentes baseadas em condições, como prioridade do alerta:

  • Rota 1: severity = DISASTER → prioridade critica
  • Rota 2: severity = HIGH → prioridade alta
  • Rota 3: Demais → prioridade media
AUTOMAÇÃO
Pipedream

O Pipedream é uma plataforma de integração para desenvolvedores que combina automação visual com código Node.js/Python, ideal para transformações complexas de payload.

Passo 1 — Criar um Workflow
  1. Acesse pipedream.com e clique em New Workflow
  2. Configure o trigger: HTTP / Webhook
  3. Copie a URL gerada e configure no sistema de origem
  4. Adicione um step Run Node.js code
Código do Step
import axios from 'axios';

export default defineComponent({
  async run({ steps, $ }) {
    const evento = steps.trigger.event.body;

    const response = await axios.post(
      '/api/v1/tickets/',
      {
        titulo: evento.titulo || 'Ticket via Pipedream',
        descricao: evento.descricao || JSON.stringify(evento, null, 2),
        prioridade: evento.prioridade || 'media',
        categoria: evento.categoria || 'Suporte'
      },
      {
        headers: {
          'Authorization': `Bearer ${process.env.DESKPRIME_TOKEN}`,
          'Content-Type': 'application/json'
        }
      }
    );

    return response.data;
  }
});
Variáveis de Ambiente

Armazene o token com segurança em Settings > Environment Variables:

NomeValor
DESKPRIME_TOKENSeu token de API do DeskPrime
BI / ANALYTICS
Google BigQuery

A integração com o Google BigQuery permite exportar dados de tickets para análise avançada ou criar tickets automaticamente a partir de alertas detectados em queries.

Caso de Uso 1 — Exportar Tickets para o BigQuery
import requests
from google.cloud import bigquery

DESKPRIME_URL = '/api/v1/tickets/'
DESKPRIME_TOKEN = 'SEU_TOKEN_AQUI'

def exportar_tickets():
    headers = {'Authorization': f'Bearer {DESKPRIME_TOKEN}'}
    tickets = requests.get(DESKPRIME_URL, headers=headers).json()

    rows = [{
        'id': t['id'],
        'titulo': t['titulo'],
        'status': t['status'],
        'prioridade': t['prioridade'],
        'categoria': t.get('categoria', ''),
        'data_criacao': t['data_criacao']
    } for t in tickets]

    client = bigquery.Client()
    errors = client.insert_rows_json('projeto.dataset.tickets', rows)
    print(f'{len(rows)} tickets exportados' if not errors else f'Erros: {errors}')
Caso de Uso 2 — Criar Ticket via Cloud Function + Pub/Sub
import functions_framework, requests, json, base64

@functions_framework.cloud_event
def criar_ticket(cloud_event):
    data = json.loads(base64.b64decode(cloud_event.data['message']['data']))
    requests.post('/api/v1/tickets/', json={
        'titulo': data.get('titulo', 'Alerta BigQuery'),
        'descricao': data.get('descricao', ''),
        'prioridade': data.get('prioridade', 'media'),
        'categoria': 'Monitoramento'
    }, headers={'Authorization': 'Bearer SEU_TOKEN_AQUI'})
Queries Analíticas Úteis
-- Tickets por status e prioridade (últimos 30 dias)
SELECT status, prioridade, COUNT(*) AS total,
       AVG(tempo_resolucao_horas) AS tempo_medio_horas
FROM `projeto.deskprime.tickets`
WHERE DATE(data_criacao) >= DATE_SUB(CURRENT_DATE(), INTERVAL 30 DAY)
GROUP BY status, prioridade ORDER BY total DESC;

-- CSAT por equipe
SELECT equipe, COUNT(*) AS total, AVG(csat_nota) AS nota_media
FROM `projeto.deskprime.tickets`
WHERE csat_nota IS NOT NULL
GROUP BY equipe ORDER BY nota_media DESC;
BI / ANALYTICS
Snowflake

A integração com o Snowflake permite criar tickets via alertas nativos ou exportar dados de tickets para análise avançada.

Caso de Uso 1 — Criar Tickets via Snowflake Alerts

O Snowflake suporta Webhook Notifications nativamente. Configure assim:

1. Criar Notification Integration
CREATE OR REPLACE NOTIFICATION INTEGRATION deskprime_integration
  TYPE = WEBHOOK
  ENABLED = TRUE
  WEBHOOK_URL = '/api/v1/tickets/'
  WEBHOOK_HEADERS = (
    'Content-Type'='application/json',
    'Authorization'='Bearer SEU_TOKEN_AQUI'
  );
2. Criar Alert
CREATE OR REPLACE ALERT alerta_erros
  WAREHOUSE = COMPUTE_WH
  SCHEDULE = '5 MINUTES'
  IF (EXISTS (
    SELECT 1 FROM logs.erros
    WHERE timestamp > DATEADD('minute', -5, CURRENT_TIMESTAMP())
    HAVING COUNT(*) > 10
  ))
  THEN
    CALL SYSTEM$SEND_SNOWFLAKE_NOTIFICATION(
      SNOWFLAKE.NOTIFICATION.INTEGRATION('deskprime_integration'),
      SNOWFLAKE.NOTIFICATION.WEBHOOK_PAYLOAD('Erros críticos detectados')
    );

ALTER ALERT alerta_erros RESUME;
Caso de Uso 2 — Exportar Tickets para Snowflake
import requests, snowflake.connector

def exportar_para_snowflake():
    tickets = requests.get(
        '/api/v1/tickets/',
        headers={'Authorization': 'Bearer SEU_TOKEN_AQUI'}
    ).json()

    conn = snowflake.connector.connect(
        account='seu_account', user='usuario', password='senha',
        warehouse='COMPUTE_WH', database='DESKPRIME', schema='TICKETS'
    )
    cursor = conn.cursor()

    for t in tickets:
        cursor.execute("""
            MERGE INTO TICKETS tgt USING (SELECT %s AS ID) src ON tgt.ID = src.ID
            WHEN NOT MATCHED THEN INSERT (ID, TITULO, STATUS, PRIORIDADE, DATA_CRIACAO)
            VALUES (%s, %s, %s, %s, %s)
        """, (t['id'], t['id'], t['titulo'], t['status'], t['prioridade'], t['data_criacao']))

    conn.commit()
    cursor.close()
    conn.close()
Ativos e Inventário
Novo em v1.5.0

A API de Ativos permite consultar o inventário de TI e enviar dados de heartbeat a partir de agentes instalados nos endpoints.

GET /api/v1/ativos/ — Listar Ativos

Retorna a lista de ativos cadastrados no tenant. Suporta filtros via query string:

ParâmetroTipoDescriçãoExemplo
tipostringTipo do ativoservidor, workstation, switch
statusstringStatus do ativoativo, inativo, manutencao
qstringBusca por nome ou hostnamesrv-prod
Ver exemplo de resposta
{
  "ativos": [
    {
      "id": 15,
      "nome": "SRV-PROD-01",
      "tipo": "servidor",
      "sistema_operacional": "Windows Server 2022",
      "hostname": "srv-prod-01.empresa.local",
      "ip_principal": "192.168.1.10",
      "status": "ativo",
      "ultimo_heartbeat": "2026-05-14T10:00:00Z",
      "criado_em": "2025-01-10T08:00:00Z"
    }
  ],
  "total": 1
}

POST /api/v1/ativos/heartbeat/ — Heartbeat do Agente

Endpoint utilizado pelo agente de inventário instalado nos endpoints para reportar status e dados de hardware. Requer permissão de Escrita.

Campos do Body (JSON)
CampoTipoObrigatórioDescrição
hostnamestringNome do host
ipstringEndereço IP principal
sostringSistema operacional
cpustringModelo do processador
ram_gbnumberRAM total em GB
disco_gbnumberEspaço total em disco (GB)
disco_livre_gbnumberEspaço livre em disco (GB)
softwaresarrayLista de softwares instalados [{"nome":"...", "versao":"..."}]
curl -X POST https://suaempresa.deskprime.app/api/v1/ativos/heartbeat/ \
  -H "Authorization: Bearer SEU_TOKEN_AQUI" \
  -H "Content-Type: application/json" \
  -d '{
    "hostname": "srv-prod-01",
    "ip": "192.168.1.10",
    "so": "Windows Server 2022",
    "ram_gb": 32,
    "disco_gb": 500,
    "disco_livre_gb": 120
  }'
import requests, platform, psutil

payload = {
    "hostname": platform.node(),
    "ip": "192.168.1.10",
    "so": platform.system() + " " + platform.release(),
    "ram_gb": round(psutil.virtual_memory().total / 1e9, 1),
    "disco_gb": round(psutil.disk_usage('/').total / 1e9, 1),
    "disco_livre_gb": round(psutil.disk_usage('/').free / 1e9, 1)
}

requests.post(
    "https://suaempresa.deskprime.app/api/v1/ativos/heartbeat/",
    headers={"Authorization": "Bearer SEU_TOKEN_AQUI"},
    json=payload
)
Telefonia e CTI
Novo em v1.5.0

A integração de telefonia permite que PABXs (Yeastar, 3CX e outros compatíveis com SIP) notifiquem o DeskPrime sobre chamadas recebidas e realizadas, criando tickets automaticamente e registrando o histórico de chamadas.

Aviso importante para Softphone Web com Yeastar Linkus SDK

Nas configurações do ramal no PBX Yeastar, acesse Extensão > Ramal e aumente o valor do campo Linkus Web Client Concurrent Registrations para os ramais que serão usados no DeskPrime. Por padrão, o ramal pode aceitar apenas um registro Web; como o Linkus SDK também usa o canal Web, o softphone do DeskPrime pode derrubar ou ser derrubado quando o mesmo ramal estiver conectado no Linkus Web Client em outro navegador.

Configuração no YeastarMotivo
Extensão > Ramal > Linkus Web Client Concurrent RegistrationsPermitir mais de uma sessão Web simultânea para o mesmo ramal, evitando conflito entre o DeskPrime via SDK e o Linkus Web Client aberto no navegador.
GET /api/v1/telefonia/chamadas/ — Histórico de Chamadas

Retorna o histórico de chamadas registradas no sistema.

Ver exemplo de resposta
{
  "chamadas": [
    {
      "id": 101,
      "numero_origem": "+5511999990000",
      "numero_destino": "+5511988880000",
      "direcao": "entrada",
      "duracao_segundos": 185,
      "status": "atendida",
      "agente": { "id": 3, "nome": "Carlos Mendes" },
      "ticket_gerado": { "id": 88, "numero": "SD-0088" },
      "iniciada_em": "2026-05-14T09:15:00Z"
    }
  ],
  "total": 1
}

GET /api/v1/telefonia/contatos/search/?numero={numero} — Buscar Contato

Identifica o solicitante pelo número de telefone. Usado pelo PABX para exibir o nome do cliente antes de atender.


POST /api/v1/telefonia/webhook/yeastar/{config_id}/ — Webhook Yeastar
POST /api/v1/telefonia/webhook/3cx/{config_id}/ — Webhook 3CX

Endpoints para receber eventos de chamadas dos PABXs. Configure a URL de webhook no painel do seu PABX apontando para o endpoint correspondente. O config_id é o ID da configuração de telefonia no DeskPrime (visível em Configurações → Telefonia).

Autenticação do Webhook: Os webhooks de telefonia usam um token secreto configurado na integração, não o Bearer Token padrão. Consulte a documentação específica do seu PABX para configurar o campo secret ou api_key no payload.
Omnichannel (WhatsApp)
Novo em v1.5.0

A API do Omnichannel permite integrar sistemas externos ao painel de atendimento do DeskPrime, consultar conversas ativas e executar ações como enviar mensagens, transferir e finalizar atendimentos.

Atenção: Os endpoints do Omnichannel utilizam o prefixo /chat/api/ e não /api/v1/. O token Bearer padrão é utilizado normalmente.
GET /chat/api/lista-conversas/ — Listar Conversas Ativas

Retorna todas as conversas em andamento no tenant, separadas por fila e atribuídas ao agente.

Ver exemplo de resposta
{
  "fila": [
    {
      "id": 42,
      "contato_nome": "Eder Souza",
      "contato_numero": "+5511999990000",
      "fila": "Suporte Geral",
      "canal": "whatsapp",
      "ultima_mensagem": "Olá, preciso de ajuda",
      "ultima_mensagem_em": "2026-05-14T10:05:00Z",
      "status": "aguardando"
    }
  ],
  "meus": []
}

POST /chat/api/conversa/{id}/enviar/ — Enviar Mensagem

Envia uma mensagem de texto para o contato da conversa. Requer permissão de Escrita.

CampoTipoObrigatórioDescrição
mensagemstringTexto da mensagem a enviar

POST /chat/api/conversa/{id}/finalizar/ — Finalizar Conversa

Finaliza o atendimento, gera o ticket no sistema e envia a mensagem de encerramento com o link do ticket ao cliente. Requer permissão de Escrita.


POST /chat/api/conversa/{id}/transferir/ — Transferir Conversa

Transfere a conversa para outro agente ou fila. Requer permissão de Escrita.

CampoTipoObrigatórioDescrição
agente_idintegerID do agente destino
fila_idintegerID da fila destino
# Enviar mensagem
curl -X POST https://suaempresa.deskprime.app/chat/api/conversa/42/enviar/ \
  -H "Authorization: Bearer SEU_TOKEN_AQUI" \
  -H "Content-Type: application/json" \
  -d '{"mensagem": "Olá! Estou verificando seu caso agora."}'

# Finalizar conversa
curl -X POST https://suaempresa.deskprime.app/chat/api/conversa/42/finalizar/ \
  -H "Authorization: Bearer SEU_TOKEN_AQUI"
import requests

BASE = "https://suaempresa.deskprime.app"
HEADERS = {"Authorization": "Bearer SEU_TOKEN_AQUI"}

# Enviar mensagem
requests.post(f"{BASE}/chat/api/conversa/42/enviar/",
    headers=HEADERS, json={"mensagem": "Olá! Estou verificando seu caso agora."})

# Finalizar conversa
requests.post(f"{BASE}/chat/api/conversa/42/finalizar/", headers=HEADERS)

GET /chat/api/conversa/{id}/mensagens-externas/ — Listar Mensagens

Retorna as mensagens de uma conversa, do mais antigo para o mais recente, com URLs absolutas de mídia já resolvidas. Ideal para um app de terceiros montar seu próprio histórico de chat. Requer permissão de Leitura (ou superior) e que o token pertença a um agente com acesso à conversa (mesma regra de fila/grupo usada no painel).

Ver exemplo de resposta
{
  "conversa_id": 1238,
  "contato_nome": "Daiana",
  "contato_telefone": "5516999961204",
  "mensagens": [
    {
      "id": 20909,
      "origem": "cliente",
      "tipo": "audio",
      "conteudo": "",
      "url_midia": "https://suaempresa.deskprime.app/media/omnichannel/midia/2026/08/arquivo.ogg",
      "arquivo_local_url": "https://suaempresa.deskprime.app/media/omnichannel/midia/2026/08/arquivo.ogg",
      "nome_arquivo": "arquivo.ogg",
      "tipo_mime": "audio/ogg",
      "agente_nome": "",
      "transcricao": "Bom dia, preciso de ajuda com o Chat Vibe...",
      "enviado_em": "2026-08-07T12:34:43Z"
    }
  ]
}

Push Notification — Webhooks de Chat

Em vez de fazer polling em /chat/api/lista-conversas/, um app de terceiros pode cadastrar um webhook e receber um POST assim que uma nova mensagem chegar em qualquer conversa do tenant.

GET /chat/api/webhooks/ — Listar Webhooks Cadastrados

Requer permissão de Admin.


POST /chat/api/webhooks/criar/ — Cadastrar Webhook

Requer permissão de Admin. A URL de callback é validada e não pode apontar para endereços privados/internos (proteção contra SSRF).

CampoTipoObrigatórioDescrição
nomestringNome descritivo do webhook
url_callbackstringURL pública (https) que receberá o POST
eventosstringLista separada por vírgula. Hoje só existe nova_mensagem (valor padrão)

A resposta traz um campo secret — guarde-o, ele não é retornado novamente. É usado para validar a assinatura de cada entrega (veja abaixo).


DELETE /chat/api/webhooks/{id}/remover/ — Remover Webhook

Requer permissão de Admin.


Payload de entrega (POST enviado para a sua url_callback)

A cada nova mensagem, o DeskPrime envia (com até 3 tentativas em caso de falha):

{
  "evento": "nova_mensagem",
  "mensagem": {
    "id": 20909,
    "conversa_id": 1238,
    "origem": "cliente",
    "tipo": "texto",
    "conteudo": "Olá, preciso de ajuda",
    "tem_midia": false,
    "contato_nome": "Daiana",
    "contato_telefone": "5516999961204",
    "enviado_em": "2026-08-07T12:34:43Z"
  }
}

Headers enviados: X-DeskPrime-Event (nome do evento) e X-DeskPrime-Signature — um HMAC-SHA256 do corpo (bytes crus do JSON) usando o secret do webhook. Valide a assinatura antes de confiar no payload:

import hashlib, hmac

def validar_assinatura(secret, corpo_bytes, assinatura_recebida):
    esperada = hmac.new(secret.encode(), corpo_bytes, hashlib.sha256).hexdigest()
    return hmac.compare_digest(esperada, assinatura_recebida)

tem_midia só indica se há anexo — a mídia não é enviada no payload. Chame GET /chat/api/conversa/{id}/mensagens-externas/ para obter a URL absoluta do arquivo. Um webhook é desativado automaticamente após 20 falhas de entrega consecutivas.

Dashboard TV
Novo em v1.5.0

O Dashboard TV exibe métricas em tempo real em monitores e TVs da sala de suporte. A API pública permite que sistemas externos consumam os mesmos dados exibidos no painel, sem necessidade de autenticação Bearer — apenas o token público do dashboard é necessário.

GET /dashboard/api/publico/{token}/ — Dados em Tempo Real

O token é gerado ao criar um Dashboard TV em Relatórios → Dashboard TV → Novo Dashboard. Não requer header de autenticação.

Ver exemplo de resposta
{
  "titulo": "Suporte N1 — Sala Operações",
  "atualizado_em": "2026-05-14T10:10:00Z",
  "metricas": {
    "tickets_abertos": 14,
    "tickets_em_andamento": 8,
    "tickets_resolvidos_hoje": 23,
    "sla_dentro_prazo_pct": 94.2,
    "tempo_medio_resposta_min": 12,
    "agentes_online": 5
  },
  "top_agentes": [
    { "nome": "Carlos Mendes", "resolvidos_hoje": 7 },
    { "nome": "Ana Lima", "resolvidos_hoje": 5 }
  ]
}
# Sem necessidade de token Bearer
curl https://suaempresa.deskprime.app/dashboard/api/publico/abc123xyz/
// Atualização automática a cada 30 segundos
async function atualizarDashboard() {
  const res = await fetch('/dashboard/api/publico/abc123xyz/');
  const data = await res.json();
  document.getElementById('tickets-abertos').textContent = data.metricas.tickets_abertos;
}
setInterval(atualizarDashboard, 30000);
atualizarDashboard();

Importação de Dados — Zendesk

Migre empresas, usuários, categorias e tickets do Zendesk para o DeskPrime
Migração

O módulo de importação do DeskPrime permite migrar toda a sua base de dados do Zendesk sem perder histórico. A importação é feita de forma segura, incremental e retomável — se for interrompida, você pode continuar de onde parou.

O que é importado?
  • Organizações → Empresas Clientes no DeskPrime
  • Usuários (agentes e clientes finais) → Usuários com perfil correspondente
  • Grupos → Categorias de atendimento
  • Tickets → Tickets (do mais recente para o mais antigo)
  • Comentários → Respostas e notas internas dos tickets
Sobre os limites da API do Zendesk
A API do Zendesk possui limites de requisições por minuto que variam conforme o plano contratado (entre 200 e 700 req/min). Para contas com grande volume de tickets, a importação pode levar alguns minutos. O DeskPrime respeita automaticamente esses limites e retoma caso seja necessário pausar.
1 Pré-requisito: Gerar o Token de API no Zendesk

Antes de iniciar a importação, você precisa gerar um Token de API na sua conta Zendesk. Veja o passo a passo na seção abaixo.

2 Iniciar a Importação no DeskPrime
  1. Acesse Painel Admin → Importar Dados ou clique no link na barra lateral.
  2. Clique em "Nova Importação" e selecione Zendesk.
  3. Preencha o subdomínio (ex: se a URL é empresa.zendesk.com, informe empresa), o e-mail da conta administradora e o Token de API gerado.
  4. Clique em "Testar Conexão" para validar as credenciais antes de prosseguir.
  5. Selecione o que deseja importar e clique em "Iniciar Importação".
  6. Acompanhe o progresso em tempo real na tela de importação.

Como gerar o Token de API no Zendesk

Passo a passo para habilitar e criar o token de acesso à API

O Token de API é a forma segura de autorizar o DeskPrime a acessar os dados da sua conta Zendesk. Ao contrário de usar sua senha diretamente, o token pode ser revogado a qualquer momento sem afetar o seu login.

Sua senha nunca é armazenada. O DeskPrime utiliza exclusivamente o Token de API para autenticação. Após a importação, você pode revogar o token no Zendesk sem nenhum impacto no sistema.
1

Acesse o Zendesk com suas credenciais de administrador

Certifique-se de estar logado com uma conta que tenha permissões de Administrador. Apenas administradores podem criar tokens de API.

2

Acesse a Central de Administração

No menu lateral esquerdo do Zendesk, clique no ícone de engrenagem (⚙) ou acesse diretamente pelo menu do seu perfil → Central de Administração.

3

Vá em Aplicativos e Integrações → Configuração da API

No menu da Central de Administração, localize a seção "Aplicativos e Integrações" e clique em "APIs""Configuração da API".

Certifique-se de que as duas opções abaixo estão marcadas:

  • Permitir acesso por senha para usuários finais
  • Permitir acesso por token da APIobrigatório

Clique em "Salvar" após marcar as opções.

4

Acesse "Tokens da API" e crie um novo token

Ainda em "APIs", clique em "Tokens da API" no submenu. Em seguida, clique no botão "Adicionar token da API" (ou no ícone +).

Na tela que abrir, preencha uma descrição para identificar o token — sugerimos usar DeskPrime para facilitar a identificação futura. Clique em "Salvar".

5

Copie o token gerado

O Zendesk exibirá o token apenas uma vez. Copie-o imediatamente e cole no campo "Token da API" na tela de importação do DeskPrime. Após fechar a janela, não será possível visualizar o token novamente — será necessário criar um novo.

Atenção: O token é exibido apenas uma vez pelo Zendesk. Se você fechar a janela sem copiar, será necessário criar um novo token. Tokens antigos podem ser revogados a qualquer momento na mesma tela de "Tokens da API".

Resumo do caminho no Zendesk:

Central de Administração Aplicativos e Integrações APIs Configuração da API e Tokens da API

Importação de Dados — Freshdesk

Migre empresas, contatos, agentes, grupos e tickets do Freshdesk para o DeskPrime
Migração

O módulo de importação do DeskPrime permite migrar toda a sua base de dados do Freshdesk sem perder histórico. A importação é feita de forma segura, incremental e retomável — se for interrompida, você pode continuar de onde parou.

O que é importado?
  • Empresas (Companies) → Empresas Clientes no DeskPrime
  • Contatos e Agentes → Usuários com perfil correspondente
  • Grupos → Categorias de atendimento
  • Tickets → Tickets (do mais recente para o mais antigo)
  • Conversas (Conversations) → Respostas e notas internas dos tickets
Sobre os limites da API do Freshdesk
A API do Freshdesk permite até 50 requisições por minuto no plano gratuito e até 1.000 nos planos pagos. Para contas com grande volume de tickets, a importação pode levar alguns minutos. O DeskPrime respeita automaticamente esses limites e retoma caso seja necessário pausar.
1 Pré-requisito: Obter a API Key no Freshdesk

Antes de iniciar a importação, você precisa obter a sua API Key na sua conta Freshdesk. Veja o passo a passo na seção abaixo.

2 Iniciar a Importação no DeskPrime
  1. Acesse Painel Admin → Importar Dados ou clique no link na barra lateral.
  2. Clique em "Nova Importação" e selecione Freshdesk.
  3. Preencha o domínio (ex: se a URL é empresa.freshdesk.com, informe empresa) e a API Key obtida.
  4. Clique em "Testar Conexão" para validar as credenciais antes de prosseguir.
  5. Selecione o que deseja importar e clique em "Iniciar Importação".
  6. Acompanhe o progresso em tempo real na tela de importação.

Como obter a API Key no Freshdesk

Passo a passo para encontrar a chave de acesso à API

A API Key é a forma segura de autorizar o DeskPrime a acessar os dados da sua conta Freshdesk. Ao contrário de usar sua senha diretamente, a chave garante um acesso controlado e seguro.

Sua senha nunca é armazenada. O DeskPrime utiliza exclusivamente a API Key para autenticação.
1

Acesse o Freshdesk com suas credenciais

Faça login na sua conta do Freshdesk. Recomendamos usar uma conta com permissões de Administrador para garantir acesso a todos os dados necessários para a importação.

2

Acesse as Configurações de Perfil

No canto superior direito da tela, clique no ícone do seu perfil (sua foto ou iniciais) e selecione "Configurações de Perfil" (Profile Settings) no menu suspenso.

3

Localize e copie sua API Key

Na página de configurações do perfil, role a tela para baixo até encontrar a seção "Sua Chave de API" (Your API Key).

A chave já estará gerada. Basta copiá-la e colar no campo "API Key" na tela de importação do DeskPrime.

Resumo do caminho no Freshdesk:

Ícone do Perfil (canto superior direito) Configurações de Perfil Sua Chave de API

Importação de Dados — Jira Service Management

Migre organizações, usuários, componentes e issues do Jira Cloud para o DeskPrime
Migração

O módulo de importação do DeskPrime permite migrar toda a sua base de dados do Jira Service Management Cloud sem perder histórico. A importação é feita de forma segura, incremental e retomável — se for interrompida, você pode continuar de onde parou.

O que é importado?
  • Organizações (Service Desk Organizations) → Empresas Clientes no DeskPrime
  • Usuários (agentes e clientes) → Usuários com perfil correspondente
  • Componentes (Project Components) → Categorias de atendimento
  • Issues → Tickets (da mais recente para a mais antiga)
  • Comentários → Respostas e notas internas dos tickets
Sobre os limites da API do Jira Cloud
A API do Jira Cloud permite até 10.000 requisições por hora por usuário autenticado. Para instâncias com grande volume de issues, a importação pode levar alguns minutos. O DeskPrime respeita automaticamente esses limites e retoma caso seja necessário pausar.
Compatibilidade: Esta integração é compatível apenas com o Jira Cloud (instâncias hospedadas em *.atlassian.net). O Jira Server/Data Center utiliza uma API diferente e não é suportado nesta versão.
1 Pré-requisito: Gerar o API Token no Jira Cloud

Antes de iniciar a importação, você precisa gerar um API Token na sua conta Atlassian. Veja o passo a passo na seção abaixo.

2 Iniciar a Importação no DeskPrime
  1. Acesse Painel Admin → Importar Dados ou clique no link na barra lateral.
  2. Clique em "Nova Importação" e selecione Jira Service.
  3. Preencha o domínio completo da sua instância (ex: minhaempresa.atlassian.net), o e-mail da conta Atlassian e o API Token gerado.
  4. Clique em "Testar Conexão" para validar as credenciais antes de prosseguir.
  5. Selecione o que deseja importar e clique em "Próximo: Validar e Confirmar".
  6. Confirme os dados e clique em "Iniciar Importação".
  7. Acompanhe o progresso em tempo real na tela de importação.

Como gerar o API Token no Jira Cloud

Passo a passo para criar o token de acesso à API Atlassian

O API Token é a forma segura de autorizar o DeskPrime a acessar os dados da sua instância Jira Cloud. Ao contrário de usar sua senha diretamente, o token pode ser revogado a qualquer momento sem afetar o seu login.

Sua senha nunca é armazenada. O DeskPrime utiliza exclusivamente o API Token para autenticação. Após a importação, você pode revogar o token no painel da Atlassian sem nenhum impacto no sistema.
1

Acesse o gerenciador de tokens da Atlassian

Abra o link abaixo no seu navegador (você precisará estar logado com a conta Atlassian que será usada na importação):

id.atlassian.com/manage-profile/security/api-tokens
2

Clique em "Create API token"

Na página de gerenciamento de tokens, clique no botão azul "Create API token". Uma janela de diálogo será exibida.

3

Dê um nome ao token

No campo de nome, informe uma descrição para identificar o token — sugerimos usar DeskPrime ou import-service-desk. Clique em "Create".

4

Copie o token gerado

O token será exibido apenas uma vez. Clique em "Copy" para copiá-lo e cole no campo "API Token" na tela de importação do DeskPrime. Após fechar a janela, não será possível visualizar o token novamente — será necessário criar um novo.

Atenção: O token é exibido apenas uma vez pela Atlassian. Se você fechar a janela sem copiar, será necessário criar um novo token. Tokens antigos podem ser revogados a qualquer momento na mesma página de gerenciamento.

Como funciona a autenticação no Jira Cloud:

  • Usuário: seu e-mail Atlassian (ex: [email protected])
  • Senha / Token: o API Token gerado (não a sua senha de login)

Resumo do caminho:

id.atlassian.com Security API tokens Create API token
GLPI

Importação de Dados — GLPI

Migre entidades, usuários, categorias e tickets do GLPI para o DeskPrime
Migração

O módulo de importação do DeskPrime permite migrar toda a sua base de dados do GLPI sem perder histórico. A importação é feita de forma segura, incremental e retomável — se for interrompida, você pode continuar de onde parou.

Pré-requisito: A API REST do GLPI deve estar habilitada em Configuração → Geral → API. Sua instância GLPI deve estar acessível pela internet (ou pela rede onde o DeskPrime está hospedado).
O que é importado
🏢
Entidades
Entidades GLPI → Empresas
👥
Usuários
Técnicos e solicitantes
🏷️
Categorias
Categorias ITIL do GLPI
🎫
Tickets
Incidentes e requisições + acompanhamentos
Mapeamento de Status
Status no GLPI Status no DeskPrime
1 — NovoAberto
2 — Em atendimento (atribuído)Em Andamento
3 — Em atendimento (planejado)Em Andamento
4 — PendenteAguardando
5 — SolucionadoResolvido
6 — FechadoFechado

Como gerar o User Token no GLPI

Autenticação via API REST do GLPI
Importante: Antes de gerar o token, certifique-se de que a API REST está habilitada no seu GLPI. Acesse Configuração → Geral → API e verifique se "Habilitar API REST" está marcado como Sim.
1Habilitar a API REST (se ainda não estiver ativa)
  1. Acesse seu GLPI como administrador
  2. Vá em Configuração → Geral → API
  3. Defina "Habilitar API REST" como Sim
  4. Clique em Salvar
2Gerar o User Token
  1. Clique no seu nome de usuário no canto superior direito
  2. Acesse Preferências
  3. Role até a seção "Acesso à API REST"
  4. Clique em "Regenerar" ao lado do campo Token de API
  5. Copie o token gerado — ele será usado como User Token no DeskPrime
3App-Token (opcional, mas recomendado)

O App-Token é uma camada adicional de segurança. Para criá-lo:

  1. Vá em Configuração → Geral → API
  2. Na seção "Clientes da API", clique em "Adicionar"
  3. Preencha o nome (ex: deskprime-import) e salve
  4. Copie o Token da aplicação gerado
4Preencher no DeskPrime
Campo no DeskPrimeO que preencherExemplo
URL do GLPI URL completa da sua instância GLPI http://glpi.minhaempresa.com
App-Token (opcional) Token da aplicação criado em Configuração → API AbCdEf123456...
User Token Token gerado nas Preferências do usuário XyZ789abc...

Resumo do caminho para o User Token:

GLPI (admin) Nome do usuário Preferências Acesso à API REST Regenerar token
Milvus

Importação de Dados — Milvus

Migre clientes, chamados e acompanhamentos do Milvus para o DeskPrime
Migração

O módulo de importação do DeskPrime permite migrar toda a sua base de dados do Milvus sem perder histórico. A importação é feita de forma segura, paginada e retomável — se for interrompida, você pode continuar de onde parou.

Rate Limit da API do Milvus: A API de integração do Milvus permite apenas 1 requisição por minuto para listagens de chamados. Para contas com grande volume, a importação pode levar várias horas. Recomendamos iniciar a importação fora do horário comercial. A importação continuará em segundo plano e pode ser retomada a qualquer momento.
O que é importado
🏢
Clientes
Clientes Milvus → Empresas DeskPrime
🎫
Chamados
Todo o histórico de chamados
💬
Acompanhamentos
Respostas e notas dos chamados
Mapeamento de Status
Status no Milvus Status no DeskPrime
A fazerAberto
Em andamentoEm Andamento
Pausado / Aguardando / AgendadoAguardando
Finalizado / Concluído / CanceladoFechado
Mapeamento de Prioridade
Prioridade no Milvus Prioridade no DeskPrime
Baixa / BaixoBaixa
Média / NormalMédia
AltaAlta
Crítica / Crítico / UrgenteCrítica

Como gerar o Token de API no Milvus

Autenticação via Token de API de Integração

O DeskPrime autentica na API do Milvus exclusivamente via Token de API de Integração. Nenhuma senha é armazenada. Siga os passos abaixo para gerar o token na sua conta Milvus.

Requisito: Você precisa ter acesso de administrador na conta Milvus para acessar as configurações de integração e gerar o token.
Passo a passo
  1. Acesse o painel do Milvus em app.milvus.com.br e faça login com sua conta de administrador.
  2. No menu lateral, acesse Configurações (ícone de engrenagem).
  3. Clique em Integrações ou API.
  4. Localize a seção Token de API ou Chave de Integração.
  5. Clique em Gerar Token ou copie o token existente.
  6. Cole o token no campo Token de API do Milvus na tela de importação do DeskPrime.
Caminho no painel
Configurações Integrações Token de API Copiar / Gerar Token
TomTicket

Importação de Dados — TomTicket

Migre organizações, clientes, categorias e tickets do TomTicket para o DeskPrime
Migração

O módulo de importação do DeskPrime permite migrar toda a sua base de dados do TomTicket sem perder histórico. A importação é feita de forma segura, paginada e retomável — se for interrompida, você pode continuar de onde parou.

Rate Limit da API do TomTicket: A API v2.0 do TomTicket permite 3 requisições por segundo. Para contas com muitos tickets, a importação pode levar alguns minutos. A importação continua em segundo plano e pode ser retomada a qualquer momento.
O que é importado
🏢
Organizações
Organizações → Empresas Clientes
👥
Usuários
Clientes e Operadores
🏷️
Categorias
Categorias dos Departamentos
🎫
Tickets
Todo o histórico de chamados e respostas
Sobre o status dos tickets: no TomTicket, a "situação" do ticket é personalizável por conta (não existe uma lista fixa de status). O DeskPrime mapeia automaticamente pela descrição da situação (ex: "aguardando", "em andamento", "resolvido", "fechado"); situações não reconhecidas entram como Aberto por padrão.
Mapeamento de Prioridade
Prioridade no TomTicket Prioridade no DeskPrime
1Baixa
2Média
3Alta
4Crítica

Como gerar o Token de Acesso no TomTicket

Autenticação via Bearer Token

O DeskPrime autentica na API do TomTicket exclusivamente via Bearer Token. Nenhuma senha é armazenada. Siga os passos abaixo para gerar o token no console do TomTicket.

Requisito: Você precisa ter acesso de administrador na conta TomTicket para acessar as configurações da conta e gerar o token.
Passo a passo
  1. Acesse o console do TomTicket em console.tomticket.com e faça login com sua conta de administrador.
  2. No menu, acesse Administração → Configurações da Conta.
  3. No menu "Configurar conta", selecione a opção API.
  4. Clique em Novo Token no canto superior da tela.
  5. Preencha uma descrição, defina o tempo de expiração como "Não expira" e marque "Pode criar e modificar dados".
  6. Clique em Criar Token e copie o token gerado — ele só é exibido uma vez.
  7. Cole o token no campo Token de Acesso (Bearer Token) na tela de importação do DeskPrime.
Caminho no painel
Administração Configurações da Conta API Novo Token
MSPDesk

Importação de Dados — MSPDesk

Migre clientes, agentes, categorias e tickets do MSPDesk para o DeskPrime
Migração

O MSPDesk não tem uma API genérica de tickets — a importação é feita através do Link de Integração de um Relatório Personalizado, o mesmo mecanismo usado para conectar o MSPDesk ao Power BI. Por isso, antes de importar, é preciso criar (ou usar) um relatório configurado com as colunas certas — veja o passo a passo abaixo.

O relatório precisa ser configurado corretamente: como o MSPDesk não expõe uma lista fixa de campos, o DeskPrime lê as colunas pelo nome de exibição escolhido no relatório. Sem as opções certas marcadas (ver passo a passo), notas e apontamentos de horas não vêm junto na importação.
O que é importado
🏢
Clientes
Coluna "Cliente" → Empresas
👥
Agentes
Coluna "Agente" → Usuários
🏷️
Categorias
Catálogo de Serviço
🎫
Tickets
Com notas e apontamentos como comentários
Sobre o solicitante do ticket: o relatório do MSPDesk não traz o e-mail do contato que abriu o chamado — por segurança, o DeskPrime não cria contas de usuário sem e-mail confirmado. O ticket importado fica registrado com o usuário do sistema como solicitante, e o nome do contato original do MSPDesk fica preservado na descrição do ticket.
Mapeamento de Prioridade
Prioridade no MSPDesk Prioridade no DeskPrime
Baixa / PlanejadoBaixa
MédiaMédia
AltaAlta
Crítica / UrgenteUrgente

Como obter o Link de Integração e a API Key no MSPDesk

Autenticação via API Key no cabeçalho X-API-Key

O DeskPrime autentica na API do MSPDesk exclusivamente via API Key no cabeçalho X-API-Key. Nenhuma senha é armazenada. Siga os passos abaixo — eles criam um Relatório Personalizado configurado especificamente para a importação.

Requisito: Você precisa ter acesso de administrador na conta MSPDesk para criar relatórios personalizados e gerenciar chaves de API.
Passo a passo
  1. No MSPDesk, acesse Relatórios → Relatórios Personalizados e crie um novo relatório.
  2. Em "Dados e Filtros" → Seleção de Colunas, adicione TODAS as colunas disponíveis — quanto mais colunas o relatório trouxer, mais completa fica a importação no DeskPrime (Código do Ticket e ID do Ticket são obrigatórias e não geram o link de integração se faltarem, mas as demais — Assunto, Status, Prioridade, Contato, Cliente, Agente, Catálogo de Serviço, datas, SLA etc. — também devem ser incluídas).
  3. Em "Dados e Filtros" → Filtros, o MSPDesk exige pelo menos um filtro pra gerar o relatório. Para trazer todo o histórico sem excluir nada, adicione um filtro "neutro": no campo "Campo" selecione "ID do Ticket", no "Operador" selecione "Diferente De" e no campo "Valor" digite 0123456789 — como nenhum ticket real tem esse ID, o filtro nunca exclui nada e todos os tickets são importados.
  4. Em "Opções Adicionais", marque "Incluir Anotações do Ticket" e "Incluir Apontamentos do Ticket" — sem isso, o histórico de conversas e o tempo apontado pelos agentes não vêm na importação (só os dados do ticket em si).
  5. Salve o relatório e, na listagem, clique nos três pontinhos (⋮) → "Obter link de integração".
  6. O modal mostra o Endpoint de Integração (algo como https://api.mspdesk.com.br/v1/custom-reports/integrations/{'{uuid}'}/execute?page={'{page}'}&size={'{size}'}) — copie a URL inteira, ela pode ser colada como está na tela de importação do DeskPrime.
  7. Em Configurações → Gerenciar Chaves API, clique em Nova Chave, dê um nome (ex: "DeskPrime") e clique em Salvar.
  8. A chave só é exibida uma vez — copie e cole no campo API Key na tela de importação do DeskPrime, junto com o Endpoint copiado no passo anterior.
Caminho no painel (relatório)
Relatórios Relatórios Personalizados Obter link de integração
Caminho no painel (chave de API)
Configurações Gerenciar Chaves API Nova Chave

Anexar conversas do MSPTalks (opcional)

MSPDesk e MSPTalks são sistemas separados — isso recupera o conteúdo das conversas de WhatsApp

Quando um ticket do MSPDesk veio de uma conversa de WhatsApp (Canal de Origem "MSP Talks"), o relatório personalizado não traz o conteúdo da conversa — só metadados (contato, cliente, datas). O DeskPrime pode tentar recuperar essa conversa direto do MSPTalks e anexar como comentário no ticket importado.

Não existe um campo que ligue os dois sistemas diretamente. A correspondência é por heurística: busca o contato do MSPTalks pelo nome do "Contato" do ticket, e escolhe a conversa desse contato com o horário mais próximo da criação do ticket. Por isso a tela de importação deixa você escolher entre dois modos — Só alta confiança (mais seguro, recupera menos) ou Melhor candidato (recupera mais, marca os casos incertos como "não confirmado" no próprio ticket).
Como gerar o Token de API no MSPTalks
  1. No MSPTalks, acesse Ajustes → Integrações → Integração via API e clique em Configurar.
  2. Na tela de configuração, clique em criar uma nova integração.
  3. Digite um nome de identificação (ex: "DeskPrime") e clique em Salvar.
  4. A chave é criada — clique em Copiar e cole no campo Token de API do MSPTalks na tela de importação, junto com o resto da configuração do MSPDesk.
Caminho no painel
Ajustes Integrações Integração via API Configurar → Nova integração