---
title: "Konektor Freshdesk"
description: "Panduan integrasi Freshdesk lengkap untuk menyinkronkan tiket support, kontak, dan data agen dengan Brevo melalui Tajo."
url: https://tajo.io/in/docs/connectors/support/freshdesk/
markdown: https://tajo.io/in/docs/connectors/support/freshdesk.md
lang: id-ID
robots: noindex
---

Ajukan akses awal

Masukkan nama depan dan alamat email kerja Anda. Kami akan mengirim tautan untuk mengonfirmasi permintaan akses Tajo.

# Konektor Freshdesk

Status konektor: Direncanakan Belum dibangun. Tajo belum menjalankan konektor ini.

| Field sumber | Field tujuan | Nilai contoh |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Hubungkan Freshdesk ke Brevo melalui Tajo untuk menyatukan data support dan marketing. Sinkronkan tiket support pelanggan, profil kontak, dan skor kepuasan untuk mendukung komunikasi tertarget berdasarkan interaksi support.

## Ikhtisar

| Properti | Nilai |
| --- | --- |
| **Platform** | Freshdesk |
| **Kategori** | Support |
| **Kompleksitas setup** | Mudah |
| **Integrasi resmi** | Tidak |
| **Data yang disinkronkan** | Tiket, Kontak, Agen, Perusahaan |
| **Skill yang tersedia** | 6 |

## Fitur

- **Sinkronisasi kontak** - Sinkronisasi dua arah kontak Freshdesk ke daftar kontak Brevo
- **Pelacakan event tiket** - Teruskan event pembuatan, pembaruan, dan penyelesaian tiket ke Brevo
- **Sinkronisasi CSAT** - Sinkronkan skor kepuasan pelanggan sebagai atribut kontak Brevo
- **Sinkronisasi perusahaan** - Petakan perusahaan Freshdesk ke segmentasi kontak Brevo
- **Data agen** - Lacak penugasan agen untuk otomatisasi alur kerja internal
- **Custom field** - Petakan custom field tiket dan kontak Freshdesk ke atribut Brevo

## Prasyarat

Sebelum memulai, pastikan Anda memiliki:

1. Akun Freshdesk dengan akses admin
2. API Key Freshdesk Anda (tersedia di Profile Settings)
3. Domain Freshdesk Anda (misalnya, `yourcompany.freshdesk.com`)
4. Akun Brevo dengan akses API
5. Akun Tajo dengan kredensial API

## Autentikasi

### Autentikasi API key

Freshdesk menggunakan autentikasi API key melalui HTTP Basic Auth. API key dipakai sebagai username dengan string apa pun (umumnya `X`) sebagai password.

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

Atau menggunakan enkode Base64 pada header Authorization:

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

### Menemukan API key Anda

1. Masuk ke akun Freshdesk Anda
2. Klik foto profil Anda di sudut kanan atas
3. Buka **Profile Settings**
4. API Key Anda ditampilkan di sisi kanan

## Konfigurasi

### Setup dasar

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

### Pemetaan field kontak

Petakan field kontak Freshdesk ke atribut Brevo:

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

### Pemetaan event tiket

Petakan event tiket Freshdesk ke trigger otomatisasi Brevo:

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

## Endpoint API

| Metode | Endpoint | Deskripsi |
| --- | --- | --- |
| `GET` | `/api/v2/tickets` | Menampilkan semua tiket |
| `POST` | `/api/v2/tickets` | Membuat tiket |
| `GET` | `/api/v2/tickets/{id}` | Mengambil tiket tertentu |
| `PUT` | `/api/v2/tickets/{id}` | Memperbarui tiket |
| `DELETE` | `/api/v2/tickets/{id}` | Menghapus tiket |
| `GET` | `/api/v2/contacts` | Menampilkan semua kontak |
| `POST` | `/api/v2/contacts` | Membuat kontak |
| `PUT` | `/api/v2/contacts/{id}` | Memperbarui kontak |
| `GET` | `/api/v2/companies` | Menampilkan semua perusahaan |
| `GET` | `/api/v2/agents` | Menampilkan semua agen |
| `GET` | `/api/v2/surveys/satisfaction_ratings` | Menampilkan rating CSAT |
| `GET` | `/api/v2/search/tickets?query=` | Mencari tiket |

## Contoh kode

### Inisialisasi konektor Freshdesk

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

### Menyinkronkan kontak ke 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"
// }
```

### Melacak event tiket

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

### Mencari tiket berdasarkan pelanggan

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

## Batas rate

| Paket | Batas | Detail |
| --- | --- | --- |
| **Sprout** | 50 permintaan/menit | Paket gratis |
| **Blossom** | 200 permintaan/menit | Paket starter |
| **Garden** | 400 permintaan/menit | Paket growth |
| **Estate** | 700 permintaan/menit | Paket pro |
| **Forest** | 1.000 permintaan/menit | Paket enterprise |

Batas tambahan:

| Sumber daya | Batas |
| --- | --- |
| **Endpoint list** | 30 halaman per query |
| **Per halaman** | Maksimal 100 record |
| **Search API** | 2 permintaan/detik |
| **Operasi bulk** | 10 record/permintaan |

Header batas rate

Freshdesk mengembalikan informasi batas rate di header respons. Pantau `X-RateLimit-Remaining` dan terapkan backoff saat mendekati batas.

## Pemecahan masalah

| Masalah | Penyebab | Solusi |
| --- | --- | --- |
| `401 Unauthorized` | API key tidak valid | Verifikasi API key di Freshdesk Profile Settings |
| `403 Forbidden` | Izin tidak mencukupi | Pastikan API key milik akun admin |
| Kontak tidak tersinkronisasi | Field email kosong | Kontak Freshdesk wajib memiliki alamat email |
| Tiket tidak muncul | Domain salah | Verifikasi URL domain Freshdesk Anda sudah benar |
| Pencarian mengembalikan hasil kosong | Kesalahan sintaks query | Gunakan sintaks query pencarian Freshdesk dengan tanda kutip ganda |
| `429 Too Many Requests` | Batas rate terlampaui | Terapkan pembatasan rate sesuai tingkat paket |
| Custom field tidak ada | Field belum diaktifkan | Pastikan custom field sudah diaktifkan di admin Freshdesk |

## Praktik terbaik

1. **Gunakan webhook untuk sinkronisasi real-time** - Konfigurasikan Freshdesk Automations untuk memicu webhook pada event tiket
2. **Sinkronkan skor CSAT** - Lacak rating kepuasan pelanggan sebagai atribut Brevo untuk segmentasi
3. **Petakan status tiket ke daftar** - Pindahkan kontak antar daftar Brevo secara otomatis berdasarkan status tiket
4. **Lacak metrik support** - Sinkronkan jumlah tiket, rata-rata waktu respons, dan tingkat penyelesaian per kontak
5. **Gunakan search API seperlunya** - Search API memiliki batas rate yang lebih ketat; simpan hasilnya di cache bila memungkinkan
6. **Paginasi ekspor besar** - Gunakan paginasi dengan parameter `page` dan `per_page` untuk sinkronisasi awal

## Keamanan

- **Autentikasi API key** - HTTP Basic Auth sederhana dengan API key
- **HTTPS saja** - Semua komunikasi API mewajibkan enkripsi TLS
- **IP whitelisting** - Tersedia pada paket Estate dan Forest
- **Akses berbasis peran** - Izin API key terikat pada peran agen
- **SOC 2 Type II** - Freshdesk bersertifikat SOC 2 Type II
- **Kepatuhan GDPR** - Mendukung permintaan ekspor dan penghapusan data

## Sumber daya terkait

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