Exemplos
Exemplos para copiar e colar das integrações mais comuns, em curl, JavaScript e PHP.
Traduzido para sua conveniência. Código, nomes de campos e a referência da API continuam em inglês. Versão em inglês
Troque yourcompany.chaosdesk.io pelo endereço do seu espaço de trabalho e $TOKEN por um token de API.
Criar um ticket (API compatível com Zendesk)
curl https://yourcompany.chaosdesk.io/zd/api/v2/tickets.json \
-u "[email protected]/token:$TOKEN" \
-H "Content-Type: application/json" \
-d '{"ticket": {"subject": "Order 1042 arrived damaged",
"comment": {"body": "The box was crushed."},
"requester": {"name": "Lea Novak", "email": "[email protected]"},
"tags": ["damaged", "order"]}}'
Encontrar um ticket pelo seu próprio id
curl "https://yourcompany.chaosdesk.io/zd/api/v2/tickets.json?external_id=order-1042" \
-u "[email protected]/token:$TOKEN"
Buscar
curl -G https://yourcompany.chaosdesk.io/zd/api/v2/search.json \
--data-urlencode "query=type:ticket status:open tags:vip" \
-u "[email protected]/token:$TOKEN"
Exportar todos os tickets (API REST, paginação por cursor)
const base = 'https://yourcompany.chaosdesk.io';
let url = `${base}/api/tickets?cursor=&limit=100`;
while (url) {
const res = await fetch(url, { headers: { Authorization: `Bearer ${process.env.TOKEN}`, Accept: 'application/ld+json' } });
const page = await res.json();
for (const ticket of page.member ?? page.data ?? []) console.log(ticket.id, ticket.subject);
url = page.links?.next ? new URL(page.links.next, base).toString() : null;
}
Receber um webhook (PHP)
$raw = file_get_contents('php://input');
$ts = $_SERVER['HTTP_X_DESK_TIMESTAMP'] ?? '';
$sig = $_SERVER['HTTP_X_DESK_SIGNATURE'] ?? '';
$expected = base64_encode(hash_hmac('sha256', $ts.'.'.$raw, getenv('DESK_WEBHOOK_SECRET'), true));
if (abs(time() - (int) $ts) > 300 || !hash_equals($expected, $sig)) {
http_response_code(401);
exit;
}
$event = json_decode($raw, true);
http_response_code(204);
Mais detalhes: webhooks, limites de taxa e paginação, a referência da API.