Conector Zendesk
Conectați instanța Zendesk Support la Brevo prin Tajo pentru date unificate de suport al clienților, segmentare bazată pe tichete, scorare a satisfacției și automatizare de marketing declanșată de suport.
Prezentare generală
| Proprietate | Valoare |
|---|---|
| Platformă | Zendesk |
| Categorie | Suport |
| Complexitate configurare | Medie |
| Integrare oficială | Da |
| Date sincronizate | Tichete, Utilizatori, Organizații, Evenimente |
| URL de bază API | https://{subdomain}.zendesk.com/api/v2 |
Funcționalități
- Sincronizare utilizatori - Sincronizați utilizatorii finali și agenții Zendesk cu contactele Brevo
- Urmărire tichete - Sincronizați datele tichetelor pentru segmentare de marketing conștientă de suport
- Mapare organizații - Asociați contactele cu organizațiile pentru fluxuri de lucru B2B
- Scoruri de satisfacție - Sincronizați datele CSAT și NPS la atributele Brevo
- Evenimente tichete - Urmăriți crearea, rezolvarea și escaladarea tichetelor pentru declanșatoare de automatizare
- Integrare centru de ajutor - Urmăriți vizualizările articolelor și comportamentul de căutare
- Suport multi-canal - Sincronizați date din canalele de e-mail, chat, voce și mesagerie
- Câmpuri personalizate - Mapați câmpurile personalizate de tichete și utilizatori Zendesk la Brevo
Cerințe preliminare
Înainte de a începe, asigurați-vă că aveți:
- Un cont Zendesk Support (Team, Professional sau Enterprise)
- Acces de administrator la instanța Zendesk
- Token API sau aplicație OAuth configurată
- Un cont Brevo cu acces API
- Un cont Tajo
Autentificare
Autentificare cu token API
Utilizați autentificarea email/token pentru configurare rapidă.
curl https://{subdomain}.zendesk.com/api/v2/users.json \ -u {email}/token:{api_token} \ -H "Content-Type: application/json"Generați un token API din Zendesk Admin > Apps and Integrations > APIs > Zendesk API.
OAuth 2.0
Utilizați OAuth pentru integrări multi-instanță cu acces delegat al utilizatorilor.
# Authorization URLhttps://{subdomain}.zendesk.com/oauth/authorizations/new? response_type=code& client_id={client_id}& redirect_uri={redirect_uri}& scope=read%20writeScope-uri necesare
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)Configurare
Configurare de bază
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: 32Mapare câmpuri
Mapați câmpurile utilizatorilor Zendesk la atributele de contact Brevo:
Mapări implicite
| Parameter | Type | Description |
|---|---|---|
email required | string | Adresa de e-mail a utilizatorului (identificator unic) |
name optional | string | Nume complet, împărțit în FIRSTNAME/LASTNAME |
phone optional | string | Mapează la atributul SMS pentru WhatsApp/SMS |
organization_id optional | integer | Organizația asociată pentru mapare B2B |
role optional | string | Rolul utilizatorului (end-user, agent, admin) |
tags optional | array | Etichetele utilizatorului din Zendesk |
ticket_restriction optional | string | Nivelul de acces la tichete |
custom_fields optional | object | Valorile câmpurilor personalizate ale utilizatorului |
Mapare câmpuri personalizate
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_TIERPuncte finale API
API Tichete
| Metodă | Punct final | Descriere |
|---|---|---|
GET | /api/v2/tickets | Listează tichetele |
POST | /api/v2/tickets | Creează un tichet |
PUT | /api/v2/tickets/{id} | Actualizează un tichet |
GET | /api/v2/tickets/{id} | Afișează un tichet |
GET | /api/v2/search.json?query={query} | Caută tichete |
API Utilizatori
| Metodă | Punct final | Descriere |
|---|---|---|
GET | /api/v2/users | Listează utilizatorii |
POST | /api/v2/users | Creează un utilizator |
PUT | /api/v2/users/{id} | Actualizează un utilizator |
GET | /api/v2/users/{id} | Afișează un utilizator |
GET | /api/v2/users/search.json?query={query} | Caută utilizatori |
API Organizații
| Metodă | Punct final | Descriere |
|---|---|---|
GET | /api/v2/organizations | Listează organizațiile |
POST | /api/v2/organizations | Creează o organizație |
GET | /api/v2/organizations/{id}/users | Listează membrii organizației |
API Ratinguri satisfacție
| Metodă | Punct final | Descriere |
|---|---|---|
GET | /api/v2/satisfaction_ratings | Listează ratingurile de satisfacție |
GET | /api/v2/satisfaction_ratings/{id} | Afișează un rating |
Evenimente
Evenimente tichete
| Eveniment | Declanșator | Caz de utilizare |
|---|---|---|
ticket.created | Tichet nou trimis | Confirmare suport |
ticket.updated | Status tichet modificat | Notificare status |
ticket.solved | Tichet marcat rezolvat | Declanșator sondaj CSAT |
ticket.reopened | Tichet rezolvat redeschis | Alertă escaladare |
Evenimente utilizatori
| Eveniment | Declanșator | Caz de utilizare |
|---|---|---|
user.created | Utilizator nou înregistrat | Bun venit la suport |
user.updated | Profil utilizator modificat | Sincronizare atribute |
user.merged | Utilizatori combinați | Deduplicare |
Evenimente satisfacție
| Eveniment | Declanșator | Caz de utilizare |
|---|---|---|
satisfaction_rating.created | CSAT trimis | Procesare feedback |
satisfaction_rating.bad | Rating negativ | Outreach de recuperare |
satisfaction_rating.good | Rating pozitiv | Campanii de advocacy |
Exemple de cod
Inițializare conector
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});Sincronizare utilizatori și tichete
// 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// }Gestionare webhook-uri 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');});Limite de rată
Limitele de rată Zendesk variază în funcție de plan:
| Plan | Limită de rată | Detalii |
|---|---|---|
| Team | 200 cereri/minut | Per token API |
| Professional | 400 cereri/minut | Per token API |
| Enterprise | 700 cereri/minut | Per token API |
| High Volume Add-on | 2.500 cereri/minut | Per token API |
Limite suplimentare:
- Search API: 6 cereri/minut pentru anonim, 100/minut pentru autentificat
- Exporturi incrementale: 10 cereri/minut
- Batch API: 100 înregistrări per cerere batch
- Livrare webhook: Reîncercare automată cu backoff exponențial
Antete limită de rată
Monitorizați antetele X-Rate-Limit-Remaining și Retry-After pentru a gestiona utilizarea API.
Depanare
Probleme frecvente
| Problemă | Cauză | Soluție |
|---|---|---|
| 401 Neautorizat | Token API invalid | Regenerați token-ul în Zendesk Admin |
| 403 Interzis | Permisiuni insuficiente | Verificați cerințele de rol agent sau administrator |
| Utilizator nesincronizat | Utilizatorul este agent, nu utilizator final | Filtrați după rol în configurația sincronizării |
| Webhook neprimit | Trigger/target neconfigurati | Configurați target-ul webhook în Zendesk Admin |
| Căutare returnând rezultate goale | Întârziere indexare | Așteptați 1-2 minute pentru actualizarea indexului de căutare |
Modul de depanare
Activați jurnalizarea verbosă:
connectors: zendesk: debug: true log_level: verbose log_webhooks: trueTestare conexiune
tajo connectors test zendesk# ✓ API connection successful# ✓ Users readable# ✓ Tickets readable# ✓ Organizations readable# ✓ Webhooks configuredBune practici
- Utilizați exporturile incrementale - Utilizați API-ul Incremental pentru sincronizare de date la scară largă
- Filtrați numai utilizatorii finali - Excludeți agenții și administratorii din sincronizarea contactelor Brevo
- Sincronizați datele CSAT - Utilizați scorurile de satisfacție pentru segmentarea sănătății clienților
- Mapați organizațiile - Valorificați datele organizațiilor pentru campaniile de marketing B2B
- Implementați reîncercări webhook - Gestionați elegant eșecurile temporare
- Utilizați side-loading - Includeți înregistrările conexe în răspunsurile API pentru a reduce numărul de cereri
Securitate
- Autentificare cu token API - Acces bazat pe token legat de e-mailul de administrator
- OAuth 2.0 - Acces delegat bazat pe token cu controale de scope
- Semnare webhook - Verificare semnătură HMAC pentru payload-urile webhook
- Criptare TLS - Toate comunicațiile API criptate prin HTTPS
- IP whitelisting - Restricționați accesul API pe interval IP