---
title: "Zendesk-connector"
description: "Volledige Zendesk-integratiegids voor het synchroniseren van tickets, gebruikers, organisaties en support-events met Brevo via Tajo."
url: https://tajo.io/nl/docs/connectors/support/zendesk/
markdown: https://tajo.io/nl/docs/connectors/support/zendesk.md
lang: nl-NL
robots: noindex
---

Vraag vroegtijdige toegang aan

Vul je voornaam en je zakelijke e-mailadres in. We sturen je een link om je aanvraag voor toegang tot Tajo te bevestigen.

# Zendesk-connector

Connectorstatus: Gepland Nog niet gebouwd. Tajo draait deze connector vandaag niet.

| Bronveld | Doelveld | Voorbeeldwaarde |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Verbind je Zendesk Support-instantie met Brevo via Tajo voor geünificeerde klantsupportdata, ticketgebaseerde segmentatie, tevredenheidsscores en supportgetriggerde marketingautomatisering.

## Overzicht

| Eigenschap | Waarde |
| --- | --- |
| **Platform** | Zendesk |
| **Categorie** | Support |
| **Setupcomplexiteit** | Gemiddeld |
| **Officiële integratie** | Nee |
| **Gesynchroniseerde data** | Tickets, Gebruikers, Organisaties, Events |
| **API base URL** | `https://{subdomain}.zendesk.com/api/v2` |

## Functies

- **Gebruikerssynchronisatie** - Synchroniseer Zendesk-eindgebruikers en -agents met Brevo-contacten
- **Tickettracking** - Synchroniseer ticketdata voor support-bewuste marketingsegmentatie
- **Organisatiekoppeling** - Koppel contacten aan organisaties voor B2B-workflows
- **Tevredenheidsscores** - Synchroniseer CSAT- en NPS-data naar Brevo-attributen
- **Ticket-events** - Volg ticket-aanmaak, -oplossing en -escalatie voor automation-triggers
- **Helpcenterintegratie** - Volg artikelweergaven en zoekgedrag
- **Multi-channel-support** - Synchroniseer data uit e-mail-, chat-, voice- en messagingkanalen
- **Custom velden** - Koppel Zendesk-customticket- en gebruikersvelden aan Brevo

## Vereisten

Voordat je begint, zorg dat je beschikt over:

1. Een Zendesk Support-account (Team, Professional of Enterprise)
2. Admin-toegang tot je Zendesk-instantie
3. API-token of OAuth-app geconfigureerd
4. Een Brevo-account met API-toegang
5. Een Tajo-account

## Authenticatie

### API-token-authenticatie

Gebruik e-mail/token-authenticatie voor een snelle setup.

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

Genereer een API-token via Zendesk Admin > Apps and Integrations > APIs > Zendesk API.

### OAuth 2.0

Gebruik OAuth voor multi-instantie-integraties met gedelegeerde gebruikerstoegang.

```bash
# Authorization URL
https://{subdomain}.zendesk.com/oauth/authorizations/new?
  response_type=code&
  client_id={client_id}&
  redirect_uri={redirect_uri}&
  scope=read%20write
```

#### Vereiste 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)
```

## Configuratie

### Basisopzet

```yaml
connectors:
  zendesk:
    enabled: true
    subdomain: "yourcompany"
    auth:
      email: "admin@yourcompany.com"
      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
```

### Veldmapping

Koppel Zendesk-gebruikersvelden aan Brevo-contactattributen:

#### Standaard-mappings

| Parameter | Type | Description |
| --- | --- | --- |
| `email` required | string | E-mailadres gebruiker (unieke identifier) |
| `name` optional | string | Volledige naam, opgesplitst in FIRSTNAME/LASTNAME |
| `phone` optional | string | Koppelt aan SMS-attribuut voor WhatsApp/sms |
| `organization_id` optional | integer | Gekoppelde organisatie voor B2B-mapping |
| `role` optional | string | Gebruikersrol (end-user, agent, admin) |
| `tags` optional | array | Gebruikerstags uit Zendesk |
| `ticket_restriction` optional | string | Toegangsniveau tickets |
| `custom_fields` optional | object | Waarden van custom user fields |

#### Custom veldmapping

```yaml
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

| Methode | Endpoint | Beschrijving |
| --- | --- | --- |
| `GET` | `/api/v2/tickets` | Tickets opvragen |
| `POST` | `/api/v2/tickets` | Ticket aanmaken |
| `PUT` | `/api/v2/tickets/{id}` | Ticket bijwerken |
| `GET` | `/api/v2/tickets/{id}` | Ticket tonen |
| `GET` | `/api/v2/search.json?query={query}` | Tickets zoeken |

### Users API

| Methode | Endpoint | Beschrijving |
| --- | --- | --- |
| `GET` | `/api/v2/users` | Gebruikers opvragen |
| `POST` | `/api/v2/users` | Gebruiker aanmaken |
| `PUT` | `/api/v2/users/{id}` | Gebruiker bijwerken |
| `GET` | `/api/v2/users/{id}` | Gebruiker tonen |
| `GET` | `/api/v2/users/search.json?query={query}` | Gebruikers zoeken |

### Organizations API

