Zendesk конектор

Свържи своята Zendesk Support инстанция с Brevo чрез Tajo за унифицирани данни за клиентска поддръжка, сегментация на базата на тикети, satisfaction scoring и маркетингова автоматизация, задействана от поддръжка.

Преглед

СвойствоСтойност
ПлатформаZendesk
КатегорияПоддръжка
Сложност на настройкаСредна
Официална интеграцияДа
Синхронизирани данниТикети, потребители, организации, събития
Base URL на APIhttps://{subdomain}.zendesk.com/api/v2

Функции

  • Синхронизация на потребители – Синхронизирай Zendesk end-users и агенти с контактите в Brevo
  • Проследяване на тикети – Синхронизирай данни за тикети за маркетингова сегментация, наясно с support
  • Мапване на организации – Асоциирай контактите с организации за B2B работни потоци
  • Скорове за удовлетвореност – Синхронизирай CSAT и NPS данни към атрибути в Brevo
  • Събития от тикети – Проследявай създаване, решаване и ескалация на тикети за automation тригери
  • Интеграция с Help center – Проследявай преглед на статии и поведение при търсене
  • Поддръжка на множество канали – Синхронизирай данни от имейл, chat, voice и messaging канали
  • Персонализирани полета – Мапвай персонализирани полета на тикети и потребители от Zendesk към Brevo

Предварителни условия

Преди да започнеш, увери се, че имаш:

  1. Zendesk Support акаунт (Team, Professional или Enterprise)
  2. Администраторски достъп до твоята Zendesk инстанция
  3. API token или конфигурирано OAuth приложение
  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 за мулти-инстанция интеграции с делегиран потребителски достъп.

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

Необходими обхвати

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

Имейл адрес на потребителя (уникален идентификатор)

name optional
string

Пълно име, разделено на FIRSTNAME/LASTNAME

phone optional
string

Мапва към атрибут SMS за WhatsApp/SMS

organization_id optional
integer

Свързана организация за B2B мапване

role optional
string

Роля на потребителя (end-user, agent, admin)

tags optional
array

Потребителски тагове от Zendesk

ticket_restriction optional
string

Ниво на достъп до тикети

custom_fields optional
object

Стойности на персонализирани потребителски полета

Мапване на персонализирани полета

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 крайни точки

Ticketing API

МетодКрайна точкаОписание
GET/api/v2/ticketsСписък с тикети
POST/api/v2/ticketsСъздаване на тикет
PUT/api/v2/tickets/{id}Обновяване на тикет
GET/api/v2/tickets/{id}Показване на тикет
GET/api/v2/search.json?query={query}Търсене на тикети

Users API

МетодКрайна точкаОписание
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

МетодКрайна точкаОписание
GET/api/v2/organizationsСписък с организации
POST/api/v2/organizationsСъздаване на организация
GET/api/v2/organizations/{id}/usersСписък с членове на организация

Satisfaction Ratings API

МетодКрайна точкаОписание
GET/api/v2/satisfaction_ratingsСписък с satisfaction оценки
GET/api/v2/satisfaction_ratings/{id}Показване на оценка

Събития

Събития от тикети

СъбитиеТригерСлучай на употреба
ticket.createdПодаден нов тикетПотвърждение на поддръжка
ticket.updatedПроменен статус на тикетИзвестие за статус
ticket.solvedТикетът е маркиран като решенТригер за CSAT анкета
ticket.reopenedРешен тикет е отворен отновоAlert за ескалация

Потребителски събития

СъбитиеТригерСлучай на употреба
user.createdРегистриран нов потребителWelcome в поддръжка
user.updatedПроменен потребителски профилСинхронизация на атрибути
user.mergedПотребители обединениДедупликация

Събития за удовлетвореност

СъбитиеТригерСлучай на употреба
satisfaction_rating.createdПодаден CSATОбработка на обратна връзка
satisfaction_rating.badОтрицателна оценкаRecovery outreach
satisfaction_rating.goodПоложителна оценкаAdvocacy кампании

Примери с код

Инициализация на конектора

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

Синхронизация на потребители и тикети

// 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 уебхуци

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

Ограничения на заявките

Zendesk rate limits варират според плана:

ПланRate LimitДетайли
Team200 заявки/минутаНа API token
Professional400 заявки/минутаНа API token
Enterprise700 заявки/минутаНа API token
High Volume Add-on2 500 заявки/минутаНа API token

Допълнителни лимити:

  • Search API: 6 заявки/минута за анонимни, 100/минута за автентикирани
  • Инкрементални експорти: 10 заявки/минута
  • Batch API: 100 записа на batch заявка
  • Доставка на уебхуци: Автоматичен retry с exponential backoff

Хедъри за rate limit

Мониторирай хедърите X-Rate-Limit-Remaining и Retry-After, за да управляваш използването на API.

Отстраняване на проблеми

Чести проблеми

ПроблемПричинаРешение
401 UnauthorizedНевалиден API tokenРегенерирай token в Zendesk Admin
403 ForbiddenНедостатъчни разрешенияПровери изискванията за роля на агент или admin
Потребителят не е синхронизиранПотребителят е агент, не end-userФилтрирай по role в конфигурацията за синхронизация
Уебхукът не се получаваТриггер/target не е конфигуриранНастрой webhook target в Zendesk Admin
Search връща празноЗабавяне на индексиранеИзчакай 1-2 минути за обновяване на search индекса

Режим за дебъг

Активирай подробно логване:

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 API за синхронизация на големи обеми данни
  2. Филтрирай само end-users – Изключи агентите и admins от Brevo contact синхронизация
  3. Синхронизирай CSAT данни – Използвай скорове за удовлетвореност за сегментация по здраве на клиенти
  4. Мапвай организации – Използвай данни за организации за B2B маркетингови кампании
  5. Внедри retry за уебхуци – Обработвай временни неуспехи gracefully
  6. Използвай side-loading – Включвай свързани записи в API отговорите, за да намалиш броя на заявките

Сигурност

  • Автентикация с API token – Token-базиран достъп, обвързан с admin email
  • OAuth 2.0 – Token-базиран делегиран достъп с scope контроли
  • Подписване на уебхуци – HMAC верификация на подпис за 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 асистент

Здравейте! Попитайте ме за документацията.