Produs

Canale și integrări

Clientul scrie unde vrea, agentul răspunde dintr-un singur ecran. Canalul original este păstrat, astfel încât răspunsul să plece pe aceeași cale.

Emailul pe primul loc

Este canalul care poartă cea mai mare parte a volumului, deci cel de care ne ocupăm cel mai mult: parsare curată, gestionarea respingerilor, DKIM pe trimiterile dumneavoastră.

Chat și WhatsApp

Chat-ul widget-ului creează un bilet de îndată ce nimeni nu este disponibil. WhatsApp Business trece printr-un număr pe care îl furnizați.

API pentru restul

Tot ceea ce face interfața este accesibil prin REST: bilete, mesaje, contacte, articole, reguli, exporturi.

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

Canale conectate și jurnal de livrare a webhook-urilor.

Detaliul funcționalităților

Un API care face tot

Tot ce face interfața e accesibil sub /api/v1: răspunsuri JSON, paginare cu cursor, 600 de cereri pe minut — destul cât să construiești fără să ceri voie.

Chei care deschid doar strictul necesar

Tokenuri personale sau chei de serviciu, cu domenii de citire și scriere per resursă: integrarea ta are doar drepturile pe care le merită.

Webhookuri în care poți avea încredere

Semnătură HMAC SHA-256, cinci reîncercări cu backoff, jurnal al livrărilor pe 7 zile: sistemul tău știe mereu ce i s-a trimis.

Acolo unde discută echipa ta

Notificări Slack și Teams per vizualizare sau per echipă, și răspuns direct din fir pe planurile Echipă și superioare.

Datele tale intră și ies liber

Vă preluăm istoricul Zendesk cu numerele și datele lui. Iar nucleul fiind sub AGPL-3.0, îl puteți instala la dvs. și accesa direct baza de date.

Fiecare apel lasă o urmă

Toate apelurile API apar în jurnalul de audit cu cheia folosită: cine a făcut ce nu e niciodată un mister.

Verificarea semnăturii unui webhook

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