Zendesk Connector

เชื่อมต่อ Zendesk Support instance ของคุณกับ Brevo ผ่าน Tajo เพื่อข้อมูล customer support ที่รวมกัน การแบ่ง segment ตาม ticket การให้คะแนนความพึงพอใจ และ marketing automation ที่ triggered จาก support

ภาพรวม

คุณสมบัติค่า
แพลตฟอร์มZendesk
หมวดหมู่Support
ความซับซ้อนในการตั้งค่าปานกลาง
การผสานรวมอย่างเป็นทางการใช่
ข้อมูลที่ซิงค์Tickets ผู้ใช้ Organizations เหตุการณ์
API Base URLhttps://{subdomain}.zendesk.com/api/v2

ฟีเจอร์

  • การซิงค์ผู้ใช้ - ซิงค์ Zendesk end-users และ agents กับ Brevo contacts
  • การติดตาม Ticket - ซิงค์ข้อมูล ticket สำหรับการแบ่ง segment การตลาดที่ตระหนักถึง support
  • การแมป Organization - เชื่อมผู้ติดต่อกับ organizations สำหรับ B2B workflows
  • คะแนนความพึงพอใจ - ซิงค์ข้อมูล CSAT และ NPS ไปยัง Brevo attributes
  • เหตุการณ์ Ticket - ติดตามการสร้าง การแก้ไข และการยกระดับ ticket สำหรับ automation triggers
  • การผสานรวม Help center - ติดตามการดูบทความและพฤติกรรมการค้นหา
  • รองรับหลายช่องทาง - ซิงค์ข้อมูลจากอีเมล แชท เสียง และ messaging channels
  • Custom fields - แมป Zendesk custom ticket และ user fields ไปยัง Brevo

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

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

  1. บัญชี Zendesk Support (Team, Professional หรือ Enterprise)
  2. สิทธิ์ admin สำหรับ Zendesk instance ของคุณ
  3. API token หรือกำหนดค่า OAuth app
  4. บัญชี Brevo ที่มีสิทธิ์เข้าถึง API
  5. บัญชี Tajo

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

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

ใช้การยืนยันตัวตนด้วย email/token สำหรับการตั้งค่าที่รวดเร็ว

Terminal window
curl https://{subdomain}.zendesk.com/api/v2/users.json \
-u {email}/token:{api_token} \
-H "Content-Type: application/json"

สร้าง API token จาก Zendesk Admin > Apps and Integrations > APIs > Zendesk API

OAuth 2.0

ใช้ OAuth สำหรับการผสานรวมหลาย instance พร้อม delegated user access

Terminal window
# Authorization URL
https://{subdomain}.zendesk.com/oauth/authorizations/new?
response_type=code&
client_id={client_id}&
redirect_uri={redirect_uri}&
scope=read%20write

Scopes ที่จำเป็น

read # Read access to all resources
write # Write access to all resources
tickets:read # Read tickets (granular)
users:read # Read users (granular)
organizations:read # Read organizations (granular)

การกำหนดค่า

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

connectors:
zendesk:
enabled: true
subdomain: "yourcompany"
auth:
api_token: "${ZENDESK_API_TOKEN}"
# Data sync options
sync:
users: true
tickets: true
organizations: true
satisfaction_ratings: true
# Brevo list assignment
lists:
all_customers: 30
active_tickets: 31
satisfied_customers: 32

การแมปฟิลด์

แมปฟิลด์ผู้ใช้ Zendesk กับแอตทริบิวต์ผู้ติดต่อ Brevo:

การแมปเริ่มต้น

Parameter Type Description
email required
string

ที่อยู่อีเมลผู้ใช้ (unique identifier)

name optional
string

ชื่อเต็ม แยกเป็น FIRSTNAME/LASTNAME

phone optional
string

แมปกับแอตทริบิวต์ SMS สำหรับ WhatsApp/SMS

organization_id optional
integer

organization ที่เกี่ยวข้องสำหรับการแมป B2B

role optional
string

บทบาทผู้ใช้ (end-user, agent, admin)

tags optional
array

