---
title: "Freshdesk Connector"
description: "Komplet guide til Freshdesk-integration til synkronisering af supportsager, kontakter og agentdata med Brevo via Tajo."
url: https://tajo.io/dk/docs/connectors/support/freshdesk/
markdown: https://tajo.io/dk/docs/connectors/support/freshdesk.md
lang: da-DK
robots: noindex
---

Bed om tidlig adgang til Tajo

Indtast dit fornavn og din arbejds-e-mailadresse. Vi sender dig et link til at bekræfte din anmodning om adgang til Tajo.

# Freshdesk Connector

Connectorstatus: Planlagt Ikke bygget endnu. Tajo kører ikke denne connector i dag.

| Kildefelt | Destinationsfelt | Eksempelværdi |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Forbind Freshdesk til Brevo via Tajo for at forene support- og marketingdata. Synkronisér kunders supportsager, kontaktprofiler og tilfredshedsscores for at drive målrettet kommunikation baseret på supportinteraktioner.

## Oversigt

| Egenskab | Værdi |
| --- | --- |
| **Platform** | Freshdesk |
| **Kategori** | Support |
| **Opsætningskompleksitet** | Let |
| **Officiel integration** | Nej |
| **Synkroniserede data** | Sager, kontakter, agenter, virksomheder |
| **Tilgængelige skills** | 6 |

## Funktioner

- **Kontaktsynkronisering** - Tovejssynkronisering af Freshdesk-kontakter til Brevo-kontaktlister
- **Sporing af sagshændelser** - Videresend sagsoprettelse, -opdatering og -løsningshændelser til Brevo
- **CSAT-synkronisering** - Synkronisér kundetilfredshedsscores som Brevo-kontaktattributter
- **Virksomhedssynkronisering** - Knyt Freshdesk-virksomheder til Brevo-kontaktsegmentering
- **Agentdata** - Spor agenttildelinger til intern workflow-automatisering
- **Brugerdefinerede felter** - Knyt Freshdesk-brugerdefinerede sags- og kontaktfelter til Brevo-attributter

## Forudsætninger

Før du begynder, skal du sikre dig, at du har:

1. En Freshdesk-konto med administratoradgang
2. Din Freshdesk API-nøgle (findes i Profile Settings)
3. Dit Freshdesk-domæne (f.eks. `yourcompany.freshdesk.com`)
4. En Brevo-konto med API-adgang
5. En Tajo-konto med API-legitimationsoplysninger

## Autentifikation

### API-nøgle-autentifikation

Freshdesk bruger API-nøgle-autentifikation via HTTP Basic Auth. API-nøglen bruges som brugernavn med en vilkårlig streng (typisk `X`) som adgangskode.

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

Eller ved brug af Base64-kodning i Authorization-headeren:

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

### Find din API-nøgle

1. Log ind på din Freshdesk-konto
2. Klik dit profilbillede i øverste højre hjørne
3. Gå til **Profile Settings**
4. Din API-nøgle vises i højre side

## Konfiguration

### Grundlæggende opsætning

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

### Kontaktfeltmapping

Knyt Freshdesk-kontaktfelter til Brevo-attributter:

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

### Mapping af sagshændelser

Knyt Freshdesk-sagshændelser til Brevo-automatiseringstriggere:

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

| Metode | Endpoint | Beskrivelse |
| --- | --- | --- |
| `GET` | `/api/v2/tickets` | Vis alle sager |
| `POST` | `/api/v2/tickets` | Opret en sag |
| `GET` | `/api/v2/tickets/{id}` | Hent en specifik sag |
| `PUT` | `/api/v2/tickets/{id}` | Opdatér en sag |
| `DELETE` | `/api/v2/tickets/{id}` | Slet en sag |
| `GET` | `/api/v2/contacts` | Vis alle kontakter |
| `POST` | `/api/v2/contacts` | Opret en kontakt |
| `PUT` | `/api/v2/contacts/{id}` | Opdatér en kontakt |
| `GET` | `/api/v2/companies` | Vis alle virksomheder |
| `GET` | `/api/v2/agents` | Vis alle agenter |
| `GET` | `/api/v2/surveys/satisfaction_ratings` | Vis CSAT-ratings |
| `GET` | `/api/v2/search/tickets?query=` | Søg i sager |

