Product

Kanalen en integraties

De klant schrijft waar hij wil, de agent antwoordt vanaf één scherm. Het oorspronkelijke kanaal blijft behouden, zodat het antwoord via dezelfde weg teruggaat.

E-mail eerst

Dit is het kanaal dat het grootste deel van het volume draagt, dus degene die we het meest verzorgen: schone parsing, beheer van bounces, DKIM op uw verzendingen.

Chat en WhatsApp

De chat van de widget creëert een ticket zodra niemand beschikbaar is. WhatsApp Business gaat via een nummer dat u opgeeft.

API voor de rest

Alles wat de interface doet, is toegankelijk via REST: tickets, berichten, contacten, artikelen, regels, exports.

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

Verbonden kanalen en leveringslogboek van webhooks.

In detail

Beschikbare interfaces

REST API
Versie onder /api/v1, JSON-antwoorden, paginering per cursor, 600 verzoeken per minuut.
Authenticatie
Persoonlijke tokens of servicesleutels, met lees- en schrijfbereik per resource.
Webhooks
HMAC SHA-256 handtekening, 5x opnieuw proberen met backoff, leveringslogboek van 7 dagen.
Slack en Teams
Melding per weergave of per team, antwoord vanuit de thread op Team- en hogere aanbiedingen.
Import
Zendesk, Freshdesk, Front en CSV, met overeenkomst van aangepaste velden.
Export
CSV en NDJSON op aanvraag, plus alleen-lezen SQL-toegang op de Enterprise-aanbieding.
Logging
Elke API-aanroep verschijnt in het auditlogboek met de gebruikte sleutel.

De handtekening van een webhook verifiëren

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));
}