Connecteur Zendesk

Connectez votre instance Zendesk Support à Brevo via Tajo pour des données de support client unifiées, une segmentation basée sur les tickets, un scoring de satisfaction, et une automatisation marketing déclenchée par le support.

Vue d’ensemble

PropriétéValeur
PlateformeZendesk
CatégorieSupport
Complexité de configurationMoyenne
Intégration officielleOui
Données synchroniséesTickets, Utilisateurs, Organisations, Événements
URL de base APIhttps://{subdomain}.zendesk.com/api/v2

Fonctionnalités

  • Synchronisation des utilisateurs - Synchronisation des end-users et agents Zendesk avec les contacts Brevo
  • Suivi des tickets - Synchronisation des données de tickets pour une segmentation marketing consciente du support
  • Mappage d’organisations - Association de contacts aux organisations pour les workflows B2B
  • Scores de satisfaction - Synchronisation des données CSAT et NPS vers les attributs Brevo
  • Événements de tickets - Suivi de la création, résolution et escalade de tickets pour les déclencheurs d’automatisation
  • Intégration du centre d’aide - Suivi des vues d’articles et du comportement de recherche
  • Support multicanal - Synchronisation des données depuis les canaux email, chat, voix et messagerie
  • Champs personnalisés - Mappage des champs personnalisés de tickets et utilisateurs Zendesk vers Brevo

Prérequis

Avant de commencer, assurez-vous d’avoir :

  1. Un compte Zendesk Support (Team, Professional ou Enterprise)
  2. Un accès admin à votre instance Zendesk
  3. Un token API ou une application OAuth configurée
  4. Un compte Brevo avec accès API
  5. Un compte Tajo

Authentification

Authentification par token API

Utilisez l’authentification email/token pour une configuration rapide.

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

Générez un token API depuis Zendesk Admin > Apps and Integrations > APIs > Zendesk API.

OAuth 2.0

Utilisez OAuth pour les intégrations multi-instances avec accès utilisateur délégué.

Terminal window
# URL d'autorisation
https://{subdomain}.zendesk.com/oauth/authorizations/new?
response_type=code&
client_id={client_id}&
redirect_uri={redirect_uri}&
scope=read%20write

Périmètres requis

read # Accès en lecture à toutes les ressources
write # Accès en écriture à toutes les ressources
tickets:read # Lecture des tickets (granulaire)
users:read # Lecture des utilisateurs (granulaire)
organizations:read # Lecture des organisations (granulaire)

Configuration

Configuration de base

connectors:
zendesk:
enabled: true
subdomain: "yourcompany"
auth:
api_token: "${ZENDESK_API_TOKEN}"
# Options de synchronisation des données
sync:
users: true
tickets: true
organizations: true
satisfaction_ratings: true
# Assignation de listes Brevo
lists:
all_customers: 30
active_tickets: 31
satisfied_customers: 32

Mappage de champs

Mappez les champs utilisateurs Zendesk aux attributs de contact Brevo :

Mappages par défaut

Parameter Type Description
email required
string

Adresse email de l'utilisateur (identifiant unique)

name optional
string

Nom complet, divisé en FIRSTNAME/LASTNAME

phone optional
string

Mappé vers l'attribut SMS pour WhatsApp/SMS

organization_id optional
integer

Organisation associée pour le mappage B2B

role optional
string

Rôle de l'utilisateur (end-user, agent, admin)

tags optional
array

Tags utilisateur de Zendesk

ticket_restriction optional
string

Niveau d'accès aux tickets

custom_fields optional
object

Valeurs des champs personnalisés utilisateur

Mappage de champs personnalisés

field_mapping:
# Champs standards
email: email
name: FULLNAME
phone: SMS
# Métriques de support
open_tickets: OPEN_TICKETS
total_tickets: TOTAL_TICKETS
avg_satisfaction: CSAT_SCORE
last_ticket_date: LAST_SUPPORT_DATE
# Champs d'organisation
organization.name: COMPANY_NAME
organization.tags: COMPANY_TAGS
# Champs personnalisés
user_fields.customer_type: CUSTOMER_TYPE
user_fields.account_tier: ACCOUNT_TIER

Endpoints API

API Ticketing

MéthodeEndpointDescription
GET/api/v2/ticketsLister les tickets
POST/api/v2/ticketsCréer un ticket
PUT/api/v2/tickets/{id}Mettre à jour un ticket
GET/api/v2/tickets/{id}Afficher un ticket
GET/api/v2/search.json?query={query}Rechercher des tickets

API Users

MéthodeEndpointDescription
GET/api/v2/usersLister les utilisateurs
POST/api/v2/usersCréer un utilisateur
PUT/api/v2/users/{id}Mettre à jour un utilisateur
GET/api/v2/users/{id}Afficher un utilisateur
GET/api/v2/users/search.json?query={query}Rechercher des utilisateurs

API Organizations

