---
title: "Freshdesk-connector"
description: "Volledige Freshdesk-integratiegids voor het synchroniseren van supporttickets, contacten en agentdata met Brevo via Tajo."
url: https://tajo.io/nl/docs/connectors/support/freshdesk/
markdown: https://tajo.io/nl/docs/connectors/support/freshdesk.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.

# Freshdesk-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 Freshdesk met Brevo via Tajo om support- en marketingdata te verenigen. Synchroniseer klantsupporttickets, contactprofielen en satisfactionscores om gerichte communicatie aan te sturen op basis van supportinteracties.

## Overzicht

| Eigenschap | Waarde |
| --- | --- |
| **Platform** | Freshdesk |
| **Categorie** | Support |
| **Setupcomplexiteit** | Eenvoudig |
| **Officiële integratie** | Nee |
| **Gesynchroniseerde data** | Tickets, Contacten, Agents, Bedrijven |
| **Beschikbare skills** | 6 |

## Functies

- **Contactsynchronisatie** - Bidirectionele sync van Freshdesk-contacten naar Brevo-contactlijsten
- **Ticket-event-tracking** - Stuur events voor ticket-aanmaak, -wijziging en -afhandeling door naar Brevo
- **CSAT-sync** - Synchroniseer klanttevredenheidsscores als Brevo-contactattributen
- **Bedrijfssync** - Koppel Freshdesk-bedrijven aan Brevo-contactsegmentatie
- **Agentdata** - Track agenttoewijzingen voor interne workflowautomatisering
- **Custom velden** - Koppel Freshdesk-customticket- en contactvelden aan Brevo-attributen

## Vereisten

Voordat je begint, zorg dat je beschikt over:

1. Een Freshdesk-account met admin-toegang
2. Je Freshdesk API Key (te vinden in Profile Settings)
3. Je Freshdesk-domein (bijv. `yourcompany.freshdesk.com`)
4. Een Brevo-account met API-toegang
5. Een Tajo-account met API-inloggegevens

## Authenticatie

### API-sleutel-authenticatie

Freshdesk gebruikt API-sleutelauthenticatie via HTTP Basic Auth. De API-sleutel wordt gebruikt als gebruikersnaam met een willekeurige string (meestal `X`) als wachtwoord.

```bash
curl -u "YOUR_API_KEY:X" \
  https://yourcompany.freshdesk.com/api/v2/tickets
```

Of via Base64-encoding in de Authorization-header:

```bash
curl https://yourcompany.freshdesk.com/api/v2/tickets \
  -H "Authorization: Basic BASE64_ENCODED_API_KEY:X" \
  -H "Content-Type: application/json"
```

### Je API-sleutel vinden

1. Log in op je Freshdesk-account
2. Klik rechtsboven op je profielfoto
3. Ga naar **Profile Settings**
4. Je API Key staat aan de rechterkant

## Configuratie

### Basisopzet

```yaml
connectors:
  freshdesk:
    enabled: true
    domain: "yourcompany.freshdesk.com"
    api_key: "your-freshdesk-api-key"

    # Data sync options
    sync:
      contacts: true
      tickets: true
      companies: true
      satisfaction_ratings: true

    # Brevo list assignment
    lists:
      all_support_contacts: 30
      open_tickets: 31
      resolved_tickets: 32
```

### Contactveldmapping

Koppel Freshdesk-contactvelden aan Brevo-attributen:

```yaml
contact_mapping:
  email: email
  name: FULLNAME
  phone: SMS
  company_id: COMPANY
  job_title: JOB_TITLE
  twitter_id: TWITTER
  language: LANGUAGE
  time_zone: TIMEZONE

  # Support metrics
  total_tickets: TICKET_COUNT
  open_tickets: OPEN_TICKETS
  avg_csat: CSAT_SCORE
  last_ticket_date: LAST_SUPPORT_DATE

  # Custom fields
  custom_fields.account_type: ACCOUNT_TYPE
  custom_fields.subscription_tier: PLAN
```

### Ticket-event-mapping

Koppel Freshdesk-ticket-events aan Brevo-automation-triggers:

```yaml
ticket_events:
  ticket_created: "support_ticket_created"
  ticket_updated: "support_ticket_updated"
  ticket_resolved: "support_ticket_resolved"
  ticket_closed: "support_ticket_closed"
  ticket_reopened: "support_ticket_reopened"
  satisfaction_rated: "csat_submitted"
  note_added: "support_note_added"
```

## API-endpoints

| Methode | Endpoint | Beschrijving |
| --- | --- | --- |
| `GET` | `/api/v2/tickets` | Alle tickets opvragen |
| `POST` | `/api/v2/tickets` | Ticket aanmaken |
| `GET` | `/api/v2/tickets/{id}` | Specifieke ticket ophalen |
| `PUT` | `/api/v2/tickets/{id}` | Ticket bijwerken |
| `DELETE` | `/api/v2/tickets/{id}` | Ticket verwijderen |
| `GET` | `/api/v2/contacts` | Alle contacten opvragen |
| `POST` | `/api/v2/contacts` | Contact aanmaken |
| `PUT` | `/api/v2/contacts/{id}` | Contact bijwerken |
| `GET` | `/api/v2/companies` | Alle bedrijven opvragen |
| `GET` | `/api/v2/agents` | Alle agents opvragen |
| `GET` | `/api/v2/surveys/satisfaction_ratings` | CSAT-ratings opvragen |
| `GET` | `/api/v2/search/tickets?query=` | Tickets zoeken |

## Codevoorbeelden

