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

SvojstvoVrednost
PlatformaZendesk
KategorijaPodrška
Složenost podešavanjaSrednje
Zvanična integracijaDa
Sinhronizovani podaciTiketi, Korisnici, Organizacije, Događaji
Osnovni URL API-jahttps://{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š:

  1. Zendesk Support nalog (Team, Professional ili Enterprise)
  2. Admin pristup Zendesk instanci
  3. Konfigurisani API token ili OAuth aplikaciju
  4. Brevo nalog sa API pristupom
  5. Tajo nalog

Autentifikacija

Autentifikacija API tokenom

Koristi email/token autentifikaciju za brzo podešavanje.

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

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

Potrebni skopovi

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)

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

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

API endpointi

Ticketing API

MetodaEndpointOpis
GET/api/v2/ticketsListanje tiketa
POST/api/v2/ticketsKreiranje 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

MetodaEndpointOpis
GET/api/v2/usersListanje korisnika
POST/api/v2/usersKreiranje 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

MetodaEndpointOpis
GET/api/v2/organizationsListanje organizacija
POST/api/v2/organizationsKreiranje organizacije
GET/api/v2/organizations/{id}/usersListanje članova organizacije

Satisfaction Ratings API

MetodaEndpointOpis
GET/api/v2/satisfaction_ratingsListanje ocena zadovoljstva
GET/api/v2/satisfaction_ratings/{id}Prikazivanje ocene

Događaji

Događaji tiketa

DogađajOkidačSlučaj upotrebe
ticket.createdPodnet novi tiketPotvrda podrške
ticket.updatedStatus tiketa promenjenObaveštenje o statusu
ticket.solvedTiket označen kao rešenOkidač CSAT ankete
ticket.reopenedRešeni tiket ponovo otvorenUpozorenje o eskalaciji

Korisnički događaji

DogađajOkidačSlučaj upotrebe
user.createdNovi korisnik registrovanDobrodošlica u podršku
user.updatedProfil korisnika promenjenSinhronizacija atributa
user.mergedKorisnici spojeniDeduplikacija

Događaji zadovoljstva

DogađajOkidačSlučaj upotrebe
satisfaction_rating.createdCSAT podnetObrada povratnih informacija
satisfaction_rating.badNegativna ocenaOporavak korisnika
satisfaction_rating.goodPozitivna ocenaKampanje 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 Zendesk
await tajo.connectors.connect('zendesk', {
subdomain: 'yourcompany',
apiToken: process.env.ZENDESK_API_TOKEN
});

Sinhronizacija korisnika i tiketa

// 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
// }

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:

PlanOgraničenje brzineDetalji
Team200 zahteva/minutiPo API tokenu
Professional400 zahteva/minutiPo API tokenu
Enterprise700 zahteva/minutiPo API tokenu
High Volume Add-on2.500 zahteva/minutiPo 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

ProblemUzrokRešenje
401 UnauthorizedNevažeći API tokenRegeneriši token u Zendesk Admin-u
403 ForbiddenNedovoljne dozvoleProveri zahteve za ulogu agenta ili admina
Korisnik nije sinhronizovanKorisnik je agent, ne krajnji korisnikFiltriraj po ulozi u konfiguraciji sinhronizacije
Webhook nije primljenOkidač/meta nije konfigurisanaPodesi webhook meta u Zendesk Admin-u
Pretraga vraća praznoKašnjenje indeksiranjaSač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: true

Testiraj vezu

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

Najbolje prakse

  1. Koristi inkrementalne izvoze - Koristi Incremental API za sinhronizaciju podataka velikih razmera
  2. Filtriraj samo krajnje korisnike - Isključi agente i admine iz sinhronizacije Brevo kontakata
  3. Sinhronizuj CSAT podatke - Koristi ocene zadovoljstva za segmentaciju zdravlja kupaca
  4. Mapiraj organizacije - Iskoristi podatke organizacija za B2B marketinške kampanje
  5. Implementiraj ponovne pokušaje webhook-ova - Gracioizno obrađuj privremene neuspehe
  6. 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

Povezani resursi

Subscribe to updates

developer-docs

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

auto-detect
AI асистент

Здраво! Питајте ме о документацији.