Freshdesk Connector

เชื่อมต่อ 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

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

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

Terminal window
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 ของคุณจะแสดงอยู่ทางด้านขวา

การกำหนดค่า

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

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:

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:

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

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

// 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": "[email protected]",
// "phone": "+15551234567",
// "company_id": 678,
// "job_title": "Product Manager",
// "created_at": "2024-01-15T10:30:00Z"
// }

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

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

// Search for all tickets from a specific customer
const query = encodeURIComponent('"email:[email protected]"');
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();

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

แผนขีดจำกัดรายละเอียด
Sprout50 คำขอ/นาทีแผนฟรี
Blossom200 คำขอ/นาทีแผน Starter
Garden400 คำขอ/นาทีแผน Growth
Estate700 คำขอ/นาทีแผน Pro
Forest1,000 คำขอ/นาทีแผน Enterprise

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

ทรัพยากรขีดจำกัด
List endpoints30 หน้าต่อ query
ต่อหน้าสูงสุด 100 records
Search API2 คำขอ/วินาที
Bulk operations10 records/คำขอ

ส่วนหัว Rate Limit

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

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

ปัญหาสาเหตุวิธีแก้
401 UnauthorizedAPI 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 - รองรับคำขอส่งออกและลบข้อมูล

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

Subscribe to updates

developer-docs

Drop your email or phone number — we'll send you what matters next.

auto-detect
ผู้ช่วย AI

สวัสดี! ถามฉันเกี่ยวกับเอกสารได้เลย