Tags ผู้ใช้จาก Zendesk

ticket_restriction optional
string

ระดับการเข้าถึง ticket

custom_fields optional
object

ค่า custom user field

การแมป Custom Field

field_mapping:
# Standard fields
email: email
name: FULLNAME
phone: SMS
# Support metrics
open_tickets: OPEN_TICKETS
total_tickets: TOTAL_TICKETS
avg_satisfaction: CSAT_SCORE
last_ticket_date: LAST_SUPPORT_DATE
# Organization fields
organization.name: COMPANY_NAME
organization.tags: COMPANY_TAGS
# Custom fields
user_fields.customer_type: CUSTOMER_TYPE
user_fields.account_tier: ACCOUNT_TIER

API Endpoints

Ticketing API

เมธอดEndpointคำอธิบาย
GET/api/v2/ticketsแสดงรายการ tickets
POST/api/v2/ticketsสร้าง ticket
PUT/api/v2/tickets/{id}อัปเดต ticket
GET/api/v2/tickets/{id}แสดง ticket
GET/api/v2/search.json?query={query}ค้นหา tickets

Users API

เมธอดEndpointคำอธิบาย
GET/api/v2/usersแสดงรายการผู้ใช้
POST/api/v2/usersสร้างผู้ใช้
PUT/api/v2/users/{id}อัปเดตผู้ใช้
GET/api/v2/users/{id}แสดงผู้ใช้
GET/api/v2/users/search.json?query={query}ค้นหาผู้ใช้

Organizations API

เมธอดEndpointคำอธิบาย
GET/api/v2/organizationsแสดงรายการ organizations
POST/api/v2/organizationsสร้าง organization
GET/api/v2/organizations/{id}/usersแสดงรายการสมาชิก organization

Satisfaction Ratings API

เมธอดEndpointคำอธิบาย
GET/api/v2/satisfaction_ratingsแสดงรายการคะแนนความพึงพอใจ
GET/api/v2/satisfaction_ratings/{id}แสดงคะแนน

เหตุการณ์

เหตุการณ์ Ticket

เหตุการณ์Triggerกรณีการใช้งาน
ticket.createdส่ง ticket ใหม่แล้วการยืนยัน support
ticket.updatedสถานะ ticket เปลี่ยนแล้วการแจ้งเตือนสถานะ
ticket.solvedทำเครื่องหมาย ticket ว่าแก้ไขแล้วTrigger การสำรวจ CSAT
ticket.reopenedเปิด ticket ที่แก้ไขแล้วใหม่การแจ้งเตือนการยกระดับ

เหตุการณ์ผู้ใช้

เหตุการณ์Triggerกรณีการใช้งาน
user.createdผู้ใช้ใหม่ลงทะเบียนยินดีต้อนรับสู่ support
user.updatedโปรไฟล์ผู้ใช้เปลี่ยนแล้วการซิงค์ attribute
user.mergedผู้ใช้รวมกันแล้วDeduplication

เหตุการณ์ความพึงพอใจ

เหตุการณ์Triggerกรณีการใช้งาน
satisfaction_rating.createdส่ง CSAT แล้วการประมวลผล feedback
satisfaction_rating.badRating เชิงลบการติดต่อเพื่อแก้ไข
satisfaction_rating.goodRating เชิงบวกแคมเปญ advocacy

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

เริ่มต้น Connector

import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({
apiKey: process.env.TAJO_API_KEY,
brevoApiKey: process.env.BREVO_API_KEY
});
// Connect Zendesk
await tajo.connectors.connect('zendesk', {
subdomain: 'yourcompany',
apiToken: process.env.ZENDESK_API_TOKEN
});

ซิงค์ผู้ใช้และ Tickets

// Full sync of users and ticket data
await tajo.connectors.sync('zendesk', {
type: 'full',
resources: ['users', 'tickets', 'organizations'],
since: '2023-01-01'
});
// Check sync status
const status = await tajo.connectors.status('zendesk');
console.log(status);
// {
// connected: true,
// lastSync: '2024-01-15T10:30:00Z',
// usersSynced: 8400,
// ticketsSynced: 34200,
// organizationsSynced: 1200
// }

