迁移指南
导入你的会话历史
正在从其他聊天或客服工具迁移?把历史记录导出为 CSV 或其他文件,交给你的 AI 助手,它会通过我们的 MCP 服务器把每一段会话带进 Sonny。由于映射由 AI 完成,因此适用于任何工具。
不会发送任何内容
导入的会话只是历史记录。Sonny 不会为它们给你的客户发送邮件或消息、通知你的团队、触发 Webhook、运行 AI 回复或收件箱规则,也不会发送满意度调查。它们会以已关闭、已读的状态进入,因此你的收件箱依然清静。
开始之前
- 已连接到 AI 助手的 Sonny
- 把 Sonny 的 MCP 服务器添加到 Claude、Cursor 或其他 AI 应用。MCP 指南大约只需一分钟。
- 旧工具的导出文件
- 会话和消息的 CSV、JSON 或电子表格导出文件。如果旧工具把文件存为链接,请保留这些列:Sonny 可以下载它们。
- 一个用于导入的渠道
- 导入的聊天会使用该渠道的网站,导入的邮件会使用该渠道的邮箱地址。你的 AI 可以列出你的渠道,并询问该用哪一个。
分步操作
- 01
连接 Sonny
把 Sonny 的 MCP 服务器连接到你的 AI 助手,并登录你的工作区。如果你在今天之前已连接过,请重新连接,这样你的 AI 才能看到新的导入工具。
- 02
把导出文件交给它
附上文件或告诉 AI 文件在哪里,并说明要导入到哪个渠道。
- 03
让它开始导入
以下方的提示词为起点。你的 AI 会读取文件,将其映射为 Sonny 的格式,并分批发送。
- 04
检查结果
你的 AI 会报告导入了哪些内容以及遇到的问题。在 Sonny 中打开几段会话,确认它们看起来正确,然后让它完成剩下的部分。
示例提示词
请把列名改成与你的文件一致。
prompt
请使用 import_conversations 工具,把 export.csv 中的会话导入到我的 Sonny 渠道 "Support"。
每一行是一条消息。按 ticket_id 对行分组,它就是会话的 externalId,并把 message_id 用作每条消息的 externalId。
客户消息是 incoming,客服回复是 outgoing,私密评论是 note。
把 created_at 用作 sentAt(时间为 UTC),并把 attachment_url 用于 attachments。
先导入 5 段会话,方便我在 Sonny 中检查,然后再以每批 20 段导入其余的,并告诉我汇总数量。会导入哪些内容
- 会话
- 主题、状态、标签和负责人,作为你渠道上的聊天或邮件会话。
- 消息
- 客户消息、团队回复、内部备注和聊天机器人回复,每条都保留原始的日期和时间。
- 联系人
- 按邮箱地址匹配,新联系人会被创建。你在 Sonny 中已有的联系人不会被更改。
- 附件
- 图片、PDF、文档、电子表格和 ZIP 文件,最大 25MB,可来自公开链接,也可直接发送文件本身。
导入格式
你的 AI 会按这种结构发送会话。你不需要自己编写,但了解每个字段的作用会有帮助。
json
{
"sourceId": "source_shop",
"conversations": [
{
"externalId": "crisp-8812",
"subject": "Delivery question",
"contact": {
"email": "ada@example.com",
"name": "Ada"
},
"tags": [
"Shipping"
],
"messages": [
{
"externalId": "1",
"direction": "incoming",
"body": "Has my order shipped?",
"sentAt": "2025-03-14T09:30:00Z"
},
{
"externalId": "2",
"direction": "outgoing",
"body": "Yes, it left this morning.",
"sentAt": "2025-03-14T09:41:00Z",
"author": {
"name": "Sam",
"email": "sam@yourcompany.com"
}
},
{
"externalId": "3",
"direction": "incoming",
"body": "",
"sentAt": "2025-03-14T09:45:00Z",
"attachments": [
{
"url": "https://files.example.com/receipt.pdf"
}
]
}
]
}
]
}externalId- 会话在旧工具中的 ID。必填。再次导入相同的 ID 只会添加新增的内容。
messages- 会话的消息。每条都需要方向(incoming、outgoing 或 note)、正文和 sentAt。
sentAt- 消息的发送时间,使用带时区的 ISO 8601 格式,例如 2025-03-14T09:30:00Z。
author- 发送者。填写团队成员的邮箱,可将回复关联到 Sonny 中的该成员;type 设为 bot 表示聊天机器人回复。
contact- 客户的邮箱地址和姓名。
status- open、pending 或 closed。默认为 closed。
channel- chat 或 email。当渠道有网站时,默认为 chat。
attachments- 文件,每个文件使用公开的 https url,或使用 fileName、contentType 和 dataBase64。
tags- 标签名称。新标签会自动为你创建。
assigneeEmail- 要分配该会话的团队成员。
须知
- 可以放心重复运行。如果导入中途停止,再运行一次即可。已经导入的消息会被跳过,失败的附件会重试。
- 分批处理。每次调用最多处理 50 段会话、1,000 条消息和 25 个附件。更大的导入由你的 AI 自动拆分。
- 没有邮箱地址?会话仍然会导入,只是没有关联联系人。客户的姓名会保留在其消息上。
- 团队成员。当作者的邮箱与工作区中的某个人匹配时,回复会关联到该成员。否则会保留旧工具中的姓名。
- 谁可以导入。所有者、管理员和客服(agent)。API 密钥需要对会话、消息和联系人的写入权限,导入文件还需要附件权限。
面向开发者
不使用 AI 助手?使用 API 密钥,把相同的 JSON 发送到 POST /api/v1/conversations/import。完整的 schema 见 API 参考。