MéthodeEndpointDescription
GET/api/v2/organizationsLister les organisations
POST/api/v2/organizationsCréer une organisation
GET/api/v2/organizations/{id}/usersLister les membres d’une organisation

API Satisfaction Ratings

MéthodeEndpointDescription
GET/api/v2/satisfaction_ratingsLister les évaluations de satisfaction
GET/api/v2/satisfaction_ratings/{id}Afficher une évaluation

Événements

Événements de ticket

ÉvénementDéclencheurCas d’usage
ticket.createdNouveau ticket soumisAccusé de réception support
ticket.updatedStatut du ticket modifiéNotification de statut
ticket.solvedTicket marqué comme résoluDéclencheur d’enquête CSAT
ticket.reopenedTicket résolu rouvertAlerte d’escalade

Événements utilisateur

ÉvénementDéclencheurCas d’usage
user.createdNouvel utilisateur enregistréBienvenue au support
user.updatedProfil utilisateur modifiéSynchronisation d’attributs
user.mergedUtilisateurs fusionnésDéduplication

Événements de satisfaction

ÉvénementDéclencheurCas d’usage
satisfaction_rating.createdCSAT soumisTraitement de feedback
satisfaction_rating.badÉvaluation négativeActions de récupération
satisfaction_rating.goodÉvaluation positiveCampagnes de recommandation

Exemples de code

Initialiser le connecteur

import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({
apiKey: process.env.TAJO_API_KEY,
brevoApiKey: process.env.BREVO_API_KEY
});
// Connecter Zendesk
await tajo.connectors.connect('zendesk', {
subdomain: 'yourcompany',
apiToken: process.env.ZENDESK_API_TOKEN
});

Synchroniser utilisateurs et tickets

// Synchronisation complète des utilisateurs et données de tickets
await tajo.connectors.sync('zendesk', {
type: 'full',
resources: ['users', 'tickets', 'organizations'],
since: '2023-01-01'
});
// Vérifier le statut de synchronisation
const status = await tajo.connectors.status('zendesk');
console.log(status);
// {
// connected: true,
// lastSync: '2024-01-15T10:30:00Z',
// usersSynced: 8400,
// ticketsSynced: 34200,
// organizationsSynced: 1200
// }

Gérer les webhooks Zendesk

app.post('/webhooks/zendesk', async (req, res) => {
const signature = req.get('X-Zendesk-Webhook-Signature');
// Vérifier la signature du webhook
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');
});

Limites de taux

Les limites de taux Zendesk varient selon le plan :

PlanLimite de tauxDétails
Team200 requêtes/minutePar token API
Professional400 requêtes/minutePar token API
Enterprise700 requêtes/minutePar token API
High Volume Add-on2 500 requêtes/minutePar token API

Limites supplémentaires :

  • API Search : 6 requêtes/minute pour anonymes, 100/minute pour authentifiés
  • Exports incrémentiels : 10 requêtes/minute
  • API Batch : 100 enregistrements par requête batch
  • Livraison de webhooks : Retry automatique avec backoff exponentiel

En-têtes de limite de taux

Surveillez les en-têtes X-Rate-Limit-Remaining et Retry-After pour gérer votre utilisation de l’API.

Dépannage

Problèmes courants

ProblèmeCauseSolution
401 UnauthorizedToken API invalideRégénérez le token dans Zendesk Admin
403 ForbiddenPermissions insuffisantesVérifiez les exigences de rôle agent ou admin
Utilisateur non synchroniséL’utilisateur est un agent, pas un end-userFiltrez par rôle dans la configuration de synchronisation
Webhook non reçuTrigger/target non configuréConfigurez la cible webhook dans Zendesk Admin
Recherche retourne videDélai d’indexationAttendez 1-2 minutes pour la mise à jour de l’index de recherche

Mode debug

Activer la journalisation détaillée :

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

Tester la connexion

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

Bonnes pratiques

  1. Utilisez les exports incrémentiels - Utilisez l’API Incremental pour la synchronisation de données à grande échelle
  2. Filtrez uniquement les end-users - Excluez les agents et admins de la synchronisation de contacts Brevo
  3. Synchronisez les données CSAT - Utilisez les scores de satisfaction pour la segmentation de santé client
  4. Mappez les organisations - Exploitez les données d’organisation pour les campagnes marketing B2B
  5. Implémentez les retries webhook - Gérez les échecs temporaires avec grâce
  6. Utilisez le side-loading - Incluez les enregistrements liés dans les réponses API pour réduire le nombre de requêtes

Sécurité

  • Authentification par token API - Accès basé sur token lié à l’email admin
  • OAuth 2.0 - Accès délégué basé sur token avec contrôles de périmètre
  • Signature de webhook - Vérification de signature HMAC pour les payloads de webhook
  • Chiffrement TLS - Toutes les communications API chiffrées via HTTPS
  • Liste blanche d’IP - Restreindre l’accès API par plage d’IP

Ressources liées

Subscribe to updates

developer-docs

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

auto-detect
Assistant AI

Bonjour ! Posez-moi vos questions sur la documentation.