Zendesk конектор
Свържи своята Zendesk Support инстанция с Brevo чрез Tajo за унифицирани данни за клиентска поддръжка, сегментация на базата на тикети, satisfaction scoring и маркетингова автоматизация, задействана от поддръжка.
Преглед
| Свойство | Стойност |
|---|---|
| Платформа | Zendesk |
| Категория | Поддръжка |
| Сложност на настройка | Средна |
| Официална интеграция | Да |
| Синхронизирани данни | Тикети, потребители, организации, събития |
| Base URL на API | https://{subdomain}.zendesk.com/api/v2 |
Функции
- Синхронизация на потребители – Синхронизирай Zendesk end-users и агенти с контактите в Brevo
- Проследяване на тикети – Синхронизирай данни за тикети за маркетингова сегментация, наясно с support
- Мапване на организации – Асоциирай контактите с организации за B2B работни потоци
- Скорове за удовлетвореност – Синхронизирай CSAT и NPS данни към атрибути в Brevo
- Събития от тикети – Проследявай създаване, решаване и ескалация на тикети за automation тригери
- Интеграция с Help center – Проследявай преглед на статии и поведение при търсене
- Поддръжка на множество канали – Синхронизирай данни от имейл, chat, voice и messaging канали
- Персонализирани полета – Мапвай персонализирани полета на тикети и потребители от Zendesk към Brevo
Предварителни условия
Преди да започнеш, увери се, че имаш:
- Zendesk Support акаунт (Team, Professional или Enterprise)
- Администраторски достъп до твоята Zendesk инстанция
- API token или конфигурирано OAuth приложение
- Акаунт в Brevo с API достъп
- Акаунт в Tajo
Автентикация
Автентикация с API token
Използвай автентикация email/token за бърза настройка.
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 за мулти-инстанция интеграции с делегиран потребителски достъп.
# Authorization URLhttps://{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 resourceswrite # Write access to all resourcestickets: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_TIERAPI крайни точки
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 Zendeskawait tajo.connectors.connect('zendesk', { subdomain: 'yourcompany', apiToken: process.env.ZENDESK_API_TOKEN});Синхронизация на потребители и тикети
// 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// }Обработка на 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 | Детайли |
|---|---|---|
| Team | 200 заявки/минута | На API token |
| Professional | 400 заявки/минута | На API token |
| Enterprise | 700 заявки/минута | На API token |
| High Volume Add-on | 2 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Тест на връзката
tajo connectors test zendesk# ✓ API connection successful# ✓ Users readable# ✓ Tickets readable# ✓ Organizations readable# ✓ Webhooks configuredДобри практики
- Използвай инкрементални експорти – Използвай Incremental API за синхронизация на големи обеми данни
- Филтрирай само end-users – Изключи агентите и admins от Brevo contact синхронизация
- Синхронизирай CSAT данни – Използвай скорове за удовлетвореност за сегментация по здраве на клиенти
- Мапвай организации – Използвай данни за организации за B2B маркетингови кампании
- Внедри retry за уебхуци – Обработвай временни неуспехи gracefully
- Използвай side-loading – Включвай свързани записи в API отговорите, за да намалиш броя на заявките
Сигурност
- Автентикация с API token – Token-базиран достъп, обвързан с admin email
- OAuth 2.0 – Token-базиран делегиран достъп с scope контроли
- Подписване на уебхуци – HMAC верификация на подпис за webhook payloads
- TLS криптиране – Цялата API комуникация е криптирана чрез HTTPS
- IP whitelisting – Ограничаване на API достъп по IP диапазон