### Freshdesk-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 Freshdesk account
await tajo.connectors.connect('freshdesk', {
  domain: 'yourcompany.freshdesk.com',
  apiKey: process.env.FRESHDESK_API_KEY
});
```

### Contacten naar Brevo synchroniseren

```javascript
// Fetch Freshdesk contacts and sync to Brevo
const response = await fetch(
  'https://yourcompany.freshdesk.com/api/v2/contacts?page=1&per_page=100',
  {
    headers: {
      'Authorization': 'Basic ' + btoa(`${API_KEY}:X`),
      'Content-Type': 'application/json'
    }
  }
);

const contacts = await response.json();
// Each contact:
// {
//   "id": 12345,
//   "name": "Jane Kim",
//   "email": "jane@example.com",
//   "phone": "+15551234567",
//   "company_id": 678,
//   "job_title": "Product Manager",
//   "created_at": "2024-01-15T10:30:00Z"
// }
```

### Ticket-events tracken

```javascript
// Set up Freshdesk webhook to forward ticket events
// Configure in Freshdesk Admin > Automations > Webhook

// Webhook handler
app.post('/webhooks/freshdesk', async (req, res) => {
  const { ticket, event_type } = req.body;

  await tajo.connectors.handleWebhook('freshdesk', {
    topic: event_type,
    payload: {
      ticketId: ticket.id,
      subject: ticket.subject,
      status: ticket.status,
      priority: ticket.priority,
      requesterEmail: ticket.requester.email,
      createdAt: ticket.created_at
    }
  });

  res.status(200).send('OK');
});
```

### Tickets per klant zoeken

```javascript
// Search for all tickets from a specific customer
const query = encodeURIComponent('"email:jane@example.com"');
const response = await fetch(
  `https://yourcompany.freshdesk.com/api/v2/search/tickets?query=${query}`,
  {
    headers: {
      'Authorization': 'Basic ' + btoa(`${API_KEY}:X`)
    }
  }
);

const { results, total } = await response.json();
```

## Ratelimits

| Plan | Limiet | Details |
| --- | --- | --- |
| **Sprout** | 50 requests/min | Free-plan |
| **Blossom** | 200 requests/min | Starter-plan |
| **Garden** | 400 requests/min | Growth-plan |
| **Estate** | 700 requests/min | Pro-plan |
| **Forest** | 1.000 requests/min | Enterprise-plan |

Aanvullende limieten:

| Resource | Limiet |
| --- | --- |
| **List-endpoints** | 30 pagina’s per query |
| **Per pagina** | 100 records max |
| **Search API** | 2 requests/sec |
| **Bulk-operaties** | 10 records/request |

Ratelimit-headers

Freshdesk geeft ratelimit-informatie terug in response-headers. Monitor `X-RateLimit-Remaining` en implementeer backoff wanneer je limieten nadert.

## Probleemoplossing

| Probleem | Oorzaak | Oplossing |
| --- | --- | --- |
| `401 Unauthorized` | Ongeldige API-sleutel | Verifieer API-sleutel in Freshdesk Profile Settings |
| `403 Forbidden` | Onvoldoende rechten | Zorg dat de API-sleutel bij een adminaccount hoort |
| Contacten synchroniseren niet | Ontbrekend e-mailveld | Freshdesk-contacten vereisen een e-mailadres |
| Tickets verschijnen niet | Verkeerd domein | Verifieer je Freshdesk-domein-URL |
| Search geeft leeg resultaat | Query-syntaxfout | Gebruik Freshdesk-zoeksyntax met dubbele aanhalingstekens |
| `429 Too Many Requests` | Ratelimit overschreden | Implementeer rate-limiting op basis van jouw plan |
| Custom velden ontbreken | Veld niet ingeschakeld | Zorg dat custom velden zijn ingeschakeld in de Freshdesk-admin |

## Best practices

1. **Gebruik webhooks voor realtime-sync** - Configureer Freshdesk-Automations om webhooks te triggeren bij ticket-events
2. **Synchroniseer CSAT-scores** - Volg klanttevredenheid als Brevo-attributen voor segmentatie
3. **Koppel ticketstatus aan lijsten** - Verplaats contacten automatisch tussen Brevo-lijsten op basis van ticketstatus
4. **Volg supportmetrics** - Synchroniseer aantal tickets, gemiddelde responstijd en oplospercentage per contact
5. **Gebruik de search API spaarzaam** - De search API heeft strengere limieten; cache resultaten waar mogelijk
6. **Pagineer grote exports** - Gebruik paginatie met `page`- en `per_page`-parameters voor de initiële sync

## Beveiliging

- **API-sleutel-authenticatie** - Eenvoudige HTTP Basic Auth met API-sleutel
- **Alleen HTTPS** - Alle API-communicatie vereist TLS-encryptie
- **IP-whitelisting** - Beschikbaar op Estate- en Forest-plannen
- **Rolgebaseerde toegang** - API-sleutelrechten gekoppeld aan de agentrol
- **SOC 2 Type II** - Freshdesk is SOC 2 Type II-gecertificeerd
- **AVG-compliance** - Ondersteunt verzoeken tot data-export en -verwijdering

## Gerelateerde resources

- [Brevo-connector](https://tajo.io/nl/docs/connectors/marketing/brevo)
- [Customer Sync-skill](https://tajo.io/nl/docs/skills/data-sync/customer-sync)
- [Shopify-connector](https://tajo.io/nl/docs/connectors/ecommerce/shopify)
- [Brevo Contacts API](https://tajo.io/nl/docs/contact-management)