จัดการ Zendesk Webhooks

app.post('/webhooks/zendesk', async (req, res) => {
const signature = req.get('X-Zendesk-Webhook-Signature');
// Verify webhook signature
if (!verifyZendeskSignature(req.body, signature)) {
return res.status(401).send('Unauthorized');
}
await tajo.connectors.handleWebhook('zendesk', {
type: req.body.type,
ticketId: req.body.ticket_id,
userId: req.body.user_id,
payload: req.body
});
res.status(200).send('OK');
});

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

Rate limits ของ Zendesk แตกต่างกันตามแผน:

แผนขีดจำกัดอัตรารายละเอียด
Team200 คำขอ/นาทีต่อ API token
Professional400 คำขอ/นาทีต่อ API token
Enterprise700 คำขอ/นาทีต่อ API token
High Volume Add-on2,500 คำขอ/นาทีต่อ API token

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

  • Search API: 6 คำขอ/นาทีสำหรับ anonymous, 100/นาทีสำหรับการยืนยันตัวตน
  • Incremental exports: 10 คำขอ/นาที
  • Batch API: 100 records ต่อ batch request
  • Webhook delivery: ลองใหม่อัตโนมัติพร้อม exponential backoff

ส่วนหัว Rate Limit

ตรวจสอบส่วนหัว X-Rate-Limit-Remaining และ Retry-After เพื่อจัดการการใช้งาน API ของคุณ

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

ปัญหาทั่วไป

ปัญหาสาเหตุวิธีแก้
401 UnauthorizedAPI token ไม่ถูกต้องสร้าง token ใหม่ใน Zendesk Admin
403 Forbiddenสิทธิ์ไม่เพียงพอตรวจสอบข้อกำหนดบทบาท agent หรือ admin
ผู้ใช้ไม่ซิงค์ผู้ใช้เป็น agent ไม่ใช่ end-userกรองตาม role ในการกำหนดค่าการซิงค์
ไม่ได้รับ Webhookไม่ได้กำหนดค่า trigger/targetตั้งค่า webhook target ใน Zendesk Admin
การค้นหาว่างเปล่าความล่าช้าในการ indexingรอ 1-2 นาทีเพื่ออัปเดต search index

โหมด Debug

เปิดใช้งาน verbose logging:

connectors:
zendesk:
debug: true
log_level: verbose
log_webhooks: true

ทดสอบการเชื่อมต่อ

Terminal window
tajo connectors test zendesk
# ✓ API connection successful
# ✓ Users readable
# ✓ Tickets readable
# ✓ Organizations readable
# ✓ Webhooks configured

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

  1. ใช้ incremental exports - ใช้ Incremental API สำหรับการซิงค์ข้อมูลขนาดใหญ่
  2. กรองเฉพาะ end-users - ยกเว้น agents และ admins จากการซิงค์ Brevo contact
  3. ซิงค์ข้อมูล CSAT - ใช้คะแนนความพึงพอใจสำหรับการแบ่ง segment สุขภาพลูกค้า
  4. แมป organizations - ใช้ข้อมูล organization สำหรับแคมเปญ B2B marketing
  5. ใช้ webhook retries - จัดการความล้มเหลวชั่วคราวอย่างมีเกียรติ
  6. ใช้ side-loading - รวม records ที่เกี่ยวข้องใน API responses เพื่อลดจำนวนคำขอ

ความปลอดภัย

  • การยืนยันตัวตนด้วย API Token - การเข้าถึงด้วย token ที่เชื่อมกับอีเมล admin
  • OAuth 2.0 - Delegated access ด้วย token พร้อมการควบคุม scope
  • Webhook signing - การตรวจสอบ HMAC signature สำหรับ webhook payloads
  • การเข้ารหัส TLS - การสื่อสาร API ทั้งหมดเข้ารหัสผ่าน HTTPS
  • IP whitelisting - จำกัดการเข้าถึง API ตามช่วง IP

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

Subscribe to updates

developer-docs

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

auto-detect
ผู้ช่วย AI

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