迁移指南

导入你的会话历史

正在从其他聊天或客服工具迁移?把历史记录导出为 CSV 或其他文件,交给你的 AI 助手,它会通过我们的 MCP 服务器把每一段会话带进 Sonny。由于映射由 AI 完成,因此适用于任何工具。

不会发送任何内容

导入的会话只是历史记录。Sonny 不会为它们给你的客户发送邮件或消息、通知你的团队、触发 Webhook、运行 AI 回复或收件箱规则,也不会发送满意度调查。它们会以已关闭、已读的状态进入,因此你的收件箱依然清静。

开始之前

已连接到 AI 助手的 Sonny
把 Sonny 的 MCP 服务器添加到 Claude、Cursor 或其他 AI 应用。MCP 指南大约只需一分钟。
旧工具的导出文件
会话和消息的 CSV、JSON 或电子表格导出文件。如果旧工具把文件存为链接,请保留这些列:Sonny 可以下载它们。
一个用于导入的渠道
导入的聊天会使用该渠道的网站,导入的邮件会使用该渠道的邮箱地址。你的 AI 可以列出你的渠道,并询问该用哪一个。

分步操作

  1. 01

    连接 Sonny

    把 Sonny 的 MCP 服务器连接到你的 AI 助手,并登录你的工作区。如果你在今天之前已连接过,请重新连接,这样你的 AI 才能看到新的导入工具。

  2. 02

    把导出文件交给它

    附上文件或告诉 AI 文件在哪里,并说明要导入到哪个渠道。

  3. 03

    让它开始导入

    以下方的提示词为起点。你的 AI 会读取文件,将其映射为 Sonny 的格式,并分批发送。

  4. 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 参考。

相关文档