Produkt

Kanály a integrácie

Klient píše, kam chce, agent odpovedá z jednej obrazovky. Pôvodný kanál je zachovaný, aby odpoveď odišla rovnakou cestou.

E-mail na prvom mieste

Je to kanál, ktorý prenáša väčšinu objemu, takže sa oň staráme najviac: čisté parsnovanie, správa nedoručených správ, DKIM pri vašich odoslaniach.

Chat a WhatsApp

Chat widgetu vytvorí tiket, akonáhle nie je nikto k dispozícii. WhatsApp Business prechádza cez číslo, ktoré poskytnete.

API pre zvyšok

Všetko, čo robí rozhranie, je prístupné cez REST: tikety, správy, kontakty, články, pravidlá, exporty.

acme.open-helpdesk.com/app/settings/channels
Emailsupport@acme.fr · MX vérifié412 ce mois
Chatwidget web · 14 ko97 ce mois
WhatsApp+33 6 12 ** ** **58 ce mois
APIclé srv_live_… · lecture/écriture1 903 appels

POST /webhooks/acme · ticket.created

200 · 84 ms · signature vérifiée

200 · 91 ms · signature vérifiée

502 · nouvelle tentative dans 30 s

Pripojené kanály a denník doručenia webhookov.

Detaily funkcií

API, ktoré zvládne všetko

Všetko, čo dokáže rozhranie, je dostupné pod /api/v1: odpovede v JSON, stránkovanie kurzorom, 600 požiadaviek za minútu — dosť na to, aby ste stavali bez pýtania si dovolenia.

Kľúče, ktoré otvoria len to nutné

Osobné tokeny alebo servisné kľúče s rozsahmi čítania a zápisu podľa zdroja: vaša integrácia má len tie práva, ktoré si zaslúži.

Webhooky, na ktoré je spoľah

Podpis HMAC SHA-256, päť opakovaní s backoffom, log doručení za 7 dní: váš systém vždy vie, čo mu bolo poslané.

Tam, kde si váš tím píše

Notifikácie pre Slack a Teams podľa pohľadu alebo tímu, odpovedať sa dá priamo z vlákna v pláne Tím a vyšších.

Vaše dáta voľne dnu aj von

Vašu históriu zo Zendesku prenesieme aj s číslami a dátumami. A keďže je jadro pod AGPL-3.0, môžete si ho nainštalovať k sebe a siahnuť priamo do databázy.

Každé volanie zanechá stopu

Všetky volania API sa objavia v auditnom logu s použitým kľúčom: kto čo urobil, nie je nikdy záhada.

Overiť podpis webhooku

import { createHmac, timingSafeEqual } from "node:crypto";

export function verify(raw: string, header: string, secret: string) {
  const expected = createHmac("sha256", secret).update(raw).digest("hex");
  return timingSafeEqual(Buffer.from(header), Buffer.from(expected));
}