飞书多维表格对接全流程
10 分钟把 Tariffin AI 归类 + 13 国关税 + 落地成本自动写进你的飞书多维表格, 无需写代码,无需后端服务器。本文档基于飞书原生「自动化流程」功能,所有操作都在飞书界面里完成。
1. 工作原理
Tariffin 暴露一个 webhook(https://tariffin.com/api/lark/classify), 它接受商品名 + 目的国,返回 HS 编码、关税率、落地成本。飞书多维表格的「自动化流程」可以监听某一列变化, 调用 webhook,把返回值写到指定列。整个过程是这样:
01
你在飞书表格新增「商品名」「目的国」等输入列
02
你新增「HS 编码」「MFN 税率」「落地成本」等输出列
03
配置一条飞书自动化流程:商品名填好 → POST 调用 Tariffin webhook
04
把返回值映射回输出列,完成
2. 准备工作(5 分钟)
在 Tariffin 注册并签发一把 API 密钥
访问 Dashboard → API 密钥,点「签发新密钥」,输入名称(如「飞书表格」),复制完整密钥(只显示一次,格式 tfk_xxxxxxxx...)。
在飞书创建或打开你的多维表格
在飞书工作台 → 多维表格,新建一个空表格,或者打开已有的。 建议先用一张测试表跑通流程再迁到生产表。
3. 设计表格字段
按下表新增 8 个字段。前 4 个是「你填的」,后 4 个会被自动填(暂时留空)。 字段名可以改,但要和后面自动化里映射的一致。
| 字段名 | 类型 | 是否必填 | 用途 |
|---|---|---|---|
| 商品名 ↓ 输入 in | 多行文本 | ✓ | 商品描述,任意语言 |
| 目的国 ↓ 输入 in | 单选(US/CN/EU/UK/JP/KR/IN/AU/CA/MX/BR/VN/TH) | ✓ | ISO 双字母代码 |
| 申报货值(USD) ↓ 输入 in | 数字 | 默认 1000 | |
| 原产国 ↓ 输入 in | 单选(CN/US/...) | 用于 FTA 判定,可空 | |
| HS 编码 ↑ 输出 out | 文本 | 自动填入,6-10 位 | |
| MFN 税率 ↑ 输出 out | 数字(百分比) | 自动填入 | |
| 落地成本(USD) ↑ 输出 out | 数字 | 自动填入 | |
| AI 归类理由 ↑ 输出 out | 多行文本 | 自动填入 |
4. 配置自动化流程
在多维表格右上角点 ⚙️ 自动化 → 「新建流程」→ 选「从空白开始」。然后按下面 3 步配置。
设置触发器:当「商品名」字段被填写时
- 触发器类型:当记录修改时
- 监听字段:勾选 「商品名」
- 修改条件:从空变为有值(避免重复触发)
添加动作:发送 HTTP 请求
点「下一步」→「添加动作」→ 选「发送 HTTP 请求」。配置如下:
POSThttps://tariffin.com/api/lark/classifyBearer tfk_xxxxxxxxxxxxxxxxxxxxapplication/jsonJSON请求体 JSON(把 {{字段名}} 替换为飞书的字段引用,飞书右侧面板可以直接点击插入):
{
"product_name": "{{商品名}}",
"destination": "{{目的国}}",
"declared_value_usd": {{申报货值(USD)}},
"origin": "{{原产国}}"
}Authorization 请求头里的密钥不能拼错,前缀是 Bearer (注意空格),然后是你的完整 tfk_... 密钥。 没带这个头或写错都会返回 401。把响应映射回字段
飞书自动化的「响应」步骤可以从 JSON 响应中取字段写回当前记录。新增 4 个「更新记录」动作, 或在动作里直接配置「写入字段」,按下表映射:
| 飞书字段 | JSON 取值 | 说明 |
|---|---|---|
| HS 编码 | $.hs_code | 6-10 位字符串 |
| MFN 税率 | $.mfn_rate | 0.024 表示 2.4% |
| 落地成本(USD) | $.landed_cost_usd | 数字 |
| AI 归类理由 | $.reasoning | 中文文本 |
description_zh / description_en (HS 中英文描述)、confidence(0-1 置信度)、source_url(关税源链接),按需添加列即可。完整响应格式见 第 6 节。启用流程并测试
右上角切到「启用」状态。回到表格,新增一行,填入「商品名」(如「便携蓝牙音箱」) 和「目的国」(如 US),保存。等 5-10 秒,后面 4 个输出列会自动填上。
5. 请求格式详解
POST https://tariffin.com/api/lark/classify
请求头
Authorization: Bearer tfk_xxxxxxxxxxxxxxxxxxxxxxxx content-type: application/json
请求体字段
| 字段 | 类型 | 必填 | 默认 | 说明 |
|---|---|---|---|---|
| product_name | string | ✓ | — | 商品描述,2-2000 字符,任意语言 |
| destination | string | ✓ | — | ISO 2 字母国家码:US / CN / EU / UK / JP / KR / IN / AU / CA / MX / BR / VN / TH |
| declared_value_usd | number | 100 | 申报货值(USD),用于计算落地成本 | |
| origin | string | — | 原产国 ISO 码,影响 FTA 优惠判定,可空 |
完整请求示例
curl -X POST https://tariffin.com/api/lark/classify \
-H "Authorization: Bearer tfk_xxxxxxxxxxxxxxxxxxxx" \
-H "content-type: application/json" \
-d '{
"product_name": "便携蓝牙音箱,塑料外壳,USB-C,5W",
"destination": "US",
"declared_value_usd": 1000,
"origin": "CN"
}'6. 响应格式详解
字段定义
| 字段 | 类型 | 说明 |
|---|---|---|
| hs_code | string | HS 编码,6-10 位 |
| description_en | string | HS 编码的英文描述 |
| description_zh | string | HS 编码的中文描述 |
| confidence | number | AI 归类置信度,0-1 |
| reasoning | string | AI 归类推理过程,中文 |
| mfn_rate | number / null | MFN 税率,0.024 = 2.4%(可空,代表暂无数据) |
| full_code | string / null | 所在国完整税则号(如美国 HTS 10 位) |
| source | string / null | 数据来源,如 USITC / CBIC / EU-TARIC |
| source_url | string / null | 官方源链接,可直接点开核对 |
| landed_cost_usd | number / null | 落地成本(美元) |
| landed_cost_local | number / null | 落地成本(目的国本币) |
| currency | string / null | 本币代码,如 CNY / EUR / JPY |
| effective_rate_percent | number / null | 综合税负百分比 |
| detected_language | string | 检测到的输入语言,如 zh / en |
| provider | string | 底层 AI 提供方,固定 deepseek |
| latency_ms | number | 本次调用耗时(毫秒) |
完整响应示例
{
"hs_code": "851829",
"description_en": "Other loudspeakers, single",
"description_zh": "其他扬声器,单声道",
"confidence": 0.92,
"reasoning": "便携蓝牙音箱,塑料外壳,USB-C 充电,5W 输出 → 归入 HS 8518.29(其他扬声器,单只)。",
"mfn_rate": 0.024,
"full_code": "8518.29.80",
"source": "USITC HTS",
"source_url": "https://hts.usitc.gov/?query=8518.29",
"landed_cost_usd": 1117.6,
"landed_cost_local": 1117.6,
"currency": "USD",
"effective_rate_percent": 2.4,
"detected_language": "zh",
"provider": "deepseek",
"latency_ms": 1843
}7. 错误码与排查
| HTTP | error | 原因 & 处理 |
|---|---|---|
| 400 | invalid_request | 请求体格式错误。检查 JSON 是否合法,字段名拼写,数字类型是否真的是数字 |
| 400 | unsupported_destination | 目的国不在 13 国支持范围内。看响应里的 supported 数组 |
| 401 | unauthorized | Authorization 头缺失或密钥错误。检查密钥是否带 Bearer 前缀,有没有多余空格 |
| 429 | rate_limited | 超过 60 次/分钟。等响应头 retry-after 秒数后重试 |
| 500 | — | 服务端异常。一般是 LLM 上游波动,重试通常即可。持续报错请联系我们 |
8. 常见场景与扩展
8.1 多目的国对比
想一次比对同一商品在 13 国的关税?在飞书里建一个「目的国」单选填多个值的写法不太可行 —— 推荐的做法是:多维表格用「关联表」,主表填商品,从表为该商品 × 13 个国家 13 条记录, 每条记录的「目的国」不同,自动化逐条触发。这样每次只调 1 个国家,响应快、容易排错。
8.2 批量回填存量数据
如果你已经有一张 1000 行的旧表想批量归类:打开自动化的「修改触发条件」, 临时改成「定时触发,每天 8 点扫描所有空 HS 字段并补充」,跑完后再切回「按需触发」。 注意 60 次/分钟限制,1000 行预计需要 ~17 分钟。
8.3 多个团队成员共用
推荐每个团队成员或每个使用场景签发独立的 API 密钥(在 Dashboard 里给密钥起不同名称, 如「张三-生产」「李四-测试」)。这样:
- 密钥使用量、最近调用时间分别统计
- 某人离职 → 撤销他的密钥,不影响其他人
- 限流按密钥分桶,互不抢配额
8.4 在脚本里使用同一 webhook
这个 webhook 本质就是 REST API,不局限于飞书。任何能发 HTTP 请求的工具都可以调: Python requests、n8n、Zapier、Bash 脚本,只要带上 Bearer 密钥就行。
8.5 在线测试
配置自动化之前,先在 Dashboard → 飞书集成 → Webhook 测试 输入一个商品名一键调用,确认你账号的密钥能正常工作。
9. 常见问题
飞书的自动化每天有调用次数上限吗?
飞书自动化本身有「次数 / 月」限额(免费版 100 次/月,付费版更高)。这个限额是飞书侧的,和 Tariffin 没关系。如果你团队量大,推荐升级飞书付费版,或者改用「飞书脚本」直接调用 webhook(脚本不算自动化次数)。
可以一次性传一批商品名吗?
当前 webhook 是单次单商品。需要批量?在飞书表格里设置「按行触发」,飞书会自动逐行调用。或在自定义脚本里循环调用 webhook,注意 60 次/分钟限速。
返回的 mfn_rate 是 null 怎么办?
代表 Tariffin 数据库暂时没有该 HS × 国家组合的关税明细(可能爬虫还没覆盖到)。常见于偏门 HS 编码或冷门国家。前端会自动用静态 fallback 兜底,但仍可能为 null。这种情况建议手工去对应国家海关官网核对(响应里的 source_url 给了关税源链接,如有)。
AI 归类准确吗?置信度怎么用?
基于 5,000 条真实报关单评测,Top-3 准确率超过 92%。建议把 confidence < 0.7 的记录标记成「待人工复核」,自动化里加一个条件分支:if confidence < 0.7 then 发飞书消息提醒。
数据多久更新一次?
美国 USITC/CBP、中国 GACC、欧盟 TARIC、印度 CBIC、日本财务省等关键源每日抓取,其余按周。每条数据都有 verified_at 时间戳(响应里 source_url 可以直接点过去核对原文)。
支持其他语言的商品描述吗?
支持任意语言。Tariffin 内部会自动检测语言并翻译成英文后再归类。响应里的 detected_language 字段告诉你检测到的是什么语言。
配好了,试一下?
在 Dashboard 签发密钥 + 在线测试 webhook,5 分钟跑通最小可用流程。