Freshdesk Connector
Verbinde Freshdesk über Tajo mit Brevo, um Support- und Marketingdaten zu vereinen. Synchronisiere Support-Tickets, Kontaktprofile und Zufriedenheitsbewertungen, um gezielte Kommunikation auf Basis von Support-Interaktionen zu ermöglichen.
Überblick
| Eigenschaft | Wert |
|---|---|
| Plattform | Freshdesk |
| Kategorie | Support |
| Einrichtungsaufwand | Einfach |
| Offizielle Integration | Nein |
| Synchronisierte Daten | Tickets, Kontakte, Agent:innen, Unternehmen |
| Verfügbare Skills | 6 |
Funktionen
- Kontaktsynchronisierung - Bidirektionale Synchronisierung von Freshdesk-Kontakten mit Brevo-Kontaktlisten
- Ticket-Event-Tracking - Leite Events zur Ticket-Erstellung, -Aktualisierung und -Lösung an Brevo weiter
- CSAT-Synchronisierung - Synchronisiere CSAT-Scores als Brevo-Kontaktattribute
- Unternehmens-Sync - Ordne Freshdesk-Unternehmen der Brevo-Kontaktsegmentierung zu
- Agent:innen-Daten - Verfolge Agent:innen-Zuweisungen für interne Workflow-Automatisierung
- Benutzerdefinierte Felder - Ordne benutzerdefinierte Freshdesk-Ticket- und Kontaktfelder Brevo-Attributen zu
Voraussetzungen
Bevor du beginnst, stelle sicher, dass du Folgendes hast:
- Ein Freshdesk-Konto mit Admin-Zugriff
- Deinen Freshdesk-API-Schlüssel (zu finden in den Profileinstellungen)
- Deine Freshdesk-Domain (z. B.
yourcompany.freshdesk.com) - Ein Brevo-Konto mit API-Zugriff
- Ein Tajo-Konto mit API-Zugangsdaten
Authentifizierung
API-Schlüssel-Authentifizierung
Freshdesk nutzt API-Schlüssel-Authentifizierung über HTTP Basic Auth. Der API-Schlüssel wird als Benutzername mit einer beliebigen Zeichenfolge (üblicherweise X) als Passwort verwendet.
curl -u "YOUR_API_KEY:X" \ https://yourcompany.freshdesk.com/api/v2/ticketsOder unter Verwendung von Base64-Kodierung im Authorization-Header:
curl https://yourcompany.freshdesk.com/api/v2/tickets \ -H "Authorization: Basic BASE64_ENCODED_API_KEY:X" \ -H "Content-Type: application/json"API-Schlüssel finden
- Melde dich in deinem Freshdesk-Konto an
- Klicke oben rechts auf dein Profilbild
- Gehe zu Profileinstellungen
- Dein API-Schlüssel wird auf der rechten Seite angezeigt
Konfiguration
Grundeinrichtung
connectors: freshdesk: enabled: true domain: "yourcompany.freshdesk.com" api_key: "your-freshdesk-api-key"
# Data sync options sync: contacts: true tickets: true companies: true satisfaction_ratings: true
# Brevo list assignment lists: all_support_contacts: 30 open_tickets: 31 resolved_tickets: 32Zuordnung der Kontaktfelder
Ordne Freshdesk-Kontaktfelder den Brevo-Attributen zu:
contact_mapping: email: email name: FULLNAME phone: SMS company_id: COMPANY job_title: JOB_TITLE twitter_id: TWITTER language: LANGUAGE time_zone: TIMEZONE
# Support metrics total_tickets: TICKET_COUNT open_tickets: OPEN_TICKETS avg_csat: CSAT_SCORE last_ticket_date: LAST_SUPPORT_DATE
# Custom fields custom_fields.account_type: ACCOUNT_TYPE custom_fields.subscription_tier: PLANZuordnung von Ticket-Events
Ordne Freshdesk-Ticket-Events den Brevo-Automatisierungstriggern zu:
ticket_events: ticket_created: "support_ticket_created" ticket_updated: "support_ticket_updated" ticket_resolved: "support_ticket_resolved" ticket_closed: "support_ticket_closed" ticket_reopened: "support_ticket_reopened" satisfaction_rated: "csat_submitted" note_added: "support_note_added"API-Endpoints
| Methode | Endpoint | Beschreibung |
|---|---|---|
GET | /api/v2/tickets | Alle Tickets auflisten |
POST | /api/v2/tickets | Ein Ticket erstellen |
GET | /api/v2/tickets/{id} | Ein bestimmtes Ticket abrufen |
PUT | /api/v2/tickets/{id} | Ein Ticket aktualisieren |
DELETE | /api/v2/tickets/{id} | Ein Ticket löschen |
GET | /api/v2/contacts | Alle Kontakte auflisten |
POST | /api/v2/contacts | Einen Kontakt erstellen |
PUT | /api/v2/contacts/{id} | Einen Kontakt aktualisieren |
GET | /api/v2/companies | Alle Unternehmen auflisten |
GET | /api/v2/agents | Alle Agent:innen auflisten |
GET | /api/v2/surveys/satisfaction_ratings | CSAT-Bewertungen auflisten |
GET | /api/v2/search/tickets?query= | Tickets durchsuchen |
Code-Beispiele
Freshdesk Connector initialisieren
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connect Freshdesk accountawait tajo.connectors.connect('freshdesk', { domain: 'yourcompany.freshdesk.com', apiKey: process.env.FRESHDESK_API_KEY});Kontakte mit Brevo synchronisieren
// Fetch Freshdesk contacts and sync to Brevoconst response = await fetch( 'https://yourcompany.freshdesk.com/api/v2/contacts?page=1&per_page=100', { headers: { 'Authorization': 'Basic ' + btoa(`${API_KEY}:X`), 'Content-Type': 'application/json' } });
const contacts = await response.json();// Each contact:// {// "id": 12345,// "name": "Jane Kim",// "email": "[email protected]",// "phone": "+15551234567",// "company_id": 678,// "job_title": "Product Manager",// "created_at": "2024-01-15T10:30:00Z"// }Ticket-Events verfolgen
// Set up Freshdesk webhook to forward ticket events// Configure in Freshdesk Admin > Automations > Webhook
// Webhook handlerapp.post('/webhooks/freshdesk', async (req, res) => { const { ticket, event_type } = req.body;
await tajo.connectors.handleWebhook('freshdesk', { topic: event_type, payload: { ticketId: ticket.id, subject: ticket.subject, status: ticket.status, priority: ticket.priority, requesterEmail: ticket.requester.email, createdAt: ticket.created_at } });
res.status(200).send('OK');});Tickets nach Kund:innen durchsuchen
// Search for all tickets from a specific customerconst response = await fetch( `https://yourcompany.freshdesk.com/api/v2/search/tickets?query=${query}`, { headers: { 'Authorization': 'Basic ' + btoa(`${API_KEY}:X`) } });
const { results, total } = await response.json();Rate Limits
| Plan | Limit | Details |
|---|---|---|
| Sprout | 50 Anfragen/Min. | Kostenloser Plan |
| Blossom | 200 Anfragen/Min. | Starter-Plan |
| Garden | 400 Anfragen/Min. | Growth-Plan |
| Estate | 700 Anfragen/Min. | Pro-Plan |
| Forest | 1.000 Anfragen/Min. | Enterprise-Plan |
Weitere Begrenzungen:
| Ressource | Limit |
|---|---|
| Listen-Endpoints | 30 Seiten pro Abfrage |
| Pro Seite | 100 Datensätze max. |
| Such-API | 2 Anfragen/Sek. |
| Bulk-Operationen | 10 Datensätze/Anfrage |
Rate-Limit-Header
Freshdesk gibt Rate-Limit-Informationen in den Response-Headern zurück. Überwache X-RateLimit-Remaining und setze Backoff ein, wenn du dich den Limits näherst.
Fehlerbehebung
| Problem | Ursache | Lösung |
|---|---|---|
401 Unauthorized | Ungültiger API-Schlüssel | Überprüfe den API-Schlüssel in den Freshdesk-Profileinstellungen |
403 Forbidden | Unzureichende Berechtigungen | Stelle sicher, dass der API-Schlüssel zu einem Admin-Konto gehört |
| Kontakte werden nicht synchronisiert | Fehlendes E-Mail-Feld | Freshdesk-Kontakte benötigen eine E-Mail-Adresse |
| Tickets erscheinen nicht | Falsche Domain | Überprüfe, ob deine Freshdesk-Domain-URL korrekt ist |
| Suche liefert leeres Ergebnis | Syntaxfehler in der Abfrage | Nutze die Freshdesk-Suchsyntax mit doppelten Anführungszeichen |
429 Too Many Requests | Rate Limit überschritten | Implementiere Rate Limiting passend zum Plan-Tarif |
| Benutzerdefinierte Felder fehlen | Feld nicht aktiviert | Stelle sicher, dass benutzerdefinierte Felder im Freshdesk-Admin aktiviert sind |
Best Practices
- Nutze Webhooks für Echtzeit-Sync - Konfiguriere Freshdesk-Automatisierungen, um Webhooks bei Ticket-Events auszulösen
- Synchronisiere CSAT-Scores - Verfolge Kund:innen-Zufriedenheitsbewertungen als Brevo-Attribute für die Segmentierung
- Ordne Ticket-Status Listen zu - Verschiebe Kontakte automatisch zwischen Brevo-Listen basierend auf dem Ticket-Status
- Verfolge Support-Metriken - Synchronisiere Ticket-Anzahl, durchschnittliche Antwortzeit und Lösungsrate pro Kontakt
- Setze die Such-API sparsam ein - Die Such-API hat strengere Rate Limits; cache Ergebnisse, wenn möglich
- Paginiere große Exporte - Nutze die Pagination mit den Parametern
pageundper_pagefür den initialen Sync
Sicherheit
- API-Schlüssel-Authentifizierung - Einfache HTTP Basic Auth mit API-Schlüssel
- Nur HTTPS - Die gesamte API-Kommunikation erfordert TLS-Verschlüsselung
- IP-Whitelisting - Verfügbar bei den Plänen Estate und Forest
- Rollenbasierter Zugriff - API-Schlüssel-Berechtigungen sind an die Agent:innen-Rolle gebunden
- SOC 2 Type II - Freshdesk ist SOC 2 Type II zertifiziert
- DSGVO-Konformität - Unterstützt Anfragen zu Datenexport und -löschung