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
| Egenskap | Värde |
|---|---|
| Plattform | Zendesk |
| Kategori | Support |
| Installationskomplexitet | Medel |
| Officiell integration | Ja |
| Data som synkas | Ärenden, användare, organisationer, händelser |
| API bas-URL | https://{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:
- Ett Zendesk Support-konto (Team, Professional eller Enterprise)
- Adminåtkomst till din Zendesk-instans
- API-token eller OAuth-app konfigurerad
- Ett Brevo-konto med API-åtkomst
- Ett Tajo-konto
Autentisering
API-tokenautentisering
Använd e-post/token-autentisering för snabb installation.
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.
# Authorization URLhttps://{subdomain}.zendesk.com/oauth/authorizations/new? response_type=code& client_id={client_id}& redirect_uri={redirect_uri}& scope=read%20writeNödvändiga scopes
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)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: 32Fä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_TIERAPI-endpoints
Ticketing API
| Metod | Endpoint | Beskrivning |
|---|---|---|
GET | /api/v2/tickets | Lista ärenden |
POST | /api/v2/tickets | Skapa 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
| Metod | Endpoint | Beskrivning |
|---|---|---|
GET | /api/v2/users | Lista användare |
POST | /api/v2/users | Skapa 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
| Metod | Endpoint | Beskrivning |
|---|---|---|
GET | /api/v2/organizations | Lista organisationer |
POST | /api/v2/organizations | Skapa en organisation |
GET | /api/v2/organizations/{id}/users | Lista organisationsmedlemmar |
Satisfaction Ratings API
| Metod | Endpoint | Beskrivning |
|---|---|---|
GET | /api/v2/satisfaction_ratings | Lista nöjdhetsbetyg |
GET | /api/v2/satisfaction_ratings/{id} | Visa ett betyg |
Händelser
Ärendehändelser
| Händelse | Utlösare | Användningsfall |
|---|---|---|
ticket.created | Nytt ärende inskickat | Bekräftelse av support |
ticket.updated | Ärendestatus ändrad | Statusnotifiering |
ticket.solved | Ärende markerat som löst | CSAT-enkätutlösare |
ticket.reopened | Löst ärende öppnat igen | Eskaleringsvarning |
Användarhändelser
| Händelse | Utlösare | Användningsfall |
|---|---|---|
user.created | Ny användare registrerad | Välkommen till support |
user.updated | Användarprofil ändrad | Attributsynk |
user.merged | Användare sammanslagna | Deduplicering |
Nöjdhetshändelser
| Händelse | Utlösare | Användningsfall |
|---|---|---|
satisfaction_rating.created | CSAT inskickad | Feedbackbearbetning |
satisfaction_rating.bad | Negativt betyg | Återhämtningsåtgärd |
satisfaction_rating.good | Positivt betyg | Fö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 Zendeskawait tajo.connectors.connect('zendesk', { subdomain: 'yourcompany', apiToken: process.env.ZENDESK_API_TOKEN});Synka användare och ärenden
// 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// }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:
| Plan | Hastighetsbegränsning | Detaljer |
|---|---|---|
| Team | 200 förfrågningar/minut | Per API-token |
| Professional | 400 förfrågningar/minut | Per API-token |
| Enterprise | 700 förfrågningar/minut | Per API-token |
| High Volume Add-on | 2 500 förfrågningar/minut | Per 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
| Problem | Orsak | Lösning |
|---|---|---|
| 401 Unauthorized | Ogiltig API-token | Återgenerera token i Zendesk Admin |
| 403 Forbidden | Otillräckliga behörigheter | Kontrollera krav på agent- eller adminroll |
| Användare ej synkad | Användare är agent, inte slutanvändare | Filtrera per roll i synkkonfigurationen |
| Webhook ej mottagen | Trigger/target ej konfigurerad | Sätt upp webhook-target i Zendesk Admin |
| Sökning returnerar tom | Indexeringsfördröjning | Vänta 1-2 minuter på sökindexuppdatering |
Felsökningsläge
Aktivera utförlig loggning:
connectors: zendesk: debug: true log_level: verbose log_webhooks: trueTesta anslutning
tajo connectors test zendesk# ✓ API connection successful# ✓ Users readable# ✓ Tickets readable# ✓ Organizations readable# ✓ Webhooks configuredBästa praxis
- Använd inkrementella exporter - Använd Incremental API för storskalig datasynk
- Filtrera endast slutanvändare - Exkludera agenter och admins från Brevo-kontaktsynk
- Synka CSAT-data - Använd nöjdhetspoäng för segmentering av kundhälsa
- Mappa organisationer - Utnyttja organisationsdata för B2B-marknadsföringskampanjer
- Implementera webhook-återförsök - Hantera tillfälliga fel på ett smidigt sätt
- 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