| Methode | Endpoint | Beschrijving |
| --- | --- | --- |
| `GET` | `/api/v2/organizations` | Organisaties opvragen |
| `POST` | `/api/v2/organizations` | Organisatie aanmaken |
| `GET` | `/api/v2/organizations/{id}/users` | Organisatieleden opvragen |

### Satisfaction Ratings API

| Methode | Endpoint | Beschrijving |
| --- | --- | --- |
| `GET` | `/api/v2/satisfaction_ratings` | Tevredenheidsratings opvragen |
| `GET` | `/api/v2/satisfaction_ratings/{id}` | Rating tonen |

## Events

### Ticket-events

| Event | Trigger | Use case |
| --- | --- | --- |
| `ticket.created` | Nieuwe ticket ingediend | Support-bevestiging |
| `ticket.updated` | Ticketstatus gewijzigd | Statusnotificatie |
| `ticket.solved` | Ticket gemarkeerd als opgelost | CSAT-survey-trigger |
| `ticket.reopened` | Opgeloste ticket heropend | Escalatiealert |

### User-events

| Event | Trigger | Use case |
| --- | --- | --- |
| `user.created` | Nieuwe gebruiker geregistreerd | Welcome-to-support |
| `user.updated` | Gebruikersprofiel gewijzigd | Attribuutsync |
| `user.merged` | Gebruikers samengevoegd | Deduplicatie |

### Satisfaction-events

| Event | Trigger | Use case |
| --- | --- | --- |
| `satisfaction_rating.created` | CSAT ingediend | Feedbackverwerking |
| `satisfaction_rating.bad` | Negatieve rating | Recovery-outreach |
| `satisfaction_rating.good` | Positieve rating | Advocacy-campagnes |

## Codevoorbeelden

### Connector initialiseren

```javascript
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',
  email: 'admin@yourcompany.com',
  apiToken: process.env.ZENDESK_API_TOKEN
});
```

### Gebruikers en tickets synchroniseren

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

### Zendesk-webhooks afhandelen

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

## Ratelimits

Zendesk-ratelimits variëren per plan:

| Plan | Ratelimit | Details |
| --- | --- | --- |
| Team | 200 requests/minuut | Per API-token |
| Professional | 400 requests/minuut | Per API-token |
| Enterprise | 700 requests/minuut | Per API-token |
| High Volume Add-on | 2.500 requests/minuut | Per API-token |

Aanvullende limieten:

- **Search API**: 6 requests/minuut voor anoniem, 100/minuut voor geauthenticeerd
- **Incremental exports**: 10 requests/minuut
- **Batch API**: 100 records per batch-request
- **Webhook-levering**: Automatische retry met exponentiële backoff

Ratelimit-headers

Monitor de `X-Rate-Limit-Remaining`- en `Retry-After`-headers om je API-gebruik te beheren.

## Probleemoplossing

### Veelvoorkomende problemen

| Probleem | Oorzaak | Oplossing |
| --- | --- | --- |
| 401 Unauthorized | Ongeldig API-token | Genereer token opnieuw in Zendesk-admin |
| 403 Forbidden | Onvoldoende rechten | Controleer de vereiste agent- of adminrol |
| Gebruiker niet gesynchroniseerd | Gebruiker is agent, geen end-user | Filter op rol in sync-configuratie |
| Webhook niet ontvangen | Trigger/target niet geconfigureerd | Stel een webhook-target in binnen Zendesk-admin |
| Search geeft leeg resultaat | Indexering-vertraging | Wacht 1-2 minuten op update van de zoekindex |

### Debugmodus

Activeer uitgebreide logging:

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

### Verbinding testen

```bash
tajo connectors test zendesk
# ✓ API connection successful
# ✓ Users readable
# ✓ Tickets readable
# ✓ Organizations readable
# ✓ Webhooks configured
```

## Best practices

1. **Gebruik incremental exports** - Gebruik de Incremental API voor grootschalige datasync
2. **Filter alleen op end-users** - Sluit agents en admins uit van Brevo-contactsync
3. **Synchroniseer CSAT-data** - Gebruik tevredenheidsscores voor klant-health-segmentatie
4. **Koppel organisaties** - Benut organisatiedata voor B2B-marketingcampagnes
5. **Implementeer webhook-retries** - Verwerk tijdelijke storingen netjes
6. **Gebruik side-loading** - Neem gerelateerde records op in API-responses om het aantal requests te beperken

## Beveiliging

- **API-token-authenticatie** - Tokengebaseerde toegang gekoppeld aan admin-e-mail
- **OAuth 2.0** - Tokengebaseerde gedelegeerde toegang met scope-controls
- **Webhook-signing** - HMAC-signatureverificatie voor webhook-payloads
- **TLS-encryptie** - Alle API-communicatie versleuteld via HTTPS
- **IP-whitelisting** - Beperk API-toegang op IP-range

## Gerelateerde resources

- [Zendesk API Documentation](https://developer.zendesk.com/api-reference)
- [Zendesk Webhooks Guide](https://developer.zendesk.com/api-reference/webhooks/introduction/)
- [Intercom-connector](https://tajo.io/nl/docs/connectors/support/intercom)
- [Customer Sync-skill](https://tajo.io/nl/docs/skills/data-sync/customer-sync)
- [Brevo Contacts API](https://tajo.io/nl/docs/contact-management)
