Zendesk Connector
Connector-Status: Geplant Noch nicht gebaut. Tajo betreibt diesen Connector heute nicht.
Illustration · Beispieldaten
Sync-Beispiel
Quelle
Zendesk
Connector-Status: Geplant
Ziel
Ihr anderes Tool
Connector-Status: Eigenes Tool
Feldzuordnung
| Quellfeld | Zielfeld | Beispielwert |
|---|---|---|
record.id | source_id | record_1042 |
record.updated_at | updated_at | 2026-10-18T08:00:00Z |
record.value | value | sample_value |
- Entwerfen
- Einen Datensatz prüfen
- Diese Version freigeben
Der Status gilt für einzelne Connectoren und garantiert nicht, dass dieser Sync bereit ist. Felder zur Veranschaulichung. Prüfen Sie vor dem Sync das tatsächliche Schema und die Berechtigungen.
Verbinde deine Zendesk-Support-Instanz über Tajo mit Brevo für einheitliche Kund:innen-Supportdaten, ticketbasierte Segmentierung, Zufriedenheitsbewertung und support-getriggerte Marketing-Automatisierung.
Überblick
| Eigenschaft | Wert |
|---|---|
| Plattform | Zendesk |
| Kategorie | Support |
| Einrichtungsaufwand | Mittel |
| Offizielle Integration | Nein |
| Synchronisierte Daten | Tickets, Nutzer:innen, Organisationen, Events |
| API-Basis-URL | https://{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:
- Ein Zendesk-Support-Konto (Team, Professional oder Enterprise)
- Admin-Zugriff auf deine Zendesk-Instanz
- Ein konfiguriertes API Token oder eine OAuth-App
- Ein Brevo-Konto mit API-Zugriff
- Ein Tajo-Konto
Authentifizierung
API-Token-Authentifizierung
Nutze E-Mail-/Token-Authentifizierung für eine schnelle Einrichtung.
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.
# Authorization URLhttps://{subdomain}.zendesk.com/oauth/authorizations/new? response_type=code& client_id={client_id}& redirect_uri={redirect_uri}& scope=read%20writeErforderliche Scopes
read # Read access to all resourceswrite # Write access to all resourcestickets: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: 32Feldzuordnung
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_TIERAPI-Endpoints
Ticketing API
| Methode | Endpoint | Beschreibung |
|---|---|---|
GET | /api/v2/tickets | Tickets auflisten |
POST | /api/v2/tickets | Ticket 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
| Methode | Endpoint | Beschreibung |
|---|---|---|
GET | /api/v2/users | Nutzer:innen auflisten |
POST | /api/v2/users | Nutzer: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
| Methode | Endpoint | Beschreibung |
|---|---|---|
GET | /api/v2/organizations | Organisationen auflisten |
POST | /api/v2/organizations | Organisation erstellen |
GET | /api/v2/organizations/{id}/users | Mitglieder einer Organisation auflisten |
Satisfaction Ratings API
| Methode | Endpoint | Beschreibung |
|---|---|---|
GET | /api/v2/satisfaction_ratings | Zufriedenheitsbewertungen auflisten |
GET | /api/v2/satisfaction_ratings/{id} | Bewertung anzeigen |
Events
Ticket-Events
| Event | Auslöser | Anwendungsfall |
|---|---|---|
ticket.created | Neues Ticket eingereicht | Support-Bestätigung |
ticket.updated | Ticket-Status geändert | Status-Benachrichtigung |
ticket.solved | Ticket als gelöst markiert | CSAT-Umfrage-Trigger |
ticket.reopened | Gelöstes Ticket wiedereröffnet | Eskalations-Alarm |
Nutzer:innen-Events
| Event | Auslöser | Anwendungsfall |
|---|---|---|
user.created | Neue:r Nutzer:in registriert | Willkommen im Support |
user.updated | Nutzer:innen-Profil geändert | Attribut-Synchronisierung |
user.merged | Nutzer:innen zusammengeführt | Deduplizierung |
Zufriedenheits-Events
| Event | Auslöser | Anwendungsfall |
|---|---|---|
satisfaction_rating.created | CSAT eingereicht | Feedback-Verarbeitung |
satisfaction_rating.bad | Negative Bewertung | Recovery-Outreach |
satisfaction_rating.good | Positive Bewertung | Advocacy-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 Zendeskawait tajo.connectors.connect('zendesk', { subdomain: 'yourcompany', apiToken: process.env.ZENDESK_API_TOKEN});Nutzer:innen und Tickets synchronisieren
// Full sync of users and ticket dataawait tajo.connectors.sync('zendesk', { type: 'full', resources: ['users', 'tickets', 'organizations'], since: '2023-01-01'});
// Check sync statusconst 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:
| Plan | Rate Limit | Details |
|---|---|---|
| Team | 200 Anfragen/Minute | Pro API Token |
| Professional | 400 Anfragen/Minute | Pro API Token |
| Enterprise | 700 Anfragen/Minute | Pro API Token |
| High Volume Add-on | 2.500 Anfragen/Minute | Pro 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
| Problem | Ursache | Lösung |
|---|---|---|
| 401 Unauthorized | Ungültiges API Token | Token im Zendesk-Admin neu erzeugen |
| 403 Forbidden | Unzureichende Berechtigungen | Anforderungen der Agent- oder Admin-Rolle prüfen |
| Nutzer:in nicht synchronisiert | Nutzer:in ist Agent:in, nicht Endkund:in | In der Sync-Konfiguration nach Rolle filtern |
| Webhook nicht empfangen | Trigger/Target nicht konfiguriert | Webhook-Target im Zendesk-Admin einrichten |
| Suche liefert leeres Ergebnis | Verzögerung bei der Indexierung | 1–2 Minuten auf Update des Suchindex warten |
Debug-Modus
Ausführliches Logging aktivieren:
connectors: zendesk: debug: true log_level: verbose log_webhooks: trueVerbindung testen
tajo connectors test zendesk# ✓ API connection successful# ✓ Users readable# ✓ Tickets readable# ✓ Organizations readable# ✓ Webhooks configuredBest Practices
- Inkrementelle Exporte nutzen - Setze die Incremental API für umfangreiche Datensynchronisierung ein
- Nur Endkund:innen filtern - Schließe Agent:innen und Admins aus dem Brevo-Kontakt-Sync aus
- CSAT-Daten synchronisieren - Nutze Zufriedenheitswerte für die Segmentierung nach Customer Health
- Organisationen zuordnen - Nutze Organisationsdaten für B2B-Marketing-Kampagnen
- Webhook-Retries implementieren - Handle temporäre Fehler gelassen
- 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