Konektor Zendesk
Status konektor: Direncanakan Belum dibangun. Tajo belum menjalankan konektor ini.
Ilustrasi · data contoh
Contoh sinkronisasi
Sumber
Zendesk
Status konektor: Direncanakan
Tujuan
Alat Anda yang lain
Status konektor: Alat khusus
Pemetaan field
| 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 |
- Susun draf
- Tinjau satu data
- Setujui versi ini
Status berlaku untuk masing-masing konektor dan tidak menjamin sinkronisasi ini siap. Field ini hanya ilustrasi. Periksa skema dan izin sebenarnya sebelum sinkronisasi berjalan.
Hubungkan instance Zendesk Support Anda ke Brevo melalui Tajo untuk data support pelanggan yang terpadu, segmentasi berbasis tiket, penilaian kepuasan, dan otomatisasi marketing yang dipicu aktivitas support.
Ikhtisar
| Properti | Nilai |
|---|---|
| Platform | Zendesk |
| Kategori | Support |
| Kompleksitas setup | Menengah |
| Integrasi resmi | Tidak |
| Data yang disinkronkan | Tiket, User, Organisasi, Event |
| Base URL API | https://{subdomain}.zendesk.com/api/v2 |
Fitur
- Sinkronisasi user - Sinkronkan end-user dan agen Zendesk dengan kontak Brevo
- Pelacakan tiket - Sinkronkan data tiket untuk segmentasi marketing yang sadar konteks support
- Pemetaan organisasi - Kaitkan kontak dengan organisasi untuk alur kerja B2B
- Skor kepuasan - Sinkronkan data CSAT dan NPS ke atribut Brevo
- Event tiket - Lacak pembuatan, penyelesaian, dan eskalasi tiket sebagai pemicu otomatisasi
- Integrasi help center - Lacak tampilan artikel dan perilaku pencarian
- Dukungan multi-channel - Sinkronkan data dari channel email, chat, voice, dan messaging
- Custom field - Petakan custom field tiket dan user Zendesk ke Brevo
Prasyarat
Sebelum memulai, pastikan Anda memiliki:
- Akun Zendesk Support (Team, Professional, atau Enterprise)
- Akses admin ke instance Zendesk Anda
- API token atau app OAuth yang sudah dikonfigurasi
- Akun Brevo dengan akses API
- Akun Tajo
Autentikasi
Autentikasi API token
Gunakan autentikasi email/token untuk setup cepat.
curl https://{subdomain}.zendesk.com/api/v2/users.json \ -u {email}/token:{api_token} \ -H "Content-Type: application/json"Buat API token dari Zendesk Admin > Apps and Integrations > APIs > Zendesk API.
OAuth 2.0
Gunakan OAuth untuk integrasi multi-instance dengan akses user yang terdelegasi.
# Authorization URLhttps://{subdomain}.zendesk.com/oauth/authorizations/new? response_type=code& client_id={client_id}& redirect_uri={redirect_uri}& scope=read%20writeScope yang dibutuhkan
read # Read access to all resourceswrite # Write access to all resourcestickets:read # Read tickets (granular)users:read # Read users (granular)organizations:read # Read organizations (granular)Konfigurasi
Setup dasar
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: 32Pemetaan field
Petakan field user Zendesk ke atribut kontak Brevo:
Pemetaan default
| Parameter | Type | Description |
|---|---|---|
email required | string | Alamat email user (pengenal unik) |
name optional | string | Nama lengkap, dipecah menjadi FIRSTNAME/LASTNAME |
phone optional | string | Dipetakan ke atribut SMS untuk WhatsApp/SMS |
organization_id optional | integer | Organisasi terkait untuk pemetaan B2B |
role optional | string | Peran user (end-user, agent, admin) |
tags optional | array | Tag user dari Zendesk |
ticket_restriction optional | string | Tingkat akses tiket |
custom_fields optional | object | Nilai custom field user |
Pemetaan 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_TIEREndpoint API
Ticketing API
| Metode | Endpoint | Deskripsi |
|---|---|---|
GET | /api/v2/tickets | Menampilkan tiket |
POST | /api/v2/tickets | Membuat tiket |
PUT | /api/v2/tickets/{id} | Memperbarui tiket |
GET | /api/v2/tickets/{id} | Menampilkan satu tiket |
GET | /api/v2/search.json?query={query} | Mencari tiket |
Users API
| Metode | Endpoint | Deskripsi |
|---|---|---|
GET | /api/v2/users | Menampilkan user |
POST | /api/v2/users | Membuat user |
PUT | /api/v2/users/{id} | Memperbarui user |
GET | /api/v2/users/{id} | Menampilkan satu user |
GET | /api/v2/users/search.json?query={query} | Mencari user |
Organizations API
| Metode | Endpoint | Deskripsi |
|---|---|---|
GET | /api/v2/organizations | Menampilkan organisasi |
POST | /api/v2/organizations | Membuat organisasi |
GET | /api/v2/organizations/{id}/users | Menampilkan anggota organisasi |
Satisfaction Ratings API
| Metode | Endpoint | Deskripsi |
|---|---|---|
GET | /api/v2/satisfaction_ratings | Menampilkan rating kepuasan |
GET | /api/v2/satisfaction_ratings/{id} | Menampilkan satu rating |
Event
Event tiket
| Event | Pemicu | Kasus penggunaan |
|---|---|---|
ticket.created | Tiket baru dikirimkan | Konfirmasi penerimaan support |
ticket.updated | Status tiket berubah | Notifikasi status |
ticket.solved | Tiket ditandai selesai | Pemicu survei CSAT |
ticket.reopened | Tiket selesai dibuka kembali | Notifikasi eskalasi |
Event user
| Event | Pemicu | Kasus penggunaan |
|---|---|---|
user.created | User baru terdaftar | Sambutan untuk support |
user.updated | Profil user berubah | Sinkronisasi atribut |
user.merged | User digabungkan | Deduplikasi |
Event kepuasan
| Event | Pemicu | Kasus penggunaan |
|---|---|---|
satisfaction_rating.created | CSAT dikirimkan | Pemrosesan umpan balik |
satisfaction_rating.bad | Rating negatif | Outreach pemulihan |
satisfaction_rating.good | Rating positif | Kampanye advokasi |
Contoh kode
Inisialisasi konektor
import { TajoClient } from '@tajo/sdk';
const tajo = new TajoClient({ apiKey: process.env.TAJO_API_KEY, brevoApiKey: process.env.BREVO_API_KEY});
// Connect Zendeskawait tajo.connectors.connect('zendesk', { subdomain: 'yourcompany', apiToken: process.env.ZENDESK_API_TOKEN});Menyinkronkan user dan tiket
// Full sync of users and ticket dataawait tajo.connectors.sync('zendesk', { type: 'full', resources: ['users', 'tickets', 'organizations'], since: '2023-01-01'});
// Check sync statusconst status = await tajo.connectors.status('zendesk');console.log(status);// {// connected: true,// lastSync: '2024-01-15T10:30:00Z',// usersSynced: 8400,// ticketsSynced: 34200,// organizationsSynced: 1200// }Menangani webhook Zendesk
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');});Batas rate
Batas rate Zendesk berbeda menurut paket:
| Paket | Batas rate | Detail |
|---|---|---|
| Team | 200 permintaan/menit | Per API token |
| Professional | 400 permintaan/menit | Per API token |
| Enterprise | 700 permintaan/menit | Per API token |
| Add-on High Volume | 2.500 permintaan/menit | Per API token |
Batas tambahan:
- Search API: 6 permintaan/menit untuk anonim, 100/menit untuk terautentikasi
- Ekspor inkremental: 10 permintaan/menit
- Batch API: 100 record per permintaan batch
- Pengiriman webhook: Percobaan ulang otomatis dengan exponential backoff
Header batas rate
Pantau header X-Rate-Limit-Remaining dan Retry-After untuk mengelola penggunaan API Anda.
Pemecahan masalah
Masalah umum
| Masalah | Penyebab | Solusi |
|---|---|---|
| 401 Unauthorized | API token tidak valid | Buat ulang token di Zendesk Admin |
| 403 Forbidden | Izin tidak mencukupi | Periksa persyaratan peran agent atau admin |
| User tidak tersinkronisasi | User adalah agent, bukan end-user | Filter berdasarkan role di konfigurasi sinkronisasi |
| Webhook tidak diterima | Trigger/target belum dikonfigurasi | Siapkan target webhook di Zendesk Admin |
| Pencarian mengembalikan hasil kosong | Penundaan pengindeksan | Tunggu 1-2 menit hingga indeks pencarian diperbarui |
Mode debug
Aktifkan logging verbose:
connectors: zendesk: debug: true log_level: verbose log_webhooks: trueMenguji koneksi
tajo connectors test zendesk# ✓ API connection successful# ✓ Users readable# ✓ Tickets readable# ✓ Organizations readable# ✓ Webhooks configuredPraktik terbaik
- Gunakan ekspor inkremental - Gunakan Incremental API untuk sinkronisasi data berskala besar
- Filter hanya end-user - Kecualikan agent dan admin dari sinkronisasi kontak Brevo
- Sinkronkan data CSAT - Gunakan skor kepuasan untuk segmentasi customer health
- Petakan organisasi - Manfaatkan data organisasi untuk kampanye marketing B2B
- Terapkan percobaan ulang webhook - Tangani kegagalan sementara dengan baik
- Gunakan side-loading - Sertakan record terkait dalam respons API untuk menekan jumlah permintaan
Keamanan
- Autentikasi API token - Akses berbasis token yang terikat pada email admin
- OAuth 2.0 - Akses terdelegasi berbasis token dengan kontrol scope
- Penandatanganan webhook - Verifikasi tanda tangan HMAC untuk payload webhook
- Enkripsi TLS - Semua komunikasi API dienkripsi lewat HTTPS
- IP whitelisting - Batasi akses API berdasarkan rentang IP