Ajukan akses awal

Masukkan nama depan serta email atau nomor telepon Anda. Kami akan menghubungi Anda dengan detail akses Tajo.

Konektor Zendesk

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

PropertiNilai
PlatformZendesk
KategoriSupport
Kompleksitas setupMenengah
Integrasi resmiYa
Data yang disinkronkanTiket, User, Organisasi, Event
Base URL APIhttps://{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:

  1. Akun Zendesk Support (Team, Professional, atau Enterprise)
  2. Akses admin ke instance Zendesk Anda
  3. API token atau app OAuth yang sudah dikonfigurasi
  4. Akun Brevo dengan akses API
  5. Akun Tajo

Autentikasi

Autentikasi API token

Gunakan autentikasi email/token untuk setup cepat.

Terminal window
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.

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

Scope yang dibutuhkan

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)

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: 32

Pemetaan 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_TIER

Endpoint API

Ticketing API

MetodeEndpointDeskripsi
GET/api/v2/ticketsMenampilkan tiket
POST/api/v2/ticketsMembuat 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

MetodeEndpointDeskripsi
GET/api/v2/usersMenampilkan user
POST/api/v2/usersMembuat 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

MetodeEndpointDeskripsi
GET/api/v2/organizationsMenampilkan organisasi
POST/api/v2/organizationsMembuat organisasi
GET/api/v2/organizations/{id}/usersMenampilkan anggota organisasi

Satisfaction Ratings API

MetodeEndpointDeskripsi
GET/api/v2/satisfaction_ratingsMenampilkan rating kepuasan
GET/api/v2/satisfaction_ratings/{id}Menampilkan satu rating

Event

Event tiket

EventPemicuKasus penggunaan
ticket.createdTiket baru dikirimkanKonfirmasi penerimaan support
ticket.updatedStatus tiket berubahNotifikasi status
ticket.solvedTiket ditandai selesaiPemicu survei CSAT
ticket.reopenedTiket selesai dibuka kembaliNotifikasi eskalasi

Event user

EventPemicuKasus penggunaan
user.createdUser baru terdaftarSambutan untuk support
user.updatedProfil user berubahSinkronisasi atribut
user.mergedUser digabungkanDeduplikasi

Event kepuasan

EventPemicuKasus penggunaan
satisfaction_rating.createdCSAT dikirimkanPemrosesan umpan balik
satisfaction_rating.badRating negatifOutreach pemulihan
satisfaction_rating.goodRating positifKampanye 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 Zendesk
await tajo.connectors.connect('zendesk', {
subdomain: 'yourcompany',
apiToken: process.env.ZENDESK_API_TOKEN
});

Menyinkronkan user dan tiket

// 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
// }

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:

PaketBatas rateDetail
Team200 permintaan/menitPer API token
Professional400 permintaan/menitPer API token
Enterprise700 permintaan/menitPer API token
Add-on High Volume2.500 permintaan/menitPer 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

MasalahPenyebabSolusi
401 UnauthorizedAPI token tidak validBuat ulang token di Zendesk Admin
403 ForbiddenIzin tidak mencukupiPeriksa persyaratan peran agent atau admin
User tidak tersinkronisasiUser adalah agent, bukan end-userFilter berdasarkan role di konfigurasi sinkronisasi
Webhook tidak diterimaTrigger/target belum dikonfigurasiSiapkan target webhook di Zendesk Admin
Pencarian mengembalikan hasil kosongPenundaan pengindeksanTunggu 1-2 menit hingga indeks pencarian diperbarui

Mode debug

Aktifkan logging verbose:

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

Menguji koneksi

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

Praktik terbaik

  1. Gunakan ekspor inkremental - Gunakan Incremental API untuk sinkronisasi data berskala besar
  2. Filter hanya end-user - Kecualikan agent dan admin dari sinkronisasi kontak Brevo
  3. Sinkronkan data CSAT - Gunakan skor kepuasan untuk segmentasi customer health
  4. Petakan organisasi - Manfaatkan data organisasi untuk kampanye marketing B2B
  5. Terapkan percobaan ulang webhook - Tangani kegagalan sementara dengan baik
  6. 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

Sumber daya terkait

Ajukan akses awal

Masukkan nama depan serta email atau nomor telepon Anda. Kami akan menghubungi Anda dengan detail akses Tajo.

deteksi otomatis
Asisten AI

Halo! Tanyakan apa saja tentang dokumentasi.