Προϊόν

Κανάλια και ενσωματώσεις

Ο πελάτης γράφει όπου θέλει, ο πράκτορας απαντά από μία οθόνη. Το αρχικό κανάλι διατηρείται ώστε η απάντηση να επιστρέψει από την ίδια διαδρομή.

Email πρώτα

Είναι το κανάλι που φέρει τον κύριο όγκο, οπότε είναι αυτό που φροντίζουμε περισσότερο: καθαρή ανάλυση, διαχείριση αναπηδήσεων, DKIM στις αποστολές σας.

Συνομιλία και WhatsApp

Η συνομιλία του widget δημιουργεί ένα εισιτήριο μόλις κανείς δεν είναι διαθέσιμος. Το WhatsApp Business περνάει από έναν αριθμό που παρέχετε.

API για τα υπόλοιπα

Ό,τι κάνει η διεπαφή είναι προσβάσιμο μέσω REST: εισιτήρια, μηνύματα, επαφές, άρθρα, κανόνες, εξαγωγές.

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

Συνδεδεμένα κανάλια και αρχείο καταγραφής παράδοσης των webhooks.

Αναλυτικά

Διαθέσιμες διεπαφές

API REST
Εκδοχή υπό /api/v1, απαντήσεις JSON, σελιδοποίηση με δρομέα, 600 αιτήματα ανά λεπτό.
Πιστοποίηση
Προσωπικά διακριτικά ή κλειδιά υπηρεσίας, με πεδία ανάγνωσης και εγγραφής ανά πόρο.
Webhooks
Υπογραφή HMAC SHA-256, 5 προσπάθειες επανάληψης με backoff, αρχείο καταγραφής παραδόσεων για 7 ημέρες.
Slack και Teams
Ειδοποίηση ανά προβολή ή ανά ομάδα, απάντηση από το νήμα στις προσφορές Ομάδας και άνω.
Εισαγωγή
Zendesk, Freshdesk, Front και CSV, με αντιστοίχιση προσαρμοσμένων πεδίων.
Εξαγωγή
CSV και NDJSON κατόπιν αιτήματος, συν πρόσβαση SQL μόνο για ανάγνωση στην προσφορά Επιχείρησης.
Καταγραφή
Κάθε κλήση API εμφανίζεται στο αρχείο καταγραφής ελέγχου με το χρησιμοποιούμενο κλειδί.

Επαλήθευση της υπογραφής ενός 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));
}