---
title: "Коннектор Zendesk"
description: "Полное руководство по интеграции Zendesk для синхронизации тикетов, пользователей, организаций и событий поддержки с Brevo через Tajo."
url: https://tajo.io/ru/docs/connectors/support/zendesk/
markdown: https://tajo.io/ru/docs/connectors/support/zendesk.md
lang: ru-RU
robots: noindex
---

Подайте заявку на ранний доступ

Укажите имя и рабочий адрес электронной почты. Мы отправим ссылку для подтверждения запроса на доступ к Tajo.

# Коннектор Zendesk

Статус коннектора: Запланирован Ещё не создан. Сегодня Tajo не запускает этот коннектор.

| Поле источника | Поле назначения | Пример значения |
| --- | --- | --- |
| `record.id` | `source_id` | `record_1042` |
| `record.updated_at` | `updated_at` | `2026-10-18T08:00:00Z` |
| `record.value` | `value` | `sample_value` |

Подключите инстанс Zendesk Support к Brevo через Tajo для единых данных о поддержке клиентов, сегментации на основе тикетов, скоринга удовлетворённости и маркетинговой автоматизации на основе событий поддержки.

## Обзор

| Свойство | Значение |
| --- | --- |
| **Платформа** | Zendesk |
| **Категория** | Support |
| **Сложность настройки** | Средняя |
| **Официальная интеграция** | Нет |
| **Синхронизируемые данные** | Тикеты, пользователи, организации, события |
| **Базовый URL API** | `https://{subdomain}.zendesk.com/api/v2` |

## Возможности

- **Синхронизация пользователей**, синхронизация конечных пользователей и агентов Zendesk с контактами Brevo
- **Отслеживание тикетов**, синхронизация данных тикетов для сегментации в маркетинге с учётом поддержки
- **Маппинг организаций**, привязка контактов к организациям для B2B-рабочих процессов
- **Оценки удовлетворённости**, синхронизация данных CSAT и NPS в атрибуты Brevo
- **События тикетов**, трекинг создания, закрытия и эскалации тикетов для триггеров автоматизации
- **Интеграция с центром помощи**, отслеживание просмотров статей и поискового поведения
- **Многоканальная поддержка**, синхронизация данных из email, чата, голоса и мессенджеров
- **Пользовательские поля**, маппинг пользовательских полей тикетов и пользователей Zendesk в Brevo

## Предварительные требования

Прежде чем начать, убедитесь, что у вас есть:

1. Аккаунт Zendesk Support (Team, Professional или Enterprise)
2. Права администратора в инстансе Zendesk
3. Настроенный API-токен или OAuth-приложение
4. Аккаунт Brevo с доступом к API
5. Аккаунт Tajo

## Аутентификация

### Аутентификация по API Token

Используйте аутентификацию email/token для быстрой настройки.

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

Генерируйте API-токен в Zendesk Admin > Apps and Integrations > APIs > Zendesk API.

### OAuth 2.0

Используйте OAuth для интеграций с несколькими инстансами с делегированным доступом пользователей.

```bash
# URL авторизации
https://{subdomain}.zendesk.com/oauth/authorizations/new?
  response_type=code&
  client_id={client_id}&
  redirect_uri={redirect_uri}&
  scope=read%20write
```

#### Необходимые scope

```
read          # Доступ на чтение всех ресурсов
write         # Доступ на запись всех ресурсов
tickets:read  # Чтение тикетов (детальный)
users:read    # Чтение пользователей (детальный)
organizations:read  # Чтение организаций (детальный)
```

## Конфигурация

### Базовая настройка

```yaml
connectors:
  zendesk:
    enabled: true
    subdomain: "yourcompany"
    auth:
      email: "admin@yourcompany.com"
      api_token: "${ZENDESK_API_TOKEN}"

    # Параметры синхронизации данных
    sync:
      users: true
      tickets: true
      organizations: true
      satisfaction_ratings: true

    # Назначение листов Brevo
    lists:
      all_customers: 30
      active_tickets: 31
      satisfied_customers: 32
```

### Сопоставление полей

Сопоставьте поля пользователей Zendesk с атрибутами контактов Brevo:

#### Сопоставления по умолчанию

