发布于 Sun Jan 25 2026 08:00:00 GMT+0800 (中国标准时间)
迁移ChatwootZendesk
从 Zendesk 迁移到 Chatwoot:工单与触发器的转译
Zendesk 的工单流程比 Intercom 重,迁移到 Chatwoot 时最大挑战是「Triggers / Automations / Macros」的语义转译。
为什么 Zendesk 迁移比 Intercom 更难#
| 维度 | Intercom | Zendesk |
|---|---|---|
| 主要使用方式 | 实时聊天 | 工单 + 邮件 |
| 数据导出 | API 完善 | 官方导出工具但慢 |
| 自动化复杂度 | 中 | 高(Triggers / Automations / Macros / SLA) |
| 多 brand | 没有 | 有(每个 brand 独立 form) |
Zendesk 的「Triggers + Automations + Macros + SLA Policies」如果直接照搬,Chatwoot 没有等价物。需要重新设计。
迁移分两步#
Step 1:数据迁移(容易)#
用 Zendesk API 拉数据:
# 工单
curl "https://yoursubdomain.zendesk.com/api/v2/tickets.json?page=1" \
-u email/token:API_TOKEN > tickets.json
# 用户
curl "https://yoursubdomain.zendesk.com/api/v2/users.json" \
-u email/token:API_TOKEN > users.json
字段映射:
| Zendesk | Chatwoot |
|---|---|
ticket.subject | conversation.additional_attributes.subject |
ticket.priority | conversation.priority |
ticket.status (open, pending, solved, closed) | status (open, pending, resolved) |
ticket.custom_fields[i] | conversation.custom_attributes[i] |
comments | messages |
organizations | contacts.additional_attributes.organization |
Step 2:自动化转译(难)#
Triggers(满足条件时立即执行)#
Zendesk Trigger:「新工单 + priority=high → 分配给 Team A」
Chatwoot 对应:Automation Rule(触发时机:会话创建 / 更新)
# Chatwoot Automation Rule(伪代码)
name: High priority to senior team
trigger: conversation_created
conditions:
- priority == high
actions:
- assign_team: senior-team-id
Automations(定时执行)#
Zendesk Automation:「12 小时未响应 → 升级到经理」
Chatwoot 没有原生定时 Automation。需要外接 n8n:
n8n Cron (每 10 分钟) →
调 Chatwoot API 查所有 conversations
→ 过滤超 12h 未回的
→ 调 Chatwoot API 升级 + 通知
Macros(坐席快捷回复)#
Zendesk Macro 可以「写文本 + 改 ticket 字段 + 加 tag」一起。
Chatwoot 的 Canned Response 只能写文本。复杂的需要拆:
- 文本部分 → Canned Response
- 字段修改部分 → Chatwoot Custom View / Manual Action
- 加 tag 部分 → 同上
SLA Policies#
Chatwoot 4.x 已支持 SLA,配置类似:
sla_policy:
name: Premium customers
first_response_time_threshold: 1h
next_response_time_threshold: 4h
resolution_time_threshold: 24h
applicable_when:
- contact.tag == premium
多 Brand 处理#
Zendesk 的 brand 隔离做得好——每个品牌独立 Help Center、独立工单表单。Chatwoot 用 多 Account 或 多 Inbox 模拟:
- 多 Account:完全独立,账户级别隔离(推荐企业)
- 多 Inbox:单 Account 下,按 Inbox 区分(推荐中小)
我们的实战时间线#
| 周 | 工作 |
|---|---|
| 1-2 | 数据导出 + 字段映射脚本 |
| 3 | Triggers / Automations 转译设计 |
| 4 | n8n 工作流搭建 |
| 5 | 历史数据导入(夜间分批跑) |
| 6 | 坐席培训 |
| 7-8 | 10% → 50% → 100% 流量切换 |
千万不要#
- 不要不做并行就直接切:Zendesk 的 Automation / SLA 通常已经跑了多年没人维护,一切才发现哪些规则缺失
- 不要忽略历史工单的搜索:客户在新系统问「我上次那个工单怎么样了」时,必须能搜到
- 不要把所有 macro 都迁过去:让客服团队挑出真用的 30-50 条,其他清掉