## Kodeeksempler

### Initialisér Freshdesk-konnektor

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

### Synkronisér kontakter til Brevo

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

### Spor sagshændelser

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

### Søg sager efter kunde

```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();
```

## Ratebegrænsninger

| Plan | Grænse | Detaljer |
| --- | --- | --- |
| **Sprout** | 50 forespørgsler/min | Gratis plan |
| **Blossom** | 200 forespørgsler/min | Starter-plan |
| **Garden** | 400 forespørgsler/min | Growth-plan |
| **Estate** | 700 forespørgsler/min | Pro-plan |
| **Forest** | 1.000 forespørgsler/min | Enterprise-plan |

Yderligere grænser:

| Ressource | Grænse |
| --- | --- |
| **Liste-endpoints** | 30 sider per forespørgsel |
| **Per side** | 100 poster maks. |
| **Search API** | 2 forespørgsler/sek |
| **Bulk-operationer** | 10 poster/forespørgsel |

Rate limit-headere

Freshdesk returnerer information om ratebegrænsninger i responseheadere. Overvåg `X-RateLimit-Remaining`, og implementér backoff, når du nærmer dig grænserne.

## Fejlfinding

| Problem | Årsag | Løsning |
| --- | --- | --- |
| `401 Unauthorized` | Ugyldig API-nøgle | Verificér API-nøgle i Freshdesk Profile Settings |
| `403 Forbidden` | Utilstrækkelige rettigheder | Sørg for, at API-nøglen tilhører en administratorkonto |
| Kontakter synkroniseres ikke | Manglende e-mailfelt | Freshdesk-kontakter kræver en e-mailadresse |
| Sager vises ikke | Forkert domæne | Verificér, at din Freshdesk-domæne-URL er korrekt |
| Søgning returnerer tomt | Query-syntaksfejl | Brug Freshdesk-søgequery-syntaks med dobbelte anførselstegn |
| `429 Too Many Requests` | Ratebegrænsning overskredet | Implementér ratebegrænsning baseret på planniveau |
| Brugerdefinerede felter mangler | Felt ikke aktiveret | Sørg for, at brugerdefinerede felter er aktiveret i Freshdesk-admin |

## Best practices

1. **Brug webhooks til realtidssynkronisering** - Konfigurér Freshdesk Automations til at udløse webhooks ved sagshændelser
2. **Synkronisér CSAT-scores** - Spor kundetilfredshedsratings som Brevo-attributter til segmentering
3. **Knyt sagsstatus til lister** - Flyt automatisk kontakter mellem Brevo-lister baseret på sagsstatus
4. **Spor supportmetrikker** - Synkronisér sagsantal, gennemsnitlig svartid og løsningsrate per kontakt
5. **Brug Search API sparsomt** - Search API’et har strengere ratebegrænsninger; cache resultater når muligt
6. **Paginér store eksporter** - Brug paginering med `page`- og `per_page`-parametre til indledende synkronisering

## Sikkerhed

- **API-nøgle-autentifikation** - Simpel HTTP Basic Auth med API-nøgle
- **Kun HTTPS** - Al API-kommunikation kræver TLS-kryptering
- **IP-whitelisting** - Tilgængelig på Estate- og Forest-planer
- **Rollebaseret adgang** - API-nøglerettigheder knyttet til agentrolle
- **SOC 2 Type II** - Freshdesk er SOC 2 Type II-certificeret
- **GDPR-overholdelse** - Understøtter anmodninger om dataeksport og -sletning

## Relaterede ressourcer

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