| Parameter | Type | Description |
| --- | --- | --- |
| `email` required | string | Email-адрес пользователя (уникальный идентификатор) |
| `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 | Значения пользовательских полей |

#### Сопоставление пользовательских полей

```yaml
field_mapping:
  # Стандартные поля
  email: email
  name: FULLNAME
  phone: SMS

  # Метрики поддержки
  open_tickets: OPEN_TICKETS
  total_tickets: TOTAL_TICKETS
  avg_satisfaction: CSAT_SCORE
  last_ticket_date: LAST_SUPPORT_DATE

  # Поля организации
  organization.name: COMPANY_NAME
  organization.tags: COMPANY_TAGS

  # Пользовательские поля
  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` | Список оценок удовлетворённости |
| `GET` | `/api/v2/satisfaction_ratings/{id}` | Показать оценку |

## События

### События тикетов

| Событие | Триггер | Сценарий использования |
| --- | --- | --- |
| `ticket.created` | Отправлен новый тикет | Подтверждение обращения в поддержку |
| `ticket.updated` | Статус тикета изменён | Уведомление о статусе |
| `ticket.solved` | Тикет помечен как решённый | Триггер CSAT-опроса |
| `ticket.reopened` | Решённый тикет открыт повторно | Оповещение об эскалации |

### События пользователей

| Событие | Триггер | Сценарий использования |
| --- | --- | --- |
| `user.created` | Зарегистрирован новый пользователь | Приветствие в поддержке |
| `user.updated` | Профиль пользователя изменён | Синхронизация атрибутов |
| `user.merged` | Пользователи объединены | Дедупликация |

### События удовлетворённости

| Событие | Триггер | Сценарий использования |
| --- | --- | --- |
| `satisfaction_rating.created` | CSAT отправлен | Обработка обратной связи |
| `satisfaction_rating.bad` | Отрицательная оценка | Восстановительное обращение |
| `satisfaction_rating.good` | Положительная оценка | Адвокатские кампании |

## Примеры кода

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

```javascript
import { TajoClient } from '@tajo/sdk';

const tajo = new TajoClient({
  apiKey: process.env.TAJO_API_KEY,
  brevoApiKey: process.env.BREVO_API_KEY
});

// Подключение Zendesk
await tajo.connectors.connect('zendesk', {
  subdomain: 'yourcompany',
  email: 'admin@yourcompany.com',
  apiToken: process.env.ZENDESK_API_TOKEN
});
```

### Синхронизация пользователей и тикетов

```javascript
// Полная синхронизация пользователей и данных тикетов
await tajo.connectors.sync('zendesk', {
  type: 'full',
  resources: ['users', 'tickets', 'organizations'],
  since: '2023-01-01'
});

// Проверка статуса синхронизации
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

```javascript
app.post('/webhooks/zendesk', async (req, res) => {
  const signature = req.get('X-Zendesk-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 варьируются в зависимости от плана:

| План | Лимит | Детали |
| --- | --- | --- |
| Team | 200 запросов/мин | На API-токен |
| Professional | 400 запросов/мин | На API-токен |
| Enterprise | 700 запросов/мин | На API-токен |
| High Volume Add-on | 2 500 запросов/мин | На API-токен |

Дополнительные ограничения:

- **Search API**: 6 запросов/мин для анонимных, 100/мин для авторизованных
- **Инкрементальный экспорт**: 10 запросов/мин
- **Batch API**: 100 записей на batch-запрос
- **Доставка вебхуков**: автоматические повторные попытки с экспоненциальной задержкой

Заголовки ограничений скорости

Следите за заголовками `X-Rate-Limit-Remaining` и `Retry-After` для управления использованием API.

## Устранение неполадок

### Частые проблемы

| Проблема | Причина | Решение |
| --- | --- | --- |
| 401 Unauthorized | Недействительный API-токен | Перегенерируйте токен в Zendesk Admin |
| 403 Forbidden | Недостаточно разрешений | Проверьте требования к роли агента или администратора |
| Пользователь не синхронизирован | Пользователь является агентом, а не конечным пользователем | Фильтруйте по роли в конфигурации синхронизации |
| Вебхук не получен | Триггер/цель не настроены | Настройте цель вебхука в Zendesk Admin |
| Поиск возвращает пустой результат | Задержка индексации | Подождите 1–2 минуты для обновления поискового индекса |

### Режим отладки

Включение подробного логирования:

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

### Проверка подключения

```bash
tajo connectors test zendesk
# ✓ API connection successful
# ✓ Users readable
# ✓ Tickets readable
# ✓ Organizations readable
# ✓ Webhooks configured
```

## Лучшие практики

1. **Используйте инкрементальный экспорт**, применяйте Incremental API для крупномасштабной синхронизации данных
2. **Фильтруйте только конечных пользователей**, исключайте агентов и администраторов из синхронизации контактов Brevo
3. **Синхронизируйте CSAT-данные**, используйте оценки удовлетворённости для сегментации здоровья клиентов
4. **Маппируйте организации**, используйте данные организаций для B2B-маркетинговых кампаний
5. **Реализуйте повторные попытки вебхуков**, корректно обрабатывайте временные сбои
6. **Используйте side-loading**, включайте связанные записи в ответы API для уменьшения количества запросов

## Безопасность

- **Аутентификация по API Token**, доступ на основе токена, привязанного к email администратора
- **OAuth 2.0**, делегированный доступ на основе токенов с контролем scope
- **Подпись вебхуков**, верификация HMAC-подписи для полезных нагрузок вебхуков
- **TLS-шифрование**, все API-коммуникации зашифрованы через HTTPS
- **IP-разрешение**, ограничение доступа к API по диапазону IP

## Связанные ресурсы

- [Документация Zendesk API](https://developer.zendesk.com/api-reference)
- [Руководство Zendesk Webhooks](https://developer.zendesk.com/api-reference/webhooks/introduction/)
- [Коннектор Intercom](https://tajo.io/ru/docs/connectors/support/intercom)
- [Скилл синхронизации клиентов](https://tajo.io/ru/docs/skills/data-sync/customer-sync)
- [Brevo Contacts API](https://tajo.io/ru/docs/contact-management)
