---
title: "Freshdesk Connector"
description: "คู่มือการผสานรวม Freshdesk ฉบับสมบูรณ์สำหรับการซิงค์ support tickets ผู้ติดต่อ และข้อมูล agent กับ Brevo ผ่าน Tajo"
url: https://tajo.io/th/docs/connectors/support/freshdesk/
markdown: https://tajo.io/th/docs/connectors/support/freshdesk.md
lang: th-TH
robots: noindex
---

ขอสิทธิ์ใช้งานล่วงหน้า

กรอกชื่อและที่อยู่อีเมลที่ทำงานของคุณ เราจะส่งลิงก์เพื่อยืนยันคำขอเข้าใช้งาน Tajo ทางอีเมล

# Freshdesk Connector

สถานะตัวเชื่อม: วางแผนไว้ ยังไม่ได้สร้าง ปัจจุบัน Tajo ยังไม่ได้ใช้งานตัวเชื่อมนี้

| ฟิลด์ต้นทาง | ฟิลด์ปลายทาง | ค่าตัวอย่าง |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

เชื่อมต่อ Freshdesk กับ Brevo ผ่าน Tajo เพื่อรวมข้อมูล support และ marketing ซิงค์ support tickets ของลูกค้า โปรไฟล์ผู้ติดต่อ และคะแนนความพึงพอใจเพื่อขับเคลื่อนการสื่อสารที่มีเป้าหมายตามการโต้ตอบ support

## ภาพรวม

| คุณสมบัติ | ค่า |
| --- | --- |
| **แพลตฟอร์ม** | Freshdesk |
| **หมวดหมู่** | Support |
| **ความซับซ้อนในการตั้งค่า** | ง่าย |
| **การผสานรวมอย่างเป็นทางการ** | ไม่ |
| **ข้อมูลที่ซิงค์** | Tickets ผู้ติดต่อ Agents บริษัท |
| **Skills ที่มี** | 6 |

## ฟีเจอร์

- **การซิงค์ผู้ติดต่อ** - การซิงค์แบบ bidirectional ของ Freshdesk contacts ไปยัง Brevo contact lists
- **การติดตามเหตุการณ์ Ticket** - ส่งต่อเหตุการณ์การสร้าง อัปเดต และแก้ไข ticket ไปยัง Brevo
- **การซิงค์ CSAT** - ซิงค์คะแนนความพึงพอใจลูกค้าเป็น Brevo contact attributes
- **การซิงค์บริษัท** - แมป Freshdesk companies ไปยัง Brevo contact segmentation
- **ข้อมูล Agent** - ติดตามการมอบหมาย agent สำหรับ internal workflow automation
- **Custom fields** - แมป Freshdesk custom ticket และ contact fields ไปยัง Brevo attributes

## ข้อกำหนดเบื้องต้น

ก่อนเริ่มต้น ตรวจสอบให้แน่ใจว่าคุณมี:

1. บัญชี Freshdesk ที่มีสิทธิ์ admin
2. Freshdesk API Key ของคุณ (พบใน Profile Settings)
3. Freshdesk domain ของคุณ (เช่น `yourcompany.freshdesk.com`)
4. บัญชี Brevo ที่มีสิทธิ์เข้าถึง API
5. บัญชี Tajo ที่มี API credentials

## การยืนยันตัวตน

### การยืนยันตัวตนด้วย API Key

Freshdesk ใช้การยืนยันตัวตนด้วย API key ผ่าน HTTP Basic Auth โดยใช้ API key เป็น username และ string ใดก็ได้ (โดยทั่วไปคือ `X`) เป็น password

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

หรือใช้การเข้ารหัส Base64 ในส่วนหัว Authorization:

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

### การค้นหา API Key ของคุณ

1. เข้าสู่ระบบบัญชี Freshdesk ของคุณ
2. คลิกรูปโปรไฟล์ที่มุมบนขวา
3. ไปที่ **Profile Settings**
4. API Key ของคุณจะแสดงอยู่ทางด้านขวา

## การกำหนดค่า

### การตั้งค่าพื้นฐาน

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

### การแมปฟิลด์ผู้ติดต่อ

แมปฟิลด์ผู้ติดต่อ Freshdesk กับแอตทริบิวต์ 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
```

### การแมปเหตุการณ์ Ticket

แมปเหตุการณ์ ticket ของ Freshdesk ไปยัง automation triggers ของ 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"
```

## API Endpoints

| เมธอด | Endpoint | คำอธิบาย |
| --- | --- | --- |
| `GET` | `/api/v2/tickets` | แสดงรายการ tickets ทั้งหมด |
| `POST` | `/api/v2/tickets` | สร้าง ticket |
| `GET` | `/api/v2/tickets/{id}` | ดึง ticket เฉพาะ |
| `PUT` | `/api/v2/tickets/{id}` | อัปเดต ticket |
| `DELETE` | `/api/v2/tickets/{id}` | ลบ ticket |
| `GET` | `/api/v2/contacts` | แสดงรายการผู้ติดต่อทั้งหมด |
| `POST` | `/api/v2/contacts` | สร้างผู้ติดต่อ |
| `PUT` | `/api/v2/contacts/{id}` | อัปเดตผู้ติดต่อ |
| `GET` | `/api/v2/companies` | แสดงรายการบริษัททั้งหมด |
| `GET` | `/api/v2/agents` | แสดงรายการ agents ทั้งหมด |
| `GET` | `/api/v2/surveys/satisfaction_ratings` | แสดงรายการคะแนน CSAT |
| `GET` | `/api/v2/search/tickets?query=` | ค้นหา tickets |

