Konektor Zendesk
Połącz swoją instancję Zendesk Support z Brevo przez Tajo dla ujednoliconych danych wsparcia klientów, segmentacji opartej na zgłoszeniach, scoringu satysfakcji i automatyzacji marketingu wyzwalanej wsparciem.
Przegląd
| Właściwość | Wartość |
|---|---|
| Platforma | Zendesk |
| Kategoria | Support |
| Poziom konfiguracji | Średni |
| Integracja oficjalna | Tak |
| Synchronizowane dane | Zgłoszenia, Użytkownicy, Organizacje, Zdarzenia |
| Bazowy URL API | https://{subdomain}.zendesk.com/api/v2 |
Funkcje
- Synchronizacja użytkowników - Synchronizuj użytkowników końcowych i agentów Zendesk z kontaktami Brevo
- Śledzenie zgłoszeń - Synchronizuj dane zgłoszeń dla segmentacji marketingowej uwzględniającej wsparcie
- Mapowanie organizacji - Kojarz kontakty z organizacjami dla workflow B2B
- Wyniki satysfakcji - Synchronizuj dane CSAT i NPS z atrybutami Brevo
- Zdarzenia zgłoszeń - Śledź tworzenie, rozwiązywanie i eskalację zgłoszeń jako wyzwalacze automatyzacji
- Integracja centrum pomocy - Śledź wyświetlenia artykułów i zachowanie wyszukiwania
- Wsparcie wielokanałowe - Synchronizuj dane z kanałów e-mail, czat, głos i komunikatory
- Niestandardowe pola - Mapuj niestandardowe pola zgłoszeń i użytkowników Zendesk na Brevo
Wymagania wstępne
Zanim zaczniesz, upewnij się, że masz:
- Konto Zendesk Support (Team, Professional lub Enterprise)
- Dostęp administratora do instancji Zendesk
- Skonfigurowany token API lub aplikację OAuth
- Konto Brevo z dostępem do API
- Konto Tajo
Uwierzytelnianie
Uwierzytelnianie tokenem API
Używaj uwierzytelniania e-mail/token dla szybkiej konfiguracji.
curl https://{subdomain}.zendesk.com/api/v2/users.json \ -u {email}/token:{api_token} \ -H "Content-Type: application/json"Generuj token API w Zendesk Admin > Apps and Integrations > APIs > Zendesk API.
OAuth 2.0
Używaj OAuth dla integracji wieloinstancyjnych z delegowanym dostępem użytkownika.
# Authorization URLhttps://{subdomain}.zendesk.com/oauth/authorizations/new? response_type=code& client_id={client_id}& redirect_uri={redirect_uri}& scope=read%20writeWymagane zakresy
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)Konfiguracja
Podstawowa konfiguracja
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: 32Mapowanie pól
Mapuj pola użytkowników Zendesk na atrybuty kontaktów Brevo:
Domyślne mapowania
| Parameter | Type | Description |
|---|---|---|
email required | string | Adres e-mail użytkownika (unikalny identyfikator) |
name optional | string | Pełne imię i nazwisko, podzielone na FIRSTNAME/LASTNAME |
phone optional | string | Mapuje na atrybut SMS dla WhatsApp/SMS |
organization_id optional | integer | Powiązana organizacja dla mapowania B2B |
role optional | string | Rola użytkownika (end-user, agent, admin) |
tags optional | array | Tagi użytkownika z Zendesk |
ticket_restriction optional | string | Poziom dostępu do zgłoszeń |
custom_fields optional | object | Wartości niestandardowych pól użytkownika |
Mapowanie niestandardowych pól
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_TIEREndpointy API
API Zgłoszeń
| Metoda | Endpoint | Opis |
|---|---|---|
GET | /api/v2/tickets | Lista zgłoszeń |
POST | /api/v2/tickets | Utwórz zgłoszenie |
PUT | /api/v2/tickets/{id} | Zaktualizuj zgłoszenie |
GET | /api/v2/tickets/{id} | Pokaż zgłoszenie |
GET | /api/v2/search.json?query={query} | Wyszukaj zgłoszenia |
API Użytkowników
| Metoda | Endpoint | Opis |
|---|---|---|
GET | /api/v2/users | Lista użytkowników |
POST | /api/v2/users | Utwórz użytkownika |
PUT | /api/v2/users/{id} | Zaktualizuj użytkownika |
GET | /api/v2/users/{id} | Pokaż użytkownika |
GET | /api/v2/users/search.json?query={query} | Wyszukaj użytkowników |
API Organizacji
| Metoda | Endpoint | Opis |
|---|---|---|
GET | /api/v2/organizations | Lista organizacji |
POST | /api/v2/organizations | Utwórz organizację |
GET | /api/v2/organizations/{id}/users | Lista członków organizacji |
API Ocen satysfakcji
| Metoda | Endpoint | Opis |
|---|---|---|
GET | /api/v2/satisfaction_ratings | Lista ocen satysfakcji |
GET | /api/v2/satisfaction_ratings/{id} | Pokaż ocenę |
Zdarzenia
Zdarzenia zgłoszeń
| Zdarzenie | Wyzwalacz | Przypadek użycia |
|---|---|---|
ticket.created | Złożono nowe zgłoszenie | Potwierdzenie wsparcia |
ticket.updated | Zmieniono status zgłoszenia | Powiadomienie o statusie |
ticket.solved | Zgłoszenie oznaczone jako rozwiązane | Wyzwalacz ankiety CSAT |
ticket.reopened | Ponownie otwarto rozwiązane zgłoszenie | Alert o eskalacji |
Zdarzenia użytkowników
| Zdarzenie | Wyzwalacz | Przypadek użycia |
|---|---|---|
user.created | Zarejestrował się nowy użytkownik | Witaj w wsparciu |
user.updated | Zmieniono profil użytkownika | Synchronizacja atrybutów |
user.merged | Scalono użytkowników | Deduplikacja |
Zdarzenia satysfakcji
| Zdarzenie | Wyzwalacz | Przypadek użycia |
|---|---|---|
satisfaction_rating.created | Przesłano CSAT | Przetwarzanie opinii |
satisfaction_rating.bad | Negatywna ocena | Działania naprawcze |
satisfaction_rating.good | Pozytywna ocena | Kampanie rzecznicze |
Przykłady kodu
Inicjalizacja konektora
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});Synchronizuj użytkowników i zgłoszenia
// 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// }Obsługuj webhooki Zendesk
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');});Limity API
Limity szybkości Zendesk zależą od planu:
| Plan | Limit szybkości | Szczegóły |
|---|---|---|
| Team | 200 żądań/minutę | Na token API |
| Professional | 400 żądań/minutę | Na token API |
| Enterprise | 700 żądań/minutę | Na token API |
| Dodatek High Volume | 2 500 żądań/minutę | Na token API |
Dodatkowe limity:
- Search API: 6 żądań/minutę dla anonimowych, 100/minutę dla uwierzytelnionych
- Eksporty przyrostowe: 10 żądań/minutę
- Batch API: 100 rekordów na żądanie wsadowe
- Dostarczanie webhooków: Automatyczne ponowne próby z wykładniczym wycofaniem
Nagłówki limitów szybkości
Monitoruj nagłówki X-Rate-Limit-Remaining i Retry-After, aby zarządzać użyciem API.
Rozwiązywanie problemów
Typowe problemy
| Problem | Przyczyna | Rozwiązanie |
|---|---|---|
| 401 Unauthorized | Nieprawidłowy token API | Wygeneruj ponownie token w Zendesk Admin |
| 403 Forbidden | Niewystarczające uprawnienia | Sprawdź wymagania roli agenta lub administratora |
| Użytkownik nie zsynchronizowany | Użytkownik jest agentem, nie użytkownikiem końcowym | Filtruj według roli w konfiguracji synchronizacji |
| Webhook nie odebrany | Trigger/target nie skonfigurowany | Skonfiguruj cel webhooka w Zendesk Admin |
| Wyszukiwanie zwraca puste wyniki | Opóźnienie indeksowania | Poczekaj 1-2 minuty na aktualizację indeksu wyszukiwania |
Tryb debug
Włącz szczegółowe logowanie:
connectors: zendesk: debug: true log_level: verbose log_webhooks: trueTest połączenia
tajo connectors test zendesk# ✓ API connection successful# ✓ Users readable# ✓ Tickets readable# ✓ Organizations readable# ✓ Webhooks configuredNajlepsze praktyki
- Używaj eksportów przyrostowych - Używaj Incremental API dla synchronizacji danych na dużą skalę
- Filtruj tylko użytkowników końcowych - Wykluczaj agentów i administratorów z synchronizacji kontaktów Brevo
- Synchronizuj dane CSAT - Używaj wyników satysfakcji dla segmentacji zdrowia klienta
- Mapuj organizacje - Wykorzystuj dane organizacji dla kampanii marketingowych B2B
- Wdrożyj ponowne próby webhooków - Obsługuj tymczasowe błędy bez zakłóceń
- Używaj side-loading - Dołączaj powiązane rekordy w odpowiedziach API, aby zmniejszyć liczbę żądań
Bezpieczeństwo
- Uwierzytelnianie tokenem API - Dostęp oparty na tokenie powiązanym z e-mailem administratora
- OAuth 2.0 - Delegowany dostęp oparty na tokenie z kontrolą zakresów
- Podpisywanie webhooków - Weryfikacja podpisu HMAC dla ładunków webhooków
- Szyfrowanie TLS - Cała komunikacja API szyfrowana przez HTTPS
- Allowlisting IP - Ograniczanie dostępu do API według zakresu IP