连接 BI(Power BI/Tableau)和 Zapier/Make
生成你自己的 API 密钥,将 BI 和自动化工具连接到你的 CRM 数据,无需使用我们的外部账户。
你可以将 BI 工具(Power BI、Tableau、Looker)和自动化工具(Zapier、Make、n8n)直接连接到你的 CRM 数据库。无需使用我们提供的外部账户:你在 CRM 内部生成一个 API 密钥,然后将其连接到相应工具。所有操作均为只读,且仅限于你所属租户的数据。
前提条件
- 拥有一个可以通过认证请求头调用 REST/JSON API 的 BI 工具账户(Power BI、Tableau、Looker Studio)或自动化工具账户(Zapier、Make、n8n)。
- 在 Sellio 中拥有管理员权限,以便在“设置 → API”中生成 API 密钥。
1)生成 API 密钥
- 打开“设置 → API”。
- 创建一个新的 API 密钥并复制其值(以 sk_ 开头,只会显示一次,请像对待密码一样妥善保管)。
- 在相关工具中,在请求头中发送该密钥:Authorization: Bearer sk_...
💡 每次读取都是在拥有该密钥的租户上下文中进行的。其他公司的 API 密钥永远看不到你的数据,你的密钥也永远看不到第三方的数据。
2)数据端点(“表”)
- GET /api/v1/objects:列出可用的对象(BI 可以读取的“表”)。
- GET /api/v1/data/{object}:该对象的记录被展平为行,包含固定的列:id、created_at、updated_at、owner_id,以及每个字段各一列(该字段的 api_name)。
分页:使用 ?page=1&pageSize=100(或 ?limit= 和 ?offset=)。pageSize 最大为 200。响应中包含 object、columns(每列的名称和类型)、page、pageSize、total 和 rows。
3)Power BI / Tableau / Looker
- 在 Power BI 中:获取数据 → Web;在 Tableau 中:Web/JSON 连接器;在 Looker Studio 中:JSON/URL 连接器。
- 指向数据 URL,例如 https://YOUR-CRM/api/v1/data/opportunity
- 添加 Authorization 请求头,值为 Bearer sk_...(你的 API 密钥)。
- 这些列是固定且带类型的,因此你只需映射一次,报表就会随着新记录不断产生而持续正常工作。
4)Zapier / Make / n8n
- 轮询触发器(“新建/更新记录”):查询 GET /api/v1/data/{object}?updated_since=<ISO>(或 created_since=<ISO>),只接收自上次检查以来发生变化或新建的数据。最新的记录排在最前面。
- 即时触发器:在“设置 → Webhooks”中,创建一个出站 webhook,将 URL 指向 Zapier 的“Catch Hook”(或 Make/n8n 的“Custom Webhook”)。每当有记录被创建/更新,CRM 会即时发送已签名(HMAC)的事件。
Example: 增量轮询示例:https://YOUR-CRM/api/v1/data/lead?updated_since=2026-01-01T00:00:00Z&pageSize=50
在“设置 → 集成”中,“BI 与外部自动化”卡片汇总了端点链接以及生成 API 密钥的快捷入口。
如何测试
- 快速测试:使用请求头 Authorization: Bearer sk_... 打开 GET https://YOUR-CRM/api/v1/objects(可在带扩展程序的浏览器中、Postman 中或用 curl),检查对象列表。
- 读取数据:调用 GET /api/v1/data/opportunity?pageSize=5,确认返回的行包含 id、created_at、updated_at、owner_id 以及各字段列。
- 在 BI 中:创建指向数据 URL 的连接,检查各列是否显示为带类型的字段;在 Zapier/Make 中,触发测试,查看记录是否到达。
故障排查
- 401 未授权:API 密钥缺失、错误,或未以“Authorization: Bearer sk_...”的形式发送。请在“设置 → API”中生成一个新密钥(该值只显示一次)并重新配置工具。
- 端点返回 404:检查 URL。对象位于 /api/v1/objects,数据位于 /api/v1/data/{api_name}。请使用对象的确切 api_name(而非本地化标签)。
- 只返回了少量行:结果是分页的。使用 ?page=1&pageSize=200(最大 200)并遍历各页;对于增量读取,请使用 ?updated_since=<ISO>。
- 即时 webhook 未触发:确认“设置 → Webhooks”中的出站 webhook 指向“Catch Hook”(Zapier)/“Custom Webhook”(Make/n8n)且处于激活状态。CRM 会对发送内容进行签名(HMAC),如果工具需要,请核实该密钥。
- 我只能读取自己的数据:这是正确的。每个 API 密钥都被隔离在所属租户内,永远不会看到其他公司的数据。