## ตัวอย่างโค้ด

### เริ่มต้น Freshdesk Connector

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

### ซิงค์ผู้ติดต่อไปยัง 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"
// }
```

### ติดตามเหตุการณ์ Ticket

```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 ตามลูกค้า

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

## ขีดจำกัดอัตรา

| แผน | ขีดจำกัด | รายละเอียด |
| --- | --- | --- |
| **Sprout** | 50 คำขอ/นาที | แผนฟรี |
| **Blossom** | 200 คำขอ/นาที | แผน Starter |
| **Garden** | 400 คำขอ/นาที | แผน Growth |
| **Estate** | 700 คำขอ/นาที | แผน Pro |
| **Forest** | 1,000 คำขอ/นาที | แผน Enterprise |

ขีดจำกัดเพิ่มเติม:

| ทรัพยากร | ขีดจำกัด |
| --- | --- |
| **List endpoints** | 30 หน้าต่อ query |
| **ต่อหน้า** | สูงสุด 100 records |
| **Search API** | 2 คำขอ/วินาที |
| **Bulk operations** | 10 records/คำขอ |

ส่วนหัว Rate Limit

Freshdesk ส่งข้อมูล rate limit ในส่วนหัวของการตอบกลับ ตรวจสอบ `X-RateLimit-Remaining` และใช้ backoff เมื่อใกล้ถึงขีดจำกัด

## การแก้ไขปัญหา

| ปัญหา | สาเหตุ | วิธีแก้ |
| --- | --- | --- |
| `401 Unauthorized` | API key ไม่ถูกต้อง | ตรวจสอบ API key ใน Freshdesk Profile Settings |
| `403 Forbidden` | สิทธิ์ไม่เพียงพอ | ตรวจสอบว่า API key เป็นของบัญชี admin |
| ผู้ติดต่อไม่ซิงค์ | ฟิลด์อีเมลหายไป | Freshdesk contacts ต้องมีที่อยู่อีเมล |
| Tickets ไม่ปรากฏ | Domain ผิด | ตรวจสอบว่า Freshdesk domain URL ถูกต้อง |
| การค้นหาว่างเปล่า | ข้อผิดพลาดไวยากรณ์ query | ใช้ไวยากรณ์ Freshdesk search query พร้อม double quotes |
| `429 Too Many Requests` | เกิน rate limit | ใช้ rate limiting ตามระดับแผน |
| Custom fields หายไป | ไม่ได้เปิดใช้งานฟิลด์ | ตรวจสอบว่าเปิดใช้งาน custom fields ใน Freshdesk admin |

## แนวทางปฏิบัติที่ดีที่สุด

1. **ใช้ webhooks สำหรับการซิงค์แบบ real-time** - กำหนดค่า Freshdesk Automations เพื่อ trigger webhooks บนเหตุการณ์ ticket
2. **ซิงค์คะแนน CSAT** - ติดตามคะแนนความพึงพอใจลูกค้าเป็น Brevo attributes สำหรับการแบ่ง segment
3. **แมปสถานะ ticket ไปยังรายการ** - ย้ายผู้ติดต่อโดยอัตโนมัติระหว่าง Brevo lists ตามสถานะ ticket
4. **ติดตาม support metrics** - ซิงค์จำนวน ticket เวลาตอบกลับเฉลี่ย และอัตราการแก้ไขต่อผู้ติดต่อ
5. **ใช้ search API อย่างประหยัด** - Search API มี rate limits ที่เข้มงวดกว่า; cache ผลลัพธ์เมื่อเป็นไปได้
6. **ใช้ pagination สำหรับ exports ขนาดใหญ่** - ใช้ pagination พร้อมพารามิเตอร์ `page` และ `per_page` สำหรับการซิงค์เริ่มต้น

## ความปลอดภัย

- **การยืนยันตัวตนด้วย API key** - HTTP Basic Auth แบบง่ายด้วย API key
- **HTTPS เท่านั้น** - การสื่อสาร API ทั้งหมดต้องการการเข้ารหัส TLS
- **IP whitelisting** - มีให้สำหรับแผน Estate และ Forest
- **Role-based access** - สิทธิ์ API key เชื่อมกับบทบาท agent
- **SOC 2 Type II** - Freshdesk ได้รับการรับรอง SOC 2 Type II
- **การปฏิบัติตาม GDPR** - รองรับคำขอส่งออกและลบข้อมูล

## แหล่งข้อมูลที่เกี่ยวข้อง

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