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ść
PlatformaZendesk
KategoriaSupport
Poziom konfiguracjiŚredni
Integracja oficjalnaTak
Synchronizowane daneZgłoszenia, Użytkownicy, Organizacje, Zdarzenia
Bazowy URL APIhttps://{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:

  1. Konto Zendesk Support (Team, Professional lub Enterprise)
  2. Dostęp administratora do instancji Zendesk
  3. Skonfigurowany token API lub aplikację OAuth
  4. Konto Brevo z dostępem do API
  5. Konto Tajo

Uwierzytelnianie

Uwierzytelnianie tokenem API

Używaj uwierzytelniania e-mail/token dla szybkiej konfiguracji.

Terminal window
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.

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

Wymagane zakresy

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)

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: 32

Mapowanie 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_TIER

Endpointy API

API Zgłoszeń

MetodaEndpointOpis
GET/api/v2/ticketsLista zgłoszeń
POST/api/v2/ticketsUtwó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

MetodaEndpointOpis
GET/api/v2/usersLista użytkowników
POST/api/v2/usersUtwó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

MetodaEndpointOpis
GET/api/v2/organizationsLista organizacji
POST/api/v2/organizationsUtwórz organizację
GET/api/v2/organizations/{id}/usersLista członków organizacji

API Ocen satysfakcji

MetodaEndpointOpis
GET/api/v2/satisfaction_ratingsLista ocen satysfakcji
GET/api/v2/satisfaction_ratings/{id}Pokaż ocenę

Zdarzenia

Zdarzenia zgłoszeń

ZdarzenieWyzwalaczPrzypadek użycia
ticket.createdZłożono nowe zgłoszeniePotwierdzenie wsparcia
ticket.updatedZmieniono status zgłoszeniaPowiadomienie o statusie
ticket.solvedZgłoszenie oznaczone jako rozwiązaneWyzwalacz ankiety CSAT
ticket.reopenedPonownie otwarto rozwiązane zgłoszenieAlert o eskalacji

Zdarzenia użytkowników

ZdarzenieWyzwalaczPrzypadek użycia
user.createdZarejestrował się nowy użytkownikWitaj w wsparciu
user.updatedZmieniono profil użytkownikaSynchronizacja atrybutów
user.mergedScalono użytkownikówDeduplikacja

Zdarzenia satysfakcji

ZdarzenieWyzwalaczPrzypadek użycia
satisfaction_rating.createdPrzesłano CSATPrzetwarzanie opinii
satisfaction_rating.badNegatywna ocenaDziałania naprawcze
satisfaction_rating.goodPozytywna ocenaKampanie 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 Zendesk
await 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 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
// }

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:

PlanLimit szybkościSzczegóły
Team200 żądań/minutęNa token API
Professional400 żądań/minutęNa token API
Enterprise700 żądań/minutęNa token API
Dodatek High Volume2 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

ProblemPrzyczynaRozwiązanie
401 UnauthorizedNieprawidłowy token APIWygeneruj ponownie token w Zendesk Admin
403 ForbiddenNiewystarczające uprawnieniaSprawdź wymagania roli agenta lub administratora
Użytkownik nie zsynchronizowanyUżytkownik jest agentem, nie użytkownikiem końcowymFiltruj według roli w konfiguracji synchronizacji
Webhook nie odebranyTrigger/target nie skonfigurowanySkonfiguruj cel webhooka w Zendesk Admin
Wyszukiwanie zwraca puste wynikiOpóźnienie indeksowaniaPoczekaj 1-2 minuty na aktualizację indeksu wyszukiwania

Tryb debug

Włącz szczegółowe logowanie:

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

Test połączenia

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

Najlepsze praktyki

  1. Używaj eksportów przyrostowych - Używaj Incremental API dla synchronizacji danych na dużą skalę
  2. Filtruj tylko użytkowników końcowych - Wykluczaj agentów i administratorów z synchronizacji kontaktów Brevo
  3. Synchronizuj dane CSAT - Używaj wyników satysfakcji dla segmentacji zdrowia klienta
  4. Mapuj organizacje - Wykorzystuj dane organizacji dla kampanii marketingowych B2B
  5. Wdrożyj ponowne próby webhooków - Obsługuj tymczasowe błędy bez zakłóceń
  6. 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

Powiązane zasoby

Subscribe to updates

developer-docs

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

auto-detect
Asystent AI

Cześć! Zapytaj mnie o dokumentację.