集成
Webhook
每次记录点击时接收一个 JSON POST。与 Zapier REST Hook 订阅的是同一个事件。
在 Growth 和 Ultimate 中,每当有点击被记录时,Letlink 都会向工作区中注册的每个 HTTPS URL POST 一份 JSON。所有者和管理员可在集成 → Webhook 中添加或移除 URL。成员可以查看列表,但无法更改。
添加端点
- 搭建一个接受
POST且Content-Type: application/json的 HTTPS URL。HTTP 会被拒绝。 - 将其粘贴到“集成 → Webhook”并保存。事件名为
link_visited。 - 点击你的某个短链接(从未超出每月上限的网络访问)。几秒钟内你应该会看到一个请求——投递是排队进行的,不会在跳转时同步执行。
你也可以通过 API 订阅:POST /api/v1/hooks/subscribe,传入 target_url 和可选的 event(默认为 link_visited)。Zapier REST Hooks 调用的也是同一组订阅/取消订阅路由。
数据
请求体是标准的访问对象。空的 UTM 或应用商店字段为 null。
{
"visit_id": 42,
"visit_time": "2026-09-09T18:01:22+00:00",
"link_type": "utm",
"link_shortcode": "summer",
"link_domain": "letl.ink",
"link_destination_url": "https://example.com/a",
"utm_source": "newsletter",
"utm_campaign": "sep",
"utm_medium": "email",
"google_play_app_url": null,
"google_play_utm_source": null,
"google_play_utm_campaign": null,
"app_store_app_url": null,
"app_store_ct": null,
"instagram_username": null,
"visitor_ip": "203.0.113.10",
"visitor_browser": "Chrome",
"visitor_device_type": "desktop",
"visitor_referrer": "https://mail.example.com/",
"visitor_variation": "hero-b"
}
Webhook 未触发时
- 工作区使用的是 Free 或 Solo(
allowsWebhooks为关闭状态)。 - 每月追踪点击上限已达到——跳转仍会进行,但不会写入记录,因此不会推送任何内容。
- 按设备的访问次数限制在记录点击前返回了 429。
- 国家访问规则拒绝了该访客。被拦截的访问永远不会记录为点击。
- 目标 URL 已宕机。投递按尽力而为的原则进行,绝不能延迟访客;失败的推送不会从此页面重试。
谁会收到什么
Hook 是按用户存储的。工作区中任何链接被点击时,每位成员的 link_visited URL 都会收到通知。如果两位队友各自订阅了 Zapier,两个 Zap 都会运行。请移除不用的 URL,以免残留的 Catch Hook 持续触发。