将 CSV 文件上传到源中
所需的用户权限:“来源管理员”和“编辑消息”。
要将 CSV 文件中的数据上传到数据源中,请导航到“来源”页面(通过管理控制台,可通过页面右上角的齿轮访问),然后找到要将数据上传到的来源。
单击数据源卡右上角的“上传” 图标(如下所示)。
然后单击“选择文件”,再选择要上传的 CSV 文件。
所选文件必须满足以下条件:
- 文件的第一行应包含标头,并以逗号或制表符分隔
- 至少需要三列:消息文本内容(消息)、时间戳和标识消息的唯一 ID
- CSV 文件中的所有文本字段应使用双引号括起
- 文件必须编码为 UTF-8、UTF-16 或 UTF-32 (平台会自动检测哪一种编码)
- CSV 文件应不超过 64 MiB。 如果您有较大的文件,仍可以通过拆分为多个文件来上传,每个文件大小不得超过 64 MiB
如果您的文件符合上述条件,则可以在下一步中配置和上传消息:
从包含 CSV 文件中检测到的列标头的每个下拉列表中选择所需的列:
- ID 列:
- 此列必须包含可识别消息的唯一 ID
- 消息 ID 只能包含 ASCII 字母数字字符 (AZ az 0-9) 和标点符号 (/ 除外)
-
注意:如果来源中存在具有相同 ID 的现有消息,则系统会更新这些消息以匹配新文件的内容
- “消息”列:
- 此列包含您要在平台中分析的消息文本
- 时间戳列:
- 此为包含消息录制日期和时间的列
- 时间戳格式很灵活,将由平台自动推断
如果您的数据包含主题行、讨论串或参与者(通常出现在案例或电子邮件讨论串中),则还可以在 CSV 文件中上传以下附加列:
- 主题列
- 选择包含消息主题的列
- 发件人列
- 选择包含“发件人”的列
- 收件人列
- 选择包含收件人的列。 多个收件人之间应用分号分隔。
- 抄送列
- 选择包含抄送的收件人的列。 多个收件人之间应使用分号分隔
- 会话 ID 列
- 选择包含消息线程 ID 的列
- 会话 ID 用于将不同消息绑定到同一个会话
发件人/收件人/抄送格式:
- 发件人/收件人/抄送字段中的以下条件将触发错误:
- 超过最大收件人数量 (每个讨论串最多 2048 个收件人)
- 发件人或收件人超出最大字符数限制 (每个收件人最多包含 512 个字符)
- 行中包含两个或更多分号 (例如: 以下格式不正确: john@email.com; beth@email.com)
- 尽管平台会去除收件人之前或之后的任何空格,但不会进行任何其他的数据清理。
- 您可能希望的数据格式示例(并非详尽列表):
- 示例 1 - Robert Bog <rob.bog@gmail.com>; John Smith <john.smith@gmail.com>
- 示例 2:rob.bog@gmail.com;john.smith@gmail.com
- 示例 3:rob.bog@gmail.com; john.smith@gmail.com
- 您可能希望的数据格式示例(并非详尽列表):
- 平台将使用分号 (;) 分隔不同的收件人
- 在上传数据之前,请确保电子邮件的格式正确
- 请注意,在典型的串联用例中(例如:电子邮件),每个“发件人”单元格中只能有 1 个发件人
时间戳格式:
- 如果您选择的时间戳格式对于天/月/年的顺序不明确(例如 01/02/03 10:10),则可以建议正确的解释:
- 2003 年 1 月 2 日 - 无
- 2003 年 2 月 1 日 - 第一天
- 2001 年 2 月 3 日 - 年初
- 2001 年 3 月 2 日 - 日优先 + 年优先
- 为避免歧义,建议尽可能以 RFC 3339 格式提供时间戳(例如 2020-01-31T12:34:56Z(适用于 UTC 或时区为 2020-08-031T11:20:60-08:00))
然后选择要与消息一起上传的其他用户属性。 用户属性是与可在平台中筛选的每条消息关联的上下文元数据。 平台中的机器学习模型也可能使用这些参数。 有两种类型,即字符串或数字:
- 字符串用户属性是分类元数据(典型示例包括 ID、国家/地区、交易对方等)
- 数字用户属性是数字元数据(典型示例包括 NPS、电子邮件统计信息、金额等)
如果文件包含 NPS 分数作为用户属性,则必须仅将其包含为数字属性并命名为“NPS”,才能触发原生 NPS 图表以在平台中加载。
选择所有用户属性后,单击“上传”。
然后,系统会提示您检查包含已上传数据的来源的数据集中已上传的消息。 如果来源尚未与任何数据集相关联,您可以创建一个新数据集,以检查是否按预期上传。
如果您在选择用户属性时出错,可以重新上传相同的文件,平台将使用列 ID 作为标识符来覆盖现有消息和属性(这不会影响应用于现有消息的任何标签)。
故障排除
希望您的上传能够顺利进行,但您可能会在上传过程中遇到问题,并看到错误消息。 我们在下面概述了其中一些问题及其发生的原因,以帮助您解决或避免它们。
在下面的错误消息中,{somewhere} 映射到有关发生错误的位置的上下文信息。 此外,我们在文件中引用位置的方式标准化为:
字符串 | 展开为: |
---|---|
{position} | 记录 {row-number},位于行 {line-number},列 {colum-number} (字节为 {byte-number}) |
以下是用户在上传 CSV 文件时可能会遇到的一些错误消息:
错误类型 | 错误消息 | 描述 |
---|---|---|
列不足 | CSV 文件仅包含 {number-columns} 列,但至少需要 3 个列 (文本、时间戳和 ID) | 上传的 CSV 未包含至少 3 列,或者平台错误地检测到文件的编码。 |
编码无效 | 文件包含无效字符 (编码检测为 {detected-ending}) | 文件未正确编码为 UTF-8/UTF-16/UTF-32 (平台会自动检测文件的格式) |
标头无效 | string:ti:er' does not match'(^delimiter|id|message|timestamp |timestamp_default_utc_offset |timestamp_day_first|timestamp_year_first\\Z)|(^(?P<property_type>number|string):(?P<name>\\w(?:[\\w]{0,30}\\w)?)\\Z)' | 如果列标题是用户属性的无效名称,则当请求架构无效时,平台会返回默认消息。 检查每个列标题是否为其目的所采用的有效格式。 列标头的最大长度为 32 个字母数字字符 |
不等长的行 | CSV 包含长度不等的行。 消息 {position} 包含 {number} 个字段,但上一个记录包含 {number} 个字段。 | CSV 包含的行单元格数量不同或与标头数量不一致。 |
ID 格式 | {record} 的消息 ID 无效。 ID 只能包含 ASCII 字母数字字符和标点符号(“/”除外)。 单元格值: {cell-value} | 当 ID 字段包含无效字符(如错误消息中所述)时,会发生此错误。 |
ID 长度 | 对于消息 {record},ID 太长。 {number} 个字节,预计至多 1024 | 当 ID 字段长于允许的最大长度(1024 个字符)时,会发生此错误 |
时间戳格式 | 消息 {position} 中的时间戳格式不正确: {timestamp-error-message}。 单元格值: {cell-value} | 当无法解析时间戳字段时,会发生此错误。 |
消息长度 | 对于消息 {position},消息太长。 {number} 个字节,预计至多 65536 | 当消息字段超过允许的最大长度(65536 个字符)时,会发生此错误。 |
数字属性格式 | 消息 {position} 中的数字格式不正确: {number-error-message}。 单元格值: {cell-value} | 当无法解析数字用户属性字段时,会发生此错误。 平台应允许任何可合理解码为数字的格式。 |
属性长度 | 对于消息 {position},属性太长。 {number} 个字节,预计至多 4096 | 当用户属性字段超过允许的最大长度(4096 个字符)时,会发生此错误。 |
未知错误 | 未知 CSV 错误: {underlying-error-message} | 上面的列表并不完全详尽 - 如果发生未知错误,请重新尝试上传。 |