Zendesk-koppling

Anslut din Zendesk Support-instans till Brevo via Tajo för enhetlig kundsupportdata, ärendebaserad segmentering, nöjdhetspoäng och supportutlöst marknadsautomation.

Översikt

EgenskapVärde
PlattformZendesk
KategoriSupport
InstallationskomplexitetMedel
Officiell integrationJa
Data som synkasÄrenden, användare, organisationer, händelser
API bas-URLhttps://{subdomain}.zendesk.com/api/v2

Funktioner

  • Användarsynkronisering - Synka Zendesk-slutanvändare och agenter med Brevo-kontakter
  • Ärendespårning - Synka ärendedata för supportmedveten marknadsföringssegmentering
  • Organisationsmappning - Associera kontakter med organisationer för B2B-arbetsflöden
  • Nöjdhetspoäng - Synka CSAT- och NPS-data till Brevo-attribut
  • Ärendehändelser - Spåra ärendeskapande, lösning och eskalering för automationsutlösare
  • Help center-integration - Spåra artikelvisningar och sökbeteende
  • Stöd för flera kanaler - Synka data från e-post, chatt, röst och meddelandekanaler
  • Anpassade fält - Mappa Zendesks anpassade ärende- och användarfält till Brevo

Förutsättningar

Innan du börjar, se till att du har:

  1. Ett Zendesk Support-konto (Team, Professional eller Enterprise)
  2. Adminåtkomst till din Zendesk-instans
  3. API-token eller OAuth-app konfigurerad
  4. Ett Brevo-konto med API-åtkomst
  5. Ett Tajo-konto

Autentisering

API-tokenautentisering

Använd e-post/token-autentisering för snabb installation.

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

Generera en API-token från Zendesk Admin > Apps and Integrations > APIs > Zendesk API.

OAuth 2.0

Använd OAuth för integrationer med flera instanser med delegerad användaråtkomst.

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

Nödvändiga scopes

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)

Konfiguration

Grundinställning

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

Fältmappning

Mappa Zendesks användarfält till Brevo-kontaktattribut:

Standardmappningar

Parameter Type Description
email required
string

Användarens e-postadress (unik identifierare)

name optional
string

Fullständigt namn, uppdelat i FIRSTNAME/LASTNAME

phone optional
string

Mappas till SMS-attributet för WhatsApp/SMS

organization_id optional
integer

Tillhörande organisation för B2B-mappning

role optional
string

Användarroll (end-user, agent, admin)

tags optional
array

Användartaggar från Zendesk

ticket_restriction optional
string

Åtkomstnivå för ärenden

custom_fields optional
object

Värden för anpassade användarfält

Mappning av anpassade fält

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-endpoints

Ticketing API

MetodEndpointBeskrivning
GET/api/v2/ticketsLista ärenden
POST/api/v2/ticketsSkapa ett ärende
PUT/api/v2/tickets/{id}Uppdatera ett ärende
GET/api/v2/tickets/{id}Visa ett ärende
GET/api/v2/search.json?query={query}Sök ärenden

Users API

MetodEndpointBeskrivning
GET/api/v2/usersLista användare
POST/api/v2/usersSkapa en användare
PUT/api/v2/users/{id}Uppdatera en användare
GET/api/v2/users/{id}Visa en användare
GET/api/v2/users/search.json?query={query}Sök användare

Organizations API

MetodEndpointBeskrivning
GET/api/v2/organizationsLista organisationer
POST/api/v2/organizationsSkapa en organisation
GET/api/v2/organizations/{id}/usersLista organisationsmedlemmar

Satisfaction Ratings API

MetodEndpointBeskrivning
GET/api/v2/satisfaction_ratingsLista nöjdhetsbetyg
GET/api/v2/satisfaction_ratings/{id}Visa ett betyg

Händelser

Ärendehändelser

HändelseUtlösareAnvändningsfall
ticket.createdNytt ärende inskickatBekräftelse av support
ticket.updatedÄrendestatus ändradStatusnotifiering
ticket.solvedÄrende markerat som löstCSAT-enkätutlösare
ticket.reopenedLöst ärende öppnat igenEskaleringsvarning

Användarhändelser

HändelseUtlösareAnvändningsfall
user.createdNy användare registreradVälkommen till support
user.updatedAnvändarprofil ändradAttributsynk
user.mergedAnvändare sammanslagnaDeduplicering

Nöjdhetshändelser

HändelseUtlösareAnvändningsfall
satisfaction_rating.createdCSAT inskickadFeedbackbearbetning
satisfaction_rating.badNegativt betygÅterhämtningsåtgärd
satisfaction_rating.goodPositivt betygFörespråkarkampanjer

Kodexempel

Initiera kopplingen

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

Synka användare och ärenden

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

Hantera Zendesk-webhooks

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

Hastighetsbegränsningar

Zendesks hastighetsbegränsningar varierar per plan:

PlanHastighetsbegränsningDetaljer
Team200 förfrågningar/minutPer API-token
Professional400 förfrågningar/minutPer API-token
Enterprise700 förfrågningar/minutPer API-token
High Volume Add-on2 500 förfrågningar/minutPer API-token

Ytterligare gränser:

  • Search API: 6 förfrågningar/minut för anonym, 100/minut för autentiserad
  • Inkrementella exporter: 10 förfrågningar/minut
  • Batch API: 100 poster per batch-förfrågan
  • Webhook-leverans: Automatiskt återförsök med exponentiell backoff

Headrar för hastighetsbegränsning

Övervaka headrarna X-Rate-Limit-Remaining och Retry-After för att hantera din API-användning.

Felsökning

Vanliga problem

ProblemOrsakLösning
401 UnauthorizedOgiltig API-tokenÅtergenerera token i Zendesk Admin
403 ForbiddenOtillräckliga behörigheterKontrollera krav på agent- eller adminroll
Användare ej synkadAnvändare är agent, inte slutanvändareFiltrera per roll i synkkonfigurationen
Webhook ej mottagenTrigger/target ej konfigureradSätt upp webhook-target i Zendesk Admin
Sökning returnerar tomIndexeringsfördröjningVänta 1-2 minuter på sökindexuppdatering

Felsökningsläge

Aktivera utförlig loggning:

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

Testa anslutning

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

Bästa praxis

  1. Använd inkrementella exporter - Använd Incremental API för storskalig datasynk
  2. Filtrera endast slutanvändare - Exkludera agenter och admins från Brevo-kontaktsynk
  3. Synka CSAT-data - Använd nöjdhetspoäng för segmentering av kundhälsa
  4. Mappa organisationer - Utnyttja organisationsdata för B2B-marknadsföringskampanjer
  5. Implementera webhook-återförsök - Hantera tillfälliga fel på ett smidigt sätt
  6. Använd side-loading - Inkludera relaterade poster i API-svar för att minska antal förfrågningar

Säkerhet

  • API-tokenautentisering - Tokenbaserad åtkomst knuten till admin-e-post
  • OAuth 2.0 - Tokenbaserad delegerad åtkomst med scope-kontroller
  • Webhook-signering - HMAC-signaturverifiering för webhook-payloads
  • TLS-kryptering - All API-kommunikation krypterad via HTTPS
  • IP-allowlisting - Begränsa API-åtkomst per IP-intervall

Relaterade resurser

Subscribe to updates

developer-docs

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

auto-detect
AI-assistent

Hej! Fråga mig om dokumentationen.