---
title: "Zendesk 连接器"
description: "完整的 Zendesk 集成指南，通过 Tajo 将工单、用户、组织和支持事件与 Brevo 同步。"
url: https://tajo.io/zh-cn/docs/connectors/support/zendesk/
markdown: https://tajo.io/zh-cn/docs/connectors/support/zendesk.md
lang: zh-CN
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` |

通过 Tajo 将您的 Zendesk Support 实例连接到 Brevo，实现统一的客户支持数据、基于工单的细分、满意度评分以及支持触发的营销自动化。

## 概览

| 属性 | 值 |
| --- | --- |
| **平台** | Zendesk |
| **类别** | 支持 |
| **设置复杂度** | 中等 |
| **官方集成** | 否 |
| **同步数据** | 工单、用户、组织、事件 |
| **API 基础 URL** | `https://{subdomain}.zendesk.com/api/v2` |

## 功能

- **用户同步** - 将 Zendesk 终端用户和客服与 Brevo 联系人同步
- **工单跟踪** - 同步工单数据，用于支持感知营销细分
- **组织映射** - 将联系人与组织关联，实现 B2B 工作流
- **满意度评分** - 将 CSAT 和 NPS 数据同步到 Brevo 属性
- **工单事件** - 跟踪工单创建、解决和升级，用于自动化触发
- **帮助中心集成** - 跟踪文章浏览和搜索行为
- **多渠道支持** - 同步来自邮件、聊天、语音和消息渠道的数据
- **自定义字段** - 将 Zendesk 自定义工单和用户字段映射到 Brevo

## 前提条件

开始之前，请确保您已具备：

1. Zendesk Support 账户（Team、Professional 或 Enterprise 版本）
2. 对 Zendesk 实例的管理员访问权限
3. 已配置 API 令牌或 OAuth 应用
4. 具有 API 访问权限的 Brevo 账户
5. Tajo 账户

## 认证

### API 令牌认证

使用邮箱/令牌认证快速设置。

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

从 Zendesk 管理 > 应用和集成 > API > Zendesk API 生成 API 令牌。

### OAuth 2.0

用于具有委托用户访问权限的多实例集成。

```bash
# 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)
```

## 配置

### 基础设置

```yaml
connectors:
  zendesk:
    enabled: true
    subdomain: "yourcompany"
    auth:
      email: "admin@yourcompany.com"
      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/短信 |
| `organization_id` optional | integer | 用于 B2B 映射的关联组织 |
| `role` optional | string | 用户角色（终端用户、客服、管理员） |
| `tags` optional | array | 来自 Zendesk 的用户标签 |
| `ticket_restriction` optional | string | 工单访问级别 |
| `custom_fields` optional | object | 自定义用户字段值 |

#### 自定义字段映射

```yaml
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 端点

### 工单 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}` | 搜索工单 |

### 用户 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}` | 搜索用户 |

### 组织 API

| 方法 | 端点 | 描述 |
| --- | --- | --- |
| `GET` | `/api/v2/organizations` | 列出组织 |
| `POST` | `/api/v2/organizations` | 创建组织 |
| `GET` | `/api/v2/organizations/{id}/users` | 列出组织成员 |

### 满意度评分 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
});

// Connect Zendesk
await tajo.connectors.connect('zendesk', {
  subdomain: 'yourcompany',
  email: 'admin@yourcompany.com',
  apiToken: process.env.ZENDESK_API_TOKEN
});
```

### 同步用户和工单

```javascript
// 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 Webhook

```javascript
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 速率限制因计划而异：

| 计划 | 速率限制 | 详情 |
| --- | --- | --- |
| Team | 200 请求/分钟 | 每个 API 令牌 |
| Professional | 400 请求/分钟 | 每个 API 令牌 |
| Enterprise | 700 请求/分钟 | 每个 API 令牌 |
| 高容量附加组件 | 2,500 请求/分钟 | 每个 API 令牌 |

附加限制：

- **搜索 API**：匿名 6 请求/分钟，已认证 100 请求/分钟
- **增量导出**：10 请求/分钟
- **批量 API**：每次批量请求 100 条记录
- **Webhook 投递**：带指数退避的自动重试

速率限制响应头

监控 `X-Rate-Limit-Remaining` 和 `Retry-After` 请求头以管理您的 API 使用情况。

## 故障排除

### 常见问题

| 问题 | 原因 | 解决方案 |
| --- | --- | --- |
| 401 Unauthorized | API 令牌无效 | 在 Zendesk 管理中重新生成令牌 |
| 403 Forbidden | 权限不足 | 检查客服或管理员角色要求 |
| 用户未同步 | 用户是客服，而非终端用户 | 在同步配置中按角色筛选 |
| 未收到 Webhook | 触发器/目标未配置 | 在 Zendesk 管理中设置 Webhook 目标 |
| 搜索返回空 | 索引延迟 | 等待 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. **使用增量导出** - 使用增量 API 进行大规模数据同步
2. **仅筛选终端用户** - 从 Brevo 联系人同步中排除客服和管理员
3. **同步 CSAT 数据** - 使用满意度评分进行客户健康度细分
4. **映射组织** - 利用组织数据进行 B2B 营销活动
5. **实施 Webhook 重试** - 优雅地处理临时故障
6. **使用侧加载** - 在 API 响应中包含相关记录，减少请求次数

## 安全

- **API 令牌认证** - 与管理员邮箱绑定的基于令牌的访问
- **OAuth 2.0** - 带范围控制的基于令牌的委托访问
- **Webhook 签名** - HMAC 签名验证 Webhook 负载
- **TLS 加密** - 所有 API 通信通过 HTTPS 加密
- **IP 白名单** - 按 IP 范围限制 API 访问

## 相关资源

- [Zendesk API 文档](https://developer.zendesk.com/api-reference)
- [Zendesk Webhook 指南](https://developer.zendesk.com/api-reference/webhooks/introduction/)
- [Intercom 连接器](https://tajo.io/zh-cn/docs/connectors/support/intercom)
- [客户同步技能](https://tajo.io/zh-cn/docs/skills/data-sync/customer-sync)
- [Brevo 联系人 API](https://tajo.io/zh-cn/docs/contact-management)
