Zendesk Connector
Forbind din Zendesk Support-instans til Brevo via Tajo for forenede kundesupportdata, sagsbaseret segmentering, tilfredshedsscoring og supportudløst marketingautomatisering.
Oversigt
| Egenskab | Værdi |
|---|---|
| Platform | Zendesk |
| Kategori | Support |
| Opsætningskompleksitet | Mellem |
| Officiel integration | Ja |
| Synkroniserede data | Sager, brugere, organisationer, hændelser |
| API-base-URL | https://{subdomain}.zendesk.com/api/v2 |
Funktioner
- Brugersynkronisering - Synkronisér Zendesk-slutbrugere og -agenter med Brevo-kontakter
- Sagssporing - Synkronisér sagsdata til supportbevidst marketingsegmentering
- Organisationsmapping - Knyt kontakter til organisationer til B2B-workflows
- Tilfredshedsscores - Synkronisér CSAT- og NPS-data til Brevo-attributter
- Sagshændelser - Spor sagsoprettelse, -løsning og eskalering til automatiseringstriggere
- Help center-integration - Spor artikelvisninger og søgeadfærd
- Multi-kanal-support - Synkronisér data fra e-mail-, chat-, tale- og beskedkanaler
- Brugerdefinerede felter - Knyt Zendesk-brugerdefinerede sags- og brugerfelter til Brevo
Forudsætninger
Før du begynder, skal du sikre dig, at du har:
- En Zendesk Support-konto (Team, Professional eller Enterprise)
- Administratoradgang til din Zendesk-instans
- API-token eller OAuth-app konfigureret
- En Brevo-konto med API-adgang
- En Tajo-konto
Autentifikation
API-token-autentifikation
Brug e-mail/token-autentifikation til hurtig opsætning.
curl https://{subdomain}.zendesk.com/api/v2/users.json \ -u {email}/token:{api_token} \ -H "Content-Type: application/json"Generér en API-token fra Zendesk Admin > Apps and Integrations > APIs > Zendesk API.
OAuth 2.0
Brug OAuth til integrationer på tværs af flere instanser med delegeret brugeradgang.
# Authorization URLhttps://{subdomain}.zendesk.com/oauth/authorizations/new? response_type=code& client_id={client_id}& redirect_uri={redirect_uri}& scope=read%20writePåkrævede 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
Grundlæggende opsætning
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: 32Feltmapping
Knyt Zendesk-brugerfelter til Brevo-kontaktattributter:
Standardmappings
| Parameter | Type | Description |
|---|---|---|
email required | string | Brugerens e-mailadresse (unik identifikator) |
name optional | string | Fulde navn, opdelt i FIRSTNAME/LASTNAME |
phone optional | string | Mapper til SMS-attribut for WhatsApp/SMS |
organization_id optional | integer | Tilknyttet organisation til B2B-mapping |
role optional | string | Brugerrolle (end-user, agent, admin) |
tags optional | array | Brugertags fra Zendesk |
ticket_restriction optional | string | Sagsadgangsniveau |
custom_fields optional | object | Værdier for brugerdefinerede brugerfelter |
Brugerdefineret feltmapping
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
| Metode | Endpoint | Beskrivelse |
|---|---|---|
GET | /api/v2/tickets | Vis sager |
POST | /api/v2/tickets | Opret en sag |
PUT | /api/v2/tickets/{id} | Opdatér en sag |
GET | /api/v2/tickets/{id} | Vis en sag |
GET | /api/v2/search.json?query={query} | Søg sager |
Users API
| Metode | Endpoint | Beskrivelse |
|---|---|---|
GET | /api/v2/users | Vis brugere |
POST | /api/v2/users | Opret en bruger |
PUT | /api/v2/users/{id} | Opdatér en bruger |
GET | /api/v2/users/{id} | Vis en bruger |
GET | /api/v2/users/search.json?query={query} | Søg brugere |
Organizations API
| Metode | Endpoint | Beskrivelse |
|---|---|---|
GET | /api/v2/organizations | Vis organisationer |
POST | /api/v2/organizations | Opret en organisation |
GET | /api/v2/organizations/{id}/users | Vis organisationens medlemmer |
Satisfaction Ratings API
| Metode | Endpoint | Beskrivelse |
|---|---|---|
GET | /api/v2/satisfaction_ratings | Vis tilfredshedsratings |
GET | /api/v2/satisfaction_ratings/{id} | Vis en rating |
Hændelser
Sagshændelser
| Hændelse | Trigger | Anvendelse |
|---|---|---|
ticket.created | Ny sag indsendt | Supportbekræftelse |
ticket.updated | Sagsstatus ændret | Statusnotifikation |
ticket.solved | Sag markeret som løst | CSAT-undersøgelsestrigger |
ticket.reopened | Løst sag genåbnet | Eskaleringsadvarsel |
Brugerhændelser
| Hændelse | Trigger | Anvendelse |
|---|---|---|
user.created | Ny bruger registreret | Velkomst til support |
user.updated | Brugerprofil ændret | Attributsynkronisering |
user.merged | Brugere flettet | Deduplikering |
Tilfredshedshændelser
| Hændelse | Trigger | Anvendelse |
|---|---|---|
satisfaction_rating.created | CSAT indsendt | Feedback-behandling |
satisfaction_rating.bad | Negativ rating | Genoprettelseskontakt |
satisfaction_rating.good | Positiv rating | Advocacy-kampagner |
Kodeeksempler
Initialisér konnektor
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});Synkronisér brugere og sager
// 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// }Håndtér Zendesk-webhooks
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');});Ratebegrænsninger
Zendesk-ratebegrænsninger varierer efter plan:
| Plan | Ratebegrænsning | Detaljer |
|---|---|---|
| Team | 200 forespørgsler/minut | Per API-token |
| Professional | 400 forespørgsler/minut | Per API-token |
| Enterprise | 700 forespørgsler/minut | Per API-token |
| High Volume Add-on | 2.500 forespørgsler/minut | Per API-token |
Yderligere grænser:
- Search API: 6 forespørgsler/minut for anonyme, 100/minut for autentificerede
- Inkrementelle eksporter: 10 forespørgsler/minut
- Batch API: 100 poster per batch-forespørgsel
- Webhook-levering: Automatisk retry med eksponentiel backoff
Rate limit-headere
Overvåg headerne X-Rate-Limit-Remaining og Retry-After for at administrere dit API-forbrug.
Fejlfinding
Almindelige problemer
| Problem | Årsag | Løsning |
|---|---|---|
| 401 Unauthorized | Ugyldig API-token | Regenerér token i Zendesk Admin |
| 403 Forbidden | Utilstrækkelige rettigheder | Tjek agent- eller administratorrolle-krav |
| Bruger ikke synkroniseret | Bruger er agent, ikke slutbruger | Filtrér efter rolle i synkroniseringskonfiguration |
| Webhook ikke modtaget | Trigger/target ikke konfigureret | Opsæt webhook-target i Zendesk Admin |
| Søgning returnerer tomt | Indekseringsforsinkelse | Vent 1-2 minutter på søgeindeksopdatering |
Fejlfindingstilstand
Aktivér udførlig logning:
connectors: zendesk: debug: true log_level: verbose log_webhooks: trueTest forbindelse
tajo connectors test zendesk# ✓ API connection successful# ✓ Users readable# ✓ Tickets readable# ✓ Organizations readable# ✓ Webhooks configuredBest practices
- Brug inkrementelle eksporter - Brug Incremental API til storskaladatasynkronisering
- Filtrér kun slutbrugere - Ekskludér agenter og administratorer fra Brevo-kontaktsynkronisering
- Synkronisér CSAT-data - Brug tilfredshedsscores til segmentering af kundehelbred
- Map organisationer - Udnyt organisationsdata til B2B-marketingkampagner
- Implementér webhook-retries - Håndtér midlertidige fejl problemfrit
- Brug side-loading - Inkludér relaterede poster i API-svar for at reducere antallet af forespørgsler
Sikkerhed
- API-token-autentifikation - Tokenbaseret adgang knyttet til administrator-e-mail
- OAuth 2.0 - Tokenbaseret delegeret adgang med scope-kontrol
- Webhook-signering - HMAC-signaturverifikation for webhook-payloads
- TLS-kryptering - Al API-kommunikation krypteret via HTTPS
- IP-whitelisting - Begræns API-adgang efter IP-interval