Zendesk Connector

Verbinde deine Zendesk-Support-Instanz über Tajo mit Brevo für einheitliche Kund:innen-Supportdaten, ticketbasierte Segmentierung, Zufriedenheitsbewertung und support-getriggerte Marketing-Automatisierung.

Überblick

EigenschaftWert
PlattformZendesk
KategorieSupport
EinrichtungsaufwandMittel
Offizielle IntegrationJa
Synchronisierte DatenTickets, Nutzer:innen, Organisationen, Events
API-Basis-URLhttps://{subdomain}.zendesk.com/api/v2

Funktionen

  • Nutzer:innen-Synchronisierung - Synchronisiere Zendesk-Endkund:innen und -Agent:innen mit Brevo-Kontakten
  • Ticket-Tracking - Synchronisiere Ticket-Daten für support-bewusste Marketing-Segmentierung
  • Organisations-Zuordnung - Verknüpfe Kontakte mit Organisationen für B2B-Workflows
  • Zufriedenheitswerte - Synchronisiere CSAT- und NPS-Daten als Brevo-Attribute
  • Ticket-Events - Verfolge Ticket-Erstellung, -Lösung und Eskalation als Automatisierungstrigger
  • Help-Center-Integration - Verfolge Artikelaufrufe und Suchverhalten
  • Multi-Channel-Support - Synchronisiere Daten aus E-Mail-, Chat-, Voice- und Messaging-Kanälen
  • Benutzerdefinierte Felder - Ordne benutzerdefinierte Zendesk-Ticket- und Nutzer:innen-Felder Brevo zu

Voraussetzungen

Bevor du beginnst, stelle sicher, dass du Folgendes hast:

  1. Ein Zendesk-Support-Konto (Team, Professional oder Enterprise)
  2. Admin-Zugriff auf deine Zendesk-Instanz
  3. Ein konfiguriertes API Token oder eine OAuth-App
  4. Ein Brevo-Konto mit API-Zugriff
  5. Ein Tajo-Konto

Authentifizierung

API-Token-Authentifizierung

Nutze E-Mail-/Token-Authentifizierung für eine schnelle Einrichtung.

Terminal window
curl https://{subdomain}.zendesk.com/api/v2/users.json \
-u {email}/token:{api_token} \
-H "Content-Type: application/json"

Erzeuge ein API Token unter Zendesk Admin > Apps and Integrations > APIs > Zendesk API.

OAuth 2.0

Nutze OAuth für Integrationen mit mehreren Instanzen und delegiertem Nutzer:innen-Zugriff.

Terminal window
# Authorization URL
https://{subdomain}.zendesk.com/oauth/authorizations/new?
response_type=code&
client_id={client_id}&
redirect_uri={redirect_uri}&
scope=read%20write

Erforderliche Scopes

read # Read access to all resources
write # Write access to all resources
tickets:read # Read tickets (granular)
users:read # Read users (granular)
organizations:read # Read organizations (granular)

Konfiguration

Grundeinrichtung

connectors:
zendesk:
enabled: true
subdomain: "yourcompany"
auth:
api_token: "${ZENDESK_API_TOKEN}"
# Data sync options
sync:
users: true
tickets: true
organizations: true
satisfaction_ratings: true
# Brevo list assignment
lists:
all_customers: 30
active_tickets: 31
satisfied_customers: 32

Feldzuordnung

Ordne Zendesk-Nutzer:innen-Felder den Brevo-Kontaktattributen zu:

Standardzuordnungen

Parameter Type Description
email required
string

E-Mail-Adresse des/der Nutzer:in (eindeutige Kennung)

name optional
string

Vollständiger Name, aufgeteilt in FIRSTNAME/LASTNAME

phone optional
string

Wird dem SMS-Attribut für WhatsApp/SMS zugeordnet

organization_id optional
integer

Zugehörige Organisation für B2B-Zuordnung

role optional
string

Nutzer:innen-Rolle (End-User, Agent, Admin)

tags optional
array

Nutzer:innen-Tags aus Zendesk

ticket_restriction optional
string

Ticket-Zugriffsebene

custom_fields optional
object

Werte benutzerdefinierter Nutzer:innen-Felder

Zuordnung benutzerdefinierter Felder

field_mapping:
# Standard fields
email: email
name: FULLNAME
phone: SMS
# Support metrics
open_tickets: OPEN_TICKETS
total_tickets: TOTAL_TICKETS
avg_satisfaction: CSAT_SCORE
last_ticket_date: LAST_SUPPORT_DATE
# Organization fields
organization.name: COMPANY_NAME
organization.tags: COMPANY_TAGS
# Custom fields
user_fields.customer_type: CUSTOMER_TYPE
user_fields.account_tier: ACCOUNT_TIER

API-Endpoints

Ticketing API

MethodeEndpointBeschreibung
GET/api/v2/ticketsTickets auflisten
POST/api/v2/ticketsTicket erstellen
PUT/api/v2/tickets/{id}Ticket aktualisieren
GET/api/v2/tickets/{id}Ticket anzeigen
GET/api/v2/search.json?query={query}Tickets durchsuchen

Users API

MethodeEndpointBeschreibung
GET/api/v2/usersNutzer:innen auflisten
POST/api/v2/usersNutzer:in erstellen
PUT/api/v2/users/{id}Nutzer:in aktualisieren
GET/api/v2/users/{id}Nutzer:in anzeigen
GET/api/v2/users/search.json?query={query}Nutzer:innen durchsuchen

Organizations API

MethodeEndpointBeschreibung
GET/api/v2/organizationsOrganisationen auflisten
POST/api/v2/organizationsOrganisation erstellen
GET/api/v2/organizations/{id}/usersMitglieder einer Organisation auflisten

Satisfaction Ratings API

