Zendesk konektor
Poveži Zendesk Support instancu sa Brevo putem Tajo za unifikovane podatke korisničke podrške, segmentaciju zasnovanu na tiketima, ocenjivanje zadovoljstva i marketing automatizaciju aktiviranu podrškom.
Pregled
| Svojstvo | Vrednost |
|---|---|
| Platforma | Zendesk |
| Kategorija | Podrška |
| Složenost podešavanja | Srednje |
| Zvanična integracija | Da |
| Sinhronizovani podaci | Tiketi, Korisnici, Organizacije, Događaji |
| Osnovni URL API-ja | https://{subdomain}.zendesk.com/api/v2 |
Karakteristike
- Sinhronizacija korisnika - Sinhronizacija Zendesk krajnjih korisnika i agenata sa Brevo kontaktima
- Praćenje tiketa - Sinhronizacija podataka tiketa za segmentaciju marketinga svesnog podrške
- Mapiranje organizacija - Povezivanje kontakata sa organizacijama za B2B tokove rada
- Ocene zadovoljstva - Sinhronizacija CSAT i NPS podataka na Brevo atribute
- Događaji tiketa - Praćenje kreiranja, rešavanja i eskalacije tiketa za okidače automatizacije
- Integracija Help centra - Praćenje pregleda članaka i ponašanja pretrage
- Podrška za više kanala - Sinhronizacija podataka iz emaila, chata, glasa i kanala za razmenu poruka
- Prilagođena polja - Mapiranje prilagođenih polja tiketa i korisnika u Zendesk-u na Brevo
Preduslovi
Pre nego što započneš, proveri da imaš:
- Zendesk Support nalog (Team, Professional ili Enterprise)
- Admin pristup Zendesk instanci
- Konfigurisani API token ili OAuth aplikaciju
- Brevo nalog sa API pristupom
- Tajo nalog
Autentifikacija
Autentifikacija API tokenom
Koristi email/token autentifikaciju za brzo podešavanje.
curl https://{subdomain}.zendesk.com/api/v2/users.json \ -u {email}/token:{api_token} \ -H "Content-Type: application/json"Generišu API token iz Zendesk Admin > Apps and Integrations > APIs > Zendesk API.
OAuth 2.0
Koristi OAuth za integracije sa više instanci sa delegiranim korisničkim pristupom.
# Authorization URLhttps://{subdomain}.zendesk.com/oauth/authorizations/new? response_type=code& client_id={client_id}& redirect_uri={redirect_uri}& scope=read%20writePotrebni skopovi
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)Konfiguracija
Osnovno podešavanje
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: 32Mapiranje polja
Mapiranje polja Zendesk korisnika na Brevo atribute kontakta:
Default Mappings
| Parameter | Type | Description |
|---|---|---|
email required | string | Email adresa korisnika (jedinstveni identifikator) |
name optional | string | Puno ime, podeljeno na FIRSTNAME/LASTNAME |
phone optional | string | Mapira se na SMS atribut za WhatsApp/SMS |
organization_id optional | integer | Povezana organizacija za B2B mapiranje |
role optional | string | Uloga korisnika (end-user, agent, admin) |
tags optional | array | Tagovi korisnika iz Zendesk-a |
ticket_restriction optional | string | Nivo pristupa tiketima |
custom_fields optional | object | Vrednosti prilagođenih polja korisnika |
Mapiranje prilagođenih polja
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 endpointi
Ticketing API
| Metoda | Endpoint | Opis |
|---|---|---|
GET | /api/v2/tickets | Listanje tiketa |
POST | /api/v2/tickets | Kreiranje tiketa |
PUT | /api/v2/tickets/{id} | Ažuriranje tiketa |
GET | /api/v2/tickets/{id} | Prikazivanje tiketa |
GET | /api/v2/search.json?query={query} | Pretraga tiketa |
Users API
| Metoda | Endpoint | Opis |
|---|---|---|
GET | /api/v2/users | Listanje korisnika |
POST | /api/v2/users | Kreiranje korisnika |
PUT | /api/v2/users/{id} | Ažuriranje korisnika |
GET | /api/v2/users/{id} | Prikazivanje korisnika |
GET | /api/v2/users/search.json?query={query} | Pretraga korisnika |
Organizations API
| Metoda | Endpoint | Opis |
|---|---|---|
GET | /api/v2/organizations | Listanje organizacija |
POST | /api/v2/organizations | Kreiranje organizacije |
GET | /api/v2/organizations/{id}/users | Listanje članova organizacije |
Satisfaction Ratings API
| Metoda | Endpoint | Opis |
|---|---|---|
GET | /api/v2/satisfaction_ratings | Listanje ocena zadovoljstva |
GET | /api/v2/satisfaction_ratings/{id} | Prikazivanje ocene |
Događaji
Događaji tiketa
| Događaj | Okidač | Slučaj upotrebe |
|---|---|---|
ticket.created | Podnet novi tiket | Potvrda podrške |
ticket.updated | Status tiketa promenjen | Obaveštenje o statusu |
ticket.solved | Tiket označen kao rešen | Okidač CSAT ankete |
ticket.reopened | Rešeni tiket ponovo otvoren | Upozorenje o eskalaciji |
Korisnički događaji
| Događaj | Okidač | Slučaj upotrebe |
|---|---|---|
user.created | Novi korisnik registrovan | Dobrodošlica u podršku |
user.updated | Profil korisnika promenjen | Sinhronizacija atributa |
user.merged | Korisnici spojeni | Deduplikacija |
Događaji zadovoljstva
| Događaj | Okidač | Slučaj upotrebe |
|---|---|---|
satisfaction_rating.created | CSAT podnet | Obrada povratnih informacija |
satisfaction_rating.bad | Negativna ocena | Oporavak korisnika |
satisfaction_rating.good | Pozitivna ocena | Kampanje zagovaranja |
Primeri koda
Inicijalizacija 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});Sinhronizacija korisnika i tiketa
// 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// }Obrada Zendesk webhook-ova
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');});Ograničenja brzine
Ograničenja brzine Zendesk-a variraju po planu:
| Plan | Ograničenje brzine | Detalji |
|---|---|---|
| Team | 200 zahteva/minuti | Po API tokenu |
| Professional | 400 zahteva/minuti | Po API tokenu |
| Enterprise | 700 zahteva/minuti | Po API tokenu |
| High Volume Add-on | 2.500 zahteva/minuti | Po API tokenu |
Dodatni limiti:
- Search API: 6 zahteva/minuti za anonimne, 100/minuti za autentifikovane
- Inkrementalni izvozi: 10 zahteva/minuti
- Batch API: 100 zapisa po batch zahtevu
- Isporuka webhook-ova: Automatski ponovni pokušaj sa eksponencijalnim usporavanjem
Headeri ograničenja brzine
Prati X-Rate-Limit-Remaining i Retry-After headere da upravljaš upotrebom API-ja.
Rešavanje problema
Česti problemi
| Problem | Uzrok | Rešenje |
|---|---|---|
| 401 Unauthorized | Nevažeći API token | Regeneriši token u Zendesk Admin-u |
| 403 Forbidden | Nedovoljne dozvole | Proveri zahteve za ulogu agenta ili admina |
| Korisnik nije sinhronizovan | Korisnik je agent, ne krajnji korisnik | Filtriraj po ulozi u konfiguraciji sinhronizacije |
| Webhook nije primljen | Okidač/meta nije konfigurisana | Podesi webhook meta u Zendesk Admin-u |
| Pretraga vraća prazno | Kašnjenje indeksiranja | Sačekaj 1-2 minuta za ažuriranje indeksa pretrage |
Debug režim
Uključi detaljno logovanje:
connectors: zendesk: debug: true log_level: verbose log_webhooks: trueTestiraj vezu
tajo connectors test zendesk# ✓ API connection successful# ✓ Users readable# ✓ Tickets readable# ✓ Organizations readable# ✓ Webhooks configuredNajbolje prakse
- Koristi inkrementalne izvoze - Koristi Incremental API za sinhronizaciju podataka velikih razmera
- Filtriraj samo krajnje korisnike - Isključi agente i admine iz sinhronizacije Brevo kontakata
- Sinhronizuj CSAT podatke - Koristi ocene zadovoljstva za segmentaciju zdravlja kupaca
- Mapiraj organizacije - Iskoristi podatke organizacija za B2B marketinške kampanje
- Implementiraj ponovne pokušaje webhook-ova - Gracioizno obrađuj privremene neuspehe
- Koristi side-loading - Uključi srodne zapise u API odgovore da smanjiš broj zahteva
Bezbednost
- Autentifikacija API tokenom - Pristup zasnovan na tokenu vezan za email admina
- OAuth 2.0 - Delegirani pristup zasnovan na tokenu sa kontrolama skopa
- Potpisivanje webhook-ova - HMAC verifikacija potpisa za webhook payloade
- TLS enkripcija - Sva API komunikacija enkriptovana putem HTTPS
- Bela lista IP adresa - Ograniči API pristup po IP opsegu