Connettore Zendesk

Collega la tua istanza Zendesk Support a Brevo tramite Tajo per dati di supporto cliente unificati, segmentazione basata sui ticket, scoring di soddisfazione e marketing automation attivata dal supporto.

Panoramica

ProprietàValore
PiattaformaZendesk
CategoriaSupporto
Complessità di setupMedia
Integrazione ufficiale
Dati sincronizzatiTicket, Utenti, Organizzazioni, Eventi
API Base URLhttps://{subdomain}.zendesk.com/api/v2

Funzionalità

  • Sync degli utenti - Sincronizza utenti finali e agent Zendesk con i contatti Brevo
  • Tracciamento ticket - Sincronizza i dati dei ticket per la segmentazione marketing consapevole del supporto
  • Mappatura organizzazioni - Associa i contatti alle organizzazioni per workflow B2B
  • Punteggi di soddisfazione - Sincronizza i dati CSAT e NPS agli attributi Brevo
  • Eventi ticket - Traccia creazione, risoluzione ed escalation dei ticket per i trigger di automazione
  • Integrazione help center - Traccia le visualizzazioni degli articoli e il comportamento di ricerca
  • Supporto multi-canale - Sincronizza dati da canali email, chat, voice e messaggistica
  • Campi personalizzati - Mappa campi personalizzati di ticket e utente Zendesk a Brevo

Prerequisiti

Prima di iniziare, assicurati di avere:

  1. Un account Zendesk Support (Team, Professional o Enterprise)
  2. Accesso admin alla tua istanza Zendesk
  3. Un API token o un’app OAuth configurata
  4. Un account Brevo con accesso API
  5. Un account Tajo

Autenticazione

Autenticazione con API token

Usa l’autenticazione email/token per un setup rapido.

Terminal window
curl https://{subdomain}.zendesk.com/api/v2/users.json \
-u {email}/token:{api_token} \
-H "Content-Type: application/json"

Genera un API token da Zendesk Admin > Apps and Integrations > APIs > Zendesk API.

OAuth 2.0

Usa OAuth per integrazioni multi-istanza con accesso utente delegato.

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

Scope richiesti

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)

Configurazione

Setup di base

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

Mappatura dei campi

Mappa i campi utente Zendesk agli attributi di contatto Brevo:

Mappature predefinite

Parameter Type Description
email required
string

Indirizzo email dell'utente (identificatore univoco)

name optional
string

Nome completo, suddiviso in FIRSTNAME/LASTNAME

phone optional
string

Mappato all'attributo SMS per WhatsApp/SMS

organization_id optional
integer

Organizzazione associata per la mappatura B2B

role optional
string

Ruolo utente (end-user, agent, admin)

tags optional
array

Tag utente da Zendesk

ticket_restriction optional
string

Livello di accesso ai ticket

custom_fields optional
object

Valori dei campi utente personalizzati

Mappatura dei campi personalizzati

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

Endpoint API

API Ticketing

MetodoEndpointDescrizione
GET/api/v2/ticketsElenca i ticket
POST/api/v2/ticketsCrea un ticket
PUT/api/v2/tickets/{id}Aggiorna un ticket
GET/api/v2/tickets/{id}Mostra un ticket
GET/api/v2/search.json?query={query}Cerca ticket

API Utenti

MetodoEndpointDescrizione
GET/api/v2/usersElenca gli utenti
POST/api/v2/usersCrea un utente
PUT/api/v2/users/{id}Aggiorna un utente
GET/api/v2/users/{id}Mostra un utente
GET/api/v2/users/search.json?query={query}Cerca utenti

API Organizzazioni

MetodoEndpointDescrizione
GET/api/v2/organizationsElenca le organizzazioni
POST/api/v2/organizationsCrea un’organizzazione
GET/api/v2/organizations/{id}/usersElenca i membri dell’organizzazione

API Satisfaction Rating

MetodoEndpointDescrizione
GET/api/v2/satisfaction_ratingsElenca i rating di soddisfazione
GET/api/v2/satisfaction_ratings/{id}Mostra un rating

Eventi

Eventi ticket

EventoTriggerCaso d’uso
ticket.createdNuovo ticket inviatoConferma di supporto
ticket.updatedStato del ticket modificatoNotifica di stato
ticket.solvedTicket marcato come risoltoTrigger sondaggio CSAT
ticket.reopenedTicket risolto riapertoAvviso di escalation

Eventi utente

EventoTriggerCaso d’uso
user.createdNuovo utente registratoBenvenuto al supporto
user.updatedProfilo utente modificatoSync attributi
user.mergedUtenti unitiDeduplicazione

Eventi di soddisfazione

EventoTriggerCaso d’uso
satisfaction_rating.createdCSAT inviatoElaborazione feedback
satisfaction_rating.badRating negativoOutreach di recupero
satisfaction_rating.goodRating positivoCampagne di advocacy

Esempi di codice

Inizializza il connettore

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
});

Sincronizza utenti e ticket

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

Gestisci i webhook 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');
});

Limiti di velocità

I limiti di velocità Zendesk variano in base al piano:

PianoLimiteDettagli
Team200 richieste/minutoPer API token
Professional400 richieste/minutoPer API token
Enterprise700 richieste/minutoPer API token
High Volume Add-on2.500 richieste/minutoPer API token

Limiti aggiuntivi:

  • Search API: 6 richieste/minuto per anonimi, 100/minuto per autenticati
  • Esportazioni incrementali: 10 richieste/minuto
  • Batch API: 100 record per richiesta batch
  • Consegna webhook: Retry automatico con backoff esponenziale

Header dei limiti di velocità

Monitora gli header X-Rate-Limit-Remaining e Retry-After per gestire il tuo utilizzo dell’API.

Risoluzione dei problemi

Problemi comuni

ProblemaCausaSoluzione
401 UnauthorizedAPI token non validoRigenera il token in Zendesk Admin
403 ForbiddenPermessi insufficientiControlla i requisiti del ruolo agent o admin
Utente non sincronizzatoL’utente è un agent, non un end-userFiltra per ruolo nella configurazione di sync
Webhook non ricevutoTrigger/target non configuratoConfigura il target webhook in Zendesk Admin
La ricerca restituisce vuotoRitardo di indicizzazioneAttendi 1-2 minuti per l’aggiornamento dell’indice di ricerca

Modalità debug

Abilita il logging dettagliato:

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

Testa la connessione

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

Best practice

  1. Usa le esportazioni incrementali - Usa l’Incremental API per la sync di dati su larga scala
  2. Filtra solo gli end-user - Escludi agent e admin dalla sync dei contatti Brevo
  3. Sincronizza i dati CSAT - Usa i punteggi di soddisfazione per la segmentazione customer health
  4. Mappa le organizzazioni - Sfrutta i dati delle organizzazioni per campagne marketing B2B
  5. Implementa retry sui webhook - Gestisci i fallimenti temporanei in modo elegante
  6. Usa il side-loading - Includi record correlati nelle risposte API per ridurre il numero di richieste

Sicurezza

  • Autenticazione con API token - Accesso basato su token legato all’email admin
  • OAuth 2.0 - Accesso delegato basato su token con controlli scope
  • Firma webhook - Verifica della firma HMAC per i payload webhook
  • Cifratura TLS - Tutte le comunicazioni API cifrate via HTTPS
  • IP whitelisting - Limita l’accesso API per intervallo IP

Risorse correlate

Subscribe to updates

developer-docs

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

auto-detect
Assistente AI

Ciao! Chiedimi qualsiasi cosa sulla documentazione.