MethodeEndpointBeschreibung
GET/api/v2/satisfaction_ratingsZufriedenheitsbewertungen auflisten
GET/api/v2/satisfaction_ratings/{id}Bewertung anzeigen

Events

Ticket-Events

EventAuslöserAnwendungsfall
ticket.createdNeues Ticket eingereichtSupport-Bestätigung
ticket.updatedTicket-Status geändertStatus-Benachrichtigung
ticket.solvedTicket als gelöst markiertCSAT-Umfrage-Trigger
ticket.reopenedGelöstes Ticket wiedereröffnetEskalations-Alarm

Nutzer:innen-Events

EventAuslöserAnwendungsfall
user.createdNeue:r Nutzer:in registriertWillkommen im Support
user.updatedNutzer:innen-Profil geändertAttribut-Synchronisierung
user.mergedNutzer:innen zusammengeführtDeduplizierung

Zufriedenheits-Events

EventAuslöserAnwendungsfall
satisfaction_rating.createdCSAT eingereichtFeedback-Verarbeitung
satisfaction_rating.badNegative BewertungRecovery-Outreach
satisfaction_rating.goodPositive BewertungAdvocacy-Kampagnen

Code-Beispiele

Connector initialisieren

import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({
apiKey: process.env.TAJO_API_KEY,
brevoApiKey: process.env.BREVO_API_KEY
});
// Connect Zendesk
await tajo.connectors.connect('zendesk', {
subdomain: 'yourcompany',
apiToken: process.env.ZENDESK_API_TOKEN
});

Nutzer:innen und Tickets synchronisieren

// Full sync of users and ticket data
await tajo.connectors.sync('zendesk', {
type: 'full',
resources: ['users', 'tickets', 'organizations'],
since: '2023-01-01'
});
// Check sync status
const status = await tajo.connectors.status('zendesk');
console.log(status);
// {
// connected: true,
// lastSync: '2024-01-15T10:30:00Z',
// usersSynced: 8400,
// ticketsSynced: 34200,
// organizationsSynced: 1200
// }

Zendesk-Webhooks verarbeiten

app.post('/webhooks/zendesk', async (req, res) => {
const signature = req.get('X-Zendesk-Webhook-Signature');
// Verify webhook signature
if (!verifyZendeskSignature(req.body, signature)) {
return res.status(401).send('Unauthorized');
}
await tajo.connectors.handleWebhook('zendesk', {
type: req.body.type,
ticketId: req.body.ticket_id,
userId: req.body.user_id,
payload: req.body
});
res.status(200).send('OK');
});

Rate Limits

Zendesk-Rate-Limits variieren je nach Plan:

PlanRate LimitDetails
Team200 Anfragen/MinutePro API Token
Professional400 Anfragen/MinutePro API Token
Enterprise700 Anfragen/MinutePro API Token
High Volume Add-on2.500 Anfragen/MinutePro API Token

Weitere Begrenzungen:

  • Such-API: 6 Anfragen/Minute anonym, 100/Minute authentifiziert
  • Inkrementelle Exporte: 10 Anfragen/Minute
  • Batch-API: 100 Datensätze pro Batch-Anfrage
  • Webhook-Zustellung: Automatische Wiederholung mit exponentiellem Backoff

Rate-Limit-Header

Überwache die Header X-Rate-Limit-Remaining und Retry-After, um deinen API-Verbrauch zu steuern.

Fehlerbehebung

Häufige Probleme

ProblemUrsacheLösung
401 UnauthorizedUngültiges API TokenToken im Zendesk-Admin neu erzeugen
403 ForbiddenUnzureichende BerechtigungenAnforderungen der Agent- oder Admin-Rolle prüfen
Nutzer:in nicht synchronisiertNutzer:in ist Agent:in, nicht Endkund:inIn der Sync-Konfiguration nach Rolle filtern
Webhook nicht empfangenTrigger/Target nicht konfiguriertWebhook-Target im Zendesk-Admin einrichten
Suche liefert leeres ErgebnisVerzögerung bei der Indexierung1–2 Minuten auf Update des Suchindex warten

Debug-Modus

Ausführliches Logging aktivieren:

connectors:
zendesk:
debug: true
log_level: verbose
log_webhooks: true

Verbindung testen

Terminal window
tajo connectors test zendesk
# ✓ API connection successful
# ✓ Users readable
# ✓ Tickets readable
# ✓ Organizations readable
# ✓ Webhooks configured

Best Practices

  1. Inkrementelle Exporte nutzen - Setze die Incremental API für umfangreiche Datensynchronisierung ein
  2. Nur Endkund:innen filtern - Schließe Agent:innen und Admins aus dem Brevo-Kontakt-Sync aus
  3. CSAT-Daten synchronisieren - Nutze Zufriedenheitswerte für die Segmentierung nach Customer Health
  4. Organisationen zuordnen - Nutze Organisationsdaten für B2B-Marketing-Kampagnen
  5. Webhook-Retries implementieren - Handle temporäre Fehler gelassen
  6. Side-Loading verwenden - Füge verwandte Datensätze in API-Antworten ein, um die Anzahl der Anfragen zu reduzieren

Sicherheit

  • API-Token-Authentifizierung - Tokenbasierter Zugriff, gebunden an die Admin-E-Mail
  • OAuth 2.0 - Tokenbasierter delegierter Zugriff mit Scope-Kontrollen
  • Webhook-Signierung - HMAC-Signaturprüfung für Webhook-Payloads
  • TLS-Verschlüsselung - Die gesamte API-Kommunikation ist per HTTPS verschlüsselt
  • IP-Whitelisting - API-Zugriff nach IP-Bereich beschränken

Verwandte Ressourcen

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
AI-Assistent

Hallo! Fragen Sie mich alles über die Dokumentation.